酒店管理系統(tǒng)-C++課程設(shè)計報告_第1頁
酒店管理系統(tǒng)-C++課程設(shè)計報告_第2頁
酒店管理系統(tǒng)-C++課程設(shè)計報告_第3頁
酒店管理系統(tǒng)-C++課程設(shè)計報告_第4頁
酒店管理系統(tǒng)-C++課程設(shè)計報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上酒店管理系統(tǒng)程序設(shè)計基礎(chǔ)課程設(shè)計報告專 業(yè): 計算機科學(xué)與技術(shù) 班 級: 11計科1班 姓 名: 指導(dǎo)教師: 2012 年 7 月 2 日1、課程設(shè)計題目描述和要求 1.1課程題目: 酒店管理系統(tǒng) 1.2 課程要求:1. 屏幕上出現(xiàn)一個界面,讓操作員能夠方便的選擇所需要進(jìn)行的操作,如不同級別房間價格的查詢、修改、刷除等 。2. 對不同標(biāo)準(zhǔn)的房間實施不同的收費標(biāo)準(zhǔn),也可以按天收費或按小時收費,可根據(jù)顧客需要在等級的入住的時候進(jìn)行選擇。3. 月底進(jìn)行結(jié)算,實收多少,應(yīng)收多少。2、課程設(shè)計目的: 通過C+語言編程實現(xiàn)酒店管理系統(tǒng)的基本功能。酒店管理系統(tǒng)的實現(xiàn)核心是要錄入客人

2、信息并在退房時結(jié)算,同時具有月底結(jié)算功能。此程序重在滿足其要求,使用者可以方便的使用。也可以根據(jù)自己的需求對程序進(jìn)行優(yōu)化。3、課程設(shè)計結(jié)構(gòu)圖 4. 課程設(shè)計總結(jié) 在做程序設(shè)計前就已經(jīng)感覺到我設(shè)計的酒店管理系統(tǒng)比較復(fù)雜,不僅要寫出實現(xiàn)各種功能的函數(shù)還要保證函數(shù)之間的連接,怎樣通過函數(shù)之間的關(guān)系能很好的把函數(shù)連接起來,還要保證程序能夠很好的而且有效的運行。還有可能遇到一些以前沒有用到的知識,像怎樣在輸入有誤的情況下進(jìn)行異常處理,這些都要通過函數(shù)的功能來實現(xiàn),這些對我來說都是新的知識,而且覺得很有難度。 在做程序設(shè)計前還必須把書本上的基本知識搞懂,程序設(shè)計會用到書中的類做,對類的理解也不是很到位,一

3、些概念的知識還沒有很好的理解,所以還需要借助書中的知識來加深對類的理解。在編程的過程中也遇到了很多的困難,但是通過同學(xué)的幫助漸漸對于程序有更深一步的理解,而且他們也幫我編一個對異常處理的函數(shù),這樣在異常處理的過程中就能很好的處理因為在輸入有誤的情況的錯誤。經(jīng)過這次課程設(shè)計的編寫我有增加了一些新知識,知道自己在編程方面還欠缺甚多,在自己完成了編程之后覺得收益良多,原來書本上的東西并不少,我們學(xué)習(xí)不要貪多,一定要把書本上的知識掌握好!在這次課程設(shè)計的編寫中我了解了一些輸入輸出流,知道了如何把程序保存到磁盤中,這些知識都是以前沒有深究和不多用的。比如:常用的輸入輸出流除iostream(通用輸入輸出

4、流和其他輸入輸出流的基類)外還有fstream(輸入輸出文件流)和strstream(輸入書出字符串流類)。書本上好多知識都是我們沒留意而在程序中要用到的。選課題的時候心高氣傲覺得自己能編出來,而正要著手編的時候才知道題目并不簡單??吹竭@個課題的時候覺得題目要求并不高,而且函數(shù)名及功能都給出來了,只需把它填滿就行。處于心理作用而且老師也說了課程設(shè)計是要把整本書的知識都融合在一起的,于是我開始想如何用類、如何把程序?qū)懙煤唵蚊髁?,但是想了好久也想不出來,于是自己搜了一些有關(guān)這一課題的程序,想從中獲得一些靈感,找到一些好的方法。事與愿違,網(wǎng)上的程序好多,大都用到了數(shù)據(jù)庫,看不懂,我選了一個C程序來看

