C++課程設(shè)計(jì)-客房管理系統(tǒng)_第1頁
C++課程設(shè)計(jì)-客房管理系統(tǒng)_第2頁
C++課程設(shè)計(jì)-客房管理系統(tǒng)_第3頁
C++課程設(shè)計(jì)-客房管理系統(tǒng)_第4頁
C++課程設(shè)計(jì)-客房管理系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、南京航空航天大學(xué)面向?qū)ο蟪绦蛟O(shè)計(jì)語言課程設(shè)計(jì)報(bào)告客房管理系統(tǒng)學(xué)號(hào):木有姓名:看程序,別看人日期:2012-5-9、基本信息:二、試驗(yàn)形式與分工:三、需求分析:四、程序的主要功能:五、系統(tǒng)總框架圖.錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽六、程序類的說明:錯(cuò)誤!未定義書簽。七、系統(tǒng)測試錯(cuò)誤!未定義書簽。八、比較有特色的函數(shù)錯(cuò)誤!未定義書簽。九、存在的不足與對(duì)策錯(cuò)誤!未定義書簽。十、程序源代碼錯(cuò)誤!未定義書簽。十一、使用略圖錯(cuò)誤!未定義書簽。、需求分析本系統(tǒng)旨在實(shí)現(xiàn)一個(gè)小型的旅店管理系統(tǒng),對(duì)于一個(gè)小型的旅店來說,實(shí)施 木系統(tǒng)不僅可以減少工作人員數(shù)量,降低成木

2、,而可以大大提高工作效率,降 低工作強(qiáng)度,方便顧客登記入住、預(yù)訂及退房等各種手續(xù),更方便工作人員對(duì)房 間進(jìn)行更有效的管理。程序主要實(shí)現(xiàn)房間總體情況查詢、入住房間、預(yù)訂與取消、查詢房客信息、 退房結(jié)算以及一些輔助功能等。二、程序的主要功能1、添加功能:添加一個(gè)客戶的基本信息,包括姓名,身份證號(hào)碼,電話號(hào)碼,性別,年齡,籍貫, 住宿時(shí)間,客房類型價(jià)格2、刪除功能:按姓名對(duì)一個(gè)客戶的信息進(jìn)行刪除3、清除全部員工信息:能夠?qū)τ谌靠桶说男畔⑦M(jìn)行刪除4、顯示功能:顯示所有客戶的主要信息,例如包括姓名,身份證號(hào)碼,住宿房間5、查找功能:根據(jù)你鍵入的客戶姓名,顯示其詳細(xì)信息(具體顯示住豬日期)6、修改功能:

3、對(duì)客戶的信息進(jìn)行修改7、客房類型介紹功能:對(duì)客戶介紹客房的類型、介紹,以及介紹客歷提供的服務(wù)三、程序運(yùn)行平臺(tái)vc+ 6.0具體操作如下:打開客房管理系統(tǒng)exe程序1. 注冊(cè)管理員帳號(hào)和密碼2. 用剛才注冊(cè)的帳號(hào)密碼登錄3. 然后有九個(gè)選項(xiàng),按相應(yīng)的數(shù)字選擇相應(yīng)的功能(如果是第一次登錄先運(yùn)行九功 能,以便后續(xù)操作).添加客戶信息,進(jìn)入后按提示輸入相應(yīng)的內(nèi)容.查找客八,進(jìn)入后輸入要查找的客戶姓名進(jìn)行查找 .顯示所有住宿和已退房客戶信息 .修改客戶信息,按相應(yīng)的提示修改 退房,客戶結(jié)賬 .刪除客戶信息,一次只能刪除一個(gè) .清空管理員私有賬八里所有客戶信息©.客房類型及客房所帶設(shè)施介紹.在程

