數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(銀行排隊(duì)系統(tǒng))(共13頁)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(銀行排隊(duì)系統(tǒng))(共13頁)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(銀行排隊(duì)系統(tǒng))(共13頁)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(銀行排隊(duì)系統(tǒng))(共13頁)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(銀行排隊(duì)系統(tǒng))(共13頁)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、(貴州大學(xué)計(jì)算機(jī)科學(xué)與信息學(xué)院貢獻(xiàn))#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <conio.h>#include <time.h>#define n 3int vip1=0;int y,z;float sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;float i1=0,i2=0,i3=0,i4=0,i5=0;float ave1=0,ave2=0,ave3=0,ave4=0,ave5=0;struct List int An

2、+1; /顧客用來辦理業(yè)務(wù)的N個(gè)窗口 int len; /表示數(shù)組中的元素個(gè)數(shù)L;struct Lnode /鏈表結(jié)點(diǎn)類型 int data; Lnode *next;struct Linkqueue /鏈?zhǔn)酱鎯?chǔ)的等候隊(duì)列的類型定義 Lnode *front; Lnode *rear;Q;void Initshuzu() /初始化線性的算法 for(int i=1;i<=n;i+) L.Ai=0; /元素值為0,表示編號(hào)為I的窗口當(dāng)前狀態(tài)為空 L.len=0; void Initqueue() /初始化隊(duì)列的算法 Q.front=Q.rear=(Lnode *)malloc(sizeof

3、(Lnode); Q.front->next=NULL;void Enqueue(Linkqueue *Q,int elem) /進(jìn)隊(duì)算法 Lnode *s; s=(Lnode *)malloc(sizeof(Lnode); s->data=elem; s->next=NULL; Q->rear->next=s; Q->rear=s;int Dlqueue(Linkqueue *Q) /出隊(duì)算法 Lnode *t; int x; if(Q->front=Q->rear) printf("隊(duì)列為空!n"); exit(1); e

4、lse t=Q->front->next; Q->front->next=t->next; x=t->data; free(t); return x; void printl() /輸出數(shù)組算法 int i; printf("正在辦理業(yè)務(wù)的顧客編號(hào)為: 一號(hào)柜臺(tái) 二號(hào)柜臺(tái) 三號(hào)柜臺(tái)n");printf(" "); for( i=1;i<=L.len;i+)printf("%d號(hào)客戶 ",L.Ai); printf("n"); void print2() /輸出隊(duì)列算法 in

5、t i=0; printf("正在等候辦理業(yè)務(wù)的顧客編號(hào)為:"); Lnode *s=Q.front->next; while(s!=NULL)printf("%d ",s->data); s=s->next; i+;printf("n您的前面一共有%d人在排隊(duì),請(qǐng)您稍候!",i);printf("n");void daoda(int x) /解決顧客到達(dá)事件算法 int i=L.len+1;if (L.len<n) /L.Ai=x;i+;L.len+; else Enqueue(&

6、Q,x);void likai(int x) /解決顧客離開事件算法 int i=0;doif(x>L.len)printf("輸入有誤!n請(qǐng)重新輸入:");scanf("%d",&x);else for(i=0;i<=L.len;i+) if(i=x) printf("尊敬的%d號(hào)顧客您好!n",x); L.Ai=0; L.len-; if(Q.front!=Q.rear) int y=Dlqueue(&Q);L.Ai=y; L.len+; while(i=0);int guitai( ) /判斷輸入的柜

7、臺(tái)號(hào)是否正確int y=0; printf("請(qǐng)輸入你所辦理業(yè)務(wù)的柜臺(tái)號(hào)(1-3):n");scanf("%d",&y);if(y<1|y>5)printf("你輸入的柜臺(tái)號(hào)有誤,請(qǐng)重新輸入!n"); printf("請(qǐng)輸入你所辦理業(yè)務(wù)的柜臺(tái)號(hào)(1-3):n"); scanf("%d",&y);elseprintf(" 你所辦理業(yè)務(wù)的柜臺(tái)為%d.n",y);return y; int pingfeng( ) /判斷輸入的分?jǐn)?shù)是否正確int y=0;

8、 printf("請(qǐng)輸入你評(píng)分(1-5):n 1分非常不滿意;n 2分比較不滿意;n 3分一般滿意;n 4分比較滿意;n 5分非常滿意。n");printf("請(qǐng)輸入:");scanf("%d",&y);if(y<1|y>5)printf("你輸入評(píng)分有誤,請(qǐng)重新輸入!n"); printf("請(qǐng)輸入你的評(píng)分(1-5):n"); scanf("%d",&y);else printf(" 你的評(píng)分為%d.n",y);return

9、y; void mygrade() /主評(píng)分函數(shù) printf("為了改善服務(wù)質(zhì)量,請(qǐng)你對(duì)我們的服務(wù)進(jìn)行評(píng)價(jià)。謝謝!n");z=guitai( );y=pingfeng( ); switch (z) /柜臺(tái)評(píng)分處理 case 1: /1號(hào)柜臺(tái)評(píng)分處理 sum1+=y;i1+;ave1=sum1/i1; printf(" %d號(hào)柜臺(tái)的平均滿意度為%0.2f。感謝你的評(píng)分,謝謝!n",z,ave1);break;case 2: /2號(hào)柜臺(tái)評(píng)分處理 sum2+=y;i2+;ave2=sum2/i2; printf(" %d號(hào)柜臺(tái)的平均滿意度為%0.2

10、f。感謝你的評(píng)分,謝謝!n",z,ave2);break; case 3: /3號(hào)柜臺(tái)評(píng)分處理 sum3+=y;i3+;ave3=sum3/i3; printf(" %d號(hào)柜臺(tái)的平均滿意度為%0.2f。感謝你的評(píng)分,謝謝!n",z,ave3);break;default : printf("你的輸入有誤,請(qǐng)重新輸入!n"); getch();void vip(int x) /vip用戶認(rèn)證 int i,a; a=x; char ch3; int k=0; switch(a) case 1: printf("請(qǐng)輸入你的卡號(hào):"

11、); scanf("%d",&i); printf("請(qǐng)您輸入五位密碼:"); while(chk-1!=' ') chk=getch(); k+; printf("*"); if(i=100&&ch0='1'&&ch1='1'&&ch2='1'&&ch3='1') printf("n尊敬的VIP用戶您好,請(qǐng)您直接到VIP區(qū)辦理業(yè)務(wù)!n"); vip1+; else

