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

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)院院 系:系: 計算機科學學院計算機科學學院 專業(yè)、年級:專業(yè)、年級: 20102010 計科(計科(1 1)大班)大班 課程名稱:課程名稱: 軟件工程軟件工程 項目名稱:項目名稱: 酒店客房預(yù)訂管理系統(tǒng)酒店客房預(yù)訂管理系統(tǒng) 學號姓名:學號姓名: 朱辰朱辰 學號姓名:學號姓名: 徐麗徐麗 學號姓名:學號姓名: 張賽北張賽北 學號姓名:學號姓名: 張勝南張勝南 指導教師:指導教師: 劉衛(wèi)平劉衛(wèi)平 20122012 年年 1212 月月 2323 日日精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)目錄1 12 26 66 67 7精選優(yōu)質(zhì)文檔-傾情為你奉上專心

2、-專注-專業(yè)第一章 系統(tǒng)概述1.11.1 系統(tǒng)開發(fā)背景和意義系統(tǒng)開發(fā)背景和意義隨著人類社會進入信息時代,計算機越來越多地活躍在社會各個領(lǐng)域,成為不可缺少的工具,尤其在管理方面,管理軟件的出現(xiàn)使大量繁瑣復(fù)雜的問題變得簡單易行。在人民生活水平提高的同時,餐飲,住宿,娛樂業(yè)在服務(wù)行業(yè)中占有越來越重要的地位。要使在當前酒店行業(yè)日趨激烈的競爭中脫穎而出,必須努力發(fā)展自己在管理方面的特色,避免傳統(tǒng)管理方法的失誤,使酒店的信譽以及各個管理方面都能夠出現(xiàn)零失誤,給管理者和普通的營業(yè)員帶來操作上的方便,對整個酒店各個方面的業(yè)務(wù)帶來快捷,方便,高效的服務(wù),才是管理軟件的成功之處。現(xiàn)今酒店賓館的規(guī)模不斷擴大,客戶數(shù)

3、量急劇增加,有關(guān)客戶的各種信息也成倍增長,尤其是大量的客房預(yù)訂信息。面對龐大的信息量,需要有客戶信息管理系統(tǒng)來提高客戶管理工作的效率。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學統(tǒng)計和快速查詢,從而減少管理方面的工作量。當前許多酒店正在逐步完善客戶信息管理工作,需要一個能滿足內(nèi)部管理需求,提高管理效率的應(yīng)用系統(tǒng)進行內(nèi)部管理。許多酒店經(jīng)過多年的發(fā)展,規(guī)模不斷擴大,客流量成倍增長,積累了大量的客戶信息急需進行統(tǒng)一管理以防信息的流失。因此,許多酒店需要一個功能全面的客戶信息管理系統(tǒng)來進行管理,以使管理客戶信息的工作在該系統(tǒng)的配合下更加高效和便捷。1.21.2 開發(fā)語言簡介開發(fā)語言簡介酒店客房預(yù)訂信息

4、管理系統(tǒng)是一個對客戶全方面管理的程序。該客房預(yù)訂信息管理系統(tǒng)是在Visual C+ 6.0 平臺下設(shè)計開發(fā),以 TXT 文檔為后臺數(shù)據(jù)庫,利用 Visual C+ 6.0 提供的各種面向?qū)ο蟮拈_發(fā)工具,首先在短時間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對初始原型系統(tǒng)進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。Microsoft 的Visual C+ 6.0 作為一種面向網(wǎng)絡(luò)、支持各種用戶終端的開發(fā)平臺環(huán)境,推動新一代因特網(wǎng)的發(fā)展,真正地讓人們可以在任何時間、任何地點、通過任何設(shè)備得到信息。1.31.3 本系統(tǒng)簡介本系統(tǒng)簡介現(xiàn)代化的酒店組織龐大、服務(wù)項目多、信息量大,想要提高勞動生產(chǎn)、降低成本