4、序第一次運(yùn)行或以示要添加客房時(shí)進(jìn)入此功能四. 系統(tǒng)總框架圖五. 程序類的說明#ifndef base_h#define base_hclass baseprotected:long location;public:virtual void room_introduce()=0;/:k本類的虛函數(shù);#endif#ifndef room_h#define room_h#inckidc"basc.h"class room : public baseprivate:char *room;float money;public:room()room=new char8j;room()d

5、clctcr(x)m;房間類型選擇客戶預(yù)定房間與交押金房間狀態(tài)檢測客房信息介紹客房信息創(chuàng)建int room_type();void room_reserve();bool room_detection(int);void room_introduce();void room_creat();char *get_room_info()return room; float get_money() return money; ;#endif #ifndef gestures_h #define gestures_h # include<string.h> class gesturespr

6、otected:struct gestchar g_name21;姓名,char id_numb19;身份證號(hào)碼char g_sex10;性別char g_telephone12j;電話號(hào)碼char g_addressl100j;籍貫int age;年齡char roomsflo;客房類別float priacc;客房價(jià)格int month,day,year;住宿起始li期int days;客戶住宿時(shí)間gesturesnfo;public:gestures() strcpy(gestures_info.g_name/nulln); strcpy(gestures_info.id_numb/nu

7、llm); strcpy(gestures_info.g_sex,mnulln); strcpy(gestures_info.g_telephone,hnullm); strcpy(gesturesfo.g_address,hnullh); strcpy(gcsturcs_info.rooms/nullh); gestures_info.age=0;gestures _in fo.priace=0.0f;gestures jnfo.days=();int gestures_serve_main(); int gestures_serve_change(); void gestures_show

8、(int);選擇操作客戶的功能 選擇修改客八信息功能 顯示當(dāng)前客戶信息void gestures_main();void gestures_new_gesture();void gestures_search_info();void gestures_show();void gestures_change_gesture(); void gestures_settle_accounts(); void gestures_delete_gesture();void gestures_delete_all();void gesturesogout();主要功能樞紐功能1添加新客戶功能2查找客戶信息

9、功能3顯示所有客戶信息功能4修改客戶信息功能5客戶退房結(jié)賬功能6刪除單個(gè)客戶信息功能7刪除所有客戶信息功能8管理員注銷登錄;#endif#ifndef manages_resource_h#define manages_resource_hclass managesprotected:struct manachar name30;/ 賬戶名稱char numb30;/賬戶密碼 manages_info,temp_info;/用結(jié)構(gòu)體存儲(chǔ)管理員注冊(cè)或登陸時(shí)傳進(jìn)來的信息 public:int land_selete_main();登錄界面的選擇功能void manages_main();/(注冊(cè)用

10、兩數(shù))/bool file_store_register_data();/ffl文件存儲(chǔ)管理員的注冊(cè)信息bool managcscgistcr_chcck();檢驗(yàn)是否有同名注冊(cè)帳號(hào)/(背錄用函數(shù))/bool manages_search_land();/管理員登陸時(shí)在指定文件夾內(nèi)查找管理員的帳號(hào)信息 bool manages_land_main();/管理員輸入fl己的登錄帳號(hào)和密碼,檢驗(yàn)是否登錄成功;#endif六、模塊分析1. 添加模塊系統(tǒng)將提示管理員輸入新添加的客八的倍息2. 顯示模塊顯示模塊將輸;i!所有客戶的主耍資料。3. 修改模塊首先由管理員輸入要修改的客戶的姓名,然后系統(tǒng)用修改

11、函數(shù)查找,顯示該名客戶的 資料,然后系統(tǒng)提示客戶輸入需要修改的項(xiàng)日和新的資料。4. 查找模塊首先由管理員輸入要查找的員工姓名,然后系統(tǒng)用杳找函數(shù)杳找,然麻系統(tǒng)就調(diào)用輸 出函數(shù),輸出所查找的客戶資料。5. 刪除模塊首先由管理員輸入要?jiǎng)h除的單個(gè)客戶姓名,然后調(diào)用刪除函數(shù),刪除該名客戶的資料。6. 清空模塊系統(tǒng)將會(huì)把所有客戶的資料金部刪除,將文件清空。7. 客房類型介紹模塊系統(tǒng)顯示客房類烈及相關(guān)價(jià)格信息供客戶選擇八比較有特色的函數(shù)1. void gestures:gestures_main()int n,t=o;char ch;room room;n=gestures_serve_main();sw