5、,發(fā)現(xiàn)里面好多頭文件都不認(rèn)識,而它用的是struct和class相結(jié)和,多文件的編程,包括的知識廣泛,感覺很復(fù)雜。我后面就模范他的結(jié)構(gòu),用簡單的語句編出框架,然后在一步步深入細(xì)化,最后用fstream類輸入輸出文本,然而簡單的程序也有出錯的時候,經(jīng)過反復(fù)的修改、調(diào)試終于寫出了這個程序!5、 參考書目: 1 譚浩強,C+程序設(shè)計,北京,清華大學(xué)出版社,2006年. 2 詹紅霞、侯思穎、陶永紅,Visual C+ 程序設(shè)計教程,北京,清華大學(xué)出版社, 2007年附錄:#include <iostream>#include <fstream>using namespace s

6、td;int n;char b5="kong"struct date /時間結(jié)構(gòu)體int year; int month; int day;in,out;struct hotell /客房結(jié)構(gòu)體int num; /房號 char leixing5 ; /房間類型 int price; /房間價格 char noman5; /房間是否空閑 char name20; /客戶姓名 date in; /用結(jié)構(gòu)體定義的入住時間date out; /用結(jié)構(gòu)體定義的退房時間 int pay; /預(yù)付金額 int shenfen; /身份證號 int shu; /客房數(shù)目int input

7、; /客房收入 room100;void luru() /客房信息錄入函數(shù) int i,j;ofstream kefang("kefang.txt",ios:binary); /打開二進(jìn)制文件if ( ! kefang)cerr<<"文件沒有打開!"<<endl;abort();cout<<" 您選擇了客房信息錄入功能n"cout<<" 現(xiàn)在進(jìn)行客房信息的錄入n"cout<<" 總客房數(shù)為100間,請輸入您要錄入的客房數(shù)。nn"cout

8、<<" 請輸入房間數(shù)"<<endl;cout<<" "cin>>n;if(n>100|n<=0)cout<<" 您的輸入有誤,請重試nn"luru();for(i=0;i<n;i+)cout<<" 客房號"<<endl; cout<<" " cin>>roomi.num; cout<<" 客房類型(1、 2、 3、)n 請在1-3中進(jìn)行選擇"

9、;<<endl; cout<<" " cin>>roomi.leixing; cout<<" 客房價格"<<endl; cout<<" " cin>>roomi.price;for(j=0;j<5;j+) roomi.nomanj=bj; /此時客房為kong roomi.shu=n; /錄入的客房數(shù)目cout<<endl;cout<<" 本客房信息錄入結(jié)束nn" kefang.write(char*)

10、&roomi,sizeof(roomi);kefang.close();void dengji() /客人入住登記函數(shù) char a5="man"int k,j,i;fstream kefang("kefang.txt",ios:in|ios:out|ios:binary); if(!kefang)cerr<<"文件打開失??!"<<endl;abort();cout<<" 請輸入客人人數(shù)"<<endl;cout<<" " cin