5、、提高服務(wù)質(zhì)量和管理水平,進而促進經(jīng)濟效益,必須借助計算機來進行現(xiàn)代化的信息管理。酒店管理系統(tǒng)正是為此而設(shè)計的。優(yōu)秀的酒店客房管理系統(tǒng)操作方便,靈活性好,系統(tǒng)安全性高,運行穩(wěn)定。這也是我所設(shè)計本程序的目的之一。本系統(tǒng)針對用戶和客戶以及客房的管理采用了當今常用的 C/S 結(jié)構(gòu)而精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)設(shè)計。采用面向?qū)ο蟮恼Z言開發(fā)而成,實現(xiàn)對客戶預(yù)訂信息的基本管理,包括訂房,退房,客房信息、客戶信息的添加、修改和查詢。1.41.4 系統(tǒng)運行環(huán)境系統(tǒng)運行環(huán)境機型:PC處理器:奔四或更高 內(nèi)存:512M 或更高硬盤:4G 或更高輸入輸出設(shè)備:鍵盤、掃描儀、打印機、顯示器等。數(shù)據(jù)庫軟件

6、:Notepad編程工具、編程語言:visual C+編譯軟件:Microsoft Visual C+ 6.0操作系統(tǒng):Microsoft Windows XP第二章 系統(tǒng)需求分析2.12.1 用戶需求用戶需求 該酒店預(yù)訂管理系統(tǒng)使用戶能迅速而便捷的了解和查詢酒店信息,根據(jù)自己的需求來預(yù)訂房間。一個方便地實現(xiàn)對客房變更、房價及預(yù)訂信息的自動化操作。 使用該系統(tǒng)全面管理酒店信息,為用戶節(jié)省時間和人力,更能全面、有效地掌握酒店基本情況,及時獲取最新的準確資料和信息。該軟件能系統(tǒng)管理酒店的信息,功能與實現(xiàn)方面有相當?shù)尼槍π院蛯嵱眯?。該系統(tǒng)的主要功能有酒店信息管理,房間類型管理,訂單信息管理,業(yè)務(wù)人員

7、編輯和系統(tǒng)用戶管理。2.22.2 功能需求功能需求本系統(tǒng)主要具備以下幾個基本功能:精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(1)客房預(yù)訂:按照客戶需求,為新客戶分配新客房。(2)退房管理:刪除已退客戶信息,及時更新客房留存狀態(tài),方便新客戶入住。(3)客房設(shè)置:可以添加新客房,修改客房描述(房間等級,內(nèi)部設(shè)施等) ,刪除客房。(4)客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等,可準確了解每一客戶的預(yù)訂信息。 (5)房間預(yù)訂情況查詢:可按客戶號、房號查詢,方便實用,在眾多房間、客戶中準確查詢到某一個房間或客戶。2.32.3 性能需求性能需求1.技術(shù)可行性 該客房預(yù)訂信息管理系統(tǒng)是在

8、Visual C+ 6.0 平臺下設(shè)計開發(fā),以 TXT 文檔為后臺數(shù)據(jù)庫,采用面向?qū)ο蟮恼Z言開發(fā)而成,系統(tǒng)的客戶端在 Windows 平臺下運行,服務(wù)器端可在 Windows 平臺或 UNIX 平臺下運行。2.經(jīng)濟可行性 該系統(tǒng)節(jié)省人力資源成本的同時,可以提高業(yè)務(wù)效率,并能夠及時、準確、迅速地滿足顧客服務(wù)的需求,系統(tǒng)的開發(fā)成本低,現(xiàn)有的 PC 機即可提供該系統(tǒng)開發(fā)工作需要的所有硬件設(shè)備環(huán)境。3.操作可行性 直接瀏覽網(wǎng)頁的形式,利用鼠標進行傻瓜式的操作,操作中的每一步都會有相應(yīng)的提示,這樣可以讓更多的人群在最短的時間內(nèi)學會使用他。2.42.4 出錯處理需求出錯處理需求在進行每一步操作時,都會有相

9、應(yīng)的提示操作,當系統(tǒng)出錯時,會有相應(yīng)的提示信息讓你尋找錯誤,它的簡單,易學的特性使得能夠廣泛普及,讓更多的人去使用。(為了更好地闡述需求更能,我們做了詳細的圖形說明)(為了更好地闡述需求更能,我們做了詳細的圖形說明)2.52.5 系統(tǒng)功能圖系統(tǒng)功能圖精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)2.62.6 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)2.72.7 E-RE-R 圖圖第三章 系統(tǒng)總體設(shè)計3.13.1 系統(tǒng)功能設(shè)計系統(tǒng)功能設(shè)計該系統(tǒng)充分考慮用戶的操作簡便性,實現(xiàn)快捷操作。它有以下幾個功能:(1)客房預(yù)訂:按照客戶需求,為新客戶分配新客房。(2)退房管理:刪除已

