數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空訂票系統(tǒng)及咖啡店創(chuàng)業(yè)計(jì)劃書_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空訂票系統(tǒng)及咖啡店創(chuàng)業(yè)計(jì)劃書_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空訂票系統(tǒng)及咖啡店創(chuàng)業(yè)計(jì)劃書_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空訂票系統(tǒng)及咖啡店創(chuàng)業(yè)計(jì)劃書_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-航空訂票系統(tǒng)及咖啡店創(chuàng)業(yè)計(jì)劃書_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告————航空訂票系統(tǒng)20/23數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報告設(shè)計(jì)題目:航空客運(yùn)訂票系統(tǒng)院系計(jì)算機(jī)學(xué)院年級xxxxx學(xué)生學(xué)號xxxxxxxxxxx指導(dǎo)教師xxxxxxxxxxx起止時間目錄一、課程設(shè)計(jì)目的3二、需求分析3三、概要設(shè)計(jì)1.設(shè)計(jì)步驟42.系統(tǒng)整體結(jié)構(gòu)圖53.功能模塊及調(diào)用關(guān)系說明5四、詳細(xì)設(shè)計(jì)和源代碼1.實(shí)現(xiàn)概要設(shè)計(jì)中定義數(shù)據(jù)的存儲結(jié)構(gòu)62.查詢航線信息功能的算法設(shè)計(jì)73.訂票功能的算法設(shè)計(jì)94.退票功能的算法設(shè)計(jì)125.錄入功能的算法設(shè)計(jì)146.總航線預(yù)覽功能的程序源代碼15五、調(diào)試分析1.各功能的具體實(shí)例分析162.實(shí)驗(yàn)過程中出現(xiàn)的問題及解決方法20六、課程設(shè)計(jì)總結(jié)20七、參考資料21一、課程設(shè)計(jì)目的(1)熟練使用C語言編寫程序,解決實(shí)際問題;(2)了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;(3)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測試等基本方法和技能;(4)提高綜合運(yùn)用所學(xué)的理論知識和方法獨(dú)立分析和解決問題的能力;航空訂票系統(tǒng):(1)熟練掌握鏈表存儲結(jié)構(gòu)及其建立過程和常用操作;(2)熟練掌握隊(duì)列的建立過程和常用操作;學(xué)會自己調(diào)試程序的方法并掌握一定的技巧。二、需求分析問題描述:航空客運(yùn)訂票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)訂和辦理退票等。試設(shè)計(jì)一個航空客運(yùn)訂票系統(tǒng),以使上述業(yè)務(wù)可以借助計(jì)算機(jī)來完成。設(shè)計(jì)任務(wù):通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達(dá)城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;根據(jù)旅客提出的終點(diǎn)站名輸出下列信息:航班號、飛機(jī)號、星期幾飛行,最近一天航班的日期和余票額;訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)根據(jù)客戶提出的要求(日期、航班號、訂票數(shù)額)查詢該航班票額情況,若尚有余額,則為客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票額少于訂票額,則需要重新詢問客戶要求。若需要,可預(yù)約登記排隊(duì)等候。如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;退票:根據(jù)客戶提供的情況(日期、航班、退票數(shù)額),為客戶辦理退票手續(xù),然后查詢該航班是否有人預(yù)約登記,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其他排隊(duì)預(yù)約的客戶……退票成功后修改相關(guān)數(shù)據(jù)文件??蛻糍Y料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件要求:根據(jù)以上功能說明,設(shè)計(jì)航班信息,訂票信息的存儲結(jié)構(gòu),設(shè)計(jì)程序完成功能。測試數(shù)據(jù):由學(xué)生任意指定,但報告上要求寫出多批數(shù)據(jù)測試結(jié)果。實(shí)現(xiàn)提示:每條航線應(yīng)包含的信息有:終點(diǎn)站名、航班號、飛機(jī)號、飛行日期(星期幾)、乘員定額、余票額、已訂票的客戶名單(包括姓名、訂票額、座位號)和預(yù)約登記的客戶名單(包括日期、姓名、所需票額)。這最后兩項(xiàng)顯然是一個線性表和一個隊(duì)列。為查找方便、已訂票客戶的線性表應(yīng)按客戶姓名有序,并且,為插入和刪除方便,應(yīng)以鏈表作存儲結(jié)構(gòu)。由于預(yù)約人數(shù)無法預(yù)料,隊(duì)列也應(yīng)以鏈表作存儲結(jié)構(gòu)。整個系統(tǒng)需匯總各條航線的情況登錄在一張線性表上,由于航線基本不變,可采用順序存儲結(jié)構(gòu),并按航班有序或按終點(diǎn)站名有序。每條航線是這張表上的一個記錄,包含上述八個域,其中乘員名單域?yàn)橹赶虺藛T名單鏈表的頭指針,預(yù)約登記客戶名單域?yàn)榉謩e指向隊(duì)頭和隊(duì)尾的指針。選做內(nèi)容:當(dāng)客戶訂票要求不能滿足時,系統(tǒng)可向客戶提供到達(dá)同一目的地的其它航線情況。三、概要設(shè)計(jì)1.設(shè)計(jì)步驟1)分析問題,給出數(shù)學(xué)模型,設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。提示:(1)己訂票的客戶名單可以用線性表來實(shí)現(xiàn)。為查找方便,線性表應(yīng)按照客戶姓名有序,并且為了插入和刪除的方便,應(yīng)以鏈表作為存儲結(jié)構(gòu)。(2)等候替補(bǔ)的客戶名單可以用隊(duì)列來實(shí)現(xiàn)。由于預(yù)約人數(shù)無法預(yù)計(jì),所以隊(duì)列也應(yīng)以鏈表作為存儲結(jié)構(gòu)。(3)需將輸入的航班情況登錄到一張線性表上(用順序存儲結(jié)構(gòu)或鏈表存儲結(jié)構(gòu))。為了查詢的方便,可以將航班情況按照航班有序或按照終點(diǎn)站名有序建立線性表。每條航線是這張線性表的一個記錄,包含上述8個域,其中已訂票的客戶名單域是指向己訂票的客戶名單鏈表的頭指針,等候替補(bǔ)的客戶名單域是指向隊(duì)頭和隊(duì)尾的指針。2)算法設(shè)計(jì)在已經(jīng)選擇好數(shù)據(jù)結(jié)構(gòu)的前提下,為解決問題設(shè)計(jì)算法。(1)確定所需模塊對于稍復(fù)雜的程序設(shè)計(jì),要充分利用模塊化程序設(shè)計(jì)方法,自頂向下,逐步細(xì)化,在整體思路確定的情況下,考慮所需模塊數(shù),各模塊完成功能以及模塊之間的數(shù)據(jù)聯(lián)系和調(diào)用關(guān)系。(2)各子模塊功能描述給出主要模塊的算法描述,用流程圖或偽代碼表示。(3)模塊之間的調(diào)用關(guān)系3)源程序清單為了提高工作效率,充分利用上機(jī)調(diào)試程序的時間,要求學(xué)生在上機(jī)之前給出源程序清單。4)用測試數(shù)據(jù)去驗(yàn)證算法及程序的正確性5)算法分析經(jīng)過上機(jī)調(diào)試,源程序運(yùn)行正確,并且實(shí)現(xiàn)算法要求的功能,解決課程設(shè)計(jì)題目中給出的問題后,分析算法的時間復(fù)雜度和空間復(fù)雜度。2.系統(tǒng)整體結(jié)構(gòu)圖(功能模塊圖)主菜單menu()1.總航線信息預(yù)覽display()2.查詢單條航線信息Search()3.辦理訂票業(yè)務(wù)Book()4.辦理退票業(yè)務(wù)tuipiao()5.錄入航班信息CreatPlane0.退出系統(tǒng)圖1.系統(tǒng)整體結(jié)構(gòu)圖3.功能模塊及調(diào)用關(guān)系說明(1)總航線信息預(yù)覽:通過調(diào)用display()預(yù)覽已經(jīng)建立的全部航線的相關(guān)信息(航班號、飛機(jī)號、終點(diǎn)站、飛行日期、定額、余票數(shù)、排隊(duì)等候人數(shù)),預(yù)覽完返回主菜單。(2)查詢單條航線信息:根據(jù)乘客提出的終點(diǎn)站名或航班號調(diào)用Search()函數(shù)來查詢并輸出此條航線的相關(guān)信息(航班號、飛機(jī)號、終點(diǎn)站、飛行日期、定額、余票數(shù)、已訂票乘客名單、排隊(duì)等候乘客名單)。并且查詢完后詢問乘客是否訂票,是就調(diào)用訂票Book()函數(shù)來為乘客進(jìn)行訂票,否就返回主菜單。(3)辦理訂票業(yè)務(wù):客戶先輸入的終點(diǎn)站名、訂票數(shù)、姓名信息再來調(diào)用訂票Book()函數(shù),Book()函數(shù)根據(jù)客戶提供的終點(diǎn)站名查詢到該航線信息,若客戶訂票額末超過余票量,訂票成功并登記信息,在訂票乘員名單鏈表中添加乘客的信息;如果暫時余票數(shù)不足是,詢問客戶是否要排隊(duì)等侯,如果是,則在排隊(duì)等候的隊(duì)列中增加該乘客的訂票信息。(4)辦理退票業(yè)務(wù):調(diào)用tuipiao()查詢函數(shù),根據(jù)客戶提供的航線進(jìn)行搜索根據(jù)客戶提供的姓名到訂票客戶名單域進(jìn)行查詢。退票成功后,重新將航線名單域指向訂票單鏈表的頭指針。根據(jù)隊(duì)列中從出的客戶信息判斷是否滿足要求,如果滿足,則將該客戶的信息插入到乘客信息鏈表中。(5)錄入航班信息:調(diào)用CreatPlane()函數(shù),根據(jù)輸入的航班的相關(guān)的信息(航班號、飛機(jī)號、終點(diǎn)站、飛行日期、定額、余票數(shù)),將此航班加入到原來的航班組中。(6)退出系統(tǒng)四、詳細(xì)設(shè)計(jì)和源代碼1.實(shí)現(xiàn)概要設(shè)計(jì)中定義數(shù)據(jù)的存儲結(jié)構(gòu)(1)已訂票乘客信息(單鏈表)typedefstructCust //已訂票乘客信息{ charName[15]; //乘客姓名charnumber[10]; //乘客所乘飛機(jī)航班號charend[15]; //乘客終點(diǎn)站(2)排隊(duì)等候的乘客信息typedefstructwaitNode //排隊(duì)等候客戶信息{charname[15]; //乘客姓名 intticket; //乘客的訂票數(shù) structwaitNode*next;}waitNode,*waitlink;typedefstruct{ waitlinkfront; waitlinkrear;}waitQueue;(3)航班信息typedefstructPlane //航班信息{ charnumber[10]; //航班號 intplanenum; //飛機(jī)號 charend[15]; //終點(diǎn)站 chardate[10]; //飛行日期 intdinge; //成員定額inttick; //剩余票數(shù) intk; //排隊(duì)等候的人數(shù) Customer*first; //鏈接已訂票客戶 waitQueueQ; //鏈接候補(bǔ)客戶}PlaneLink;2.查詢單條航線信息功能的算法設(shè)計(jì)(Search()函數(shù)功能實(shí)現(xiàn)的源代碼)intSearch(PlaneLink*p,intN){inti=0,Q; cout<<"===========================================\n";cout<<"1.按終點(diǎn)站名查詢\n"; cout<<"2.按航班號查詢\n"; cout<<"___________________________________________\n"; cout<<">>>>>>\n"; cout<<"請選擇查詢方式(1/2):";cin>>Q; if(Q==1) { charend[10]; cout<<"請您輸入要查詢的航班的終點(diǎn)站名:";//按站點(diǎn)名查詢航班信息 cin>>end;while(i<N) { if(strcmp(p[i].end,end)==0)//先查看是否存在到該站點(diǎn)的航班 { cout<<"\n*****************您所查詢的航班信息如下******************\n"; cout<<"_________________________________________________________\n"; cout<<"航班號飛機(jī)號終點(diǎn)站飛行日期余票數(shù)\n"; cout<<""<<p[i].number<<setw(7)<<p[i].planenum<<setw(12)<<p[i].end<<setw(10)<<p[i].date<<setw(10)<<p[i].tick<<endl; cout<<"\n=========================================================\n"; break; } i++; } } elseif(Q==2) { charnum[10];cout<<"請您輸入要查詢的航班的航班號:";//按站點(diǎn)名查詢航班信息 cin>>num;while(i<N) { if(strcmp(p[i].number,num)==0)//查看是否存在該航班號的航班 { cout<<"\n*****************您所查詢的航班信息如下:****************\n"; cout<<"_________________________________________________________\n"; cout<<"航班號終點(diǎn)飛行日期余票數(shù)\n"; cout<<""<<p[i].number<<setw(12)<<p[i].end<<setw(12)<<p[i].date<<setw(12)<<p[i].tick<<endl; cout<<"\n=========================================================\n"; break; } i++; } } display_s(p,i,N);//調(diào)用display_s()函數(shù)輸出該航班的已訂票乘客和排隊(duì)等候乘客的名單信息 if(i<N)//如果存在該航班,詢問客戶是否要預(yù)定該航班的機(jī)票 { intj; cout<<"是否需要預(yù)定該航班的票(1/0):";cin>>j; if(j==1) { charname[10];intticket; cout<<"請輸入訂票數(shù)目、姓名:"; cin>>ticket>>name; Book(p,p[i].end,ticket,name,N); } } else{cout<<"很抱歉,沒有您查詢的航班信息!\n";}return0;}3.訂票功能的算法設(shè)計(jì)(Book()函數(shù)功能實(shí)現(xiàn)源代碼)intBook(PlaneLink*p,charend[],intticket,charname[],intN){ inti; for(i=0;i<N;i++) { if(strcmp(p[i].end,end)==0)//先找出是否存在要訂票的航班 {if(p[i].tick>=ticket)//查看余票數(shù)是否>=訂票客戶訂票數(shù) { p[i].tick-=ticket; Customer*t=(Customer*)malloc(sizeof(Customer)); t->ticket=ticket; strcpy(t->Name,name); strcpy(t->number,p[i].number); strcpy(t->end,p[i].end); t->next=p[i].first;p[i].first=t;//此使用的是頭插法將訂票乘客的信息放入到鏈表中/ cout<<"您訂票成功!\n"; cout<<"您的航班信息如下:\n"; cout<<"__________________________________________________\n"; cout<<"航班號飛機(jī)號終點(diǎn)站飛行日期定額\n"; cout<<"__________________________________________________\n"; cout<<""<<setw(9)<<p[i].number<<setw(6)<<p[i].planenum<<setw(12)<<p[i].end<<setw(12)<<p[i].date<<setw(10)<<p[i].dinge<<endl; cout<<"==================================================\n\n"; break; } elseif(p[i].dinge<ticket)//訂票數(shù)超出航班的定額時,不能訂票,也不能無法排隊(duì)等候了 {cout<<"您預(yù)訂的票數(shù)超過了航班定額,無法為您訂票!\n";break;} else//余票數(shù)不足時,詢問乘客是否排隊(duì)等候 { charz; cout<<"該航班剩余票數(shù)為:"<<p[i].tick<<endl; cout<<"很抱歉,剩余的票數(shù)不夠!\n";cout<<"您是否需要排隊(duì)等候(Y(y)/N(n)):";cin>>z; if(z=='Y'||z=='y'){ Queue(p,end,ticket,name,N,i);}//調(diào)用入隊(duì)列函數(shù),將乘客信息插入排隊(duì)等候的人后面 break; } } } if(i>=N){cout<<"很抱歉,沒有您所需要的航班!\n";} return0;}intdisplay_s(PlaneLink*p,inti,intN)//輸出已定票及排隊(duì)乘客的名單信息{ if(p[i].first!=NULL)//p[i].first!=NULL說明已訂票鏈表不為空,輸出已訂票乘客的名單信息 { cout<<"****該航班的已訂票乘客名單如下:****\n"; cout<<"____________________________________\n"; cout<<"姓名訂票量\n"; Customer*t=p[i].first; while(t) { cout<<setw(10)<<t->Name<<""<<setw(7)<<t->ticket<<endl; t=t->next; } } if(i<N&&p[i].Q.front!=NULL)//p[i].Q.front!=NULL,輸出正在排隊(duì)等候乘客的名單信息 { cout<<"****該航班等候訂票的乘客名單如下:****\n"; cout<<"姓名訂票量\n"; waitlinkS=p[i].Q.front; while(S!=NULL) { cout<<setw(10)<<S->name<<""<<setw(7)<<S->ticket<<endl; S=S->next;} cout<<"=====================================\n"; } return0;}附:入隊(duì)函數(shù)Queue()的源代碼intQueue(PlaneLink*p,charend[],intticket,charname[],intN,inti)//入隊(duì)函數(shù),將等候排隊(duì)的乘客放入原來的隊(duì)列中{ system("cls"); system("color2e"); waitlinkq=(waitlink)malloc(sizeof(waitNode));//將要的入隊(duì)的結(jié)點(diǎn),存儲將要入隊(duì)乘客的信息 strcpy(q->name,name); q->ticket=ticket; q->next=NULL; if(p[i].Q.front==NULL) { p[i].Q.front=p[i].Q.rear=q; p[i].k++;//p[i].k用來記錄排隊(duì)人數(shù) } else { p[i].Q.rear->next=q; p[i].Q.rear=q;p[i].k++; } cout<<"已為您登記,請耐心等候!\n"; return0; }4.退票功能的算法設(shè)計(jì)(tuipiao()函數(shù)實(shí)現(xiàn)的源代碼)inttuipiao(PlaneLink*p,intN){inti;Customer*R,*S; charnumber[10],Name[15]; cout<<">>>>>>\n"; cout<<"請輸入您的航班號與姓名:"; cin>>number>>Name; for(i=0;i<N;i++) { if(strcmp(p[i].number,number)==0&&p[i].first!=NULL) { if(strcmp(p[i].first->Name,Name)==0) { p[i].tick=p[i].tick+p[i].first->ticket; p[i].first=p[i].first->next; cout<<"您已成功退票!\n\n"; } else {R=p[i].first;S=p[i].first->next; while(S!=NULL) { if(strcmp(S->Name,Name)==0) { p[i].tick=p[i].tick+S->ticket; R->next=S->next; cout<<"您已經(jīng)成功退票!\n\n";break; } R=R->next;S=S->next; } if(S==NULL)cout<<"很抱歉,在該航班上沒有找到您的姓名,請核實(shí)信息!\n\n"; } if(p[i].Q.front!=NULL) { waitlinkQ=p[i].Q.front,q; while(Q!=NULL) { if(p[i].tick>=Q->ticket) { if(Q==p[i].Q.front) { cout<<"正在為等候的乘客"<<Q->name<<"辦理訂票!\n"; Book(p,p[i].end,Q->ticket,Q->name,N); if(p[i].Q.front==p[i].Q.rear) { p[i].Q.front=p[i].Q.rear=NULL; Q=Q->next; } else {p[i].Q.front=p[i].Q.front->next; Q=Q->next; } } else { cout<<"正在為等候的乘客"<<Q->name<<"辦理訂票!\n"; Book(p,p[i].end,Q->ticket,Q->name,N); q->next=Q->next;Q=Q->next; } } else{ q=Q;Q=Q->next;} } } break; } if(strcmp(p[i].number,number)==0&&p[i].first==NULL) { cout<<"很抱歉,該航班目前沒有已訂票的乘客,無法為你退票,請核實(shí)信息!\n\n";break; } } if(i>=N)cout<<"很抱歉,沒有該航班信息,無法為你退票,請核實(shí)信息!\n\n"; return0;}5.錄入功能的算法設(shè)計(jì)(CreatPlane()函數(shù)的源代碼)voidCreatPlane(PlaneLink*p,intn,intN){ inti,j; for(i=N;i<N+n;i++) { p[i].first=NULL;//帶頭結(jié)點(diǎn)的單鏈表為空時的條件 p[i].Q.front=p[i].Q.rear=NULL;//隊(duì)列為空時的條件 cout<<">>>>>>\n";cout<<"請輸入航班號:";cin>>p[i].number; cout<<"輸入終點(diǎn)站名:";cin>>p[i].end; for(j=0;j<N;j++) { if(strcmp(p[i].number,p[j].number)==0)//查看該航班號是否已經(jīng)存在 { cout<<"已經(jīng)存在該航班號!\n";break; } if(strcmp(p[i].end,p[j].end)==0)//查看是否存在到改站點(diǎn)的航班 { cout<<"已經(jīng)有到該站點(diǎn)的航班!\n";break; } } if(j==N) { cout<<"飛機(jī)號、飛行日期、成員定額:\n"; cin>>p[i].planenum>>p[i].date>>p[i].dinge; p[i].tick=p[i].dinge;p[i].k=0; cout<<"錄入完成!\n"; } }}6.總航線預(yù)覽功能的算法設(shè)計(jì)(display()函數(shù)的源代碼)intdisplay(PlaneLink*p,intN)//N為當(dāng)前的航班數(shù){ cout<<"==============================================================================\n"; cout<<"航班號飛機(jī)號終點(diǎn)站飛行日期定額余票數(shù)排隊(duì)等候人數(shù)\n"; cout<<"______________________________________________________________________________\n"; for(inti=0;i<N;i++) { cout<<setw(9)<<p[i].number<<setw(6)<<p[i].planenum<<setw(12)<<p[i].end<<setw(12)<<p[i].date<<setw(10)<<p[i].dinge<<setw(10)<<p[i].tick<<setw(10)<<p[i].k<<endl; } cout<<"==============================================================================\n"; return0;}五、調(diào)試分析1)各功能的具體實(shí)例分析為了調(diào)試分析方便,在程序中已經(jīng)初始放入了三個航班信息,如下:1.系統(tǒng)主菜單界面2.總航線預(yù)覽功能界面3.查詢單條航線功能圖1.按終點(diǎn)站名查詢圖2.按航班號查詢圖3.錯誤查詢輸出結(jié)果4.訂票功能=1\*GB3①.當(dāng)訂票的航班存在且航班的余票數(shù)≥乘客訂票數(shù)時②當(dāng)訂票的航班存在但余票數(shù)≤訂票數(shù)≤航班的定額時③當(dāng)航班存在但訂票數(shù)大于航班定額時乘客將無法排隊(duì)等候了=4\*GB3④.當(dāng)預(yù)定的航班不存在時5.退票功能①.當(dāng)退票后余票數(shù)能夠滿足排隊(duì)乘客的需要時②.當(dāng)航班號或姓名輸入錯誤時,系統(tǒng)會輸出顯示以下的三種界面 圖1圖2圖36.錄入功能21/232)實(shí)驗(yàn)過程中出現(xiàn)的問題及解決方法:一開始錯誤很多,包括大量的語法錯誤和邏輯錯誤。通過反復(fù)的編譯、調(diào)試、學(xué)習(xí)和修改,更正了程序中的語法,使程序可以正常編譯,運(yùn)行。程序健壯性方面屢屢遇到問題,在程序的測試過程中逐步發(fā)現(xiàn)并改進(jìn),如主菜單選擇如果輸入字符型數(shù)據(jù)就會引起程序的混亂出現(xiàn)自動跳出;解決方法,引入新的部分從鍵盤獲取字符型數(shù)據(jù),通過字符型常量與數(shù)據(jù)間的關(guān)系,將字符數(shù)據(jù)轉(zhuǎn)化成整形數(shù)據(jù)。程序優(yōu)化,程序雖然可以運(yùn)行使用,但是有很多不合理處,例如程序的運(yùn)行過程對于正確的輸入情況考慮的還比較完全,但對于有誤信息的輸入情況考慮的不是很好,經(jīng)常輸入有誤或是不符合的信息時,會出現(xiàn)死循環(huán)或者其他一些異常。對于種情況,我都是通過F10調(diào)試,在調(diào)試過程輸入剛出錯我輸入的信息,然后逐句或是逐過程的進(jìn)行調(diào)試,最終都能找到問題的具體所在處,然后通過分析為什么這處會出現(xiàn)異常,從這不斷的調(diào)試及分析的過程中得出了這些錯誤的修改方法。從而不斷的完善了整個系統(tǒng)程序。功能添加上,我是在實(shí)現(xiàn)基礎(chǔ)功能的基礎(chǔ)上再添加一些其他的比較復(fù)雜難處理的功能,但在添加另外的功能時,常常會出現(xiàn)這些功能之間邏輯聯(lián)系不好的問題。這些主要就是通過調(diào)試看這些函數(shù)的連接處的代碼的調(diào)試情況,比如一些for循環(huán)、while循環(huán)或是if語句等的限制條件上把握的不好,經(jīng)常會出現(xiàn)在我的邏輯理論上應(yīng)該執(zhí)行的語句沒執(zhí)行,而不該執(zhí)行的卻執(zhí)行了的情況。在調(diào)試的時候我會首先看看這些連接處的中間變量的值的變化境況,通過這找出了比較這些語句的正確的限制的條件。六、課程設(shè)計(jì)總結(jié)在一周的時間里,不斷地對程序及各模塊進(jìn)行修改、編譯、調(diào)試、運(yùn)行,其間遇到很多問題,但通過自己的努力及詢問同學(xué)的幫助都一一解決了。因本人能力有限,在編寫的時候只使用了相對較為簡單的基礎(chǔ)語言,代替了相對較為復(fù)雜的語言,降低了運(yùn)行效率。程序是寫出來的,不是想出來的。開始階總是在想,總感覺很困難做不了,但是真正投入其中之后才發(fā)覺其實(shí)只要用心,只要有克服一切的勇氣和信心就可以把程序做好,錯誤總是越改越少的。要用愉悅的心情去做,從編程的過程中體會樂趣,興趣是最好的老師就是這么回事學(xué)會利用輔助程序去發(fā)現(xiàn)問題通過課程設(shè)計(jì),自己通過系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試,寫實(shí)驗(yàn)報告等環(huán)節(jié),進(jìn)一步掌握應(yīng)用系統(tǒng)設(shè)計(jì)的方法和步驟,靈活運(yùn)用并深刻理解典型數(shù)據(jù)結(jié)構(gòu)在軟件開發(fā)中的應(yīng)用。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是檢驗(yàn)我們這個學(xué)期學(xué)習(xí)成果的重要手段,通過這學(xué)期的學(xué)習(xí),我認(rèn)為學(xué)好數(shù)據(jù)結(jié)構(gòu)這門課程,不僅要認(rèn)真閱讀課本知識,更重要的是要通過上機(jī)實(shí)踐才能增強(qiáng)和鞏固我的知識。經(jīng)過這一階段的上機(jī)實(shí)踐學(xué)習(xí),使我對數(shù)據(jù)結(jié)構(gòu)有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它。通過實(shí)踐,我也發(fā)現(xiàn)我的很多不足之處,首先是自己平時上機(jī)練習(xí)太少,知識的積壓給編程帶來了一定的麻煩。另外我對數(shù)據(jù)結(jié)構(gòu)的一些標(biāo)準(zhǔn)庫函數(shù)還不太了解,如開始進(jìn)入系統(tǒng)后發(fā)現(xiàn)操作的界面很亂,如果能夠及時的清屏那樣就會變的很明了。查閱了相關(guān)的資料和問同學(xué)后我知道只要在程序中調(diào)用庫函數(shù)system("cls")就可以了,知道了這個函數(shù)的基本用法;還有對數(shù)據(jù)結(jié)構(gòu)中經(jīng)常出現(xiàn)的錯誤也不了解,通過實(shí)踐,使我獨(dú)自處理錯誤的能力也有了很大的提高。七、參考資料《數(shù)據(jù)結(jié)構(gòu)(C語言版)》嚴(yán)蔚敏吳偉民編著,清華大學(xué)出版社《數(shù)據(jù)結(jié)構(gòu)(C語言版)》相配套的課本源代碼《C++程序設(shè)計(jì)》譚浩強(qiáng)編著清華大學(xué)出23/23

