銀行排隊系統(tǒng)_第1頁
銀行排隊系統(tǒng)_第2頁
銀行排隊系統(tǒng)_第3頁
銀行排隊系統(tǒng)_第4頁
銀行排隊系統(tǒng)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設計說明書題目:銀行排隊隊系統(tǒng)班級:*姓名:*學號:*指導教師:*一、需求分析1 問題描述在傳統(tǒng)的銀行排排隊中,物理理排隊需要人人工進行排號號、取號等,顯顯得很繁瑣,因因此這樣的傳傳統(tǒng)方式已經(jīng)經(jīng)不能滿足現(xiàn)現(xiàn)代人們的需需求。作為計計算機專業(yè)人人士,開發(fā)的的軟件銀行排隊隊系統(tǒng)能很好好地取代了這這樣繁瑣的工工作,方便了了銀行工作人人員的工作、減減輕了他們的的工作負擔;也方便了辦理業(yè)業(yè)務的顧客,他他們只需要通通過系統(tǒng)取號號、叫號等服服務,就能簡簡單實現(xiàn)辦理理業(yè)務,極大大地簡化了辦辦理流程。2 基本任務通過實際調(diào)查分分析,系統(tǒng)需需要實現(xiàn)以下下基本功能:(1)實現(xiàn)普通通用戶的取號號、叫號、辦辦理業(yè)務(

2、辦辦理窗口有44個)(2)實現(xiàn)VIIP用戶的特特殊化業(yè)務辦辦理(1個VVIP辦理窗窗口)(3)銀行管理理員對系統(tǒng)信信息的管理二、概要設計為了完成需求分分析的基本任任務,主要從從以下3個方方面進行設計計:1 主界面設計計為了簡化用戶的的操作,設計計了一個多菜菜單選項主控控菜單模塊,實實現(xiàn)了友好的的用戶界面。系系統(tǒng)主控菜單單如圖1 圖12 數(shù)據(jù)結(jié)構(gòu)設設計系統(tǒng)采用隊列的的鏈式結(jié)構(gòu)實實現(xiàn)顧客的“傳統(tǒng)物理排排隊”。其中每個個結(jié)點代表一一位排隊的用用戶,結(jié)點包包含用戶取號號、對應的服服務窗口信息息3 系統(tǒng)功能設設計(1)隊列操作作:void Innitiall(); /初始化隊隊列int Is_Empty

3、y(); /隊列是否否為空void Inn_Queuue(QNoode * &s); /入隊void Ouut_Queeue(QNNode * &t); /出隊(2)函數(shù)模塊塊:void Syystem(); /主體函數(shù)void Geet_Timme(strruct ttm * &t); /獲取時間char Geet_Chooice(cchar,char); /獲取正確的的選擇char Sttart(); /開始界面同同時返回用戶戶選擇int Is_Vip(cchar ,chaar ); /判斷是不是是vip客戶void Chheck_QQueue(); /查看排隊情情況(針對于用戶戶)voi

4、d Grrade(iint); /評分void Coommon_User(int,char ,chaar ); /普通用戶界界面void Viip_Useer(); /VIP用戶戶界面void Usser(); /用戶主界面面void Addminisstratoor(); /管理員界面面三、模塊設計1 主要模塊設設計void Innitiall(); /初始化隊隊列int Is_Emptyy(); /隊列是否否為空void Inn_Queuue(QNoode * &s); /入隊void Ouut_Queeue(QNNode * &t); /出隊void Geet_Timme(strruct

5、 ttm * &t); /獲取時間char Geet_Chooice(cchar,char); /獲取正確的的選擇int Is_Vip(cchar ,chaar ); /判斷是不是是vip客戶void Chheck_QQueue(); /查看排隊情情況(針對于用戶戶)void Grrade(iint); /評分2 系統(tǒng)子模塊塊及其功能設設計void Syystem(); /主體函數(shù)char Sttart(); /開始界面同同時返回用戶戶選擇void Coommon_User(int,char ,chaar ); /普通用戶界界面void Viip_Useer(); /VIP用戶戶界面void