10、退客戶信息,及時更新客房留存狀態(tài),方便新客戶入住。(3)客房設(shè)置:可以添加新客房,修改客房描述(房間等級,內(nèi)部設(shè)施等) ,刪除客房。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(4)客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等,可準確了解每一客戶的預(yù)訂信息。(5)房間預(yù)訂情況查詢:可按客戶號、房號查詢,方便實用,在眾多房間、客戶中準確查詢到某個房間或客戶。4.24.2 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖根據(jù)上述系統(tǒng)功能分析,能得出下面系統(tǒng)軟件功能模塊圖:3.2.1 整體模塊分配該系統(tǒng)充分考慮用戶的操作簡便性,實現(xiàn)快捷操作。它有以下四大模塊:(1)訂房:按照客戶需求,為新客戶分配新客房。(2

11、)退訂:刪除已退客戶信息,及時更新客房留存狀態(tài),方便新客戶入住。(3)客房信息:可以添加新客房,修改客房描述(房間等級,內(nèi)部設(shè)施等) ,刪除客房以及查看所有客房的狀態(tài)信息。(4)客戶信息:可以添加新客戶,修改客戶信息(客戶編號,客戶姓名) ,刪除已退訂客戶信息以及查看所有客戶的訂房狀態(tài)信息。3.2.2 客戶信息子模塊精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(1)新增:錄入客戶編號、客戶姓名等信息(2)更改:更改相應(yīng)客戶的個人信息。(3)刪除:刪除相應(yīng)客戶的個人信息。(4)查詢:查詢所需客戶的訂房信息。(5)顯示:顯示所有預(yù)訂客戶的個人信息以及預(yù)訂房號。(6)全刪:刪除所有客戶信息。3.2.3

12、 客房信息子模塊(1)新增:錄入客房編號、客房描述等相關(guān)信息。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(2)更改:更改相應(yīng)客房的信息。(3)刪除:刪除相應(yīng)客戶及客房的信息。(4)查詢:查詢所需客房的訂房狀態(tài)。(5)顯示:顯示所有客房的房號以及預(yù)訂狀態(tài)信息。(6)全刪:刪除所有客房信息。第四章 系統(tǒng)詳細設(shè)計4.14.1 系統(tǒng)詳細設(shè)計進度規(guī)劃系統(tǒng)詳細設(shè)計進度規(guī)劃甘特圖如下4.24.2 系統(tǒng)詳細設(shè)計任務(wù)系統(tǒng)詳細設(shè)計任務(wù)1.算法過程的設(shè)計:精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)本詳細設(shè)計采用的是流程圖的方式來表達每個處理過程的算法。2.數(shù)據(jù)結(jié)構(gòu)的設(shè)計:對于處理過程中涉及的概念性的數(shù)據(jù)類型進行確切

13、的定義。3.測試用例設(shè)計:測試用例包括輸入數(shù)據(jù)和預(yù)期結(jié)果等內(nèi)容。4.34.3 系統(tǒng)物理方案配置設(shè)計系統(tǒng)物理方案配置設(shè)計1.設(shè)計指標1)系統(tǒng)的可靠性:該系統(tǒng)要求 24 小時不間斷工作工作,發(fā)生錯誤的概率低于 0.01%。系統(tǒng)吞吐量2)要提高系統(tǒng)的吞吐量:要求使用具有大吞吐量的計算機。應(yīng)該選擇具有較高性能的計算機。3)系統(tǒng)響應(yīng)時間:響應(yīng)時間不超過 2 秒4)系統(tǒng)處理方式:該系統(tǒng)采用主機系統(tǒng)方式。2.計算機硬件配置計算機硬件選擇取決于要運行的軟件系統(tǒng),本系統(tǒng)建議最低采取如下配置:內(nèi)存:512MB;CPU:奔四 1.8GHZ 以上;硬盤:空余空間 4G。4.44.4 系統(tǒng)輸入輸出設(shè)計系統(tǒng)輸入輸出設(shè)計4