12、 if(i=200&&ch0='2'&&ch1='2'&&ch2='2'&&ch3='2') printf("n尊敬的VIP用戶您好,請(qǐng)您直接到VIP區(qū)辦理業(yè)務(wù)!n"); vip1+; else if(i=300&&ch0='3'&&ch1='3'&&ch2='3'&&ch3='3') printf("n尊敬的V

13、IP用戶您好,請(qǐng)您直接到VIP區(qū)辦理業(yè)務(wù)!n"); vip1+; else if(i=400&&ch0='4'&&ch1='4'&&ch2='4'&&ch3='4') printf("n尊敬的VIP用戶您好,請(qǐng)您直接到VIP區(qū)辦理業(yè)務(wù)!n"); vip1+; else if(i=500&&ch0='5'&&ch1='5'&&ch2='5'&am

14、p;&ch3='5') printf("n尊敬的VIP用戶您好,請(qǐng)您直接到VIP區(qū)辦理業(yè)務(wù)!n"); vip1+; else printf("n你的輸入有誤!n"); break; default : break; void time() /時(shí)間函數(shù) time_t timep; time (&timep); printf(" 現(xiàn)在時(shí)刻:%s",ctime(&timep);void main() /主函數(shù)system("color 1f"); /屏幕顏色設(shè)定 system(&q

15、uot;mode con: cols=90 lines=35"); time_t a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,end; double b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b7=0,b8=0,b9=0,b10=0,allsum=0,average=0,xi=0;double A10=0,0,0,0,0,0,0,0,0,0; int c,x,v=0,w=0; Initshuzu(); Initqueue(); double sum=0; while(1) printf("n*歡迎光臨中國銀行*n"); prin

16、tf("n n"); printf(" 1 顧客到達(dá)n"); printf(" 2 顧客離開n"); printf(" 3 查看業(yè)務(wù)辦理n"); printf(" 4 查看排隊(duì)情況n"); printf(" 5 系統(tǒng)查詢n"); printf(" 6 退出nn"); time(); printf("n 提示:請(qǐng)按回車鍵進(jìn)行下一步操作n"); printf("n n"); printf("*歡迎光臨中國銀行*

17、n"); printf("請(qǐng)輸入:"); scanf("%d",&c); switch(c) case 1: system("cls"); printf("n*顧客到達(dá)界面*nn"); int k=0; int a; printf("請(qǐng)選擇你的用戶類型:VIP用戶請(qǐng)按 1;n 普通卡用戶請(qǐng)按 2.n"); printf("請(qǐng)輸入:"); scanf("%d",&a); if (a=1) vip(a); getch(); else

18、v+; /普通卡顧客計(jì)數(shù) printf("尊敬的普通卡用戶,你的業(yè)務(wù)號(hào)為%d.n",v); daoda(v); if(v=1) a1=time(NULL); /v=1的客戶到達(dá)時(shí)間 system("pause"); else if(v=2) a2=time(NULL); system("pause"); else if(v=3) a3=time(NULL); system("pause"); else if(v=4) a4=time(NULL); system("pause"); else if

19、(v=5) a5=time(NULL); system("pause"); else if(v=6) a6=time(NULL); system("pause"); else if(v=7) a7=time(NULL); system("pause"); else if(v=8) a8=time(NULL); system("pause"); else if(v=9) a9=time(NULL); system("pause"); else if(v=10) a10=time(NULL); sy

20、stem("pause"); else printf("請(qǐng)稍候拿號(hào),謝謝!"); system("pause"); system("cls"); break; case 2: system("cls"); printf("n*顧客離開界面*nn"); printf("請(qǐng)輸入離開顧客得編號(hào):n"); scanf("%d",&x); likai(x); mygrade() ; w+; if(x=1) end=time(NULL);

21、A0=difftime(end,a1); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a1); else if(x=2) end=time(NULL); A1=difftime(end,a2); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a2); else if(x=3) end=time(NULL); A2=difftime(end,a3); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a3); el

22、se if(x=4) end=time(NULL); A3=difftime(end,a4); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a4); else if(x=5) end=time(NULL); A4=difftime(end,a5); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a5); else if(x=6) end=time(NULL); A5=difftime(end,a6); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n

23、",difftime(end,a6); else if(x=7) end=time(NULL); A6=difftime(end,a7); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a7); else if(x=8) end=time(NULL); A7=difftime(end,a8); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a8); else if(x=9) end=time(NULL); A8=difftime(end,a9); printf(

24、" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a9); else if(x=10) end=time(NULL); A9=difftime(end,a10); printf(" 您辦理業(yè)務(wù)所用時(shí)間為 %0.2f 秒.n",difftime(end,a10); allsum+=A0; getch(); system("cls"); break; case 3: system("cls"); printf("n*業(yè)務(wù)查詢界面*nn"); printl(); getch(); system("cls"); break; case 4: system("cls"); print

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論