日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用c语言完成银行排号系统,【分享】C语言 银行取票排队系统

發布時間:2025/3/21 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用c语言完成银行排号系统,【分享】C语言 银行取票排队系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

void call() //客服呼叫客戶

{

int mywin;//客服所在窗口號 自動分配窗口改為手工分配

char mywinchar;//字符型的窗口號 0的ascii碼為48

char setfree;

printf("\t【當前空閑窗口】:");

showfreewin();

printf("\t【當前客戶隊列情況】:");

showqueue();

printf("\n");

if(vip->size == 0 && nor->size == 0)

{

printf("\t【暫時沒有客戶等待服務!】\n");

service();

}

else

{printf("\t【請輸入您值班的窗口號】:");

scanf("%s",&mywinchar);

mywin = mywinchar -48;//這樣做可以避免輸入非數字引起程序錯誤 但是窗口總數不能大于9!!0的ascii碼為48

if(mywin >= 1 && mywin <= allwin)

{

if(win[mywin - 1] ==0) //值班的窗口為空閑狀態

{

callfree(mywin);//將值班的窗口號 mywin傳遞給callfree函數

}

else

{

printf("\t【第%d號窗口當前為忙碌狀態!】\n",mywin);

printf("\t【是否設置第%d號窗口為空閑,并繼續呼叫客戶?】\n",mywin);

printf("\t【請選擇】:\n");

printf("\t\t\tY.是\tN.否\n");

printf("\t【您的選擇】:");

scanf("%s",&setfree);

if(setfree ==*Y* ||setfree ==*y*)

{

win[mywin - 1] = 0;

callfree(mywin);//不用再次輸入窗口號 將當前窗口號傳遞到callfree()函數 按原來的窗口號呼叫客戶

}

else

{

if(setfree == *N* || setfree == *n*)

{

call();//選擇其他窗口號來呼叫客戶

}

else

{

printf("\t【沒有這個選項!】\n");

}

}

}

}

else

{

if(mywin >= 1 && mywin <= 9)

{

printf("\t【第%d號窗口暫未開設,請確認您所在值班的窗口號!】\n",mywin);

call();

}

else

{

printf("\t【請正確輸入您值班的窗口號!】\n");

call();

}

}

}

}

/*************************************************************/

void servicelogin() //登陸客服系統

{

char password[] = "1";

char pass[20]; //記錄輸入的密碼

printf("\t【請輸入登陸密碼】:\t");

scanf("%s",pass);//pass是數組 不需要&

while(strcmp(pass,password) == 0) //strcmp為字符串比較函數,返回值為0表示兩字符串相同

{

service();//service()函數里有跳出循環的語句 所以這里不是死循環

}

printf("\t【登陸密碼錯誤!】\n");

hugemenu();

}

/*************************************************************/

void service()

{char menu; //客服系統里的菜單變量 若此處設置為整型 萬一輸入的不是數字會造成死循環 所以設置為字符型

printf("\n\t【請選擇】:\n");

printf("\t\t\t1.呼叫客戶\t2.隊列情況\n\t\t\t3.管理窗口\t4.返回\n");

while(1)

{printf("\t【您的選擇】:");

scanf("%s",&menu); // %s 比%c可靠

switch(menu)

{

case *1*:call();service();break;//文單引號表示是字符型

case *2*:printf("\t【當前隊列情況】:");showqueue();service();break;

case *3*:managewin();break;

case *4*:hugemenu();break;

default:

{

printf("\t【請正確選擇您的服務項目!】\n");

printf("\t\t\t1.呼叫客戶\t2.隊列情況\n\t\t\t3.管理窗口\t4.返回\n");

}

}

}

}

/*************************************************************/

void turnoff()

{

char password[] ="1";

char pass[30];//定義大一點 因為如果輸入的字符超過數組長度,程序會出錯 退出!

char sure;//確定不確定關閉

printf("\t【請輸入登陸密碼】: ");

scanf("%s",pass);//輸入密碼時 如果輸入的字符超過數組長度,程序會出錯 退出!屬于漏洞!

if(strcmp(pass,password) == 0)//對比字符串 返回值等于意味著密碼正確

{

printf("\t【關閉系統后,客戶將不能排隊取票!】\n\t【您確定要關閉嗎?】\n\n");

printf("\t\t\tY.關閉\t\tN.保持\n");

while(1)

{printf("\t【您的選擇】:");

scanf("%s",&sure); //不應該用%c 因為用%c的話 回車時會影響

if(sure == *y* || sure == *Y* ) //注意不是sure == *y* || *Y* !!!

{

printf("\t【系統關閉中...】\n");

Beep(800,300); Beep(800,300); Beep(800,800); //聲音 beep(調子,時間)

exit(0);//關閉系統

}

else

{if(sure == *n* || sure == *N*)

{

printf("\t【系統未關閉 依然正常運行!】\n");

break;

}

else

{

printf("\t【關閉請按 Y 保持請按 N】\n");

}

}

}

}

else

{

printf("\t【密碼錯誤!請重新輸入!】\n");

}

}

/************************************************************/

void hugemenu()//最大的菜單

{

char menu; //服務項目菜單 采用字符型比較可靠!因為如果定義成整型,萬一輸入了字符,可能會造成死循環錯誤

while(1) //系統將一直運行 直到運行 turnoff()函數

{

printf("\n\t********************歡迎您使用本系統********************\n\n");

printf("\t【請選擇服務項目】:\n");

printf("\t\t\t1.客戶取票\t2.VIP服務\n\t\t\t3.客服系統\t4.關閉系統\n");

printf("\t【您的選擇】:");

scanf("%s",&menu); //用%s 比%c好 %c會記錄字符 而且比如輸入111 就會執行getnor() 3次!如果用%s。也輸入111,不同的是只執行一遍getnor 后面兩個1與回車都不起作用。

switch(menu)

{

case *1*:getnor(); printf("\n\t^^^^^^^^^^^^^^^^^^^^感謝您使用本系統^^^^^^^^^^^^^^^^^^^^\n\n");break;

case *2*:getvip(); printf("\n\t^^^^^^^^^^^^^^^^^^^^感謝您使用本系統^^^^^^^^^^^^^^^^^^^^\n\n");break;

case *3*:servicelogin();break;

case *4*:turnoff();break;

default:printf("\t【暫時沒有這個選項!】\n");

}

}

}

/***********************************************************/

int main()

{

vip = createqueue(n);//創建vip客戶隊列

nor = createqueue(n);//創建普通股客戶隊列

hugemenu();//調用主界面 //hugemenu()函數是無限循環函數,內部有跳出循環的語句

return 0;

}

總結

以上是生活随笔為你收集整理的用c语言完成银行排号系统,【分享】C语言 银行取票排队系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。