14、.4.1 輸入設(shè)計原則1.輸入數(shù)據(jù)量設(shè)計:需要輸入客戶數(shù)據(jù),數(shù)據(jù)量不大。2.輸入錯誤檢測:檢測客戶登記狀態(tài),確保不會重復(fù)登記或登記錯誤。4.4.2 數(shù)據(jù)輸入設(shè)備的選擇本系統(tǒng)選擇鍵盤、鼠標人工輸入方式。4.4.3 輸入檢驗設(shè)計本系統(tǒng)對輸入檢驗設(shè)計的地方有如下幾處:精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)1.當前臺工作人員輸入客戶數(shù)據(jù)時,系統(tǒng)會自動檢測該信息是否已在系統(tǒng)中存在。 2.當業(yè)務(wù)員輸入房間號時,系統(tǒng)會檢測該房間號是否存在,若不存在會提示酒店沒該房間。4.4.4 輸出設(shè)計內(nèi)容1.輸出信息應(yīng)包括系統(tǒng)的使用者,如客戶、酒店管理人員、前臺服務(wù)人員等。 2.信息應(yīng)以表格及文檔形式輸出。3.輸出設(shè)

15、備:打印機、終端顯示器。4.輸出介質(zhì):輸出到專用紙張及電腦屏幕上。4.4.5 錯誤改正方法系統(tǒng)出現(xiàn)錯誤時,將彈出提示框。并允許工作人員改正。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)4.54.5 系統(tǒng)程序流程圖系統(tǒng)程序流程圖第五章 模塊設(shè)計思路分析本程序共有五大功能模塊:新建模塊、更改模塊、刪除模塊、查詢模塊和顯示模塊。各模塊在功能上互相補充,在程序中互相融合,才能實現(xiàn)一個具有多種功能的管理系統(tǒng)。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(1)新建模塊:實現(xiàn)所有客房、訂房客戶的錄入工作。(2)更改模塊:提供數(shù)據(jù)的修改,包括客戶姓名、客房描述等。(3)刪除模塊:將已退訂的客戶從數(shù)據(jù)庫中刪除。(4

16、)查詢模塊:本程序最重要的模塊,也是本系統(tǒng)的精髓所在。通過房間號或客戶號實現(xiàn)客房的預(yù)訂情況以及客戶入住情況的查詢工作。(5)顯示模塊:顯示所有客房、訂房客戶的基本信息。在程序設(shè)計上,我們的目標就是先實現(xiàn)單個模塊,進而實現(xiàn)整個程序。本程序正是本著這種思想,一步一步,有條不紊的進行規(guī)劃與設(shè)計。本程序通過四個類:客戶類、客戶庫類、客房類、客房庫類,并通過主函數(shù)調(diào)用類函數(shù)實現(xiàn)了這五大功能模塊的功能。第 6 章 使用說明 (1)程序主界面:界面簡潔明了,一目了然,便于操作。選擇數(shù)字 0-6 進入相應(yīng)功能。(2)訂房:主界面選擇 1 進入訂房功能精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(3)查詢房間預(yù)訂

17、情況:主界面選擇 3 進入該功能(4)增刪客戶信息:主界面選擇 4 進入該功能 1.增加客戶信息:系統(tǒng)提示輸入客戶號碼、姓名等信息,按要求錄入即可。 2.刪除個人信息:系統(tǒng)提示輸入要更改的客戶號,輸入后即可更改該客戶的個人信息。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3.返回:返回主界面。(5)增刪房間信息:主界面選擇 5 進入客房信息管理菜單。 1.新增:系統(tǒng)提示輸入房間號、房間描述等信息,按要求錄入即可。2.刪除:系統(tǒng)提示輸入要刪除的房間號,輸入后即可刪除該房間。3.返回:返回主界面。(6)查詢客戶和房間總信息量:主界面選擇 6 進入該功能, 通過讀取文件信息、預(yù)訂然后將信息輸出顯示。精

18、選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(7)退房:主界面選擇 2 進入退房功能。(8)退出:主界面選擇 0 退出程序。 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(9)文件中讀取房間信息 room(10)文件讀取客戶信息 customer 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 第七章 程序源代碼程序源代碼包含三大塊:類定義、各功能函數(shù)定義及實現(xiàn)和主函數(shù)實現(xiàn)類定義源代碼:#ifndef INFO_H#define INFO_H#include#include#includeusing namespace std;namespace info_spaceclass Customerpubl

