酒店客房預(yù)訂管理系統(tǒng)_第1頁
酒店客房預(yù)訂管理系統(tǒng)_第2頁
酒店客房預(yù)訂管理系統(tǒng)_第3頁
酒店客房預(yù)訂管理系統(tǒng)_第4頁
酒店客房預(yù)訂管理系統(tǒng)_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

解專業(yè)、年級(jí):2010計(jì)科(1)大班課程名稱:軟件工程 項(xiàng)目名稱:酒店客房預(yù)訂管理系統(tǒng) 學(xué)號(hào)姓名:10151251張勝南 之解 1.1系統(tǒng)開發(fā)背景和意義 17 .....................................21 .2系統(tǒng)功能模塊圖 23 之解4.1系統(tǒng)詳細(xì)設(shè)計(jì)進(jìn)度規(guī)劃.............................................................25 254.2系統(tǒng)詳細(xì)設(shè)計(jì)任務(wù) 254.3系統(tǒng)物理方案配置設(shè)計(jì) 264.4系統(tǒng)輸入輸出設(shè)計(jì) 26 4.4.2數(shù)據(jù)輸入設(shè)備的選擇 26 之解.....28 #INCLUDE"INFO.H"http://包含所有的類定義 45#INCLUDE"INFO_FUN.H"http://包含所有的函數(shù)定義......45 解USINGNAMESPACEINFO_SPACE; 45 INTCUSTOMER_NUMBER,ROOM_NUMBER; 45 OMER IN_CUSTOMER.OPEN("E:\\CUSTOMER.TXT");//打開存儲(chǔ)客戶信 IN_ROOM.OPEN("E:\\ROOM.TXT");//打開存儲(chǔ)房間信息的文件 NDL52頁腳內(nèi)容 解COUT<<"1 預(yù)定房間"<<ENDL;..................45COUT<<"2 退訂房間"<<ENDL;..................45COUT<<"3 查詢房間預(yù)定情況"<<ENDL;..........45COUT<<"4 增刪客戶信息"<<ENDL;..............45COUT<<"5 增刪房間信息"<<ENDL;..............45COUT<<"6 查詢客戶和房間總信息"<<ENDL;......45COUT<<"0 退出"<<ENDL;.....................45COUT<<"YOURCHOICE:"<<ENDL; 45 解 IF(!CHECK(CB_PTR,CUSTOMER_NUMBER)) 46 IF(!CHECK(RB_PTR,ROOM_NUMBER)) 46 解 IF(!IB_PTR->CHECKALL(IB_PTR,CUSTOMER_NUMBER,ROOM_NUMBER)) IF(!CHECK(CB_PTR,CUSTOMER_NUMBER)) 46 解 IF(IB_PTR->CHECK(IB_PTR,CUSTOMER_NUMBER))//檢查該客戶 解 COUT<<"1 增加客戶信息"<<ENDL;..............47COUT<<"2 刪除客戶信息"<<ENDL;..............47COUT<<"3 返回主菜單"<<ENDL;................47 解 TEMP.NAME=NAME;TEMP.NUMBER=NUMBER; 48 TEMP.NAME=NAME;TEMP.NUMBER=NUMBER; 48 解 COUT<<"1 增加房間信息"<<ENDL;..............48COUT<<"2 刪除房間信息"<<ENDL;..............48COUT<<"3 返回主菜單"<<ENDL;................48 解 COUT<<"請(qǐng)輸入房間編號(hào),等級(jí)(1-5級(jí)),配置(高級(jí),優(yōu),良, TEMPROOMNUMBERNUMBER 49LLEVEL TEMPROOMCONFIGCONFIG 49 解 TEMPROOMNUMBERNUMBER 49LLEVEL TEMPROOMCONFIGCONFIG 49 解 READFILE(IN_CUSTOMER,CB_PTR); 49READFILE(IN_ROOM,RB_PTR);//讀取兩個(gè)文件的所有信息49R RBASEPTRRPTR=RB_PTR;//不修改兩個(gè)主要變量的的指向內(nèi) IF(CPTR->THE_CUSTOMER.NUMBER==-1) 50 解 IF(FIND_INFO(IB_PTR,CPTR->THE_CUSTOMER.NUMBER)).......50{....................................................50COUT<<CPTR->THE_CUSTOMER.NUMBER<<"號(hào)客戶("<<CPTR->THE_CUSTOMER.NAME<<")------已經(jīng)預(yù)訂房間 ELSECOUT<<CPTR->THE_CUSTOMER.NUMBER<<"號(hào)客戶("<<CPTR->THE_CUSTOMER.NAME<<")------還未預(yù)訂房間 IF(RPTR->THE_ROOM.ROOM_NUMBER==-1) 50 解 IF(FIND_INFO(IB_PTR,RPTR->THE_ROOM.ROOM_NUMBER))......50{....................................................50COUT<<RPTR->THE_ROOM.ROOM_NUMBER<<"號(hào)房間("<<RPTR->THE_ROOM.ROOM_LEVEL<<"級(jí)".................50<<RPTR->THE_ROOM.ROOM_CONFIG<<")------已經(jīng)被預(yù)訂 ELSECOUT<<RPTR->THE_ROOM.ROOM_NUMBER<<"號(hào)房間("<<RPTR->THE_ROOM.ROOM_LEVEL<<"級(jí)".................50<<RPTR->THE_ROOM.ROOM_CONFIG<<")------還未被預(yù)訂 解 DEFAULT:GOTOLABEL_MENU; 51 第一章系統(tǒng)概述隨著人類社會(huì)進(jìn)入信息時(shí)代,計(jì)算機(jī)越來越多地活躍在社會(huì)各個(gè)領(lǐng)域,成為不可缺少的工具,尤其在管理方面,管理軟件的出現(xiàn)使大量繁瑣復(fù)雜的問題變得簡(jiǎn)單易行。在人民生活水平提高的同時(shí),餐飲,住宿,娛樂業(yè)在服務(wù)行業(yè)中占有越來越重要的地位。要使在當(dāng)前酒店行業(yè)日趨激烈的競(jìng)爭(zhēng)中脫穎而出,必須努力發(fā)展自己在管理方面的特色,避免傳統(tǒng)管理方法的失誤,使酒店的信譽(yù)以及各個(gè)管理方面都能夠出現(xiàn)零失誤,給管理者和普通的營(yíng)業(yè)員帶來操作上的方便,對(duì)整個(gè)酒店各個(gè)來快捷,方便,高效的服務(wù),才是管理軟件的成功之處。 解現(xiàn)今酒店賓館的規(guī)模不斷擴(kuò)大,客戶數(shù)量急劇增加,有關(guān)客戶的各種信息也成倍增長(zhǎng),尤其是大量的客房預(yù)訂信息。面對(duì)龐大的信息量,需要有客戶信息管理系統(tǒng)來提高客戶管理工作的效率。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢,從而減少管理方面的工作量。當(dāng)前許多酒店正在逐步完善客戶信息管理工作,需要一個(gè)能滿足內(nèi)部管理需求,提高管理效率的應(yīng)用系統(tǒng)進(jìn)行內(nèi)部管理。許多酒店經(jīng)過多年的發(fā)展,規(guī)模不斷擴(kuò)大,客流量成倍增長(zhǎng),積累了大量的客戶信息急需進(jìn)行統(tǒng)一管理以防信息的流失。因此,許多酒店需要一個(gè)功能全面的客戶信息管理系統(tǒng)來進(jìn)行管理,以使管理客戶信息的工作在該系統(tǒng)的配合下更加高效和便捷。酒店客房預(yù)訂信息管理系統(tǒng)是一個(gè)對(duì)客戶全方面管理的程序。該客房預(yù)訂信息管理系統(tǒng)是在VisualC++6.0平臺(tái)下設(shè)計(jì)開發(fā),以TXT文檔為后臺(tái)數(shù)據(jù)庫,利用VisualC++6.0提供的各種面向?qū)ο蟮拈_發(fā)工具,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,到形成用戶滿意的可行系統(tǒng)。Microsoft的lC量和管理水平,進(jìn)而促進(jìn)經(jīng)濟(jì)效益,必須借助計(jì)算機(jī)來進(jìn)行現(xiàn)代化的信息管理。酒店管理系統(tǒng)正是我所設(shè)計(jì)本程序的目的之一。本系統(tǒng)針對(duì)用戶和客戶以及客房的管理采用了當(dāng)今常用的C/S結(jié)構(gòu)而息、客戶信息的添加、修改和查詢。處理器:奔四或更高輸入輸出設(shè)備:鍵盤、掃描儀、打印機(jī)、顯示器等。 解編程工具、編程語言:visualC++第二章系統(tǒng)需求分析需求理酒店信息,為用戶節(jié)省時(shí)間和人力,更能全面、有效地掌握酒店基本情況,及時(shí)獲取最新的準(zhǔn)確資料和信息。該軟件能系統(tǒng)管理酒店的信息,功能與實(shí)現(xiàn)方面有相當(dāng)?shù)尼槍?duì)性和實(shí)用性。該系統(tǒng)的主要功能有酒店信息管理,房間類型管理,訂單信息管理,業(yè)務(wù)人員編輯和系統(tǒng)用戶管理。需求統(tǒng)主要具備以下幾個(gè)基本功能:(1)客房預(yù)訂:按照客戶需求,為新客戶分配新客房。(2)退房管理:刪除已退客戶信息,及時(shí)更新客房留存狀態(tài),方便新客戶入住。 (3)客房設(shè)置:可以添加新客房,修改客房描述(房間等級(jí),內(nèi)部設(shè)施等),刪除客房。 (4)客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等,可準(zhǔn)確了解每一客求 解1.技術(shù)可行性VisualCTXT后臺(tái)數(shù)據(jù)庫,采用面向?qū)ο蟮恼Z言開發(fā)而成,系統(tǒng)的客戶端在Windows平臺(tái)下運(yùn)行,服務(wù)器端可在Windows平臺(tái)2.經(jīng)濟(jì)可行性該系統(tǒng)節(jié)省人力資源成本的同時(shí),可以提高業(yè)務(wù)效率,并能夠及時(shí)、準(zhǔn)確、迅速地滿足顧客服務(wù)的需求,系統(tǒng)的開發(fā)成本低,現(xiàn)有的PC機(jī)即可提供該系統(tǒng)開發(fā)工作需要的所有硬件設(shè)備環(huán)境。3.操作可行性直接瀏覽網(wǎng)頁的形式,利用鼠標(biāo)進(jìn)行傻瓜式的操作,操作中的每一步都會(huì)有相應(yīng)的提示,這樣可以讓更多的人群在最短的時(shí)間內(nèi)學(xué)會(huì)使用他。理需求我們做了詳細(xì)的圖形說明)之解系統(tǒng)數(shù)據(jù)流圖之解第三章系統(tǒng)總體設(shè)計(jì)設(shè)計(jì)該系統(tǒng)充分考慮用戶的操作簡(jiǎn)便性,實(shí)現(xiàn)快捷操作。它有以下幾個(gè)功能:(1)客房預(yù)訂:按照客戶需求,為新客戶分配新客房。(2)退房管理:刪除已退客戶信息,及時(shí)更新客房留存狀態(tài),方便新客戶入住。(3)客房設(shè)置:可以添加新客房,修改客房描述(房間等級(jí),內(nèi)部設(shè)施等),刪除客房。之解(4)客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等,可準(zhǔn)確了解每一客(5)房間預(yù)訂情況查詢:可按客戶號(hào)、房號(hào)查詢,方便實(shí)用,在眾多房間、客戶中準(zhǔn)確查詢到某個(gè)4.2系統(tǒng)功能模塊圖根據(jù)上述系統(tǒng)功能分析,能得出下面系統(tǒng)軟件功能模塊圖:配該系統(tǒng)充分考慮用戶的操作簡(jiǎn)便性,實(shí)現(xiàn)快捷操作。它有以下四大模塊:(1)訂房:按照客戶需求,為新客戶分配新客房。(2)退訂:刪除已退客戶信息,及時(shí)更新客房留存狀態(tài),方便新客戶入住。(3)客房信息:可以添加新客房,修改客房描述(房間等級(jí),內(nèi)部設(shè)施等),刪除客房以及查看所有客房的狀態(tài)信息。(4)客戶信息:可以添加新客戶,修改客戶信息(客戶編號(hào),客戶姓名),刪除已退訂客戶信息以及查看所有客戶的訂房狀態(tài)信息。之解(1)新增:錄入客戶編號(hào)、客戶姓名等信息(2)更改:更改相應(yīng)客戶的個(gè)人信息。(3)刪除:刪除相應(yīng)客戶的個(gè)人信息。(4)查詢:查詢所需客戶的訂房信息。(5)顯示:顯示所有預(yù)訂客戶的個(gè)人信息以及預(yù)訂房號(hào)。(6)全刪:刪除所有客戶信息。(1)新增:錄入客房編號(hào)、客房描述等相關(guān)信息。之解(2)更改:更改相應(yīng)客房的信息。(3)刪除:刪除相應(yīng)客戶及客房的信息。(4)查詢:查詢所需客房的訂房狀態(tài)。(5)顯示:顯示所有客房的房號(hào)以及預(yù)訂狀態(tài)信息。(6)全刪:刪除所有客房信息。第四章系統(tǒng)詳細(xì)設(shè)計(jì)4.1系統(tǒng)詳細(xì)設(shè)計(jì)進(jìn)度規(guī)劃甘特圖如下4.2系統(tǒng)詳細(xì)設(shè)計(jì)任務(wù) 解本詳細(xì)設(shè)計(jì)采用的是流程圖的方式來表達(dá)每個(gè)處理過程的算法。對(duì)于處理過程中涉及的概念性的數(shù)據(jù)類型進(jìn)行確切的定義。測(cè)試用例包括輸入數(shù)據(jù)和預(yù)期結(jié)果等內(nèi)容。4.3系統(tǒng)物理方案配置設(shè)計(jì)1)系統(tǒng)的可靠性:該系統(tǒng)要求24小時(shí)不間斷工作工作,發(fā)生錯(cuò)誤的概率低于0.01%。系統(tǒng)吞吐量2)要提高系統(tǒng)的吞吐量:要求使用具有大吞吐量的計(jì)算機(jī)。應(yīng)該選擇具有較高性能的計(jì)算機(jī)。3)系統(tǒng)響應(yīng)時(shí)間:響應(yīng)時(shí)間不超過2秒4)系統(tǒng)處理方式:該系統(tǒng)采用主機(jī)系統(tǒng)方式。2.計(jì)算機(jī)硬件配置計(jì)算機(jī)硬件選擇取決于要運(yùn)行的軟件系統(tǒng),本系統(tǒng)建議最低采取如下配置:內(nèi)存:512MB;CPU:4.4系統(tǒng)輸入輸出設(shè)計(jì)本系統(tǒng)選擇鍵盤、鼠標(biāo)人工輸入方式。本系統(tǒng)對(duì)輸入檢驗(yàn)設(shè)計(jì)的地方有如下幾處:1.當(dāng)前臺(tái)工作人員輸入客戶數(shù)據(jù)時(shí),系統(tǒng)會(huì)自動(dòng)檢測(cè)該信息是否已在系統(tǒng)中存在。 解2.當(dāng)業(yè)務(wù)員輸入房間號(hào)時(shí),系統(tǒng)會(huì)檢測(cè)該房間號(hào)是否存在,若不存在會(huì)提示酒店沒該房間。1.輸出信息應(yīng)包括系統(tǒng)的使用者,如客戶、酒店管理人員、前臺(tái)服務(wù)人員等。2.信息應(yīng)以表格及文檔形式輸出。3.輸出設(shè)備:打印機(jī)、終端顯示器。4.輸出介質(zhì):輸出到專用紙張及電腦屏幕上。系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),將彈出提示框。并允許工作人員改正。之解4.5系統(tǒng)程序流程圖第五章模塊設(shè)計(jì)思路分析本程序共有五大功能模塊:新建模塊、更改模塊、刪除模塊、查詢模塊和顯示模塊。各模塊在功能上互相補(bǔ)充,在程序中互相融合,才能實(shí)現(xiàn)一個(gè)具有多種功能的管理系統(tǒng)。(1)新建模塊:實(shí)現(xiàn)所有客房、訂房客戶的錄入工作。之解(2)更改模塊:提供數(shù)據(jù)的修改,包括客戶姓名、客房描述等。(3)刪除模塊:將已退訂的客戶從數(shù)據(jù)庫中刪除。(4)查詢模塊:本程序最重要的模塊,也是本系統(tǒng)的精髓所在。通過房間號(hào)或客戶號(hào)實(shí)現(xiàn)客房的預(yù)訂情況以及客戶入住情況的查詢工作。(5)顯示模塊:顯示所有客房、訂房客戶的基本信息。在程序設(shè)計(jì)上,我們的目標(biāo)就是先實(shí)現(xiàn)單個(gè)模塊,進(jìn)而實(shí)現(xiàn)整個(gè)程序。本程序正是本著這種思想,一步一步,有條不紊的進(jìn)行規(guī)劃與設(shè)計(jì)。本程序通過四個(gè)類:客戶類、客戶庫類、客房類、客房庫類,并通過主函數(shù)調(diào)用類函數(shù)實(shí)現(xiàn)了這五大功能模塊的功能。(1)程序主界面:界面簡(jiǎn)潔明了,一目了然,便于操作。選擇數(shù)字0-6進(jìn)入相應(yīng)功能。(2)訂房:主界面選擇1進(jìn)入訂房功能之解(3)查詢房間預(yù)訂情況:主界面選擇3進(jìn)入該功能(4)增刪客戶信息:主界面選擇4進(jìn)入該功能1.增加客戶信息:系統(tǒng)提示輸入客戶號(hào)碼、姓名等信息,按要求錄入即可。2.刪除個(gè)人信息:系統(tǒng)提示輸入要更改的客戶號(hào),輸入后即可更改該客戶的個(gè)人信息?;刂鹘缑妗V?5)增刪房間信息:主界面選擇5進(jìn)入客房信息管理菜單。1.新增:系統(tǒng)提示輸入房間號(hào)、房間描述等信息,按要求錄入即可。2.刪除:系統(tǒng)提示輸入要?jiǎng)h除的房間號(hào),輸入后即可刪除該房間。(6)查詢客戶和房間總信息量:主界面選擇6進(jìn)入該功能,通過讀取文件信息、預(yù)訂然后將信息輸出顯示。之解(7)退房:主界面選擇2進(jìn)入退房功能。(8)退出:主界面選擇0退出程序。(9)文件中讀取房間信息room之解(10)文件讀取客戶信息customer章程序源代碼程序源代碼包含三大塊:類定義、各功能函數(shù)定義及實(shí)現(xiàn)和主函數(shù)實(shí)現(xiàn)#ifndefINFO_H#defineINFO_H#include<fstream>#include<string>#include<cstdlib>usingnamespacestd;namespaceinfo_space{classCustomer{public:Customer();stringname;intnumber;//客戶編號(hào)classRoom{ 解public:Room();introom_number;roomlevelstringroom_config;//房間配置:高級(jí),優(yōu),良,中等,普通classCustomerBase{public:CustomerBase();voidremove(Customertemp);Customerthe_customer;CustomerBase*next;classRoomBase{public:RoomBase();voidadd(Roomtemp);voidremove(Roomtemp);Roomthe_room;RoomBase*next;classInfoBase{public:intcustomer_number;introom_number;InfoBase;voidadd(InfoBase*&temp_ptr,intcnum,intrnum);voidremove(InfoBase*&temp_ptr,intcnum);boolcheck(InfoBase*&temp_ptr,intcnum);boolcheckall(InfoBase*&temp_ptr,intcnum,intrnum);voidoutput(InfoBase*&temp_ptr);InfoBase*next; 解typedefCustomerBase*CBasePtr;typedefRoomBase*RBasePtr;typedefInfoBase*IBasePtr;Customer::Customer()//構(gòu)造函數(shù){name="";number=-1;}Room::Room(){room_number=-1;room_level=0;room_config="";}CustomerBase::CustomerBase(){next=NULL;}RoomBase::RoomBase(){next=NULL;}InfoBase::InfoBase(){next=NULL;}voidpause(){charget;cout<<"請(qǐng)按下任何鍵繼續(xù)……"<<endl;cin.get(get);cin.get(get);}#endif//INFO_H#ifndefINFO_FUN_H#defineINFO_FUN_H#include<iostream> 解#include<fstream>#include<string>#include<cstdlib>#include"info.h"namespaceinfo_space{voidreadfile(ifstream&instream,CBasePtr&temp)//從文件中讀取客戶數(shù)據(jù){intt_number=-1;stringt_name="";CBasePtrt_temp=newCustomerBase;instream>>t_name;while(!instream.eof()){instream>>t_number;namet_temp->the_customer.number=t_number;if(instream.eof())return;t_temp->next=temp;temp=t_temp;t_temp=NULL;t_temp=newCustomerBase;//循環(huán)創(chuàng)建用戶信息類instream>>t_name;}}voidwritefile(ofstream&outstream,CBasePtr&temp)//信息寫入文件中{if(temp==NULL)return;CBasePtrt_temp=temp;//為了防止寫完文件后,指針到達(dá)指針尾while(t_temp!=NULL){if(t_temp->the_=="")t_temp=t_temp->next;fttempNULLbreakifoutstream<<t_temp->the_<<""<<t_temp->the_customer.number<<endl; 解t_temp=t_temp->next;}}voidreadfile(ifstream&instream,RBasePtr&temp)//讀取文件函數(shù)的重載{intnumber=-1;intlevel=0;stringconfig="";RBasePtrt_temp=newRoomBase;instream>>number;while(!instream.eof()){instream>>level;instream>>config;t_temp->the_room.room_number=number;t_temp->the_room.room_level=level;t_temp->the_room.room_config=config;if(instream.eof())return;t_temp->next=temp;temp=t_temp;t_temp=NULL;t_temp=newRoomBase;instream>>number;}}voidwritefile(ofstream&outstream,RBasePtr&temp){if(temp==NULL)return;RBasePtrt_temp=temp;while(t_temp!=NULL){if(t_temp->the_room.room_number==-1)t_temp=t_temp->next;mpNULLbreakifoutstream<<t_temp->the_room.room_number<<""<<t_temp->the_room.room_level<<""<<t_temp->the_room.room_config<<endl;52頁腳內(nèi)容 解t_temp=t_temp->next;}}mpptrintnumbertruefalse{CBasePtrthe_ptr=temp_ptr;while(the_ptr!=NULL){if(the_ptr->the_customer.number==number)returntrue;elsethe_ptr=the_ptr->next;}returnfalse;}boolcheck(RBasePtr&temp_ptr,intnumber)//核對(duì)預(yù)訂的客戶和客房信息,看是否還有空房{RBasePtrthe_ptr=temp_ptr;while(the_ptr!=NULL){if(the_ptr->the_room.room_number==number)returntrue;elsethe_ptr=the_ptr->next;}returnfalse;}voidCustomerBase::add(Customertemp)//添加客戶信息{{return;}{ifstreaminstream;ofstreamoutstream; 解CBasePtrtemp_ptr=NULL;readfile(instream,temp_ptr);//讀取文件中的客戶信息,存入temp_ptr中CBasePtrtt_ptr=temp_ptr;//用此臨時(shí)指針獲取指針尾部指針,從而讓新客戶信息加到指針尾部,寫入的時(shí)候也會(huì)相應(yīng)寫到文件尾部while(tt_ptr->next!=NULL)tt_ptr=tt_ptr->next;if(check(temp_ptr,temp.number)){return;}{CBasePtrptr=newCustomerBase;ptr->the_customer=temp;tt_ptr->next=ptr;}outstream.open("E:\\customer.txt");//open函數(shù)會(huì)刷新文檔,里面存儲(chǔ)的內(nèi)容全失writefile(outstream,temp_ptr);//將新的鏈表信息寫入文件中}}voidCustomerBase::remove(Customertemp)//刪除客戶信息{intflag=0;//設(shè)置一個(gè)標(biāo)記,用來檢驗(yàn)刪除是否成功ifstreaminstream;ofstreamoutstream;CBasePtrtemp_ptr=NULL;readfile(instream,temp_ptr);//讀取文件中的客戶信息,存入temp_ptr中if(!check(temp_ptr,temp.number)){return;}52頁腳內(nèi)容 解CBasePtrbefore=temp_ptr,after=temp_ptr;//創(chuàng)建一個(gè)前指針和后指針,方便刪除對(duì)應(yīng)if(before->the_customer.number==temp.number){temp_ptr=temp_ptr->next;//如果第一個(gè)元素就是要?jiǎng)h除的元素則直接刪除循環(huán)flag=1;}while(after!=NULL){if(after->the_customer.number==temp.number){before->next=after->next;flag=1;//刪除成功,設(shè)置標(biāo)志為1}{before=before->next;after=before->next;}{writefile(outstream,temp_ptr);//將新鏈表寫入文件}}voidRoomBase::add(Roomtemp)//文件中存在的房間信息{{return; 解}{ifstreaminstream;ofstreamoutstream;RBasePtrtemp_ptr=NULL;readfile(instream,temp_ptr);//讀取文件中的房間信息,存入temp_ptr中RBasePtrtt_ptr=temp_ptr;//用此臨時(shí)指針獲取指針尾部指針,從而讓新房間信息加到指針尾部,寫入的時(shí)候也會(huì)相應(yīng)寫到文件尾部while(tt_ptr->next!=NULL)tt_ptr=tt_ptr->next;if(check(temp_ptr,temp.room_number)){return;}{RBasePtrptr=newRoomBase;ptr->the_room=temp;tt_ptr->next=ptr;}twritefile(outstream,temp_ptr);//將新的鏈表信息寫入文件中}}voidRoomBase::remove(Roomtemp){intflag=0;//設(shè)置一個(gè)標(biāo)記,用來檢驗(yàn)刪除是否成功ifstreaminstream;ofstreamoutstream;RBasePtrtemp_ptr=NULL;readfile(instream,temp_ptr);//讀取文件中的房間信息,存入temp_ptr中52頁腳內(nèi)容 解if(!check(temp_ptr,temp.room_number)){return;}RBasePtrbefore=temp_ptr,after=temp_ptr;//創(chuàng)建一個(gè)前指針和后指針,方便刪除對(duì)應(yīng)if(before->the_room.room_number==temp.room_number){temp_ptr=temp_ptr->next;//如果第一個(gè)元素就是要?jiǎng)h除的元素則直接刪除循環(huán)flag=1;}while(after!=NULL){if(after->the_room.room_number==temp.room_number){before->next=after->next;flag=1;//刪除成功,設(shè)置標(biāo)志為1}{before=before->next;after=before->next;}{twritefile(outstream,temp_ptr);//將新鏈表寫入文件}}voidInfoBase::add(IBasePtr&temp_ptr,intcnum,intrnum)//增加預(yù)定信息{ 解{return;}{IBasePtrptr=newInfoBase;ptr->customer_number=cnum;ptr->room_number=rnum;ptr->next=temp_ptr;temp_ptr=ptr;}}voidInfoBase::remove(IBasePtr&temp_ptr,intcnum)//退訂后刪除相關(guān)預(yù)定信息{IBasePtrbefore=temp_ptr,after=temp_ptr;if(before->customer_number==cnum){temp_ptr=temp_ptr->next;return;}while(after!=NULL){if(after->customer_number==cnum){before->next=after->next;return;}{before=before->next;after=before->next;}}}boolInfoBase::check(IBasePtr&temp_ptr,intcnum)//檢查該客戶是否預(yù)定房間{IBasePtrptr=temp_ptr; 解while(ptr!=NULL){if(ptr->customer_number==cnum)returntrue;elseptr=ptr->next;}returnfalse;}boolInfoBase::checkall(IBasePtr&temp_ptr,intcnum,intrnum){IBasePtrptr=temp_ptr;while(ptr!=NULL){if(ptr->customer_number==cnum){returntrue;}elseif(ptr->room_number==rnum){returntrue;}elseptr=ptr->next;}returnfalse;}voidInfoBase::output(IBasePtr&temp_ptr){if(temp_ptr==NULL){lreturn;}{IBasePtrptr=temp_ptr;while(ptr!=NULL){cout<<ptr->customer_number<<"號(hào)客戶選擇了"<<ptr->room_number<<"號(hào)房間"<<endl;52頁腳內(nèi)容 解#include<string>#include<cstdlib>#include<dos.h>#include"Info.h"http://包含所有的類定義#include"info_fun.h"http://包含所有的函數(shù)定義usingnamespaceinfo_space;in{choiceintcustomer_number,room_number;CBasePtrCB_ptr=NULL;RBasePtrRB_ptr=NULL;IBasePtrIB_ptr=NULL;Customerthe_customer;Roomthe_room;ifstreamin_customer;incustomeropenEcustomertxt息的文件ifstreamin_room;xtabelmenucout<<"-------房間預(yù)訂菜單-------"<<endl;cout<<"1………………預(yù)定房間"<<endl;cout<<"2………………退訂房間"<<endl;cout<<"3………………查詢房間預(yù)定情況"<<endl;cout<<"4………………增刪客戶信息"<<endl;cout<<"5………………增刪房間信息"<<endl;cout<<"6………………查詢客戶和房間總信息"<<endl;cout<<"0………………退出"<<endl;cout<<"Yourchoice:"<<endl;cin>>choice;{system("cls");gotolabel_menu;}switch(choice){ 解case1:{cout<<"請(qǐng)輸入客戶編號(hào)和房間編號(hào)"<<endl;cin>>customer_number;cin>>room_number;readfile(in_customer,CB_ptr);//讀取文件客戶信息if(!check(CB_ptr,customer_number)){pause();//system("cls");gotolabel_menu;}readfile(in_room,RB_ptr);//讀取文件房間信息if(!check(RB_ptr,room_number)){pause();//system("cls");gotolabel_menu;}if(!IB_ptr->checkall(IB_ptr,customer_number,room_number))//客戶沒有預(yù)訂房間且房間沒有被預(yù)訂IB_ptr->add(IB_ptr,customer_number,room_number);break;}case2:{cin>>customer_number;readfile(in_customer,CB_ptr);//讀取文件客戶信息if(!check(CB_ptr,customer_number)){ 解pause();//system("cls");gotolabel_menu;}if(IB_ptr->check(IB_ptr,customer_number))//檢查該客戶是否已經(jīng)預(yù)定房間IB_ptr->remove(IB_ptr,customer_number);{pause();//system("cls");gotolabel_menu;}break;}case3:{IB_ptr->output(IB_ptr);break;}case4:{hoosecout<<"1………………增加客戶信息"<<endl;cout<<"2………………刪除客戶信息"<<endl;cout<<"3………………返回主菜單"<<endl;cin>>choose;switch(choose){case1:{stringname="";intnumber=-1;Customertemp;lcin>>name;cin>>number; 解CB_ptr->add(temp);break;}case2:{stringname="";intnumber=-1;Customertemp;cin>>number;CB_ptr->remove(temp);break;}case3:{system("cls");gotolabel_menu;}}break;}case5:{hoosecout<<"1………………增加房間信息"<<endl;cout<<"2………………刪除房間信息"<<endl;cout<<"3………………返回主菜單"<<endl;cin>>choose;switch(choose){case1:

溫馨提示

  • 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)論