11、>>k; for (int x=0;x<k;x+)cout<<" 請輸入客人的房號"<<endl; cout<<" " cin>>i;roomi-1.num=i; kefang.seekg(i-1*sizeof(ai-1);kefang.read(char*)&roomi-1,sizeof(roomi-1);cout<<" 請輸入客人的姓名"<<endl; cout<<" " cin>>room

12、; cout<<" 請輸入客人的身份證號"<<endl; cout<<" " cin>>roomi-1.shenfen; cout<<" 請輸入客人入住時間,年/月/日"<<endl; cout<<" 年: " cin>>roomi-1.in.year; cout<<" 月: "cin>>roomi-1.in.month; cout<<"

13、日: "cin>>roomi-1.in.day; cout<<" 請輸入客人的預(yù)付金額(單位:元)"<<endl; cout<<" " cin>>roomi-1.pay;for(j=0;j<5;j+) roomi-1.nomanj=aj; /此時客房為man kefang.write(char*)&roomi-1,sizeof(roomi-1);kefang.close();cout<<" 客人入住登記結(jié)束,按回車鍵返回主菜單!"<&

14、lt;endl;void tuifang() /客人退房結(jié)算int a,i,j,pay1,pay2;fstream kefang("kefang.txt",ios:in|ios:out|ios:binary); if(!kefang)cerr<<"文件打開失??!"<<endl;abort(); cout<<" 請輸入客人住的房間號"<<endl; for(i=0;i<n;i+) cout<<" "cin>>a;if(a=roomi.num

15、) kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);cout<<" 客人的房間號"<<roomi.num; cout<<" 客人的入住時間為:"<<roomi.in.year<<"年"<<roomi.in.month<<"月"<<roomi.in.day;cout<<endl; cout<<"

16、 請輸入客人的退房時間 年/月/日"<<endl;cout<<" 年: " cin>>roomi.out.year; cout<<" 月: "cin>>roomi.out.month; cout<<" 日: " cin>>roomi.out.day; cout<<" 客人的退房時間為"<<roomi.out.year<<"年"<<roomi.out.mon

17、th<<"月"<<roomi.out.day<<"日"<<" " pay1=roomi.pay-(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out.day-roomi.in.day)*roomi.price;pay2=(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out

18、.day-roomi.in.day)*roomi.price-roomi.pay; if(pay1>=0)cout<<" 總的住宿費用為"<<(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out.day-roomi.in.day)*roomi.price<<"元,n"cout<<" 入住時預(yù)付費用為:"<<roomi.pay<<endl;cout&l