19、ic:Customer();string name;int number; /客戶編號;class Roompublic:Room();int room_number;int room_level;/房間等級,1-5 級string room_config;/房間配置:高級,優(yōu),良,中等,普通;class CustomerBasepublic: CustomerBase();void add(Customer temp);/前條件,temp 已經(jīng)含有值void remove(Customer temp);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)Customer the_customer;Cu

20、stomerBase* next;class RoomBasepublic: RoomBase();void add(Room temp);void remove(Room temp);Room the_room;RoomBase* next;class InfoBasepublic:int customer_number;int room_number;InfoBase();void add(InfoBase*& temp_ptr,int cnum,int rnum);void remove(InfoBase*& temp_ptr,int cnum);bool check(I

21、nfoBase*& temp_ptr,int cnum);bool checkall(InfoBase*& temp_ptr,int cnum,int rnum);void output(InfoBase*& temp_ptr);InfoBase* next;typedef CustomerBase* CBasePtr;typedef RoomBase* RBasePtr;typedef InfoBase* IBasePtr;Customer:Customer() /構(gòu)造函數(shù)name=;number=-1;Room:Room()room_number=-1;room_l

22、evel=0;room_config=;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)CustomerBase:CustomerBase()next=NULL;RoomBase:RoomBase()next=NULL;InfoBase:InfoBase()next=NULL;void pause()char get;cout請按下任何鍵繼續(xù)endl;cin.get(get);cin.get(get);/info_space 的結(jié)尾#endif /INFO_H各功能函數(shù)源代碼:#ifndef INFO_FUN_H#define INFO_FUN_H#include#include#include#i

23、nclude#include info.hnamespace info_spacevoid readfile(ifstream& instream,CBasePtr& temp) /從文件中讀取客戶數(shù)據(jù)int t_number=-1;string t_name=;CBasePtr t_temp=new CustomerBase;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)instreamt_name;while(!instream.eof()instreamt_number;t_temp-the_=t_name;t_temp-the_customer.n

24、umber=t_number;if(instream.eof() return;t_temp-next=temp;temp=t_temp;t_temp=NULL;t_temp=new CustomerBase; /循環(huán)創(chuàng)建用戶信息類instreamt_name;void writefile(ofstream& outstream,CBasePtr& temp) /信息寫入文件中if(temp=NULL) return;CBasePtr t_temp=temp; /為了防止寫完文件后,指針到達指針尾while(t_temp!=NULL) if(t_temp-the_custome

25、=)t_temp=t_temp-next;if(t_temp=NULL) break; /這兩個 if 語句用來判別輸出客戶信息outstreamthe_ the_customer.numbernext;void readfile(ifstream& instream,RBasePtr& temp) /讀取文件函數(shù)的重載int number=-1;int level=0;string config=;RBasePtr t_temp=new RoomBase;instreamnumber;while(!instream.eof()精選優(yōu)質(zhì)文檔

26、-傾情為你奉上專心-專注-專業(yè)instreamlevel;instreamconfig;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=new RoomBase;instreamnumber;void writefile(ofstream& outstream,RBasePtr&

27、 temp)if(temp=NULL) return;RBasePtr t_temp=temp;while(t_temp!=NULL) if(t_temp-the_room.room_number=-1)t_temp=t_temp-next;if(t_temp=NULL) break; /這兩個 if 語句用來判別輸出房間信息outstreamthe_room.room_number the_room.room_level the_room.room_confignext;bool check(CBasePtr& temp_ptr,int number)/若找到相同編號則返回 true

28、,否則返回falseCBasePtr the_ptr=temp_ptr;while(the_ptr!=NULL)if(the_ptr-the_customer.number=number)return true;else the_ptr=the_ptr-next;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)return false;bool check(RBasePtr& temp_ptr,int number) /核對預(yù)訂的客戶和客房信息,看是否還有空房RBasePtr the_ptr=temp_ptr;while(the_ptr!=NULL)if(the_ptr-the_room.r

29、oom_number=number)return true;else the_ptr=the_ptr-next;return false;void CustomerBase:add(Customer temp) /添加客戶信息if(=|temp.number=-1)coutnext!=NULL) tt_ptr=tt_ptr-next;if(check(temp_ptr,temp.number) cout客戶編號已經(jīng)存在,請核查!the_customer=temp;tt_ptr-next=ptr;outstream.open(E:customer.txt); /open 函數(shù)會

30、刷新文檔,里面存儲的內(nèi)容全失writefile(outstream,temp_ptr); /將新的鏈表信息寫入文件中void CustomerBase:remove(Customer temp) /刪除客戶信息int flag=0; /設(shè)置一個標記,用來檢驗刪除是否成功ifstream instream;ofstream outstream;instream.open(E:customer.txt);CBasePtr temp_ptr=NULL;readfile(instream,temp_ptr); /讀取文件中的客戶信息,存入 temp_ptr 中if(!check(temp_ptr,te

31、mp.number) cout不存在此編號!the_customer.number=temp.number)temp_ptr=temp_ptr-next; /如果第一個元素就是要刪除的元素則直接刪除after=NULL; /元素已經(jīng)刪除,可以直接寫入文件中,設(shè)置 after 為 NULL 跳過while 循環(huán)flag=1;while(after!=NULL)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)if(after-the_customer.number=temp.number)before-next=after-next;flag=1; /刪除成功,設(shè)置標志為 1else before=be

