版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 1.課題簡介………………………………………03 </p><p> 2.設(shè)計方案………………………………………04</p><p> 3.具體設(shè)計及截屏圖……………………………05</p><p> 4.關(guān)鍵代碼分析…………………………………10</p><p> 5.測試……………………………………………15&
2、lt;/p><p> 6.課題總結(jié)與體會………………………………17</p><p> 7.參考文獻(xiàn)………………………………………18</p><p> 8.源代碼…………………………………………19</p><p><b> 1.課題簡介</b></p><p> 客房管理系統(tǒng)是根據(jù)某酒店
3、對客房管理的實際情況進(jìn)行編寫的,主要目的是為了方便酒店對客房的實際情況進(jìn)行集中的查詢與管理工作,以提高整個酒店的工作。</p><p> 經(jīng)過電腦及生活中的調(diào)查研究,根據(jù)客人的經(jīng)濟水平和生活理念,客房的類型已趨向于多樣化,有標(biāo)準(zhǔn)房,單人房,VIP間,甚至總統(tǒng)套房。而初步設(shè)定通過客房的編號、類型、價格來定位一個客房的管理系統(tǒng)。</p><p> 客房是一個對外服務(wù)的內(nèi)容,為了客人的住宿要
4、求,所以系統(tǒng)需要實現(xiàn)客房信息的錄入、修改和刪除功能。</p><p> 客人對剩余客房需要進(jìn)行選擇,系統(tǒng)必須實現(xiàn)相應(yīng)的查詢、排序和輸出功能,使客人擇優(yōu)而居。</p><p> 本次課程設(shè)計需要實現(xiàn)的是——客房管理系統(tǒng)的鏈表實現(xiàn)。</p><p> 主要實現(xiàn)的功能包括:客房信息的錄入、修改、刪除、剩余客房信息查詢、排序、輸出。客房信息可寫入文件,也可從文件中讀取
5、??头啃畔⑸婕暗臄?shù)據(jù)有客房編號、客房類型、定房日期、客房內(nèi)容(設(shè)施)、定房有效期等。</p><p><b> 2.設(shè)計方案</b></p><p> 按照需求分析所得,客房信息系統(tǒng)有以下幾個功能模塊:</p><p> 1.添加錄入信息模塊;</p><p> 編寫指針摸板,定義臨時的客房間數(shù),包括其各項類的成
6、員,編號,類型,定房日期,價格,客房內(nèi)容,入住天數(shù)。</p><p> 3.修改客房信息模塊;</p><p> 讀取保存的客房信息數(shù)據(jù),根據(jù)客房編號查找所需修改的客房信息,然后根據(jù)具體所需,修改成員參數(shù),并保存。</p><p> 4.刪除客房信息模塊;</p><p> 從保存中的文件中讀取信息,刪除需要刪除的信息,完善現(xiàn)在的客房
7、運作。</p><p> 5.查詢剩余客房函數(shù);</p><p> 分按編號、類型、價格查詢,這樣可以更具有人性化來選擇所剩余的客房,從而進(jìn)行日常安排。</p><p> 6.排序剩余客房模塊;</p><p> 根據(jù)具體所需排序,可以是編號、價格或者類型,本系統(tǒng)中根據(jù)的是客房入住的天數(shù)來排序。</p><p>
8、; 7.輸出剩余客房函數(shù);</p><p> 輸出根據(jù)系統(tǒng)所需排序后的客房信息,本系統(tǒng)中是根據(jù)了客人入住的有效期即天數(shù)來及時了解空出的房間。</p><p> 由上述需求分析可得,系統(tǒng)的功能模塊圖如圖1所示。</p><p><b> 圖1</b></p><p> 2.具體設(shè)計及截屏圖</p>
9、<p><b> 1、類的設(shè)計</b></p><p> 根據(jù)上述需求分析,有客房類和鏈表類。</p><p><b> (1)客房類</b></p><p> 系統(tǒng)研究客房cGuestroom類中成員: ID[SIZE]是客房編號,Type[SIZE]是客房類型,Book[SIZE]是定房日期,Pric
10、e[SIZE]是每間客房的價格,StayTime[SIZE]是定房的有效期,F(xiàn)unction[SIZE]是客房的主要內(nèi)容(如浴室、衛(wèi)生間、網(wǎng)線等設(shè)施),標(biāo)志flag和構(gòu)造函數(shù)cGuestroom()。客房類的UML圖如(圖2)所示:</p><p><b> 圖2</b></p><p><b> ?。?)鏈表類</b></p>
11、<p> 在tList類中,有成員:構(gòu)造函數(shù)tList(),創(chuàng)建鏈表Create(),判斷鏈表是否為空的函數(shù)Empty() const,從尾部插入一個元素的函數(shù)Insert(const T e),返回第i個節(jié)點的函數(shù)GetcNode(int i),在鏈表中查詢某個值的函數(shù)bool Find(const T e),析構(gòu)函數(shù)~tList(),頭節(jié)點head。鏈表類的UML圖如(圖3)所示:</p><p>
12、;<b> 圖3</b></p><p><b> 2.界面設(shè)計:</b></p><p> (1) 主界面的設(shè)計</p><p> 主界面中顯示客房管理系統(tǒng)的全部信息,客房信息的錄入,客房信息的保存,客房信息的修改,客房信息的刪除,剩余客房的查詢,剩余客房的排序,剩余客房的輸出,客房信息管理系統(tǒng)如圖4所示。<
13、;/p><p><b> 圖4 主界面</b></p><p> ?。?)分界面:客房信息的錄入的設(shè)計</p><p> 提示輸入客房編號,客房類型,客人定房日期,客房價格,客房中的主要內(nèi)容,客房定房的有效期??头啃畔浫肴鐖D5所示。</p><p> 圖5 錄入客房信息的分界面</p><p>
14、; ?。?)分界面:客房信息的保存的設(shè)計</p><p> 針對第一步客房信息的輸入及以后信息的修改、刪除做一個文件保存。客房信息保存如圖6所示。</p><p> 圖6 保存客房信息的分界面</p><p> ?。?)分界面:客房信息的修改的設(shè)計</p><p> 提示根據(jù)編號進(jìn)行客房信息修改,輸入要修改的內(nèi)容,如不修改的項目就遠(yuǎn)洋輸
15、出。客房信息修改界面如圖7所示。</p><p> 圖7 修改客房信息的分界面</p><p> (5)分界面:客房信息的刪除的設(shè)計</p><p> 提示進(jìn)入刪除截面,根據(jù)客房編號查找所需刪除的客房信息。客房信息的刪除界面如圖8所示。</p><p> 圖8 刪除客房信息的分界面</p><p> (6)分
16、界面:剩余客房信息的查詢的設(shè)計</p><p> 在保存完所修改或刪除的客房信息,查詢剩余的客房信息,按提示進(jìn)入剩余客房查詢界面,有按編號、類型、價格查詢,根據(jù)擁護(hù)自主選擇。查詢剩余客房的信息界面如圖9所示。</p><p> 圖9 查詢客房信息的分界面</p><p> ?。?)剩余客房信息的排序的設(shè)計</p><p> 按提示進(jìn)行剩
17、余客房的排序,本系統(tǒng)中是以客人的入住天數(shù)排序,顯示屏幕如圖10所示。</p><p> ?。?)分界面:剩余客房信息的輸出的設(shè)計</p><p> 在排序完后的剩余客房中,輸出所有客房的信息,以檢驗客房的經(jī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í)行功能的序號,由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<<" 請選擇:";</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ù)庫中,可以從以有的文件中讀取數(shù)據(jù)到程序中,避免了程序的重復(fù)輸入數(shù)據(jù),有利于后面的信息修改、刪除等功能。</p><p><b> 讀取數(shù)據(jù)庫:</b></p><p> void ReadData(tList&
31、lt;cGuestroom> *tListMedic) //讀取數(shù)據(jù)庫</p><p><b> {</b></p><p> char buf[BUFSIZE]; </p><p> ifstream ifile("Guestroom.txt",ios_base::in);//創(chuàng)建一個輸出文件流對
32、象</p><p> if (!ifile) </p><p><b> { </b></p><p> cerr << "讀取時打開文件出錯!" << 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); //讀取客房編號</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); //讀取價格</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對象,調(diào)用構(gòu)造函數(shù),輸入客房的房間編號、房間類型、定房日期、房間價格、房間內(nèi)容及個人的入住有效期,通過Insert函數(shù)實現(xiàn)。</p><p> void AddtheGuestroom(tList<cGuestroom> *tListM
41、edic) // 輸入客房函數(shù)</p><p> { cGuestroom tempGuestroom; //定義臨時客房</p><p> cout<<"下面開始添加客房信息\n";</p><p> cout<<"請輸入入住的客房編號:"
42、;;</p><p> cin>>tempGuestroom.ID; //讀入客房編號</p><p> cout<<"請輸入客房類型:";</p><p> cin>>tempGuestroom.Type;
43、 //讀入客房類型</p><p> cout<<"請輸入客人定房日期:";</p><p> cin>>tempGuestroom.Book; //讀入定房日期</p><p> cout<<"請輸入客房價格:";</p&
44、gt;<p> cin>>tempGuestroom.Price; //讀入價格</p><p> cout<<"請輸入客房的主要內(nèi)容:";</p><p> cin>>tempGuestroom.Function;
45、 //讀入主要內(nèi)容</p><p> cout<<"請輸入客房入住有效期:";</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é)點的指針p。如果指針創(chuàng)建成功,開始用while和if語句實現(xiàn)p指向的節(jié)點的客房編號與存在的客房編號的比較。如果相同,輸出該客房的信息并刪除;如果沒有相同的,提示沒有所查詢的房間。
48、</p><p> void DeletetheGuestroom(tList<cGuestroom> *tListMedic) //刪除客房信息</p><p> { char id[BUFSIZE];</p><p> cout<<"\n請輸入你要查找的客房編號:";</p><p&
49、gt; cin>>id; //讀取客房編號</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<<"對不起,你所查找的客房延長了住房日期!\n";</p><p><b>
52、 //如果不能刪</b></p><p> else //如果能刪 </p><p> { count--;</p><p> cout<<"找到了,該客房的原始信息是:\n";</p><p&g
53、t; cout<<"\n\n客房編號:"<<(p->data).ID<<"\t客房類型:"<<(p->data).Type<<"\n\t\t定房日期:"<<(p->data).Book<<"\n\t\t價格:"<<(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> ?。?)信息的修改</b></p><p> 按提示輸入要修改的客房的客房編號,定義一個指向鏈表第一個節(jié)點的指針p。如果指針創(chuàng)建成功,開始用while和
57、if語句實現(xiàn)p指向的節(jié)點的客房編號與存在的客房編號的比較。如果相同,提示輸入房間的各個信息;如果沒有相同,提示沒有所查詢的客房。</p><p> void ModifytheGuestroom(tList<cGuestroom> *tListMedic) //修改客房信息</p><p> { char id[BUFSIZE];</p><p&
58、gt; cout<<"\n請輸入你要查找的客房編號:";</p><p> cin>>id; //讀取客房編號</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客房編號:"<<(p->data).ID<<"\t客房類型:"<<(p->data).Type<<"\n\t\t定房日期:"<<(p->data).Book<<"\n\t\t價格:"<<(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下面開始修改該客房
63、的信息:\n";</p><p> cGuestroom tempGuestroom; //定義臨時客房</p><p> cout<<"請輸入客房的客房編號:";</p><p> cin>>tempGuestroom.ID;
64、 //讀入客房編號</p><p> cout<<"請輸入客房的客房類型:";</p><p> cin>>tempGuestroom.Type; //讀入客房類型</p><p> cout<<"請輸入客人的定房日期:&q
65、uot;;</p><p> cin>>tempGuestroom.Book; //讀入定房日期</p><p> cout<<"請輸入客房的客房價格:";</p><p> cin>>tempGuestroom.Price;
66、 //讀入價格</p><p> cout<<"請輸入客房的客房主要內(nèi)容:";</p><p> cin>>tempGuestroom.Function; //讀入客房的主要內(nèi)容</p><p> cout<<"請輸入客人入住客房有效期
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.測試</b></p><p> 程序測試是將編制的程序投入實際運行前,用手工或編譯程序等方法進(jìn)行測試,修正語法錯誤和邏輯錯誤的過程。</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> 編譯成功后開始運行,
78、信息錄入后,不能在文檔中正確排序輸出,經(jīng)Debug調(diào)試,發(fā)現(xiàn),以客人的入住天數(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é)與體會</b></p><p> 本次的C++課程設(shè)計雖然只是短短的兩個星期,但是卻令我體會很多,也學(xué)到很多東西。利用C++去設(shè)計客房
87、管理,使我加強了對C++的認(rèn)識,也對現(xiàn)代客房的基本運作管理有了初步了解。</p><p> 在這次課程設(shè)計中,我還懂得了程序開發(fā)中的一些比較重要的步驟并且學(xué)會了一些沒有接觸過的知識,比如需求分析、類的設(shè)計以及類與類之間的關(guān)系,UML圖形的表示方法等。面向?qū)ο蟪绦蛟O(shè)計作為一門軟件設(shè)計的課程,具有極強的實踐性,使我加強了靈活應(yīng)用理論知識的能力及面向?qū)ο蟪绦蛟O(shè)計技能。C++語言相對于C語言來更具有優(yōu)越性,它不僅兼容C
88、,還有一個非常重要的特點就是面向?qū)ο螅ň唧w來講就是類),另外模板技術(shù)的頻繁引用,也使整個程序看起來更清晰,更有條理化,所以,對模塊的掌握,在C++學(xué)習(xí)中是非常重要的。 </p><p> 在本次的應(yīng)用程序的設(shè)計和創(chuàng)建過程中,我遇到了許多問題,有些是自己沒有在教科書中學(xué)過的,但是卻是系統(tǒng)所必須的,我通過在網(wǎng)上查找資料、查找書本、請教老師,一步步的把這些問題搞懂了,所以,課程設(shè)計也培養(yǎng)了我們探索實踐的能力。<
89、/p><p> 總之,我覺得,我們學(xué)習(xí)和掌握的知識,只有通過實際應(yīng)用,才能真正的理解和掌握,才能更好的去應(yīng)用。以前上C++課程,只是零散被動地接受知識,而不是主動地去吸收滲透,而此次的課程設(shè)計卻讓我對編程產(chǎn)生了興趣,習(xí)慣獨立自主地完成任務(wù),在困難中尋求幫助,加強和同學(xué)間的互幫互助,相信自己會在以后的學(xué)習(xí)和工作更加有經(jīng)驗。通過課程設(shè)計,我既復(fù)習(xí)了以前的舊知識,又學(xué)到了一些新的知識;設(shè)計增強了我們用所學(xué)知識去解決具體問
90、題的能力,進(jìn)一步培養(yǎng)了我們獨立思考問題和解決問題的能力。 </p><p><b> 7.參考文獻(xiàn)</b></p><p> 【1】陳維興,林小茶.C++面向?qū)ο蟪绦蛟O(shè)計教程.北京.清華大學(xué)出版社2010,10</p><p> 【2】譚浩強.C語言程序設(shè)計.北京:清華大學(xué)出版社.2010,5</p><p>
91、【3】www.51CTO.com</p><p><b> 8.源代碼</b></p><p> //客房管理系統(tǒng)主要實現(xiàn)的功能包括:客房信息的錄入、修改、刪除、剩余客房信息查詢、排序、輸出??头啃畔⒖蓪懭胛募部蓮奈募凶x取。</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(); //按照編號找客房</p><p> void FindTheGuestroomByT
94、ype(); //按照類型找客房</p><p> void FindTheGuestroomByPrice(); //按照價格找客房</p><p> void DeleteTheGuestroom(); //刪除客房</p><p> void AddTheGuestroom(); //客房添加</p>
95、;<p> void ModifyTheGuestroom(); //修改客房</p><p> template <class T> //template:模板,樣板</p><p> class cNode //節(jié)點</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、入一個元素</p><p> cNode<T>* GetcNode(int i); //返回第i個節(jié)點</p><p> bool Find(const T e); //在鏈表中查找某個值</p><p> ~tList(); //銷毀鏈表,析
100、構(gòu)</p><p> cNode<T> *head; //頭節(jié)點</p><p><b> };</b></p><p> template <class T></p><p> tList<T>::tList()
101、 //類的成員函數(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個節(jié)點</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) //在鏈表中查找某個值</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]; //客房編號</p><p> char Type[BUFSIZE]; //客房類型</p><p> char Book[BUFSIZE]; //提前定房日期</p><p&
117、gt; char Price[BUFSIZE]; //客房價格</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ù)庫</p>&l
120、t;p><b> {</b></p><p> char buf[BUFSIZE]; </p><p> ifstream ifile("Guestroom.txt",ios_base::in);//創(chuàng)建一個輸出文件流對象</p><p> if (!ifile) </p><p>&
121、lt;b> { </b></p><p> cerr << "讀取時打開文件出錯!" << 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);//讀取客房編號</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);//讀取價格</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; //定義臨時客房</p><
129、;p> cout<<"下面開始添加客房信息\n";</p><p> cout<<"請輸入入住的客房編號:";</p><p> cin>>tempGuestroom.ID; //讀入客房編號</p><p> cout<<"請輸入客房類型:
130、";</p><p> cin>>tempGuestroom.Type; //讀入客房類型</p><p> cout<<"請輸入客人定房日期:";</p><p> cin>>tempGuestroom.Book; //讀入定房日期</p><p>
131、 cout<<"請輸入客房價格:";</p><p> cin>>tempGuestroom.Price; //讀入價格</p><p> cout<<"請輸入客房的主要內(nèi)容:";</p><p> cin>>tempGuestroom.Function; //
132、讀入主要內(nèi)容</p><p> cout<<"請輸入客房入住有效期:";</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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++酒店管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--酒店管理系統(tǒng)
- 酒店管理系統(tǒng)_c++課程設(shè)計報告
- c++課程設(shè)計報告--酒店管理系統(tǒng)
- c++課程設(shè)計·酒店管理系統(tǒng)
- c++課程設(shè)計報告-- 酒店點菜管理系統(tǒng)設(shè)計
- c++課程設(shè)計--酒店客房管理系統(tǒng)
- 銷售管理系統(tǒng)c++課程設(shè)計
- 《c++》課程設(shè)計倉庫管理系統(tǒng)
- c++課程設(shè)計-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計-學(xué)生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計學(xué)生通訊管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計報告-- 學(xué)籍管理系統(tǒng)
- c++課程設(shè)計---學(xué)生學(xué)籍管理系統(tǒng)
- c++課程設(shè)計---公司人員管理系統(tǒng)
評論
0/150
提交評論