Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c++密碼程式

試寫一程式,在一陣列中存入6個字元密碼(字母或數字),使用者從鍵盤輸入密碼,檢查使用者輸入是否正確,只能有3次的輸入機會。

1 個解答

評分
  • 1 0 年前
    最佳解答

    #include <iostream>

    #include <conio.h>

    #include <time.h>

    #define max 8

    using namespace std;

    void sleep( clock_t wait );//wait to see

    bool COMPARE(char a[],char b[]);//compare two array is equal or not

    int main( void )

    {

    char a[max]={0},code[max]={0},temp;

    int pos=0,finish=0;

    cout<<"Code:";//input the code

    cin>>code;

    system("cls");

    for(int t=0;t<3;t )

    {

    cout<<"enter your code:";

    for(int pos=0;pos<max;)

    {

    if(finish==0)

    {

    temp=getch();

    switch(temp)

    {

    case 8://backspace to back one position

    a[--pos]=0;

    system("cls");

    cout<<"enter your code:";

    for(int k=0;k<pos;k )

    cout<<"*";

    break;

    case 13://enter to finish input

    finish=1;

    break;

    case 27://esc to leave

    exit(1);

    default:

    if(isdigit(temp))//ensure input is 0~9

    {

    a[pos ]=temp;

    cout<<"*";

    }

    }

    }

    else

    break;

    }

    if(COMPARE(a,code)==true)//two array is equal,get the answer

    {

    cout<<"\ncode is right"<<endl;

    sleep((clock_t)1*CLOCKS_PER_SEC);

    break;

    }

    else//different,then let array is null,finish=0

    {

    cout<<"\ncode is wrong"<<endl;

    sleep((clock_t)1*CLOCKS_PER_SEC);//wait one second

    system("cls");

    finish=0;

    for(int i=0;i<max;i )

    a[i]=0;

    }

    }

    }

    void sleep( clock_t wait )

    {

    clock_t goal;

    goal = wait clock();

    while( goal > clock() );

    }

    bool COMPARE(char a[max],char b[max])

    {

    for(int i=0;i<max;i )

    if(a[i]!=b[i])

    return false;

    return true;

    }

    sleep()也可用system("pause")

    只是這樣用看起比較好看

    有不了解的部份可以再問

    2007-12-20 22:47:41 補充:

    對了~這個程式是可以跑8個

    你自己改 #define max 6

    參考資料: 我的學習經驗
還有問題?馬上發問,尋求解答。