32、fore-next;after=before-next;/while 循環(huán)結(jié)束if(flag=0) cout不存在此編號!endl; /刪除失敗else outstream.open(E:customer.txt);writefile(outstream,temp_ptr); /將新鏈表寫入文件void RoomBase:add(Room temp) /文件中存在的房間信息if(temp.room_number=-1|temp.room_level=0|temp.room_config=)coutnext!=NULL) tt_ptr=tt_ptr-next;if(check(temp_ptr,

33、temp.room_number) cout房間編號已經(jīng)存在,請核查!the_room=temp;tt_ptr-next=ptr;outstream.open(E:room.txt);writefile(outstream,temp_ptr); /將新的鏈表信息寫入文件中void RoomBase:remove(Room temp)int flag=0; /設(shè)置一個標記,用來檢驗刪除是否成功ifstream instream;ofstream outstream;instream.open(E:room.txt);RBasePtr temp_ptr=NULL;readfile(instream

34、,temp_ptr); /讀取文件中的房間信息,存入 temp_ptr 中if(!check(temp_ptr,temp.room_number) cout不存在此編號!the_room.room_number=temp.room_number)temp_ptr=temp_ptr-next; /如果第一個元素就是要刪除的元素則直接刪除after=NULL; /元素已經(jīng)刪除,可以直接寫入文件中,設(shè)置 after 為 NULL 跳過精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)while 循環(huán)flag=1;while(after!=NULL)if(after-the_room.room_number=

35、temp.room_number)before-next=after-next;flag=1; /刪除成功,設(shè)置標志為 1else before=before-next;after=before-next;/while 循環(huán)結(jié)束if(flag=0) cout不存在此編號!endl; /刪除失敗elseoutstream.open(E:room.txt);writefile(outstream,temp_ptr); /將新鏈表寫入文件void InfoBase:add(IBasePtr& temp_ptr,int cnum,int rnum) /增加預(yù)定信息if(cnum0|rnum0)

36、coutcustomer_number=cnum;ptr-room_number=rnum;ptr-next=temp_ptr;temp_ptr=ptr;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)void InfoBase:remove(IBasePtr& temp_ptr,int cnum) /退訂后刪除相關(guān)預(yù)定信息IBasePtr before=temp_ptr,after=temp_ptr;if(before-customer_number=cnum)temp_ptr=temp_ptr-next;cout退訂成功!customer_number=cnum)before-next=

37、after-next;cout退訂成功!next;after=before-next;bool InfoBase:check(IBasePtr& temp_ptr,int cnum) /檢查該客戶是否預(yù)定房間IBasePtr ptr=temp_ptr;while(ptr!=NULL)if(ptr-customer_number=cnum)return true;else ptr=ptr-next;return false;bool InfoBase:checkall(IBasePtr& temp_ptr,int cnum,int rnum)IBasePtr ptr=temp_p

38、tr;while(ptr!=NULL)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)if(ptr-customer_number=cnum)cout該客戶已經(jīng)預(yù)訂房間!room_number=rnum)cout該房間已被預(yù)訂!next;return false;void InfoBase:output(IBasePtr& temp_ptr)if(temp_ptr=NULL)cout沒有房間預(yù)訂信息可查!endl;return;elseIBasePtr ptr=temp_ptr;while(ptr!=NULL)coutcustomer_number號客戶選擇了room_number號房間en