6、Usser(); /用戶主界面面void Addminisstratoor(); /管理員界面面3 系統(tǒng)模塊之之間的調(diào)用如圖2: 圖2四、詳細設計1 數(shù)據(jù)結(jié)構(gòu)設設計系統(tǒng)采用隊列的的鏈式結(jié)構(gòu)進進行排隊的功功能實現(xiàn)隊列結(jié)點定義如如下:/*隊列結(jié)點*/typedeff strucct qqint n; /用戶取號號int seervicee; /對應的服服務窗口structt qq *next;/指針域QNode;/*隊列*/typedeff strucct QQNode *fronnt; /頭指針QNode *rearr; /尾指針Queue;2 系統(tǒng)主要模模塊設計void Innitiall()

7、; /初始化隊列列int Is_Emptyy(); /隊列是否為為空void Inn_Queuue(QNoode * &s); /入隊void Ouut_Queeue(QNNode * &t); /出隊void Geet_Timme(strruct ttm * &t); /獲取時間char Geet_Chooice(cchar,char); /獲取正確的的選擇int Is_Vip(cchar ,chaar ); /判斷是不是是vip客戶void Chheck_QQueue(); /查看排隊情情況(針對于用戶戶)void Grrade(iint); /評分五、調(diào)試分析1 主界面2 用戶界面 (1

8、) 用戶主界界面 (2) 排隊取號號 (3) 查看排隊隊情況 (4) 叫號情情況(4) 辦理業(yè)業(yè)務普通用戶VIP用戶3 管理員界面面 (1) 管理員界界面 (2) 查看系統(tǒng)統(tǒng)信息六、用戶使用說說明 1.進入入主界面后,根根據(jù)您的身份份選擇相應選選項(用戶、管管理員),用用戶進入用戶戶界面,管理理員進入管理理員界面。 2.用戶戶: 普通通用戶需要先先取號,然后后排隊等候,在在排隊期間、可可以根據(jù)提示示查看相應的的信息(如您您前面的排隊隊人數(shù)、叫號號情況等等),當您被叫叫號或者您前前面沒有人排排隊的時候您您就可以去辦辦理業(yè)務了 3.VIIP用戶:根據(jù)系統(tǒng)的判斷斷,如果您是是VIP用戶戶,您將無需需

9、排隊,直接接到VIP專專屬服務窗口口辦理業(yè)務4管理員:需要通過密碼驗驗證后,才能能進入到管理理員界面(管管理員默認密密碼為:1112358)七、程序源代碼碼/*-Headd.h-*/#ifndeff HEADD1_H#definee HEADD1_H/*管理員的密密碼為:1112358*/*-常量、隊列列信息定義-*/#definee MAX 40 /用于限制制字符數(shù)組大大小的常量#definee N 4 /普通服務務柜臺數(shù)/*隊列結(jié)點*/typedeff strucct qqint n; /用戶取號號int seervicee; /對應的服服務窗口structt qq *next;/指針域Q

10、Node;/*隊列*/typedeff strucct QQNode *fronnt; /頭指針QNode *rearr; /尾指針Queue;/*全局變量*/static Queuee *q; /隊列static int peeople; /總排隊人人數(shù)static int cuurrentt_peopple; /當前排隊隊人數(shù)static int coommon; /普通用戶戶人數(shù)static int viip; /VIP用用戶辦理人數(shù)數(shù)/*-隊列列操作的定義義-*/void Innitiall(); /初始化隊隊列int Is_Emptyy(); /隊列是否否為空void Inn_Que

11、uue(QNoode * &s); /入隊void Ouut_Queeue(QNNode * &t); /出隊/*-函函數(shù)模塊聲明明-*/void Syystem(); /主體函數(shù)void Geet_Timme(strruct ttm * &t); /獲取時間char Geet_Chooice(cchar,char); /獲取正確的的選擇char Sttart(); /開始界面同同時返回用戶戶選擇int Is_Vip(cchar ,chaar ); /判斷是不是是vip客戶void Chheck_QQueue(); /查看排隊情情況(針對于用戶戶)void Grrade(iint); /評分v

12、oid Coommon_User(int,char ,chaar ); /普通用戶界界面void Viip_Useer(); /VIP用戶戶界面void Usser(); /用戶主界面面void Addminisstratoor(); /管理員界面面#endif/*-函數(shù)數(shù)定義-*/#includde#includde#includde#includde#includde#includde#includdeHeaad.h/*-隊列操作-*/void Innitiall() /初始化隊隊列q=(Queeue *)mallooc(sizzeof(QQueue);q-froont = q-reear

