版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 1.課題簡(jiǎn)介………………………………………03 </p><p> 2.設(shè)計(jì)方案………………………………………04</p><p> 3.具體設(shè)計(jì)及截屏圖……………………………05</p><p> 4.關(guān)鍵代碼分析…………………………………10</p><p> 5.測(cè)試……………………………………………15&
2、lt;/p><p> 6.課題總結(jié)與體會(huì)………………………………17</p><p> 7.參考文獻(xiàn)………………………………………18</p><p> 8.源代碼…………………………………………19</p><p><b> 1.課題簡(jiǎn)介</b></p><p> 客房管理系統(tǒng)是根據(jù)某酒店
3、對(duì)客房管理的實(shí)際情況進(jìn)行編寫的,主要目的是為了方便酒店對(duì)客房的實(shí)際情況進(jìn)行集中的查詢與管理工作,以提高整個(gè)酒店的工作。</p><p> 經(jīng)過(guò)電腦及生活中的調(diào)查研究,根據(jù)客人的經(jīng)濟(jì)水平和生活理念,客房的類型已趨向于多樣化,有標(biāo)準(zhǔn)房,單人房,VIP間,甚至總統(tǒng)套房。而初步設(shè)定通過(guò)客房的編號(hào)、類型、價(jià)格來(lái)定位一個(gè)客房的管理系統(tǒng)。</p><p> 客房是一個(gè)對(duì)外服務(wù)的內(nèi)容,為了客人的住宿要
4、求,所以系統(tǒng)需要實(shí)現(xiàn)客房信息的錄入、修改和刪除功能。</p><p> 客人對(duì)剩余客房需要進(jìn)行選擇,系統(tǒng)必須實(shí)現(xiàn)相應(yīng)的查詢、排序和輸出功能,使客人擇優(yōu)而居。</p><p> 本次課程設(shè)計(jì)需要實(shí)現(xiàn)的是——客房管理系統(tǒng)的鏈表實(shí)現(xiàn)。</p><p> 主要實(shí)現(xiàn)的功能包括:客房信息的錄入、修改、刪除、剩余客房信息查詢、排序、輸出??头啃畔⒖蓪懭胛募部蓮奈募凶x取
5、??头啃畔⑸婕暗臄?shù)據(jù)有客房編號(hào)、客房類型、定房日期、客房?jī)?nèi)容(設(shè)施)、定房有效期等。</p><p><b> 2.設(shè)計(jì)方案</b></p><p> 按照需求分析所得,客房信息系統(tǒng)有以下幾個(gè)功能模塊:</p><p> 1.添加錄入信息模塊;</p><p> 編寫指針摸板,定義臨時(shí)的客房間數(shù),包括其各項(xiàng)類的成
6、員,編號(hào),類型,定房日期,價(jià)格,客房?jī)?nèi)容,入住天數(shù)。</p><p> 3.修改客房信息模塊;</p><p> 讀取保存的客房信息數(shù)據(jù),根據(jù)客房編號(hào)查找所需修改的客房信息,然后根據(jù)具體所需,修改成員參數(shù),并保存。</p><p> 4.刪除客房信息模塊;</p><p> 從保存中的文件中讀取信息,刪除需要?jiǎng)h除的信息,完善現(xiàn)在的客房
7、運(yùn)作。</p><p> 5.查詢剩余客房函數(shù);</p><p> 分按編號(hào)、類型、價(jià)格查詢,這樣可以更具有人性化來(lái)選擇所剩余的客房,從而進(jìn)行日常安排。</p><p> 6.排序剩余客房模塊;</p><p> 根據(jù)具體所需排序,可以是編號(hào)、價(jià)格或者類型,本系統(tǒng)中根據(jù)的是客房入住的天數(shù)來(lái)排序。</p><p>
8、; 7.輸出剩余客房函數(shù);</p><p> 輸出根據(jù)系統(tǒng)所需排序后的客房信息,本系統(tǒng)中是根據(jù)了客人入住的有效期即天數(shù)來(lái)及時(shí)了解空出的房間。</p><p> 由上述需求分析可得,系統(tǒng)的功能模塊圖如圖1所示。</p><p><b> 圖1</b></p><p> 2.具體設(shè)計(jì)及截屏圖</p>
9、<p><b> 1、類的設(shè)計(jì)</b></p><p> 根據(jù)上述需求分析,有客房類和鏈表類。</p><p><b> ?。?)客房類</b></p><p> 系統(tǒng)研究客房cGuestroom類中成員: ID[SIZE]是客房編號(hào),Type[SIZE]是客房類型,Book[SIZE]是定房日期,Pric
10、e[SIZE]是每間客房的價(jià)格,StayTime[SIZE]是定房的有效期,F(xiàn)unction[SIZE]是客房的主要內(nèi)容(如浴室、衛(wèi)生間、網(wǎng)線等設(shè)施),標(biāo)志flag和構(gòu)造函數(shù)cGuestroom()??头款惖腢ML圖如(圖2)所示:</p><p><b> 圖2</b></p><p><b> ?。?)鏈表類</b></p>
11、<p> 在tList類中,有成員:構(gòu)造函數(shù)tList(),創(chuàng)建鏈表Create(),判斷鏈表是否為空的函數(shù)Empty() const,從尾部插入一個(gè)元素的函數(shù)Insert(const T e),返回第i個(gè)節(jié)點(diǎn)的函數(shù)GetcNode(int i),在鏈表中查詢某個(gè)值的函數(shù)bool Find(const T e),析構(gòu)函數(shù)~tList(),頭節(jié)點(diǎn)head。鏈表類的UML圖如(圖3)所示:</p><p>
12、;<b> 圖3</b></p><p><b> 2.界面設(shè)計(jì):</b></p><p> (1) 主界面的設(shè)計(jì)</p><p> 主界面中顯示客房管理系統(tǒng)的全部信息,客房信息的錄入,客房信息的保存,客房信息的修改,客房信息的刪除,剩余客房的查詢,剩余客房的排序,剩余客房的輸出,客房信息管理系統(tǒng)如圖4所示。<
13、;/p><p><b> 圖4 主界面</b></p><p> ?。?)分界面:客房信息的錄入的設(shè)計(jì)</p><p> 提示輸入客房編號(hào),客房類型,客人定房日期,客房?jī)r(jià)格,客房中的主要內(nèi)容,客房定房的有效期??头啃畔浫肴鐖D5所示。</p><p> 圖5 錄入客房信息的分界面</p><p>
14、; (3)分界面:客房信息的保存的設(shè)計(jì)</p><p> 針對(duì)第一步客房信息的輸入及以后信息的修改、刪除做一個(gè)文件保存??头啃畔⒈4嫒鐖D6所示。</p><p> 圖6 保存客房信息的分界面</p><p> ?。?)分界面:客房信息的修改的設(shè)計(jì)</p><p> 提示根據(jù)編號(hào)進(jìn)行客房信息修改,輸入要修改的內(nèi)容,如不修改的項(xiàng)目就遠(yuǎn)洋輸
15、出。客房信息修改界面如圖7所示。</p><p> 圖7 修改客房信息的分界面</p><p> ?。?)分界面:客房信息的刪除的設(shè)計(jì)</p><p> 提示進(jìn)入刪除截面,根據(jù)客房編號(hào)查找所需刪除的客房信息??头啃畔⒌膭h除界面如圖8所示。</p><p> 圖8 刪除客房信息的分界面</p><p> ?。?)分
16、界面:剩余客房信息的查詢的設(shè)計(jì)</p><p> 在保存完所修改或刪除的客房信息,查詢剩余的客房信息,按提示進(jìn)入剩余客房查詢界面,有按編號(hào)、類型、價(jià)格查詢,根據(jù)擁護(hù)自主選擇。查詢剩余客房的信息界面如圖9所示。</p><p> 圖9 查詢客房信息的分界面</p><p> ?。?)剩余客房信息的排序的設(shè)計(jì)</p><p> 按提示進(jìn)行剩
17、余客房的排序,本系統(tǒng)中是以客人的入住天數(shù)排序,顯示屏幕如圖10所示。</p><p> ?。?)分界面:剩余客房信息的輸出的設(shè)計(jì)</p><p> 在排序完后的剩余客房中,輸出所有客房的信息,以檢驗(yàn)客房的經(jīng)營(yíng)情況。剩余客房信息輸出界面如圖10所示。</p><p> 圖10 輸出剩余客房的信息</p><p><b> 4.關(guān)
18、鍵代碼分析</b></p><p><b> ?。?)系統(tǒng)的登錄</b></p><p> 在主函數(shù)中,輸出客房信息系統(tǒng)的各功能提示。選擇需要執(zhí)行功能的序號(hào),由switch判斷和選擇所需要執(zhí)行的功能。</p><p> 選擇1:執(zhí)行客房信息的錄入;</p><p> 選擇2:執(zhí)行保存客房的信息;<
19、/p><p> 選擇3:執(zhí)行教工基本信息的保存;</p><p> 選擇4:執(zhí)行教工基本信息的刪除;</p><p> 選擇5:執(zhí)行教工工資按從高到低排序;</p><p> 選擇6:執(zhí)行教工基本信息的修改;</p><p> 選擇7:執(zhí)行教工基本信息的查詢;</p><p><b&
20、gt; 選擇8:退出;</b></p><p><b> 主函數(shù):</b></p><p> int main()</p><p> { tList<cGuestroom> tListMedic;</p><p> tListMedic.Create();
21、 //創(chuàng)建鏈表</p><p> ReadData(&tListMedic);</p><p><b> while(1)</b></p><p> { cout<<"\n\n 客房管理系統(tǒng) \n\n";</p>
22、;<p> cout<<" ---------------------------------- \n\n";</p><p> cout<<" 1.客房信息的錄入 \n\n";</p><p> cout<<"
23、2:客房信息保存\n\n";</p><p> cout<<" 3.客房信息的修改 \n\n";</p><p> cout<<" 4.客房信息的刪除 \n\n";</p><p>
24、cout<<" 5.剩余客房信息的查詢 \n\n";</p><p> cout<<" 6.剩余客房信息的排序 \n\n";</p><p> cout<<" 7.剩余客房信息的輸出
25、 \n\n";</p><p> cout<<" 8.退 出 系 統(tǒng) \n\n";</p><p> cout<<" 請(qǐng)選擇:";</p><p> int choose=0;</p>&
26、lt;p> cin>>choose;</p><p> switch (choose) //用戶選擇</p><p> { case 1:AddtheGuestroom(&tListMedic); break; //輸入客房信息</p><p&g
27、t; case 2:SaveData(&tListMedic);break; //客房信息信息保存</p><p> case 3:ModifytheGuestroom(&tListMedic); break; //修改客房信息</p><p> case 4:DeletetheGuestroom(&tListMedi
28、c); break; //刪除客房信息</p><p> case 5:FindtheremainGuestroom(&tListMedic); break; //查詢剩余客房信息</p><p> case 6:RanktheremainGuestroom(&tListMedic); break; //排序剩余客房信息</p><p&
29、gt; case 7:OutputtheremainGuestroom(&tListMedic); break; //輸出剩余客房信息</p><p> case 8:exit(0); //退出</p><p> default : break;} </p><p> retu
30、rn 0; }</p><p><b> }</b></p><p> 在讀取數(shù)據(jù)庫(kù)中,可以從以有的文件中讀取數(shù)據(jù)到程序中,避免了程序的重復(fù)輸入數(shù)據(jù),有利于后面的信息修改、刪除等功能。</p><p><b> 讀取數(shù)據(jù)庫(kù):</b></p><p> void ReadData(tList&
31、lt;cGuestroom> *tListMedic) //讀取數(shù)據(jù)庫(kù)</p><p><b> {</b></p><p> char buf[BUFSIZE]; </p><p> ifstream ifile("Guestroom.txt",ios_base::in);//創(chuàng)建一個(gè)輸出文件流對(duì)
32、象</p><p> if (!ifile) </p><p><b> { </b></p><p> cerr << "讀取時(shí)打開(kāi)文件出錯(cuò)!" << endl; </p><p><b> } </b></p><p>
33、 cGuestroom Guestroom;</p><p> while(ifile.getline(buf,BUFSIZE)) //遍歷文本,讀取數(shù)據(jù)</p><p><b> {</b></p><p> ifile.getline(buf,BUFSIZE);</p><p> str
34、cpy(Guestroom.ID,buf); //讀取客房編號(hào)</p><p> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE); //讀取客房類型</p><p> strcpy(Guestroom.Type,buf);</p>
35、<p> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE); //讀取提前定房日期</p><p> strcpy(Guestroom.Book,buf);</p><p> memset(buf,0,BUFSIZE);</p><p&
36、gt; ifile.getline(buf,BUFSIZE); //讀取價(jià)格</p><p> strcpy(Guestroom.Price,buf);</p><p> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE); //讀取客房主要內(nèi)容
37、</p><p> strcpy(Guestroom.Function,buf);</p><p> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE); //讀取入住有效期</p><p> Guestroom.StayTime=atoi(bu
38、f);</p><p> memset(buf,0,BUFSIZE);</p><p> Guestroom.flag=true;</p><p> tListMedic->Insert(Guestroom);</p><p><b> }</b></p><p> cout<
39、;<"讀取數(shù)據(jù)成功!\n\n";</p><p> ifile.close(); //關(guān)閉文件</p><p><b> return;</b></p><p><b> }</b></p><p><
40、b> ?。?)信息的添加</b></p><p> 客房信息的錄入,創(chuàng)建cGuestroom類和tempGuestroom對(duì)象,調(diào)用構(gòu)造函數(shù),輸入客房的房間編號(hào)、房間類型、定房日期、房間價(jià)格、房間內(nèi)容及個(gè)人的入住有效期,通過(guò)Insert函數(shù)實(shí)現(xiàn)。</p><p> void AddtheGuestroom(tList<cGuestroom> *tListM
41、edic) // 輸入客房函數(shù)</p><p> { cGuestroom tempGuestroom; //定義臨時(shí)客房</p><p> cout<<"下面開(kāi)始添加客房信息\n";</p><p> cout<<"請(qǐng)輸入入住的客房編號(hào):"
42、;;</p><p> cin>>tempGuestroom.ID; //讀入客房編號(hào)</p><p> cout<<"請(qǐng)輸入客房類型:";</p><p> cin>>tempGuestroom.Type;
43、 //讀入客房類型</p><p> cout<<"請(qǐng)輸入客人定房日期:";</p><p> cin>>tempGuestroom.Book; //讀入定房日期</p><p> cout<<"請(qǐng)輸入客房?jī)r(jià)格:";</p&
44、gt;<p> cin>>tempGuestroom.Price; //讀入價(jià)格</p><p> cout<<"請(qǐng)輸入客房的主要內(nèi)容:";</p><p> cin>>tempGuestroom.Function;
45、 //讀入主要內(nèi)容</p><p> cout<<"請(qǐng)輸入客房入住有效期:";</p><p> cin>>tempGuestroom.StayTime; //讀入入住有效期</p><p> tempGuestroom.flag=true;</p>&
46、lt;p> tListMedic->Insert(tempGuestroom);</p><p> cout<<"添加成功!\n";</p><p> system("pause");</p><p> system("cls");</p><p>&
47、lt;b> }</b></p><p><b> ?。?)信息的刪除</b></p><p> 刪除客房信息,按要求提示輸入要?jiǎng)h除客房的房間編號(hào),定義一個(gè)指向鏈表第一個(gè)節(jié)點(diǎn)的指針p。如果指針創(chuàng)建成功,開(kāi)始用while和if語(yǔ)句實(shí)現(xiàn)p指向的節(jié)點(diǎn)的客房編號(hào)與存在的客房編號(hào)的比較。如果相同,輸出該客房的信息并刪除;如果沒(méi)有相同的,提示沒(méi)有所查詢的房間。
48、</p><p> void DeletetheGuestroom(tList<cGuestroom> *tListMedic) //刪除客房信息</p><p> { char id[BUFSIZE];</p><p> cout<<"\n請(qǐng)輸入你要查找的客房編號(hào):";</p><p&
49、gt; cin>>id; //讀取客房編號(hào)</p><p> bool flag=false;</p><p> int count=0;</p><p> cNode<cGuestroom> *p;</p><p>
50、p=tListMedic->head->next;</p><p><b> while(p)</b></p><p> { if(strcmp(p->data.ID,id)==0 && p->data.flag)</p><p> { count++;</p><p&g
51、t; flag=true;</p><p><b> break;}</b></p><p> p=p->next;}</p><p> if(flag==false) cout<<"對(duì)不起,你所查找的客房延長(zhǎng)了住房日期!\n";</p><p><b>
52、 //如果不能刪</b></p><p> else //如果能刪 </p><p> { count--;</p><p> cout<<"找到了,該客房的原始信息是:\n";</p><p&g
53、t; cout<<"\n\n客房編號(hào):"<<(p->data).ID<<"\t客房類型:"<<(p->data).Type<<"\n\t\t定房日期:"<<(p->data).Book<<"\n\t\t價(jià)格:"<<(p->data).Pr
54、ice;</p><p> cout<<"\n\t\t客房的主要內(nèi)容:"<<(p->data).Function<<"\n\t\t入住有效期:"<<(p->data).StayTime;</p><p> cout<<endl;</p><p> (
55、p->data).flag=false;</p><p> cout<<"該客房的信息刪除成功!\n";} </p><p> cout<<endl;</p><p> system("pause");</p><p> system("cls"
56、);</p><p><b> return;</b></p><p><b> }</b></p><p><b> (4)信息的修改</b></p><p> 按提示輸入要修改的客房的客房編號(hào),定義一個(gè)指向鏈表第一個(gè)節(jié)點(diǎn)的指針p。如果指針創(chuàng)建成功,開(kāi)始用while和
57、if語(yǔ)句實(shí)現(xiàn)p指向的節(jié)點(diǎn)的客房編號(hào)與存在的客房編號(hào)的比較。如果相同,提示輸入房間的各個(gè)信息;如果沒(méi)有相同,提示沒(méi)有所查詢的客房。</p><p> void ModifytheGuestroom(tList<cGuestroom> *tListMedic) //修改客房信息</p><p> { char id[BUFSIZE];</p><p&
58、gt; cout<<"\n請(qǐng)輸入你要查找的客房編號(hào):";</p><p> cin>>id; //讀取客房編號(hào)</p><p> bool flag=false;</p><p> cNode<cGuestroom&
59、gt; *p;</p><p> p=tListMedic->head->next;</p><p><b> while(p)</b></p><p> { if(strcmp(p->data.ID,id)==0 && p->data.flag)</p><p>
60、{ flag=true;</p><p><b> break;}</b></p><p> p=p->next;}</p><p> if(flag==true) </p><p> { cout<<"找到了,該客房的原始信息是:\n";</p&
61、gt;<p> cout<<"\n\n客房編號(hào):"<<(p->data).ID<<"\t客房類型:"<<(p->data).Type<<"\n\t\t定房日期:"<<(p->data).Book<<"\n\t\t價(jià)格:"<<(p-
62、>data).Price;</p><p> cout<<"\n\t\t客房的主要內(nèi)容:"<<(p->data).Function<<"\n\t\t入住有效期:"<<(p->data).StayTime;</p><p> cout<<"\n下面開(kāi)始修改該客房
63、的信息:\n";</p><p> cGuestroom tempGuestroom; //定義臨時(shí)客房</p><p> cout<<"請(qǐng)輸入客房的客房編號(hào):";</p><p> cin>>tempGuestroom.ID;
64、 //讀入客房編號(hào)</p><p> cout<<"請(qǐng)輸入客房的客房類型:";</p><p> cin>>tempGuestroom.Type; //讀入客房類型</p><p> cout<<"請(qǐng)輸入客人的定房日期:&q
65、uot;;</p><p> cin>>tempGuestroom.Book; //讀入定房日期</p><p> cout<<"請(qǐng)輸入客房的客房?jī)r(jià)格:";</p><p> cin>>tempGuestroom.Price;
66、 //讀入價(jià)格</p><p> cout<<"請(qǐng)輸入客房的客房主要內(nèi)容:";</p><p> cin>>tempGuestroom.Function; //讀入客房的主要內(nèi)容</p><p> cout<<"請(qǐng)輸入客人入住客房有效期
67、:";</p><p> cin>>tempGuestroom.StayTime; //讀入入住有效期</p><p> tempGuestroom.flag=true;</p><p> p->data=tempGuestroom;</p><p> cout&l
68、t;<"修改成功!";}</p><p> cout<<endl;</p><p> system("pause");</p><p> system("cls");</p><p><b> return;}</b></p>
69、;<p><b> 5.測(cè)試</b></p><p> 程序測(cè)試是將編制的程序投入實(shí)際運(yùn)行前,用手工或編譯程序等方法進(jìn)行測(cè)試,修正語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的過(guò)程。</p><p><b> 原程序:</b></p><p> void RanktheremainGuestroom(tList<cGue
70、stroom> *tListMedic) //排序剩余客房</p><p> {cNode<cGuestroom> *p,*q;</p><p> cGuestroom remainGuestroom;</p><p> for (p=tListMedic->head->next; p!= NULL; p=p->next
71、)</p><p> {for (q=p; q!= NULL; q=q->next)</p><p> { if (p->data.Price > q->data.Price)</p><p> { remainGuestroom.flag = p->data.flag; </p><p> str
72、cpy(remainGuestroom.ID, p->data.ID); </p><p> strcpy(remainGuestroom.Type, p->data.Type);</p><p> strcpy(remainGuestroom.Book, p->data.Book); </p><p> strcpy(remainGuest
73、room.Price, p->data.Price);</p><p> strcpy(remainGuestroom.Function, p->data.Function);</p><p> remainGuestroom.StayTime = p->data.StayTime;</p><p> p->data.flag = q-
74、>data.flag; </p><p> strcpy(p->data.Function, q->data.Function);</p><p> strcpy(p->data.ID, q->data.ID); </p><p> strcpy(p->data.Type, q->data.Type);</p&g
75、t;<p> strcpy(p->data.Book, q->data.Book); </p><p> p->data.StayTime = q->data.StayTime; </p><p> q->data.flag = remainGuestroom.flag; </p><p> strcpy(q-&g
76、t;data.Function, remainGuestroom.Function);</p><p> strcpy(q->data.ID, remainGuestroom.ID);</p><p> strcpy(q->data.Type, remainGuestroom.Type);</p><p> strcpy(q->data.Bo
77、ok, remainGuestroom.Book); </p><p> q->data.StayTime = remainGuestroom.StayTime; } }</p><p><b> }</b></p><p><b> }</b></p><p> 編譯成功后開(kāi)始運(yùn)行,
78、信息錄入后,不能在文檔中正確排序輸出,經(jīng)Debug調(diào)試,發(fā)現(xiàn),以客人的入住天數(shù)排序來(lái)及時(shí)調(diào)出空余客房為最佳選擇。</p><p> void RanktheremainGuestroom(tList<cGuestroom> *tListMedic) //排序剩余客房</p><p> {cNode<cGuestroom> *p,*q;</p>
79、<p> cGuestroom remainGuestroom;</p><p> for (p=tListMedic->head->next; p!= NULL; p=p->next)</p><p> { for (q=p; q!= NULL; q=q->next)</p><p> { if (p->data
80、.StayTime > q->data.StayTime)</p><p> { remainGuestroom.flag = p->data.flag; </p><p> strcpy(remainGuestroom.ID, p->data.ID); </p><p> strcpy(remainGuestroom.Type,
81、p->data.Type);</p><p> strcpy(remainGuestroom.Book, p->data.Book); </p><p> strcpy(remainGuestroom.Price, p->data.Price);</p><p> strcpy(remainGuestroom.Function, p->
82、data.Function);</p><p> remainGuestroom.StayTime = p->data.StayTime;</p><p> p->data.flag = q->data.flag; </p><p> strcpy(p->data.Function, q->data.Function);</
83、p><p> strcpy(p->data.ID, q->data.ID); </p><p> strcpy(p->data.Type, q->data.Type);</p><p> strcpy(p->data.Book, q->data.Book); </p><p> p->data.S
84、tayTime = q->data.StayTime; </p><p> q->data.flag = remainGuestroom.flag; </p><p> strcpy(q->data.Function, remainGuestroom.Function);</p><p> strcpy(q->data.ID, rema
85、inGuestroom.ID);</p><p> strcpy(q->data.Type, remainGuestroom.Type);</p><p> strcpy(q->data.Book, remainGuestroom.Book); </p><p> q->data.StayTime = remainGuestroom.Stay
86、Time; } }</p><p><b> }</b></p><p><b> }</b></p><p><b> 6.課題總結(jié)與體會(huì)</b></p><p> 本次的C++課程設(shè)計(jì)雖然只是短短的兩個(gè)星期,但是卻令我體會(huì)很多,也學(xué)到很多東西。利用C++去設(shè)計(jì)客房
87、管理,使我加強(qiáng)了對(duì)C++的認(rèn)識(shí),也對(duì)現(xiàn)代客房的基本運(yùn)作管理有了初步了解。</p><p> 在這次課程設(shè)計(jì)中,我還懂得了程序開(kāi)發(fā)中的一些比較重要的步驟并且學(xué)會(huì)了一些沒(méi)有接觸過(guò)的知識(shí),比如需求分析、類的設(shè)計(jì)以及類與類之間的關(guān)系,UML圖形的表示方法等。面向?qū)ο蟪绦蛟O(shè)計(jì)作為一門軟件設(shè)計(jì)的課程,具有極強(qiáng)的實(shí)踐性,使我加強(qiáng)了靈活應(yīng)用理論知識(shí)的能力及面向?qū)ο蟪绦蛟O(shè)計(jì)技能。C++語(yǔ)言相對(duì)于C語(yǔ)言來(lái)更具有優(yōu)越性,它不僅兼容C
88、,還有一個(gè)非常重要的特點(diǎn)就是面向?qū)ο螅ň唧w來(lái)講就是類),另外模板技術(shù)的頻繁引用,也使整個(gè)程序看起來(lái)更清晰,更有條理化,所以,對(duì)模塊的掌握,在C++學(xué)習(xí)中是非常重要的。 </p><p> 在本次的應(yīng)用程序的設(shè)計(jì)和創(chuàng)建過(guò)程中,我遇到了許多問(wèn)題,有些是自己沒(méi)有在教科書中學(xué)過(guò)的,但是卻是系統(tǒng)所必須的,我通過(guò)在網(wǎng)上查找資料、查找書本、請(qǐng)教老師,一步步的把這些問(wèn)題搞懂了,所以,課程設(shè)計(jì)也培養(yǎng)了我們探索實(shí)踐的能力。<
89、/p><p> 總之,我覺(jué)得,我們學(xué)習(xí)和掌握的知識(shí),只有通過(guò)實(shí)際應(yīng)用,才能真正的理解和掌握,才能更好的去應(yīng)用。以前上C++課程,只是零散被動(dòng)地接受知識(shí),而不是主動(dòng)地去吸收滲透,而此次的課程設(shè)計(jì)卻讓我對(duì)編程產(chǎn)生了興趣,習(xí)慣獨(dú)立自主地完成任務(wù),在困難中尋求幫助,加強(qiáng)和同學(xué)間的互幫互助,相信自己會(huì)在以后的學(xué)習(xí)和工作更加有經(jīng)驗(yàn)。通過(guò)課程設(shè)計(jì),我既復(fù)習(xí)了以前的舊知識(shí),又學(xué)到了一些新的知識(shí);設(shè)計(jì)增強(qiáng)了我們用所學(xué)知識(shí)去解決具體問(wèn)
90、題的能力,進(jìn)一步培養(yǎng)了我們獨(dú)立思考問(wèn)題和解決問(wèn)題的能力。 </p><p><b> 7.參考文獻(xiàn)</b></p><p> 【1】陳維興,林小茶.C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程.北京.清華大學(xué)出版社2010,10</p><p> 【2】譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社.2010,5</p><p>
91、【3】www.51CTO.com</p><p><b> 8.源代碼</b></p><p> //客房管理系統(tǒng)主要實(shí)現(xiàn)的功能包括:客房信息的錄入、修改、刪除、剩余客房信息查詢、排序、輸出。客房信息可寫入文件,也可從文件中讀取。</p><p> /* 系統(tǒng)的登錄 信息的添加 信息的刪除 信息的修改 */</
92、p><p> #include <iostream> //指示編譯器將文件iostream中的代碼嵌入到該程序中該指令所在的地方</p><p> using namespace std;</p><p> #include<fstream>//包含文件流頭文件</p><p> #define BUFSIZ
93、E 50</p><p> class cGuestroom;</p><p> void FindTheGuestroom(); //查找客房</p><p> void FindTheGuestroomById(); //按照編號(hào)找客房</p><p> void FindTheGuestroomByT
94、ype(); //按照類型找客房</p><p> void FindTheGuestroomByPrice(); //按照價(jià)格找客房</p><p> void DeleteTheGuestroom(); //刪除客房</p><p> void AddTheGuestroom(); //客房添加</p>
95、;<p> void ModifyTheGuestroom(); //修改客房</p><p> template <class T> //template:模板,樣板</p><p> class cNode //節(jié)點(diǎn)</p><p><b&g
96、t; {</b></p><p> public: </p><p><b> T data;</b></p><p> cNode *next;</p><p><b> };</b></p><p>
97、 template <class T></p><p> class tList </p><p><b> {</b></p><p> public: //定義成員函數(shù)</p><p><
98、b> tList();</b></p><p> void Create(); //創(chuàng)建鏈表</p><p> bool Empty() const; //判斷鏈表是否為空</p><p> void Insert(const T e); //從尾部插
99、入一個(gè)元素</p><p> cNode<T>* GetcNode(int i); //返回第i個(gè)節(jié)點(diǎn)</p><p> bool Find(const T e); //在鏈表中查找某個(gè)值</p><p> ~tList(); //銷毀鏈表,析
100、構(gòu)</p><p> cNode<T> *head; //頭節(jié)點(diǎn)</p><p><b> };</b></p><p> template <class T></p><p> tList<T>::tList()
101、 //類的成員函數(shù)的實(shí)現(xiàn)</p><p><b> {</b></p><p> head=new cNode<T>;</p><p> head->next=NULL;</p><p><b> }</b></p><p> tem
102、plate <class T></p><p> void tList<T>::Create()</p><p><b> {</b></p><p> cNode<T> *p;</p><p><b> p=head;</b></p>&l
103、t;p> p->next=NULL;</p><p><b> }</b></p><p> template <class T></p><p> bool tList<T>::Empty() const </p><p><b> {</b>&l
104、t;/p><p> return (head->next==NULL);</p><p><b> }</b></p><p> template <class T></p><p> void tList<T>::Insert(const T e) //insert:插入<
105、;/p><p><b> {</b></p><p> cNode<T> *p,*q;</p><p><b> p=head;</b></p><p> q=new cNode<T>;</p><p> q->data=e;</p&
106、gt;<p> while(p->next)</p><p><b> {</b></p><p> p=p->next;</p><p><b> }</b></p><p> p->next=q;</p><p> q->
107、next=NULL;</p><p><b> }</b></p><p> template <class T></p><p> cNode<T>* tList<T>::GetcNode(int i) //返回第i個(gè)節(jié)點(diǎn)</p><p><b&
108、gt; {</b></p><p><b> int k=0;</b></p><p> cNode<T> *p;</p><p><b> p=head;</b></p><p> while(p && k<i)</p><
109、;p><b> {</b></p><p> p=p->next;</p><p><b> ++k;</b></p><p><b> }</b></p><p><b> return p;</b></p><
110、p><b> }</b></p><p> template <class T></p><p> bool tList<T>::Find(const T e) //在鏈表中查找某個(gè)值</p><p><b> {</b></p><p>
111、; bool flag=false;</p><p> cNode<T> *p;</p><p> p=head->next;</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(p-
112、>data==e)</p><p><b> {</b></p><p> flag=true;</p><p><b> break;</b></p><p><b> }</b></p><p> p=p->next;</
113、p><p><b> }</b></p><p> return flag;</p><p><b> }</b></p><p> template <class T></p><p> tList<T>::~tList()</p>
114、<p><b> {</b></p><p> cNode<T> *p;</p><p> while(head)</p><p><b> {</b></p><p> p=head->next;</p><p> delete
115、head;</p><p><b> head=p;</b></p><p><b> }</b></p><p><b> }</b></p><p> class cGuestroom</p><p><b> {</b&g
116、t;</p><p><b> public:</b></p><p> char ID[BUFSIZE]; //客房編號(hào)</p><p> char Type[BUFSIZE]; //客房類型</p><p> char Book[BUFSIZE]; //提前定房日期</p><p&
117、gt; char Price[BUFSIZE]; //客房?jī)r(jià)格</p><p> char Function[BUFSIZE]; //客房主要內(nèi)容</p><p> int StayTime; //入住天數(shù)有效期</p><p> bool flag;//標(biāo)志</p><p> cGuestroom()//構(gòu)造函數(shù)
118、初始化</p><p><b> {</b></p><p> memset(ID,0,BUFSIZE);memset(Type,0,BUFSIZE);memset(Book,0,BUFSIZE);memset(Function,0,BUFSIZE);</p><p> memset(Price,0,BUFSIZE);StayTime=0
119、.0;flag=false;</p><p> } //memset:把char類型轉(zhuǎn)換成ASCII值</p><p><b> };</b></p><p> void ReadData(tList<cGuestroom> *tListGue)//讀取數(shù)據(jù)庫(kù)</p>&l
120、t;p><b> {</b></p><p> char buf[BUFSIZE]; </p><p> ifstream ifile("Guestroom.txt",ios_base::in);//創(chuàng)建一個(gè)輸出文件流對(duì)象</p><p> if (!ifile) </p><p>&
121、lt;b> { </b></p><p> cerr << "讀取時(shí)打開(kāi)文件出錯(cuò)!" << endl; </p><p><b> } </b></p><p> cGuestroom Guestroom;</p><p> while(ifile
122、.getline(buf,BUFSIZE)) //遍歷文本,讀取數(shù)據(jù)</p><p><b> {</b></p><p> ifile.getline(buf,BUFSIZE);</p><p> strcpy(Guestroom.ID,buf);//讀取客房編號(hào)</p><p> memset(buf,0,B
123、UFSIZE);</p><p> ifile.getline(buf,BUFSIZE);//讀取客房類型</p><p> strcpy(Guestroom.Type,buf);</p><p> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE);//讀取提前定房日
124、期</p><p> strcpy(Guestroom.Book,buf);</p><p> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE);//讀取價(jià)格</p><p> strcpy(Guestroom.Price,buf);</p><p
125、> memset(buf,0,BUFSIZE);</p><p> ifile.getline(buf,BUFSIZE);//讀取客房主要內(nèi)容</p><p> strcpy(Guestroom.Function,buf);</p><p> memset(buf,0,BUFSIZE);</p><p> ifile.getl
126、ine(buf,BUFSIZE);//讀取入住有效期</p><p> Guestroom.StayTime=atoi(buf);</p><p> memset(buf,0,BUFSIZE);</p><p> Guestroom.flag=true;</p><p> tListGue->Insert(Guestroom);
127、</p><p><b> }</b></p><p> cout<<"讀取數(shù)據(jù)成功!\n\n";</p><p> ifile.close();//關(guān)閉文件</p><p><b> return;</b></p><p><b
128、> }</b></p><p> void AddtheGuestroom(tList<cGuestroom> *tListGue)// 輸入客房函數(shù)</p><p><b> {</b></p><p> cGuestroom tempGuestroom; //定義臨時(shí)客房</p><
129、;p> cout<<"下面開(kāi)始添加客房信息\n";</p><p> cout<<"請(qǐng)輸入入住的客房編號(hào):";</p><p> cin>>tempGuestroom.ID; //讀入客房編號(hào)</p><p> cout<<"請(qǐng)輸入客房類型:
130、";</p><p> cin>>tempGuestroom.Type; //讀入客房類型</p><p> cout<<"請(qǐng)輸入客人定房日期:";</p><p> cin>>tempGuestroom.Book; //讀入定房日期</p><p>
131、 cout<<"請(qǐng)輸入客房?jī)r(jià)格:";</p><p> cin>>tempGuestroom.Price; //讀入價(jià)格</p><p> cout<<"請(qǐng)輸入客房的主要內(nèi)容:";</p><p> cin>>tempGuestroom.Function; //
132、讀入主要內(nèi)容</p><p> cout<<"請(qǐng)輸入客房入住有效期:";</p><p> cin>>tempGuestroom.StayTime; //讀入入住有效期</p><p> tempGuestroom.flag=true;</p><p> tListGue->Inse
133、rt(tempGuestroom);</p><p> cout<<"添加成功!\n";</p><p> system("pause"); //pause:停頓,終止</p><p> system("cls");</p><p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--酒店管理系統(tǒng)
- 酒店管理系統(tǒng)_c++課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--酒店管理系統(tǒng)
- c++課程設(shè)計(jì)·酒店管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告-- 酒店點(diǎn)菜管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)--酒店客房管理系統(tǒng)
- 銷售管理系統(tǒng)c++課程設(shè)計(jì)
- 《c++》課程設(shè)計(jì)倉(cāng)庫(kù)管理系統(tǒng)
- c++課程設(shè)計(jì)-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)學(xué)生通訊管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告-- 學(xué)籍管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- c++課程設(shè)計(jì)---公司人員管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論