12、itch(n)case 1:gestures_new_gesture();break;case 2:gestures_search_info();break;case 3:gestures_show();break;case 4:system(hclsn);gestures_change_gesture();break;case 5:gestures_settle_accounts();break;case 6:gestures_delete_gesture();break;case 7:gestures_delete_all();break;case 8:room.room_introduc

13、e();break;case 9:room.room_creat();break;case 10:system(ncls");gestures_logout();break;default:system(nclsh);if(t=o)cout«"nntttt選錯(cuò)了少年,給你次機(jī)會(huì)重新選擇nn”; gestures_main();/im 歸調(diào)用elsecout«"nntttt剛才不是說了么,選錯(cuò)了,現(xiàn)在還選錯(cuò),服你了, 我不運(yùn)行了! nn-;delete_tempfo_2();exit(0);cout«"n 按 enter 鍵繼

14、續(xù).”;cin.get(ch);gestures_main();/遞歸調(diào)用,實(shí)現(xiàn)重復(fù)操作2.隱藏登錄密碼void getpasswd(char *passwd)unsigned char c;int i=0;while(c=getch() !=r') if(i<max_passwd_le n&&isprint(c) passwdi+=c; cout«"*h;else if(i>0&&c=ab')-i;coutvv'n'passwdi=*0;管理員輸入ti己的登錄帳號(hào)和密碼,檢驗(yàn)是否登錄成功bool

15、manages:manages_land_main()fstream temp;cin.ignore();cout«hnntt輸入登錄帳號(hào):“;cin.getline(temp_,30/n,);cout«hntt輸入登錄密碼:”;getpasswd(temp_info.numb);用臨吋文件存儲(chǔ)登錄吋管理員的賬號(hào),以便創(chuàng)建管理員私有文件及對(duì)文件的私有化操 作temp.open(,temp.dat,ios:out);if(temp.fail()cout«"aaa錯(cuò)誤:文件創(chuàng)造失敗或者是文件打開失敗.h«cndl; dclctc_

16、tcmp_info();cxit(0);temp«temp_«endl;temp.close();if(managcs_scarch_land()=truc)system(”cls”);cout«"tttttt 登錄成功n“;return true;elsesystem(mclsn);cout«"tttttt 登錄失敗"«endl;return false;九、存在的不足與對(duì)策、編程體會(huì)1、不足(1) 、在結(jié)算模塊中未能解決時(shí)間自動(dòng)計(jì)算問題;(2) 、客房信息不能修改,只能添加客房(3) 、在客戶

17、預(yù)定房間時(shí),由系統(tǒng)tl動(dòng)算出未入住的房間,不能實(shí)現(xiàn)客戶指 定要的房間2、對(duì)策(1) 、手動(dòng)記錄客房入住吋間,在客戶結(jié)賬時(shí),由管理員輸入客戶截至目前 以住宿時(shí)間(2) 、在外部打開記錄客房信息的文件【room.dat,進(jìn)行強(qiáng)制更改(3) 、可以用一個(gè)函數(shù)實(shí)現(xiàn),先檢測客房入住情況,然后檢索客戶指定房間 號(hào)是否空缺,然后在將其存到客戶信息里,但要實(shí)現(xiàn)很麻煩,更改的東西太多。 實(shí)現(xiàn)不劃算。由于時(shí)間較緊,能力有限,該系統(tǒng)肯定還有很多漏洞與不足之處, 請(qǐng)老師批評(píng)指正。3、編程體會(huì)編寫這個(gè)程序,經(jīng)歷的困難有很多,體會(huì)也有很多。(1) 做好事前規(guī)劃很重要。如果想要編寫一個(gè)系統(tǒng),必須想明口你想要它干什 么,這個(gè)

18、系統(tǒng)有什么功能,怎樣實(shí)現(xiàn)等等一系列的問題,然后寫好相關(guān)文字稿, 作為口己在后一步開始編程的指南。(2) 學(xué)會(huì)分模塊處理。對(duì)丁不同的功能,分為不同的獨(dú)立模塊,分別解決。這 樣對(duì)于問題的解決很有幫助,也使得程序的編寫很有條理,非常有利于口后對(duì)于 一些漏洞的修補(bǔ)。(3) 函數(shù)共用。在一個(gè)程序中,肯定有一些函數(shù)的功能與結(jié)構(gòu)是相近的,讓這 類函數(shù)共用,可以節(jié)省資源。(4) 學(xué)會(huì)與外界一起合作。作為一個(gè)初學(xué)者,對(duì)c+語言的陌生感肯定是有的, 在程序的編寫過程中肯定有自c無法解決的問題,這時(shí)就要學(xué)會(huì)與外界交流,去 問同學(xué)也好,上網(wǎng)查也好,總z,編好對(duì)于自己來說是一個(gè)較大的程序僅依靠自 己是難以完成的,要學(xué)會(huì)

19、向人請(qǐng)教。(5) 不可輕言放棄。程序很難編,但并不是編不出來。遇到很困難的問題難以 解決時(shí),不可半途而廢,輕言放棄。編程的過程對(duì)自己來說也是一個(gè)寶貴的學(xué)習(xí) 過程,值得珍惜。(6) 與人交流探討真的很重要,當(dāng)自己有寫不下去的感覺時(shí)跟同學(xué)交流一下, 或許他們會(huì)給自己靈感十、程序源代碼#ifndef base_h#define base hclass base protected:long location;public:virtual void room_introduce()=0;/:k本類的虛函數(shù);#endif #ifndef room_h#dcfinc room_h#include"

20、;base.h" class room : public base private:char *room;float money;public:room() room=new charf8;room() deletejroom;/房間類型選擇客戶預(yù)定房問與交押金房間狀態(tài)檢測客房信息介紹/客房信息創(chuàng)建int room_type();void room_reserve();bool room_detection(int);void room_introduce();void room_creat();char *get_room_info() return room; float gct

21、_moncy() return money;#endif #ifndef manages_resource_h#define manages_resource_hclass managesprotected:struct manachar name30;/賬戶名稱char numb30;/ 賬戶密碼 manages_info,temp_i nfo;/用結(jié)構(gòu)體存儲(chǔ)管理員注冊(cè)或登陸時(shí)傳進(jìn)來的信息public:int land_selete_main();/登錄界面的選擇功能void manages_main();/(注冊(cè)用函數(shù))/bool file_store_register_data()文件存

22、儲(chǔ)管理員的注冊(cè)信息bool manages_register_check();/j驗(yàn)是否有同名注冊(cè)帳號(hào)/(登錄丿 ij 函數(shù))/bool manages_search_land();/管理員登陸時(shí)在指定文件夾內(nèi)查找管理員的帳號(hào)信息 bool manages_land_main();/管理員輸入fl己的登錄帳號(hào)和密碼,檢驗(yàn)是否登錄成功 ;#endif#ifndefgestures_h#define gestures.h# include<string.h>class gesturesi protected:struct gestchar g_namc21;姓名,char id_num

23、b19;身份證號(hào)碼char g_sex10j;性別char g_telephone12;電話號(hào)碼char g_address 100;籍貫int age;年齡char rooms10;客房類別float priace;客房價(jià)格int month,day,year;住宿起始fi期int days;/客戶住宿時(shí)間gestures_info;public:gestures() strcpy(gestures_info.g_name/nulln); strcpy(gestures_info.id_numb/nullh); strcpy(gestures_info.g_sex,hnullu); strc

24、py(gestures_info.g_telephone/nullh); strcpy(gesturesfo.g_address/nullu); strcpy(gestures_info.rooms/nullm); gestures_info.age=0;gesturesn fo.priace=().()f;選擇操作客戶的功能選擇修改客戶信息功能gesturesnfo.days=0;int gestures_serve_main(); int gestures_serve_change();void gestures_show(int);void gestures_main();void ge

25、stures_new_gesture(); void gestures_search_info(); void gestures_show();void gestures_change_gesture(); void gestures_settle_accounts(); void gestures_delete_gesture();void gestures_delete_all();void gesturesogout();顯示當(dāng)前客戶信息 主要功能樞紐功能1添加新客戶功能2杏找客戶信息功能3顯示所有客戶信息功能4修改客戶信息功能5客戶退房結(jié)賬功能6刪除單個(gè)客戶信息功能7刪除所有客戶信息功

26、能8管理員注銷登錄#endif#include"room.h"#include<iostream>using namespace std;#include<stdlib.h>#include<fstream>void delete_temp_info_l()/刪除臨時(shí)文件內(nèi)的信息fstream fpl,fp2;fpl.open("temp.dat" jos:out);fp2.open("true_temp.dath,ios:out);if(fpl.fail()llfp2.fail()cout«haa

27、anntttt 出錯(cuò)啦.ann”;cxit(o);fpl .close();fp2.close();防止在系統(tǒng)運(yùn)行前沒冇【room.dat文件而使得下面以in形式打開文件錯(cuò)誤而退出系統(tǒng) void sct_up_filcl()fstream temp; temp.open(,'room.dat,ios:outlios:applios:binary);if(temp.fail()cout«uaaa錯(cuò)誤:文件創(chuàng)造失敗或者是文件打開失敗."«endl; delete_temp_info_l ();exit(0);)temp.close();/ 文件關(guān)閉房間類型選擇

28、int room: :room_type()int n;coutvvwt* ” «endl“ vvendl請(qǐng)選擇客房類別“ «endl“ «endl«ntt 探1普通1'可100/24小時(shí)(一天)” vvendl“ «endl«ntt 探2標(biāo)準(zhǔn)間300/24小時(shí)(一天)” «endl探"«endl3貴賓間500/24小時(shí)(一天)” «endl«ntt 探“ «cndl“ «endlvvft ” «endl«endl«uttt 選

29、擇:u;cin»n;if(n>3lln<0)system(”cls“);cout«haaann 選錯(cuò)了,少年,再選一次.n«endl«endl; room_type();return n;客戶預(yù)定房間與交押金void room:room_reserve()fstream room_tcmp,tcmp,fp 1 ,fp2;int n;char r10j;n=room_type();if(room_detection(n) room_tcmp.opcn(nroom.dat,ios:in); temp.open(,true_temp.dat,ios

30、:out); if(room_temp.fail()llroom_temp.fail()cout«naaatttt2系統(tǒng)內(nèi)部錯(cuò)誤,系統(tǒng)將關(guān)閉n”; delete_temp_info_l ();exit(o);while( !room_temp.eof() room_temp»r; if(strcmp(room,r)=0) strcat(r/nn);tcmp«r«cndl;room_temp.close(); temp.close();fplopen(toomdat”,ios:out);fp2.open(htrue_temp.dat,ios:in);if(

31、fpl.fail()llfp2.fail()cout«haaatttt3系統(tǒng)內(nèi)部錯(cuò)誤,系統(tǒng)將關(guān)閉n”; dclctc_tcmp_info_l ();cxit(o);while(!fp2.eof()fp2»r;fpl«r«endl;fpl.closeo;fp2.close();elsecoutvv"無此類房間的空房«endl"room_reserve();房間狀態(tài)檢測bool room: room_detection(int n)fstream room_temp;char *ch,c;bool tcmp=falsc;ch=n

32、ew char8;set_up_filel();/防止在系統(tǒng)運(yùn)行前沒有【room.dat文件而使得卜面以in形式打開文件 錯(cuò)誤而退出系統(tǒng)room_temp.open(nroom.datm9ios:in);if(room_tcmp.fail()cout«naaagesters_room 1打開文件失敗,系統(tǒng)將關(guān)閉"«endl; delete_temp_info_l ();exit(0);room_temp.clear();room_temp»room;strcpy(chjoom);while(!room_temp.eof()ch jo:switch(n)c

33、ase 1 :if(strcmp(ch,"普")=0&&room6!='n')cout«hnntttt您需要支付100元人民幣押金! "vvendl;money=100.0f;room_temp.close();cin.gct(c);temp=true;break;case 2:if(strcmp(ch,"標(biāo)”)=()&&room!='n') cout«nnntttt您需要支付300元人民幣押金! “vvendl;money=300.0;room_temp.close()

34、;temp=true;break;case 3:if(strcmp(ch,"貴")=0&&room6!='n') cout«hnntttt您需要支付500元人民幣押金! "vvendl;money=500.0;room_temp.close();temp=true;break;if(temp)break;room_temp»room;strcpy(ch,room);return temp;客房信息介紹void room:roomntroducc()coutvv%l.普通間:內(nèi)涵單人床一張,桌子一張,椅子一把,電視

35、機(jī)一臺(tái),浴室,衛(wèi) 生間nn“;cout«ht2.標(biāo)準(zhǔn)間:內(nèi)涵雙人床一張,桌子一張,椅子兩把,電視機(jī)一臺(tái),浴室,衛(wèi) 生間,空調(diào)nn“;cout«nt3.貴賓間:內(nèi)涵雙人床一張,桌子兩張,椅子四把,電視機(jī)一臺(tái),浴室,衛(wèi) 主間,空調(diào),電腦,熱水機(jī),免費(fèi)咖啡、茶葉,nn“;cout«at附:本店免費(fèi)提供熱水,毛巾,肥皂,洗發(fā)水nn”; fstream fp;char ch10;cout«"t以卜'為本店目而客房信息:”vvendlvvendlvvendl;int i=0;fp.open("room.datm,ios:in);if(fp

36、.fail()cout«haaattnn 錯(cuò)誤:文件打開失敗.nnu;delete_temp_info_l ();exit(0);cout«hth;while(!fp.eof()fp»ch;i+;cout«ch«nttm;if(i%5=0)cout«endl«endl«mt,r;fp.closc();客房信息創(chuàng)建void roon_chack(char *room)/輸入房間格式檢測bool tcmp=truc;char *te;te=new char10j;strcpy(te,room);tef2=,o'

37、whilc(tcmp=truc) if(strcmp(te,m 普")=0&&rooml3j='_')temp=false;else if(strcmp(te標(biāo)”)=0&&room3=,_r)temp=false;else if(strcmp(te,"貴”)=0&&room3=,_')temp=false;elsecout«"aaannttt請(qǐng)注意格式,重新輸入: cin»room;strcpy(te>room);te2=r;deletete;void room:ro

38、om_creat()fstream fplfp2;char te10,ch;cout«nnnttt請(qǐng)輸入所添加的房間號(hào)(格式為:普1 _01/標(biāo)1_01/貴1_01): ”; cin»room;roon_chack(room);/ 客房名稱檢驗(yàn)set_up_filel();fpl .open(hroom.datujos:in);if(fpl.fail()cout«"aaattnn 錯(cuò)誤:文件打開失敗.nn"delete_tempfo_l();exit(0);whilc(!fpl.cof()fpl»te; te6j=,0,;whilc(

39、strcmp(room,tc)=0) cout«naaannttt有相同的房間號(hào),請(qǐng)重新輸入房間號(hào)(格式為:普1_01/ 標(biāo) 1_01/貴 1_01): “;cin»room;roon_chack(room);/ 客房名稱檢驗(yàn)fpl.close();fp2.open(hroom.datu,ios:outlios:app);if(fp2.fail()cout«naaattnn錯(cuò)誤:文件打開失敗nn“;dclctc_tcmp_info_l ();cxit(0);fp2«room«endl;cout«"nnttt 添加成功.&qu

40、ot;;cin.get(ch);fp2.closc();# includehmanages_resource.hn#inckidchgcsturcs.hm#include<iostream>using namespace std;# include<fstream>#include<string.h># includc<stdlib.h>#include<conio.h>#include<ctype.h>#define n 5限制安全輸入次數(shù)#define max_passwd_len 16void delete_temp

41、_info()/ffl除臨吋文件內(nèi)的信息fstream fpl,fp2;fp 1 .open(”temp.dat”,ios: :out);fp2.open("true_temp.dat",ios:out);if(fpl.fail()llfp2.fail()cout«"aaanntttt 出錯(cuò)啦.nn“;exit(o);fpl .close();fp2.close();防止在系統(tǒng)運(yùn)行前沒冇【ma_file.dat】文件而使得下面以in形式打開文件錯(cuò)誤而退出系統(tǒng) void set_up_file()fstrcam ma_filc;ma_file.open(u

42、ma_file.dat,ios:outlios:applios:binary);if(ma_file.fail()cout«'*aaa錯(cuò)誤:文件創(chuàng)造失敗或者是文件打開失敗.h«endl; delete_temp_info();exit(0);ma_file.close();/ 文件關(guān)閉登錄界面的選擇功能int manages:land_selete_main()int n;char ch;cout«"tt” «endl«ntt 探探n «cndl«utt 探【歡迎進(jìn)入客房管理系統(tǒng)】.探h «end

43、l“ «endl«htt* 【1】.【登錄】*” «endl«htt 探*探"«endlv v "tt * * 【2】.【注冊(cè)】*“ vvcndl«“曲*” vvendl«°tt* 【3】【退出】*“ «endl“ «endl“ «endl«ntt 探” vvendl«htt ”«endl«endl«uttt 選擇:“;cin»n;for(int i=l;i+)if(n>=l&&n&l

44、t;=3)return n;elsecout«nnntttt請(qǐng)注意只有三個(gè)選項(xiàng),重新輸入吧.少年n«endl; cin»n;if(i=5)cout«"nntttt 系統(tǒng)自動(dòng)保護(hù)中,按enter鍵退出"vvendlvvendlvvendl; cin.get(ch);delete_temp_info();exit(0);管理登錄功能的丄要函數(shù)void manages:managcs_main()int nj;gestures temp;char ch;n=land_sclctc_main();if(n=l)進(jìn)入登錄功能for(j=0;j+

45、)if(manages_land_main()=true) temp.gestures_main();else if(j=n)cout«"aaa你已超過安全輸入次數(shù),系統(tǒng)將關(guān)閉.h«endl;delete_temp_info();exit(0);else if(n=2)進(jìn)入注冊(cè)功能if(file_store_register_data()=true)systemc'cls");cout«"nntttt注冊(cè)成功";cout«"nnttt請(qǐng)選擇登錄您的賬戶,進(jìn)入系統(tǒng)應(yīng)用:nn”;elsecout

46、71;"nntt 注冊(cè)失敗"cout«"nntt請(qǐng)重新注冊(cè)信息,按enter鍵繼續(xù).nn" cin.get(ch);system("cls"); manages_main();/ 遞歸調(diào)用else if(n=3)/退出系統(tǒng)system(hcls");cout«nnnnttttt 歡迎再次使用."«endl; delete_temp_info();exit(0);/(以下為登錄函數(shù))/隱藏登錄密碼void getpasswd(char *passwd)unsigned char c;in

47、t i=0;while(c=getch() !=v) if(i<max_passwd_le n&&isprint(c)passwdi+=c; cout«n*"else if(i>()&&c=br)-i;)cout«n'passwdfi='o,;管理員輸入自己的登錄帳號(hào)和密碼,檢驗(yàn)是否登錄成功bool manages:managesand_main()fstream temp;cin.ignorc();cout«nnntt輸入登錄帳號(hào):"cin.getline(temp_info.nam

48、e,30/n,);cout«"ntt輸入登錄密碼:";getpasswd(temp_info.numb);用臨時(shí)文件存儲(chǔ)背錄時(shí)管理員的賬號(hào),以便創(chuàng)建管理員私有文件及対文件的私有化操 作temp.open(,ltemp.dat,ios:out);if(temp.fail()cout«haaa錯(cuò)誤:文件創(chuàng)造失敗或者是文件打開失敗.h«endl; delete_temp_info();exit(0);)temp«temp_«endl;temp.close();if(manages_searchand()=true

49、) system(mclsm);cout«'rtttttt 登錄成功n“;return true;elsesystem(”cls”);cout«"tttttt 登錄失敗"«endl;return false;管理員背陸時(shí)在【ma_file.dat】文件夾內(nèi)查找管理員的帳號(hào)信息 bool manages:manages_search_land()fstrcam ma_filc;bool temp=false;set_up_file();/防止在系統(tǒng)運(yùn)行前沒有【ma_file.dat文件而使得下而以in形式打開文件 錯(cuò)課而退出系統(tǒng)ma_fi

50、le.open(nma_file.dath,ios:inlios:binary);if(ma_filc.fail()cout«"aaa錯(cuò)誤:文件創(chuàng)造火敗或者是文件打開失敗.”vvendl; delete_temp_info();exit(0);ma_file.read(char*)&m anages_info,sizeof(manages_info);/cout«managcsn fo.namc«cndl«managcsfo.numb«cndl;while( !ma_file.eof() if(strcmp(temp_info

51、.name,manages_)=0&&strcmp(temp_info.numb,manages_info.numb)=()tcmp=truc;break;ma_file.read(char*)&manages_info,sizcof(managesfo);ma_file.close();/>c 件關(guān)閉return temp;/(以下為注冊(cè)函數(shù))/用指定文件【ma_file.dat存儲(chǔ)管理員的注冊(cè)信息bool managcs:filc_storc_rcgistcr_data()fstream ma_file;cin.ignore();cout&#

52、171;"nnttttt 成功進(jìn)入注冊(cè)系統(tǒng)"«cndl; cout«nnntt請(qǐng)輸入注冊(cè)賬戶姓名:”; cin.getline(manages_,30);cout«hntt請(qǐng)輸入注冊(cè)賬戶密碼:”;cin.getline(manages_info.numb,30); if(manages_register_check()=true)ma_file.open(hma_file.datlf,ios:outlios:applios:binary);if(ma_file.fail()cout«"aaa錯(cuò)誤:文件創(chuàng)造失

53、敗或者是文件打開失敗."«endl;delete_temp_info();exit(0);ma_filc.writc(char*)&m anages_info,sizeof(manages_in fo); ma_file.close(); 文件關(guān)閉system(hclsm);歡迎使川本系統(tǒng)cout«hnn * * * * * * * * * * * 恭 喜 您 注 冊(cè) 成 功,*”vvcndlvvcndlreturn true;elsecout«nnntttt有同名注冊(cè)客戶存在m«endl;return false;檢驗(yàn)是否有同名注冊(cè)帳號(hào)bool manages:manages_register_check()fstream ma_file;bool temp=true;set_up_file();/防止在系統(tǒng)運(yùn)行詢沒有【ma_file.dat文件而使得下而以in形式打開文件 錯(cuò)誤而退出系統(tǒng)ma_file.open(l,ma_file.dat,ios:inlios:binary);if(ma_file.fail()cout«"aaa錯(cuò)誤:文件創(chuàng)造失敗或者是文件打開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論