




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
酒店管理系統(tǒng)程序設計基礎課程設計報告專 業(yè): 計算機科學與技術 班 級: 08計科1班 姓 名: 顧力雄 指導教師: 秦懷斌 2009 年 8 月 27 日目 錄1、課程設計目的22、課程設計題目描述和要求22.1 課程題目22.2課程要求23、課程設計結構圖24、C+課程設計總結25、參考書目3 附錄:源代碼31、課程設計目的: 通過C+語言編程實現(xiàn)酒店管理系統(tǒng)的基本功能。酒店管理系統(tǒng)的實現(xiàn)核心是要錄入客人信息并在退房時結算,同時具有月底結算功能。此程序重在滿足其要求,使用者可以方便的使用。也可以根據(jù)自己的需求對程序進行優(yōu)化。2、課程設計題目描述和要求 2.1課程題目: 酒店管理系統(tǒng) 2.2 課程要求: 屏幕上出現(xiàn)一個界面,讓操作員能夠方便的選擇所需要進行的操作,如不同級別房間價格的查詢 修改 刷除等 。不同標準的房間實施不同的收費標準,月底進行結算,實收多少。3、課程設計結構圖酒店管理系統(tǒng) 房間信息的錄入客人的入住登記客人的退房結算客房信息的查詢客房信息的刪除和修改客房信息的刪除和修改退出系統(tǒng)4. 課程設計總結經(jīng)過這次課程設計的編寫我有增加了一些新知識,知道自己在編程方面還欠缺甚多,在自己完成了編程之后覺得收益良多,原來書本上的東西并不少,我們學習不要貪多,一定要把書本上的知識掌握好!在這次課程設計的編寫中我了解了一些輸入輸出流,知道了如何把程序保存到磁盤中,這些知識都是以前沒有深究和不多用的。比如:常用的輸入輸出流除iostream(通用輸入輸出流和其他輸入輸出流的基類)外還有fstream(輸入輸出文件流)和strstream(輸入書出字符串流類)。書本上好多知識都是我們沒留意而在程序中要用到的。選課題的時候心高氣傲覺得自己能編出來,而正要著手編的時候才知道題目并不簡單??吹竭@個課題的時候覺得題目要求并不高,而且函數(shù)名及功能都給出來了,只需把它填滿就行。處于心理作用而且老師也說了課程設計是要把整本書的知識都融合在一起的,于是我開始想如何用類、如何把程序寫得簡單明了,但是想了好久也想不出來,于是自己搜了一些有關這一課題的程序,想從中獲得一些靈感,找到一些好的方法。事與愿違,網(wǎng)上的程序好多,大都用到了數(shù)據(jù)庫,看不懂,我選了一個C程序來看,發(fā)現(xiàn)里面好多頭文件都不認識,而它用的是struct和class相結和,多文件的編程,包括的知識廣泛,感覺很復雜。我后面就模范他的結構,用簡單的語句編出框架,然后在一步步深入細化,最后用fstream類輸入輸出文本,然而簡單的程序也有出錯的時候,經(jīng)過反復的修改、調試終于寫出了這個程序!5、參考書目:譚浩強,C+程序設計,北京,清華大學出版社,2006年.1 詹紅霞、侯思穎、陶永紅,Visual C+ 程序設計教程,北京,清華大學出版社,2007年附錄:#include #include using namespace std;int n;char b5=kong;struct date /時間結構體int year; int month; int day;in,out;struct hotell /客房結構體int num; /房號 char leixing5 ; /房間類型 int price; /房間價格 char noman5; /房間是否空閑 char name20; /客戶姓名 date in; /用結構體定義的入住時間date out; /用結構體定義的退房時間 int pay; /預付金額 int shenfen; /身份證號 int shu; /客房數(shù)目int input; /客房收入 room100;void luru() /客房信息錄入函數(shù) int i,j;ofstream kefang(kefang.txt,ios:binary); /打開二進制文件if ( ! kefang)cerr文件沒有打開!endl;abort();cout 您選擇了客房信息錄入功能n;cout 現(xiàn)在進行客房信息的錄入n;cout 總客房數(shù)為100間,請輸入您要錄入的客房數(shù)。nn;cout 請輸入房間數(shù)endl;coutn;if(n100|n=0)cout 您的輸入有誤,請重試nn;luru();for(i=0;in;i+)cout 客房號endl; coutroomi.num; cout 客房類型(1、 2、 3、)n 請在1-3中進行選擇endl; coutroomi.leixing; cout 客房價格endl; coutroomi.price;for(j=0;j5;j+) roomi.nomanj=bj; /此時客房為kong roomi.shu=n; /錄入的客房數(shù)目coutendl;cout 本客房信息錄入結束nn; kefang.write(char*)&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;coutk; for (int x=0;xk;x+)cout 請輸入客人的房號endl; couti;roomi-1.num=i; kefang.seekg(i-1*sizeof(ai-1);kefang.read(char*)&roomi-1,sizeof(roomi-1);cout 請輸入客人的姓名endl; ; cout 請輸入客人的身份證號endl; coutroomi-1.shenfen; cout 請輸入客人入住時間,年/月/日endl; coutroomi-1.in.year; coutroomi-1.in.month; coutroomi-1.in.day; cout 請輸入客人的預付金額(單位:元)endl; coutroomi-1.pay;for(j=0;j5;j+) roomi-1.nomanj=aj; /此時客房為man kefang.write(char*)&roomi-1,sizeof(roomi-1);kefang.close();cout 客人入住登記結束,按回車鍵返回主菜單!endl;void tuifang() /客人退房結算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;in;i+) couta;if(a=roomi.num) kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);cout 客人的房間號roomi.num; cout 客人的入住時間為:roomi.in.year年roomi.in.month月roomi.in.day;coutendl; cout 請輸入客人的退房時間 年/月/日endl;coutroomi.out.year; coutroomi.out.month; coutroomi.out.day; cout 客人的退房時間為roomi.out.year年roomi.out.month月roomi.out.day日=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 入住時預付費用為:roomi.payendl;cout 剩余費用為:pay1endl;if(pay10)cout 還須付:pay2元; for(j=0;j5;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.day-roomi.in.day)*roomi.price; kefang.write(char*)&roomi,sizeof(roomi); else if(a!=roomi.num) cout 輸入房號不存在!請確認后重試。nnendl;break;kefang.close();cout 按回車鍵返回主菜單返回主菜單!endl;void find() /客房信息的查詢int i=0;int k=0;char name20;ifstream kefang(kefang.txt,ios:binary); if(!kefang)cerr文件打開失??!endl;abort(); cout 您選擇要查詢方式:nn;cout 1.按空房間查詢 2.按姓名查詢房間n 3.按房號查詢 4.所有客房信息nn;int chaxun;coutchaxun;switch(chaxun)case 1:cout 空房間查詢,; /按空房間查詢 cout 查詢結果如下endl;for(i=0;iroom0.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 客房價格 roomi.priceendl;k+=1;cout 現(xiàn)有空房為k間endlendl 查詢結束endl;kefang.close();cout 按回車鍵返回主菜單;break;case 2:cout 請輸入您所查詢的姓名:endl; /按姓名查詢 coutname;for(i=0;iroom0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(strcmp(name,)=0)cout 此客人入住的房間號 roomi.numendl;kefang.close();cout 按回車鍵返回主菜單!;break;case 3:coutendl 請輸入房間號:endl; /按客房號查詢int c; coutc;for(i=0;iroom0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(roomi.num=c)cout 房間號 roomi.num 入住客人姓名 endl;kefang.close();cout 按回車鍵返回主菜單!;break;case 4:cout 所有房間信息如下endlendl; /列出所有客房信息for(int i=0;iroomi.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);cout 客房號roomi.num ; cout 客房類型 roomi.leixing ; cout 客房價格 roomi.price ; cout 空閑情況 roomi.noman n ; if(roomi.noman=man)cout 客人姓名 ; cout 客人身份證號roomi.shenfen ; cout 入住時間roomi.in.year年roomi.in.month月roomi.in.day ;coutendl; cout 預付費用roomi.pay endl;else if(roomi.noman=kong)cout 此房空endl 瀏覽功能結束,請您選擇其他功能endl;kefang.close();coutn 查詢結束n 按回車鍵返回主菜單!endl;break;void xiugai() /客房信息的刪除與修改fstream kefang(kefang.txt,ios:in|ios:out|ios:binary); if(!kefang)cerr文件打開失??!endl;abort();hotell *p=room;char h20= ;int c,d,e,j;cout 請輸入要修改或刪除的客房號.endl; coutc;for(int i=0;iroom0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(roomi.num=c)cout 請您選擇要修改或刪除的該客房的信息。endlendl; cout 1.客房價格修改endl; cout 2.客房信息的刪除endl; coutd;switch(d)case 1:cout 客房價格修改endl; /客房價格的修改 coute;(p+c-1)-price=e;kefang.write(char*)&roomc-1,sizeof(roomc-1);kefang.close();cout 修改成功!n 按回車鍵返回主菜單!endl; break;case 2:cout 客房信息的刪除; /客房信息的刪除hotell *p=room; coutendl;cout 1.刪除類型 2.刪除價格 endl;int g;coutg;switch(g)case 1:for(j=0;jleixingj=hj;kefang.write(char*)&roomc-1,sizeof(roomc-1); kefang.close();coutprice=NULL;kefang.write(char*)&roomc-1,sizeof(roomc-1);kefang.close();cout 該房價格已刪除n 按回車鍵返回主菜單; break;void jiesuan() /本月結算 int k=0;ifstream kefang(kefang.txt,ios:binary); if(!kefang)cerr文件打開失?。ndl;abort();for(int j=0;jn;j+)kefang.read(char*)&roomj,sizeof(roomj);kefang.close();for(int i=0;i100;i+)k=k+roomi.input;cout 本月收入為:kn 按回車鍵返回主菜單endl;int main () /賓館客房系統(tǒng)主界面函數(shù)coutendlendlendl;cout n;cout $* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *$n;cout $* *$n;cout $* 歡迎使用客房管理系統(tǒng) *$n;co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 往年藥師試題及答案
- 2025年商務公司股權變更協(xié)議
- 2025年商場內部裝修工程安全管理協(xié)議
- 2025年飯莊股東權益保護協(xié)議
- 2025年倉儲設施租賃協(xié)議策劃終止標準
- 2025年勞務合作策劃管理協(xié)議
- 統(tǒng)籌推進教師教育能力提升的現(xiàn)狀及總體形勢
- 儲備物資的高效配送與倉儲創(chuàng)新
- 文化創(chuàng)新與社會需求的契合路徑
- 高升專數(shù)學(文)一元一次方程應用題模擬試卷(2025年)
- 2025年中國振弦式應變計市場調查研究報告
- 上海市閔行區(qū)六校聯(lián)考2023-2024學年高一下學期期末考試數(shù)學試題(解析版)
- GB/T 6516-2025電解鎳
- 職業(yè)技術學院2024級工業(yè)互聯(lián)網(wǎng)技術專業(yè)人才培養(yǎng)方案
- 2025年全國低壓電工證(復審)考試筆試試題(300題)含答案
- 羅森加盟合同協(xié)議
- 榆林市煤炭資源整合實施方案
- 跨學科實踐活動05 基于碳中和理念設計低碳行動方案(活動設計)-2024-2025學年九年級化學跨學科實踐活動教學教學設計+設計(人教版2024)
- 2025年中考英語押題預測卷(徐州專用)(原卷版)
- 前程無憂測評題庫
- 2025-2030中國馬丁靴行業(yè)發(fā)展分析及發(fā)展前景與投資研究報告
評論
0/150
提交評論