13、 = NULL;int Is_Emptyy() /隊列是否否為空returnn(q-rrear = NULLL);void Inn_Queuue(QNoode * &s) /入隊QNode * p= q-frront;s=(QNoode *)mallooc(sizzeof(QQNode);while(p)p=p-next;peoplee+;s-n = peopple-viip; /獲取排隊隊編號if(Is_Emptyy()q-frront = q-rrear = s;elseq-reear-nnext = s;q-reear = s;s-nexxt = NNULL;commonn+;curre

14、nnt_peoople+;void Ouut_Queeue(QNNode * &t)/出隊if(Is_Emptyy()printtf(ttt暫時沒沒人排隊,因此無法提提供相應信息息_!n);returrn;t = q-fronnt;if(q-frontt = qq-reaar)q-frront = q-rrear =NULL;elseq-frront = t-nnext;currennt_peoople-;/*-主體函函數(shù)-*/void Syystem()while(1)systeem(clls);systeem(coolor 22f);char ch=Sttart();switcch(ch)

15、case 1:Userr();breaak;case 2:chaar codde7;chaar c77=1112358;intt i=0;priintf(tt輸輸入管理密碼碼:);forr(;itmm_hourr,t-ttm_minn,t-ttm_secc,t-ttm_yeaar + 11990,tt-tm_mon + 1,t-tm_wwday);printff(tt尊敬的用用戶,);if(t-tm_hoour tm_hoour 18)printtf(下午好_n);elseprinttf(晚上好_n);printff(tt請輸入您您的選擇(113):);ch=Gett_Choiice(11,3

16、);returnn ch; /返回選擇擇/*-用戶界面面-*/void Usser()char cch; /用戶的菜菜單選擇while(1)systeem(clls);systeem(coolor 33f);printtf(tt-nt 歡迎光臨中中國銀行 nnt-nnnn);printtf(ttttt1 取取號排隊nnttttt2 查看看排隊情況nttttt3 叫號號情況nttttt4 辦理理業(yè)務(VIIP可以直接接辦理業(yè)務_)nnttttt5 返回回主菜單nnnn);printtf(ttt輸入您您的選擇:);ch=Geet_Chooice(1,5);switcch(ch)case 1:FIL

17、LE *fpp;chaar carrd_nummMAX;if(fp=ffopen(vip.txt,r)=NULLL)prrintf(tttvip.ttxt文檔操操作失敗! :(nn);exxit(1);priintf(tt您您是VIP用戶嗎嗎?(Y/NN)nttVIIP用用戶的的賬號有:n);whiile(fggets(ccard_nnum,MAAX,fp)!=NULLL)innt i=00;prrintf(ttt);foor(;in);breeak;case 2:Cheeck_Quueue();/查看排隊隊情況breeak;case 3: /查看叫號號情況if(Is_Emmpty()prri

18、ntf(ttt暫時沒人排排隊,因此無法提提供相應信息息_!n);brreak;priintf(tt排排隊序號為%d的用戶可可以辦理業(yè)務務了_n,q-fronnt-n);breeak;case 4:chaar c_nnMAX; /用戶輸入的的賬號chaar cMMAX; /用戶輸入的的密碼intt is_vvip; /判斷用戶是是不是VIPPis_vip=IIs_Vipp(c_n,c);swiitch(iis_vipp)casse 0:QQNode *t;iif(Is_Emptyy()printtf(ttt暫時沒沒人排隊,因此無法提提供相應信息息_!n);breakk;pprintff(tt您的

19、排隊隊序號是%dd嗎?n(本著中華華民族的誠信信優(yōu)良傳統(tǒng),請不要插別別人的隊_)n(輸入Y代表是,輸入N或其它代表表不是):,q-ffront-n);iif(gettchar() != Y)breakk;ssystemm(pauuse);OOut_Quueue(tt);tt-serrvice = (t-n - 1)%N + 1;/獲取普通通客服柜臺CCommonn_Userr(t-sservicce,c_nn,c);ffree(tt);bbreak;casse 1:pprintff(tt您是VIP用戶,可以直接到到VIP客戶區(qū)區(qū)辦理業(yè)務!n);ssystemm(pauuse);ppeoplee

20、+;ccurrennt_peoople+;vvip+;VVip_Usser();bbreak;breeak;case 5:breaak;if(chh = 5)breaak;systeem(paause);/*-普通通用戶界面-*/void Coommon_User(int s,char cc_n,char cc)char cch;time_tt starrt=timme(NULLL);/獲取用戶到到達時間while(1)int mmoney;systeem(clls);systeem(coolor 55f);printtf(tt=尊敬敬的用戶你好好,%d號柜臺臺為您服務=nnnttttt1 取

21、錢錢nttttt2 存錢錢nttttt3 成為為VIPnnttttt4 退出出nn,s);printtf(ttt請輸入入您的選擇:);ch=Geet_Chooice(1,4);switcch(ch)case 1:prinntf(tt請輸輸入您想取出出的金額數(shù)(¥):);scannf(%dd,&mooney);Sleeep(30000);prinntf(nttt您的%d元已經(jīng)取取出,請好好保存存_nn,monney);breaak;case 2:prinntf(tt請輸輸入您想存入入的金額數(shù)(¥):);scannf(%dd,&mooney);Sleeep(30000);prinntf(nttt您

22、的%d元已經(jīng)成成功儲存到您您的賬戶上_n,moneey);breaak;case 3:FILLE *fpp;chaar ChMAX;if(fp=ffopen(vip.txt,a+)=NULLL)prrintf(ttt數(shù)據(jù)庫打開開失敗:( !n);exxit(1);whiile(fggets(CCh,MAXX,fp)!=NULLL)coontinuue;fprrintf(fp,%s %sn,c_n,c);Sleeep(30000);priintf(ntt恭喜您,成為了VIPP(以后就可可以直接到VVIP窗口辦辦理業(yè)務了_)nn);fcllose(ffp);breeak;case 4:breaak

23、;if(chh = 4)timee_t ennd; /用戶離開開時間Gradde(s); /評分end=time(NULL); /獲取用戶戶離開時間prinntf(您總共用時時%.0f秒n,diifftimme(endd,starrt);breaak;systeem(paause);/*-VIIP用戶界面面-*/void Viip_Useer()char cch;int mooney;time_tt starrt=timme(NULLL);/VIP用戶戶到達時間while(1)systeem(clls);systeem(coolor 44f);printtf(ttt=尊敬的VIPP用戶您好:)

24、=nnn請問有有什么可以能能幫助您的呢呢?n(以下下是業(yè)務菜單單_)nttttt1 取錢錢nttttt2 存錢錢nttttt3 退出出ntt輸入您想想辦理的業(yè)務務所對應的編編號:);ch=Geet_Chooice(1,3);switcch(ch)case 1:prinntf(tt請輸輸入您想取出出的金額數(shù)(¥):);scannf(%dd,&mooney);Sleeep(30000);prinntf(nttt您的%d元已經(jīng)取取出,請好好保存存_nn,monney);breaak;case 2:prinntf(tt請輸輸入您想存入入的金額數(shù)(¥):);scannf(%dd,&mooney);Sle

25、eep(30000);prinntf(nttt您的%d元已經(jīng)成成功儲存到您您的賬戶上_n,moneey);breaak;case 3:FILLE *fpp;douuble aavr=0;intt scorre,s,ii=0;if(fp=ffopen(win_vip.ttxt,a+)=NULLL)prrintf(tttwin_vvip.txxt操作失敗敗! :(n);exxit(1);priintf(tt請請您為本次的的服務評分(_):ntt1分分很不滿意ntt2分分不滿意nntt3分分一般滿意ntt4分分比較滿意ntt5分分很滿意nnntt);scaanf(%d,&sscore);whiile

26、(fsscanf(fp,%d,&ss)!=EOOF)i+;avvr+=1.0 * ss;fprrintf(fp,%dn,scoree);avrr+=scoore*1.0;priintf(tt本本客戶獲得的的平均得分為為:%.1ffntt非常常感謝您的配配合_n,avvr/(i+1);breeak;if(chh = 3)timee_t ennd=timme(NULLL);/用戶離開時時間prinntf(您總共用時時%.0f秒n,diifftimme(endd,starrt);currrent_ppeoplee-;breaak;systeem(paause);/*-管理理員界面-*/void Ad

27、dminisstratoor()char cch;structt tm *t;while(1)systeem(clls);systeem(coolor 88f);Get_TTime(tt);printtf(ttt-管理員界面面-ntt當前時間間:%-2dd:%-2dd:%-2ddntt %-4d/%-2d/%-2dnnnn,t-ttm_houur,t-tm_miin,t-ttm_secc,t-ttm_yeaar+19990,t-tm_moon+1,tt-tm_wday);printtf(tttt11 查看系統(tǒng)統(tǒng)信息nttt2 返回主菜單單ntt輸入您的的選擇:);ch=Geet_Chooice

28、(1,2);switcch(ch)case 1:if(!peoplle)priintf(tt今今天還沒有辦辦理業(yè)務的用用戶_n);elseeif(!commmon | q-ffront=NULLL)prrintf(ttt今日總共有有%d位用戶辦辦理業(yè)務,其中有%d位普通用用戶、%d位VIP用戶ntt當前前無用戶排隊隊,沒有正在辦辦理業(yè)務的用用戶n,peeople,commoon,vipp);elsseprrintf(ttt今日總共有有%d位用戶辦辦理業(yè)務,其中有%d位普通用用戶、%d位VIP用戶ntt當前前共有%d位用戶正正在排隊,正在辦理業(yè)業(yè)務的用戶序序號為:%ddn,ppeoplee,co

29、mmmon,viip,currrent_peoplle,q-frontt-n);breaak;case 2:breaak;if(chh = 2)breaak;systeem(paause);/*-獲取取當前時間-*/void Geet_Timme(strruct ttm * &t)time_tt timeer;timer=time(NULL);t=locaaltimee(&timmer);/*-獲取正確確的選擇-*/char Geet_Chooice(cchar ss,charr e)char cch;fflushh(stdiin); /清空輸入入緩沖區(qū)while(ch=geetcharr()

30、fflussh(stddin); /清空輸入入緩沖區(qū)if(chh=s & ch=e)breaak;printtf(ttt輸入錯錯誤,重新輸入(%c%c):,s,e);returnn ch;/*-判斷是不不是VIP-*/int Is_Vip(cchar ccard_nnumberr,chhar coode)FILE *fp; /文件指針char cc_nMAAX; /校驗卡號char ccMAX; /校驗密碼int i; /循環(huán)變量if(fpp=fopeen(viip.txtt,a+)=NULLL)printtf(tttvipp.txt文文件不存在!n);exit(1);printff(tt輸入

31、您的的卡號(6位):);for(i=0;i66;i+)card_numbeeri=getchh();printtf(%cc,carrd_nummberii);card_nnumberri=0;Sleep(1000);printff(ntt密碼碼(6位):);for(i=0;ifronnt;int coount=00;if(Is_Emptyy()printtf(ttt沒有用用戶排隊,請先取號吧吧_nn);returrn;printff(tt請輸入您您的排隊編號號:);scanf(%d,&n);while(p & (p-nn != nn)countt+;p=p-next;if(p)if(cooun

32、t)prinntf(tt您前前面還有%dd位用戶,請耐心等待待_nn,couunt);elseprinntf(tt您前前面沒有用戶戶了,你可以辦理理業(yè)務了_n);elseprinttf(ttt不存在在此編號,也許您輸入入有誤、或者者您還沒有取取號_n);/*-評評分-*/void Grrade(iint seervicee)FILE *fp;doublee avr=0; /平均評分分int sccore; /評分數(shù)int i=0,s;printff(tt請您為本本次的服務評評分(_):nttt1分很不滿滿意nttt2分不滿意意nttt3分一般滿滿意nttt4分比較滿滿意nttt5分很滿意意nn

33、tt);scanf(%d,&scoree);switchh(servvice)case 11:if(fp=foopen(win1.txt,a+)=NULLL)priintf(ttwwin1.ttxt文檔操操作失敗:(n);exiit(1);whille(fsccanf(ffp,%dd,&s)!=EOFF)avrr+=s*11.0;i+;conntinuee;fpriintf(ffp,%ddn,sscore);avr+=scorre;prinntf(tt本窗窗口的平均評評分為:%.1fnttt非常感感謝您的評分分(_)nn,avr/(i+1);breaak;case 22:if(fp=foopen(win2.txt,a+)=NULLL)priintf(ttwwin2.ttxt文檔操操作失敗:(n);exiit(1);whille(fsccanf(ffp,%dd,&s)!=EOFF)avrr+=s*11.0;i+;conntinuee;fpriintf(ffp,%ddn,sscore);avr+=scorre;prinntf(tt本窗

溫馨提示

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

最新文檔

評論

0/150

提交評論