咖啡店創(chuàng)業(yè)計(jì)劃書第一部分:背景在中國,人們越來越愛喝咖啡。隨之而來的咖啡文化充滿生活的每個時刻。無論在家里、還是在辦公室或各種社交場合,人們都在品著咖啡??Х戎饾u與時尚、現(xiàn)代生活聯(lián)系在一齊。遍布各地的咖啡屋成為人們交談、聽音樂、休息的好地方,咖啡豐富著我們的生活,也縮短了你我之間的距離,咖啡逐漸發(fā)展為一種文化。隨著咖啡這一有著悠久歷史飲品的廣為人知,咖啡正在被越來越多的中國人所理解。第二部分:項(xiàng)目介紹第三部分:創(chuàng)業(yè)優(yōu)勢目前大學(xué)校園的這片市場還是空白,競爭壓力小。而且前期投資也不是很高,此刻國家鼓勵大學(xué)生畢業(yè)后自主創(chuàng)業(yè),有一系列的優(yōu)惠政策以及貸款支持。再者大學(xué)生往往對未來充滿期望,他們有著年輕的血液、蓬勃的朝氣,以及初生牛犢不怕虎的精神,而這些都是一個創(chuàng)業(yè)者就應(yīng)具備的素質(zhì)。大學(xué)生在學(xué)校里學(xué)到了很多理論性的東西,有著較高層次的技術(shù)優(yōu)勢,現(xiàn)代大學(xué)生有創(chuàng)新精神,有對傳統(tǒng)觀念和傳統(tǒng)行業(yè)挑戰(zhàn)的信心和欲望,而這種創(chuàng)新精神也往往造就了大學(xué)生創(chuàng)業(yè)的動力源泉,成為成功創(chuàng)業(yè)的精神基礎(chǔ)。大學(xué)生創(chuàng)業(yè)的最大好處在于能提高自己的潛力、增長經(jīng)驗(yàn),以及學(xué)以致用;最大的誘人之處是透過成功創(chuàng)業(yè),能夠?qū)崿F(xiàn)自己的理想,證明自己的價值。第四部分:預(yù)算1、咖啡店店面費(fèi)用咖啡店店面是租賃建筑物。與建筑物業(yè)主經(jīng)過協(xié)商,以合同形式達(dá)成房屋租賃協(xié)議。協(xié)議資料包括房屋地址、面積、結(jié)構(gòu)、使用年限、租賃費(fèi)用、支付費(fèi)用方法等。租賃的優(yōu)點(diǎn)是投資少、回收期限短。預(yù)算10-15平米店面,啟動費(fèi)用大約在9-12萬元。2、裝修設(shè)計(jì)費(fèi)用咖啡店的滿座率、桌面的周轉(zhuǎn)率以及氣候、節(jié)日等因素對收益影響較大??Х瑞^的消費(fèi)卻相對較高,主要針對的也是學(xué)生人群,咖啡店布局、格調(diào)及采用何種材料和咖啡店效果圖、平面圖、施工圖的設(shè)計(jì)費(fèi)用,大約6000元左右3、裝修、裝飾費(fèi)用具體費(fèi)用包括以下幾種。(1)外墻裝飾費(fèi)用。包括招牌、墻面、裝飾費(fèi)用。(2)店內(nèi)裝修費(fèi)用。包括天花板、油漆、裝飾費(fèi)用,木工、等費(fèi)用。(3)其他裝修材料的費(fèi)用。玻璃、地板、燈具、人工費(fèi)用也應(yīng)計(jì)算在內(nèi)。整體預(yù)算按標(biāo)準(zhǔn)裝修費(fèi)用為360元/平米,裝修費(fèi)用共360*15=5400元。4、設(shè)備設(shè)施購買費(fèi)用具體設(shè)備主要有以下種類。(1)沙發(fā)、桌、椅、貨架。共計(jì)2250元(2)音響系統(tǒng)。共計(jì)450(3)吧臺所用的烹飪設(shè)備、儲存設(shè)備、洗滌設(shè)備、加工保溫設(shè)備。共計(jì)600(4)產(chǎn)品制造使用所需的吧臺、咖啡杯、沖茶器、各種小碟等。共計(jì)300凈水機(jī),采用美的品牌,這種凈水器每一天能生產(chǎn)12l純凈水,每一天銷售咖啡及其他飲料100至200杯,價格大約在人民幣1200元上下??Х葯C(jī),咖啡機(jī)選取的是電控半自動咖啡機(jī),咖啡機(jī)的報價此刻就應(yīng)在人民幣350元左右,加上另外的附件也不會超過1200元。磨豆機(jī),價格在330―480元之間。冰砂機(jī),價格大約是400元一臺,有點(diǎn)要說明的是,最好是買兩臺,不然夏天也許會不夠用。制冰機(jī),從制冰量上來說,一般是要留有富余??钪票鶛C(jī)每一天的制冰量是12kg。價格稍高550元,質(zhì)量較好,所以能夠用很多年,這么算來也是比較合算的。5、首次備貨費(fèi)用包括購買常用物品及低值易耗品,吧臺用各種咖啡豆、奶、茶、水果、冰淇淋等的費(fèi)用。大約1000元6、開業(yè)費(fèi)用開業(yè)費(fèi)用主要包括以下幾種。(1)營業(yè)執(zhí)照辦理費(fèi)、登記費(fèi)、保險費(fèi);預(yù)計(jì)3000元(2)營銷廣告費(fèi)用;預(yù)計(jì)450元7、周轉(zhuǎn)金開業(yè)初期,咖啡店要準(zhǔn)備必須量的流動資金,主要用于咖啡店開業(yè)初期的正常運(yùn)營。預(yù)計(jì)2000元共計(jì): 120000+6000+5400+2250+450+600+300+1200+1200+480+400+550+1000+3000+450+2000=145280元第五部分:發(fā)展計(jì)劃1、營業(yè)額計(jì)劃那里的營業(yè)額是指咖啡店日常營業(yè)收入的多少。在擬定營業(yè)額目標(biāo)時,必須要依據(jù)目前市場的狀況,再思考到咖啡店的經(jīng)營方向以及當(dāng)前的物價情形,予以綜合衡量。按照目前流動人口以及人們對咖啡的喜好預(yù)計(jì)每一天的營業(yè)額為400-800,根據(jù)淡旺季的不同可能上下浮動2、采購計(jì)劃依據(jù)擬訂的商品計(jì)劃,實(shí)際展開采購作業(yè)時,為使采購資金得到有效運(yùn)用以及商品構(gòu)成達(dá)成平衡,務(wù)必針對設(shè)定的商品資料排定采購計(jì)劃。透過營業(yè)額計(jì)劃、商品計(jì)劃與采購計(jì)劃的確立,我們不難了解,一家咖啡店為了營業(yè)目標(biāo)的達(dá)成,同時有效地完成商品構(gòu)成與靈活地運(yùn)用采購資金,各項(xiàng)基本的計(jì)劃是不可或缺的。當(dāng)一家咖啡店設(shè)定了營業(yè)計(jì)劃、商品計(jì)劃及采購計(jì)劃之后,即可依照設(shè)定的采購金額進(jìn)行商品的采購。經(jīng)過進(jìn)貨手續(xù)檢驗(yàn)、標(biāo)價之后,即可寫在菜單

溫馨提示

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

評論

0/150

提交評論