39、dl; 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) #include #include #include #include Info.h /包含所有的類定義 #include info_fun.h /包含所有的函數(shù)定義 using namespace info_space; int main() int choice;int customer_number,room_number;CBasePtr CB_ptr=NULL;RBasePtr RB_ptr=NULL;IBasePtr IB_ptr=NULL;Customer the_customer;Room the_room; ifstream

40、 in_customer;in_customer.open(E:customer.txt); /打開存儲客戶信息的文件 ifstream in_room;in_room.open(E:room.txt); /打開存儲房間信息的文件 label_menu:cout-房間預(yù)訂菜單-endl;cout1預(yù)定房間endl;cout2退訂房間endl; cout3查詢房間預(yù)定情況endl;cout4增刪客戶信息endl;cout5增刪房間信息endl; cout6查詢客戶和房間總信息endl; cout0退出endl; coutYour choice:choice; if(choice6|choice0

41、) cout輸入的數(shù)字有誤,請重新輸入!endl;system(cls);goto label_menu; switch(choice) 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) case 1: cout請輸入客戶編號和房間編號endl;cout客戶編號:customer_number;cout房間編號:room_number;readfile(in_customer,CB_ptr); /讀取文件客戶信息if(!check(CB_ptr,customer_number) cout客戶編號不存在,請核查!endl;pause();/system(cls);goto label_menu;rea

42、dfile(in_room,RB_ptr);/讀取文件房間信息if(!check(RB_ptr,room_number) cout房間編號不存在,請核查!checkall(IB_ptr,customer_number,room_number) /客戶沒有預(yù)訂房間且房間沒有被預(yù)訂IB_ptr-add(IB_ptr,customer_number,room_number);break;case 2:cout請輸入客戶編號:endl;cout客戶編號:customer_number;readfile(in_customer,CB_ptr); /讀取文件客戶信息if(!check(CB_ptr,cus

43、tomer_number) cout客戶編號不存在,請核查!check(IB_ptr,customer_number) /檢查該客戶是否已經(jīng)預(yù)定房間IB_ptr-remove(IB_ptr,customer_number);else cout該客戶未預(yù)定房間,請核查!output(IB_ptr);break;case 4:int choose;cout1增加客戶信息endl;cout2刪除客戶信息endl;cout3返回主菜單choose;switch(choose)case 1:string name=;int number=-1;Customer temp;cout請輸入客戶名稱和編號:e

44、ndl;cout客戶名稱:name;cout客戶編號:number; 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)=name; temp.number=number;CB_ptr-add(temp);break;case 2:string name=;int number=-1;Customer temp;cout請輸入客戶編號:number; =name; temp.number=number;CB_ptr-remove(temp);break;case 3:system(cls);goto label_menu;break;case 5:int choos

45、e;cout1增加房間信息endl;cout2刪除房間信息endl;cout3返回主菜單choose;switch(choose)case 1:int number=-1;int level=0;string config=;Room temp;cout請輸入房間編號,等級(1-5 級),配置(高級,優(yōu),良,中等,普通):endl;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)cout房間編號:number;cout房間等級:level; cout房間配置:config; temp.room_number=number;temp.room_level=level;temp.room_config=

46、config;RB_ptr-add(temp);break;case 2:int number=-1;int level=0;string config=;Room temp;cout請輸入房間編號:number; temp.room_number=number;temp.room_level=level;temp.room_config=config;RB_ptr-remove(temp);break;case 3:system(cls);goto label_menu;break;case 6:readfile(in_customer,CB_ptr);readfile(in_room,RB

47、_ptr); /讀取兩個文件的所有信息精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)CBasePtr cptr=CB_ptr;RBasePtr rptr=RB_ptr; /不修改兩個主要變量的的指向內(nèi)容,所以定義了兩個臨時變量 cout所有客戶信息:the_customer.number=-1)cout-沒有任何客戶信息!endlthe_customer.number)coutthe_customer.number號客戶(the_)-已經(jīng)預(yù)訂房間endlendl;else coutthe_customer.number號客戶(the_)-還未預(yù)訂房間endlnext;cout所有房間信息:the_room.room_number=-1)cout-沒有任何房間信息!the_room.room_number)coutthe_room.room_number號房間(the_room.room_level級 the_room.room_config)-已經(jīng)被預(yù)訂endlendl;else coutthe_room.room_number號房間(t

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論