19、t;<" 剩余費用為:"<<pay1<<endl;if(pay1<0)cout<<" 還須付:"<<pay2<<"元" for(j=0;j<5;j+)roomi.nomanj=bj; /初始化客房為空j=0; /初始化客人名字為空roomi.input=roomi.input+(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out.

20、day-roomi.in.day)*roomi.price; kefang.write(char*)&roomi,sizeof(roomi); else if(a!=roomi.num) cout<<" 輸入房號不存在!請確認(rèn)后重試。nn"<<endl;break;kefang.close();cout<<" 按回車鍵返回主菜單返回主菜單!"<<endl;void find() /客房信息的查詢int i=0;int k=0;char name20;ifstream kefang("kef

21、ang.txt",ios:binary); if(!kefang)cerr<<"文件打開失?。?quot;<<endl;abort(); cout<<" 您選擇要查詢方式:nn"cout<<" 1.按空房間查詢 2.按姓名查詢房間n 3.按房號查詢 4.所有客房信息nn"int chaxun;cout<<" "cin>>chaxun;switch(chaxun)case 1:cout<<" 空房間查詢," /按空

22、房間查詢 cout<<" 查詢結(jié)果如下"<<endl;for(i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(strcmp(roomi.noman,b)=0)cout<<" 空客房號"<< roomi.num<<" "<<"客房類型"<< roomi.leixing;cout<<

23、;" "<<"客房價格"<< roomi.price<<endl;k+=1;cout<<" 現(xiàn)有空房為"<<k<<"間"<<endl<<endl<<" 查詢結(jié)束"<<endl;kefang.close();cout<<" 按回車鍵返回主菜單"break;case 2:cout<<" 請輸入您所查詢的姓名:"<

24、<endl; /按姓名查詢 cout<<" "cin>>name;for(i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(strcmp(name,)=0)cout<<" 此客人入住的房間號 "<<roomi.num<<endl;kefang.close();cout<<" 按回車鍵返回主菜單!"

25、break;case 3:cout<<endl<<" 請輸入房間號:"<<endl; /按客房號查詢int c; cout<<" "cin>>c;for(i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(roomi.num=c)cout<<" 房間號 "<< roomi.num<<" &q

26、uot;<<"入住客人姓名 "<< <<endl;kefang.close();cout<<" 按回車鍵返回主菜單!"break;case 4:cout<<" 所有房間信息如下"<<endl<<endl; /列出所有客房信息for(int i=0;i<roomi.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);cout

27、<<" 客房號"<<roomi.num<<" " cout<<" 客房類型"<< roomi.leixing<<" " cout<<" 客房價格"<< roomi.price<<" " cout<<" 空閑情況"<< roomi.noman<<" n" ; if(roomi.noman=&quo

28、t;man")cout<<" 客人姓名"<<<<" " cout<<" 客人身份證號"<<roomi.shenfen<<" " cout<<" 入住時間"<<roomi.in.year<<"年"<<roomi.in.month<<"月"<<roomi.in.day<<&qu

29、ot; "cout<<endl; cout<<" 預(yù)付費用"<<roomi.pay<<" "<<endl;else if(roomi.noman="kong")cout<<" 此房空"<<endl<<" 瀏覽功能結(jié)束,請您選擇其他功能"<<endl;kefang.close();cout<<"n 查詢結(jié)束n 按回車鍵返回主菜單!"<<e

30、ndl;break;void xiugai() /客房信息的刪除與修改fstream kefang("kefang.txt",ios:in|ios:out|ios:binary); if(!kefang)cerr<<"文件打開失?。?quot;<<endl;abort();hotell *p=room;char h20=" "int c,d,e,j;cout<<" 請輸入要修改或刪除的客房號."<<endl; cout<<" "cin>&g

31、t;c;for(int i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(roomi.num=c)cout<<" 請您選擇要修改或刪除的該客房的信息。"<<endl<<endl; cout<<" 1.客房價格修改"<<endl; cout<<" 2.客房信息的刪除"<<endl; cout<<&qu

32、ot; " cin>>d;switch(d)case 1:cout<<" 客房價格修改"<<endl; /客房價格的修改 cout<<" "cin>>e;(p+c-1)->price=e;kefang.write(char*)&roomc-1,sizeof(roomc-1);kefang.close();cout<<" 修改成功!n 按回車鍵返回主菜單!"<<endl; break;case 2:cout<<&quo

33、t; 客房信息的刪除" /客房信息的刪除hotell *p=room; cout<<endl;cout<<" 1.刪除類型 2.刪除價格 "<<endl;int g;cout<<" "cin>>g;switch(g)case 1:for(j=0;j<20;j+) (p+c-1)->leixingj=hj;kefang.write(char*)&roomc-1,sizeof(roomc-1); kefang.close();cout<<" 該房類

34、型已刪除n 按回車鍵返回主菜單" break;case 2:(p+c-1)->price=NULL;kefang.write(char*)&roomc-1,sizeof(roomc-1);kefang.close();cout<<" 該房價格已刪除n 按回車鍵返回主菜單" break;void jiesuan() /本月結(jié)算 int k=0;ifstream kefang("kefang.txt",ios:binary); if(!kefang)cerr<<"文件打開失敗!"<&l

35、t;endl;abort();for(int j=0;j<n;j+)kefang.read(char*)&roomj,sizeof(roomj);kefang.close();for(int i=0;i<100;i+)k=k+roomi.input;cout<<" 本月收入為:"<<k<<"n 按回車鍵返回主菜單"<<endl;int main () /賓館客房系統(tǒng)主界面函數(shù)cout<<endl<<endl<<endl;cout<<" n"cout<<" $* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *$n"cout<<" $* *$n"cout<<"

溫馨提示

  • 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

提交評論