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

下載本文檔

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

文檔簡介

1、院 系:計算機科學(xué)學(xué)院專業(yè)、年級:2010計科1大班課程名稱:軟件工程項目名稱:酒店客房預(yù)訂管理系統(tǒng)學(xué)號某某:10061064朱辰學(xué)號某某:10061065徐麗學(xué)號某某:10081109X賽北學(xué)號某某:10151251X勝南指導(dǎo)教師:X衛(wèi)平2012年12月23日目錄第一章系統(tǒng)概述31.1 系統(tǒng)開發(fā)背景和意義31.2 開發(fā)語言簡介1本系統(tǒng)簡介11.4 系統(tǒng)運行環(huán)境2第二章系統(tǒng)需求分析22.1 用戶需求22.2 功能需求32.3 性能需求32.4 出錯處理需求3功能圖3數(shù)據(jù)流圖42.7 E-R 圖 5第三章系統(tǒng)總體設(shè)計53.1 系統(tǒng)功能設(shè)計53.2 系統(tǒng)功能模塊圖6第四章系統(tǒng)詳細設(shè)計84.1 系統(tǒng)

2、詳細設(shè)計進度規(guī)劃甘特圖4.2 系統(tǒng)詳細設(shè)計任務(wù) 84.3 系統(tǒng)物理方案配置設(shè)計94.4 系統(tǒng)輸入輸出設(shè)計 94.5 系統(tǒng)程序流程圖12第五章模塊設(shè)計思路分析11第六章使用說明12第七章程序源代碼16完畢語36參考文獻37第一章系統(tǒng)概述1.1 系統(tǒng)開發(fā)背景和意義隨著人類社會進入信息時代,計算機越來越多地活躍在社會各個領(lǐng)域,成為不可缺少的工具, 尤其在管理方面,管理軟件的出現(xiàn)使大量繁瑣復(fù)雜的問題變得簡單易行。在人民生活水平提高的同 時,餐飲,住宿,娛樂業(yè)在服務(wù)行業(yè)中占有越來越重要的地位。要使在當(dāng)前酒店行業(yè)日趨激烈的競 爭中脫穎而出,必須努力開展自己在管理方面的特色,防止傳統(tǒng)管理方法的失誤,使酒店的

3、信譽以 與各個管理方面都能夠出現(xiàn)零失誤,給管理者和普通的營業(yè)員帶來操作上的方便,對整個酒店各個 方面的業(yè)務(wù)帶來快捷,方便,高效的服務(wù),才是管理軟件的成功之處。現(xiàn)今酒店賓館的規(guī)模不斷擴大,客戶數(shù)量急劇增加,有關(guān)客戶的各種信息也成倍增長,尤其是 大量的客房預(yù)訂信息。面對龐大的信息量,需要有客戶信息管理系統(tǒng)來提高客戶管理工作的效率。 通過這樣的系統(tǒng),可以做到信息的規(guī)X管理,科學(xué)統(tǒng)計和快速查詢,從而減少管理方面的工作量。當(dāng)前許多酒店正在逐步完善客戶信息管理工作,需要一個能滿足內(nèi)部管理需求,提高管理效率的應(yīng) 用系統(tǒng)進展內(nèi)部管理。許多酒店經(jīng)過多年的開展,規(guī)模不斷擴大,客流量成倍增長,積累了大量的 客戶信息

4、急需進展統(tǒng)一管理以防信息的流失。因此,許多酒店需要一個功能全面的客戶信息管理系 統(tǒng)來進展管理,以使管理客戶信息的工作在該系統(tǒng)的配合下更加高效和便捷。1.2 開發(fā)語言簡介酒店客房預(yù)訂信息管理系統(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)

5、的開展, 真正地讓人們可以在任何時間、任何地點、通過任何設(shè)備得到信息。現(xiàn)代化的酒店組織龐大、服務(wù)項目多、信息量大,想要提高勞動生產(chǎn)、降低本錢、提高服務(wù)質(zhì)量和管理水平,進而促進經(jīng)濟效益,必須借助計算機來進展現(xiàn)代化的信息管理。酒店管理系統(tǒng)正是為此而設(shè)計的。優(yōu)秀的酒店客房管理系統(tǒng)操作方便,靈活性好,系統(tǒng)安全性高,運行穩(wěn)定。這也是我所設(shè)計本程序的目的之一。本系統(tǒng)針對用戶和客戶以與客房的管理采用了當(dāng)今常用的C/S結(jié)構(gòu)而 設(shè)計。采用面向?qū)ο蟮恼Z言開發(fā)而成,實現(xiàn)對客戶預(yù)訂信息的根本管理,包括訂房,退房,客房信 息、客戶信息的添加、修改和查詢。1.4 系統(tǒng)運行環(huán)境機型:PC處理器:奔四或更高內(nèi)存:512M或更

6、高硬盤:4G或更高輸入輸出設(shè)備:鍵盤、掃描儀、打印機、顯示器等。數(shù)據(jù)庫軟件:Notepad編程工具、編程語言:visual C+操作系統(tǒng):Microsoft Windows XP第二章系統(tǒng)需求分析2.1 用戶需求該酒店預(yù)訂管理系統(tǒng)使用戶能迅速而便捷的了解和查詢酒店信息,根據(jù)自己的需求來預(yù)訂房間。一個方便地實現(xiàn)對客房變更、房價與預(yù)訂信息的自動化操作。使用該系統(tǒng)全面管理酒店信息,為用戶節(jié)省時間和人力,更能全面、有效地掌握酒店根本情況,與時獲取最新的準(zhǔn)確資料和信息。該軟件 能系統(tǒng)管理酒店的信息,功能與實現(xiàn)方面有相當(dāng)?shù)尼槍π院蛯嵱眯?。該系統(tǒng)的主要功能有酒店信息 管理,房間類型管理,訂單信息管理,業(yè)務(wù)人

7、員編輯和系統(tǒng)用戶管理。2.2 功能需求本系統(tǒng)主要具備以下幾個根本功能:1客房預(yù)訂:按照客戶需求,為新客戶分配新客房。2退房管理:刪除已退客戶信息,與時更新客房留存狀態(tài),方便新客戶入住。3客房設(shè)置:可以添加新客房,修改客房描述房間等級,內(nèi)部設(shè)施等,刪除客房。4客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等,可準(zhǔn)確了解每一客戶的預(yù)訂信息。(5)房間預(yù)訂情況查詢:可按客戶號、房號查詢,方便實用,在眾多房間、客戶中準(zhǔn)確查詢到某一個 房間或客戶。2.3 性能需求1 .技術(shù)可行性該客房預(yù)訂信息管理系統(tǒng)是在Visual C+ 6.0平臺下設(shè)計開發(fā),以 TXT文檔為后臺數(shù)據(jù)庫,采用面向?qū)ο蟮恼Z言開發(fā)

8、而成,系統(tǒng)的客戶端在Windows平臺下運行,服務(wù)器端可在Windows平臺或UNIX平臺下運行。2 . 經(jīng)濟可行性該系統(tǒng)節(jié)省人力資源本錢的同時,可以提高業(yè)務(wù)效率,并能夠與時、準(zhǔn)確、迅速地滿足顧客服 務(wù)的需求,系統(tǒng)的開發(fā)本錢低,現(xiàn)有的PC機即可提供該系統(tǒng)開發(fā)工作需要的所有硬件設(shè)備環(huán)境。3 .操作可行性直接瀏覽網(wǎng)頁的形式,利用鼠標(biāo)進展傻瓜式的操作,操作中的每一步都會有相應(yīng)的提示,這樣可以 讓更多的人群在最短的時間內(nèi)學(xué)會使用他。2.4 出錯處理需求在進展每一步操作時,都會有相應(yīng)的提示操作,當(dāng)系統(tǒng)出錯時,會有相應(yīng)的提示信息讓 你尋找錯誤,它的簡單,易學(xué)的特性使得能夠廣泛普與,讓更多的人去使用。為了更

9、好地闡述需求更能,我們做了詳細的圖形說明2.5 系統(tǒng)功能圖酒娶房頸訂管理系統(tǒng)客房信息客戶信息T-附 顯不 個上.新炳更收第除4而, 顯,;華陽系統(tǒng)數(shù)據(jù)流圖E-R圖第三章系統(tǒng)總體設(shè)計3.1 系統(tǒng)功能設(shè)計該系統(tǒng)充分考慮用戶的操作簡便性,實現(xiàn)快捷操作。它有以下幾個功能:1客房預(yù)訂:按照客戶需求,為新客戶分配新客房。2退房管理:刪除已退客戶信息,與時更新客房留存狀態(tài),方便新客戶入住。,刪除客房。3客房設(shè)置:可以添加新客房,修改客房描述房間等級,內(nèi)部設(shè)施等4客戶設(shè)置:可以添加新客戶,修改客戶信息,刪除已退訂客戶等,可準(zhǔn)確了解每一客戶的預(yù)訂信息。5房間預(yù)訂情況查詢:可按客戶號、房號查詢,方便實用,在眾多房

10、間、客戶中準(zhǔn)確查詢到某個 房間或客戶。4.2系統(tǒng)功能模塊圖根據(jù)上述系統(tǒng)功能分析,能得出下面系統(tǒng)軟件功能模塊圖:3.2.1整體模塊分配該系統(tǒng)充分考慮用戶的操作簡便性,實現(xiàn)快捷操作。它有以下四大模塊:1訂房:按照客戶需求,為新客戶分配新客房。2退訂:刪除已退客戶信息,與時更新客房留存狀態(tài),方便新客戶入住。3客房信息:可以添加新客房,修改客房描述房間等級,內(nèi)部設(shè)施等,刪除客房以與查看所有客房的狀態(tài)信息。4客戶信息:可以添加新客戶,修改客戶信息客戶編號,客戶某某,刪除已退訂客戶信息以與查看所有客戶的訂房狀態(tài)信息??蛻粜畔⒆幽K1新增:錄入客戶編號、客戶某某等信息2更改:更改相應(yīng)客戶的個人信息。3刪除:

11、刪除相應(yīng)客戶的個人信息。4查詢:查詢所需客戶的訂房信息。5顯示:顯示所有預(yù)訂客戶的個人信息以與預(yù)訂房號6全刪:刪除所有客戶信息。3.2.3客房信息子模塊1新增:錄入客房編號、客房描述等相關(guān)信息。2更改:更改相應(yīng)客房的信息。3刪除:刪除相應(yīng)客戶與客房的信息。4查詢:查詢所需客房的訂房狀態(tài)。5顯示:顯示所有客房的房號以與預(yù)訂狀態(tài)信息。6全刪:刪除所有客房信息。第四章系統(tǒng)詳細設(shè)計4.1系統(tǒng)詳細設(shè)計進度規(guī)劃甘特圖如下酒店客房預(yù)訂管理系統(tǒng)tn笊邦右掌款螃瞳同武耀詁/V*j力 箝J,1 X”:v Jr?1瞬定國目功於2OI2-IQ-K3倡HL牌2d,帚木才折2012-1<>-17201 露 1

12、317IdLb.1劃好條空嘎里戌分就2OI2-HKIK加4編寫系姓何密定管理系比2012-1(2113112- I0-2SId£落與布沌沔鼻麻血聲性產(chǎn)QLIUknId6螭寫茶”忡客廣置颼系光2012-1 (MO2m 但 itknid鐘bf明,皋出內(nèi)生樂審理處統(tǒng)2012d MA3012-10-21W素好撐茂及訓(xùn)戊2012-10-242ni2-10-lfiId19系幃的文檔將耳2012 10-272012 1(12d44.2系統(tǒng)詳細設(shè)計任務(wù)1.算法過程的設(shè)計:本詳細設(shè)計采用的是流程圖的方式來表達每個處理過程的算法。2 .數(shù)據(jù)結(jié)構(gòu)的設(shè)計:對于處理過程中涉與的概念性的數(shù)據(jù)類型進展確切的定義。

13、3 .測試用例設(shè)計:測試用例包括輸入數(shù)據(jù)和預(yù)期結(jié)果等內(nèi)容。4.3 系統(tǒng)物理方案配置設(shè)計1系統(tǒng)的可靠性:該系統(tǒng)要求 24小時不連續(xù)工作工作,發(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)方式。計算機硬件選擇取決于要運行的軟件系統(tǒng),本系統(tǒng)建議最低采取如下配置:內(nèi)存:512MB CPU奔四1.8GHZ以上;硬盤:空余空間 4Go4.4 系統(tǒng)輸入輸出設(shè)計41 .輸入數(shù)據(jù)量設(shè)計:需要輸入客戶數(shù)據(jù),數(shù)據(jù)量不大。2 .輸入錯誤檢測:檢測客戶登記狀態(tài),確保不會重復(fù)登記

14、或登記錯誤。4本系統(tǒng)選擇鍵盤、鼠標(biāo)人工輸入方式。4本系統(tǒng)對輸入檢驗設(shè)計的地方有如下幾處:1 .當(dāng)前臺工作人員輸入客戶數(shù)據(jù)時,系統(tǒng)會自動檢測該信息是否已在系統(tǒng)中存在。2 .當(dāng)業(yè)務(wù)員輸入房間號時,系統(tǒng)會檢測該房間號是否存在,假如不存在會提示酒店沒該房間。41 .輸出信息應(yīng)包括系統(tǒng)的使用者,如客戶、酒店管理人員、前臺服務(wù)人員等。2 .信息應(yīng)以表格與文檔形式輸出。3 .輸出設(shè)備:打印機、終端顯示器。4 .輸出介質(zhì):輸出到專用紙 X與電腦屏幕上。4系統(tǒng)出現(xiàn)錯誤時,將彈出提示框。并允許工作人員改正。4.5系統(tǒng)程序流程圖取酒Nir嚙時退房有所離客房信總行課客戶破認無謂 i 1入住洱房乳制'. + *

15、 - I信U文納押叁歌消痍訂輸入客戶箱思F十卜彳一力,"力嚀一接收預(yù)訂信息 <鎏證客房信息I展住產(chǎn)生訂單并彈出窗口以恃確認 )JLei, nr | 預(yù)討111第五章模塊設(shè)計思路分析本程序共有五大功能模塊:新建模塊、更改模塊、刪除模塊、查詢模塊和顯示模塊。各模塊在功能上互相補充,在程序中互相融合,才能實現(xiàn)一個具有多種功能的管理系統(tǒng)。1新建模塊:實現(xiàn)所有客房、訂房客戶的錄入工作。2更改模塊:提供數(shù)據(jù)的修改,包括客戶某某、客房描述等。3刪除模塊:將已退訂的客戶從數(shù)據(jù)庫中刪除。4查詢模塊:本程序最重要的模塊,也是本系統(tǒng)的精髓所在。通過房間號或客戶號實現(xiàn)客房 的預(yù)訂情況以與客戶入住情況的

16、查詢工作。5顯示模塊:顯示所有客房、訂房客戶的根本信息。在程序設(shè)計上,我們的目標(biāo)就是先實現(xiàn)單個模塊,進而實現(xiàn)整個程序。本程序正是本著這種思 想,一步一步,有條不紊的進展規(guī)劃與設(shè)計。本程序通過四個類:客戶類、客戶庫類、客房類、客 房庫類,并通過主函數(shù)調(diào)用類函數(shù)實現(xiàn)了這五大功能模塊的功能。第六章使用說明1程序主界面:界面簡潔明了,一目了然,便于操作。選擇數(shù)字 0-6進入相應(yīng)功能。I 'E沖刷口I = 亙(2)訂房:主界面選擇 1進入訂房功能二p禺.正且自41 3 1m 13 ( rr "a 居舄居<舄春 r;=三宜屋一恒e-=z=°(3)查詢房間預(yù)訂情況:主界面選

17、擇3進入該功能室主宅至; 號#,匚=二 0 6 16(4)增刪客戶信息:主界面選擇4進入該功能1 " E:HotelDebugHotfl.exe".二!回 冠1.增加客戶信息:系統(tǒng)提示輸入客戶、某某等信息,按要求錄入即可。2,刪除個人信息:系統(tǒng)提示輸入要更改的客戶號,輸入后即可更改該客戶的個人信息。3.返回:返回主界面。5增刪房間信息:主界面選擇 5進入客房信息管理菜單。415,¥目導(dǎo)屬一 洵情借劉-電但-舊.尸lel_J.房料客國耳iTe電音也善冠 變二二二 向“ 一啟二 i 二二-Id-r rII.信甲 間理E 居->三 F除川 .若瞿費房間編號,器紜q

18、r戰(zhàn)M里直百之亂口,1 .新增:系統(tǒng)提示輸入房間號、房間描述等信息,按要求錄入即可。2 .刪除:系統(tǒng)提示輸入要刪除的房間號,輸入后即可刪除該房間。3 .返回:返回主界面。6查詢客戶和房間總信息量:主界面選擇6進入該功能,通過讀取文件信息、預(yù)訂然后將信息輸出顯示。.1白學(xué)號客戶已壇區(qū)訂嗎間m號客戶53 2已稅前訂房司4 弓客戶 S JiUM.LPie n,己1FCI11 房間111吟"客戶riwiC 匕未的訂卮回號客戶/.巧訂房3魏版蠹豪華3還未蹄二丁感1號房間C翻總統(tǒng)套房3己辭詞項訂咖與房間M押 音迤林回、配音到前匚經(jīng)榭阪丁:“號庭間。絨山翳套房、舒適溫窖己蛭被預(yù)訂.83號房間C翔高

19、級帝皇廳、面戟大海)已經(jīng)被預(yù)訂01號房間£1班 高醺良秋套房、豪華A-已整糠頊訂7退房:主界面選擇 2進入退房功能?;?wni 一三(E自自西店 "司白 招考客考客 妻正出 匚看很查一用音杳_迪 K"+"eIH:5M- a 3 一F h 用 s 二二二 ourax音白耨:戶曾瓶退廁一8退出:主界面選擇 0退出程序。(9)文件中讀取房間信息room曲南房房客房Mi 訂年查一寶盤.急追 預(yù)售信相room.txt 記事本海4<華電溫朝S面,配針:高房皇套標(biāo)套和忌套 華統(tǒng)一改級鬟級視 =客忌妞日-eA量后盡高電12 4 3 2 1 115*- -a皿 .

20、Jlx 200100100 163211325(10)文件讀取客戶信息 customercustom er. txt - 記事本文件(F)編輯(E)格式(0查看(V)幫助H)xuxu 1022xuxu 1010 zhuchen1064xuli1065saibei1103shentLan1251David 100SHarry10061Ata1002Tom1004xuxu1066dali1023,第七章程序源代碼程序源代碼包含三大塊:類定義、各功能函數(shù)定義與實現(xiàn)和主函數(shù)實現(xiàn)類定義源代碼:#ifndef INFO_H#define INFO_H#include<fstream>#incl

21、ude<string>#include<cstdlib>using namespace std;namespace info_spaceclass Customerpublic:Customer。;string name;int number; /客戶編號;class Room( public: Room();int room_number;int room_level;/ 房間等級,1-5 級string room_config;/ 房間配置:高級,優(yōu),良,中等,普通 ;class CustomerBase(public:CustomerBase();void add

22、(Customer temp);/前條件,temp 已經(jīng)含有值void remove(Customer temp);Customer the_customer;CustomerBase* next;class RoomBase(public: RoomBase();void add(Room temp);void remove(Room temp);Room the_room;RoomBase* next;class InfoBase( public:int customer_number;int room_number;InfoBase();void add(InfoBase*& t

23、emp_ptr,int um,int rnum);void remove(InfoBase*& temp_ptr,int um);bool check(InfoBase*& temp_ptr,int um);bool checkall(InfoBase*& temp_ptr,int um,int rnum);void output(InfoBase*& temp_ptr);InfoBase* next;); typedef CustomerBase* CBasePtr; typedef RoomBase* RBasePtr;typedef InfoBase* I

24、BasePtr;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; ) void pause() char get;cout<<"請按下任何鍵繼續(xù)"<&

25、lt;endl;cin.get(get);cin.get(get);) /info_space 的結(jié)尾 #endif INFO_H 各功能函數(shù)源代碼:#ifndef INFO_FUN_H#define INFO_FUN_H#include<iostream>#include<fstream>#include<string>#include<cstdlib>#include "info.h"namespace info_space void readfile(ifstream& instream,CBasePtr&

26、; temp) /從文件中讀取客戶數(shù)據(jù)int t_number=-1;string t_name=""CBasePtr t_temp=new CustomerBase;instream>>t_name;while(!instream.eof()instream>>t_number;t_temp->the_=t_name;t_temp->the_customer.number=t_number;if(instream.eof() return;t_temp->next=temp;temp=t_temp;t_t

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

28、reak; / 這兩個if語句用來判別輸出客戶信息 outstream<<t_temp->the_<<""<<t_temp->the_customer.number<<endl;t_temp=t_temp->next; void readfile(ifstream& instream,RBasePtr& temp) /讀取文件函數(shù)的重載int number=-1;int level=0;string config=""RBasePtr t_temp

29、=new RoomBase;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=new

30、RoomBase;instream>>number; void writefile(ofstream& outstream,RBasePtr& 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語句用來判別輸出房間信息 outstream<<t_temp->the_room.room_

31、number<<"" <<t_temp->the_room.room_level<<""<<t_temp->the_room.room_config<<endl;t_temp=t_temp->next; bool check(CBasePtr& temp_ptr,int number)/ 假如找到一樣編號如此返回true,否如此返回 falseCBasePtr the_ptr=temp_ptr;while(the_ptr!=NULL) if(the_ptr->th

32、e_customer.number=number)return true;else the_ptr=the_ptr->next;return false; bool check(RBasePtr& temp_ptr,int number) /核對預(yù)訂的客戶和客房信息,看是否還有空房RBasePtr the_ptr=temp_ptr;while(the_ptr!=NULL) if(the_ptr->the_room.room_number=number)return true;else the_ptr=the_ptr->next; return false; void

33、CustomerBase:add(Customer temp) / 添加客戶信息 if(=""|temp.number=-1) cout<<"用戶信息未填寫完整,請重新填寫!"return; elseifstream instream;ofstream outstream;instream.open("E:customer.txt");CBasePtr temp_ptr=NULL;readfile(instream,temp_ptr); /讀取文件中的客戶信息,存入 temp_ptr中CBasePtr t

34、t_ptr=temp_ptr;/用此臨時指針獲取指針尾部指針,從而讓新客戶信息加到指針尾部,寫入的時候也會相應(yīng)寫到文 件尾部while(tt_ptr->next!=NULL) tt_ptr=tt_ptr->next;if(check(temp_ptr,temp.number) cout<<"客戶編號已經(jīng)存在,請核查!"<<endl;return; else CBasePtr ptr=new CustomerBase;ptr->the_customer=temp;tt_ptr->next=ptr; outstream.open(

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

36、tr); /讀取文件中的客戶信息,存入 temp_ptr中if(!check(temp_ptr,temp.number) cout<<"不存在此編號!"<<endl;return; CBasePtr before=temp_ptr,after=temp_ptr; /創(chuàng)建一個前指針和后指針,方便刪除對應(yīng)元素if(before->the_customer.number=temp.number) (temp_ptr=temp_ptr->next; /如果第一個元素就是要刪除的元素如此直接刪除after=NULL; 元素已經(jīng)刪除,可以直接寫入文件

37、中,設(shè)置 after為NULL跳過while循環(huán)flag=1;while(after!=NULL)(if(after->the_customer.number=temp.number)(before->next=after->next;flag=1; / 刪除成功,設(shè)置標(biāo)志為1else(before=before->next;after=before->next;/while循環(huán)完畢if(flag=0) cout<<"不存在此編號!"<<endl; 刪除失敗else ( outstream.open("E:cu

38、stomer.txt");writefile(outstream,temp_ptr); /將新鏈表寫入文件 void RoomBase:add(Room temp) /文件中存在的房間信息(if(temp.room_number=-1|temp.room_level=0|temp.room_config="") (cout<<"房間信息未填寫完整,請重新填寫! "return; else(ifstream instream;ofstream outstream;instream.open("E:room.txt"

39、);RBasePtr temp_ptr=NULL;readfile(instream,temp_ptr); /讀取文件中的房間信息,存入 temp_ptr中RBasePtr tt_ptr=temp_ptr;/用此臨時指針獲取指針尾部指針,從而讓新房間信息加到指針尾部,寫入的時候也會相應(yīng)寫到文 件尾部while(tt_ptr->next!=NULL) tt_ptr=tt_ptr->next;if(check(temp_ptr,temp.room_number)(cout<<"房間編號已經(jīng)存在,請核查!"<<endl;return;else(

40、RBasePtr ptr=new RoomBase;ptr->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è)置一個標(biāo)記,用來檢驗刪除是否成功ifstream instream;ofstream outstream;instream.open("E:room.txt");RBasePtr tem

41、p_ptr=NULL;readfile(instream,temp_ptr); /讀取文件中的房間信息,存入 temp_ptr中if(!check(temp_ptr,temp.room_number)(cout<<"不存在此編號!"<<endl;return; )RBasePtr before=temp_ptr,after=temp_ptr; /創(chuàng)建一個前指針和后指針,方便刪除對應(yīng):if(before->the_room.room_number=temp.room_number) temp_ptr=temp_ptr->next; /如果第

42、一個元素就是要刪除的元素如此直接刪除after=NULL; 元素已經(jīng)刪除,可以直接寫入文件中,設(shè)置 after為NULL跳過while循環(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)elsebefore=before->next;after=before->next;)/while循環(huán)完畢if(flag=0) cout<<"不存在此編號!&q

43、uot;<<endl; 刪除失敗elseoutstream.open("E:room.txt");writefile(outstream,temp_ptr); /將新鏈表寫入文件 void InfoBase:add(IBasePtr& temp_ptr,int um,int rnum) /增加預(yù)定信息if(um<0|rnum<0) cout<<"請?zhí)顚懸粋€正整數(shù)編號!"return;) else(IBasePtr ptr=new InfoBase;ptr->customer_number=um;ptr-&

44、gt;room_number=rnum;ptr->next=temp_ptr;temp_ptr=ptr;) )void InfoBase:remove(IBasePtr& temp_ptr,int um) /退訂后刪除相關(guān)預(yù)定信息(IBasePtr before=temp_ptr,after=temp_ptr;if(before->customer_number=um) (temp_ptr=temp_ptr->next;cout<<"退訂成功!"<<endl;return;)while(after!=NULL)(if(aft

45、er->customer_number=um)(before->next=after->next;cout<<"退訂成功!"<<endl;return;) else(before=before->next;after=before->next;) )bool InfoBase:check(IBasePtr& temp_ptr,int um) /檢查該客戶是否預(yù)定房間(IBasePtr ptr=temp_ptr;while(ptr!=NULL) (if(ptr->customer_number=um)retu

46、rn true;else ptr=ptr->next;)return false;)bool InfoBase:checkall(IBasePtr& temp_ptr,int um,int rnum) (IBasePtr ptr=temp_ptr;while(ptr!=NULL)(if(ptr->customer_number=um)(cout<<"該客戶已經(jīng)預(yù)訂房間!"<<endl;return true;)else if(ptr->room_number=rnum)(cout<<"該房間已被預(yù)訂!

47、"<<endl;return true;)else ptr=ptr->next;)return false;)void InfoBase二output(IBasePtr& temp_ptr)(if(temp_ptr=NULL)(cout<<"沒有房間預(yù)訂信息可查!"<<endl;return;) else(IBasePtr ptr=temp_ptr;while(ptr!=NULL)cout<<ptr->customer_number<<" 號客戶選擇了 "<&

48、lt;ptr->room_number<<"號房間"<<endl;#include<string>#include<cstdlib>#include<dos.h>#include "Info.h" /包含所有的類定義#include "info_fun.h" /包含所有的函數(shù)定義using namespace info_space;int main()int choice;int customer_number,room_number;CBasePtr CB_ptr=N

49、ULL;RBasePtr RB_ptr=NULL;IBasePtr IB_ptr=NULL;Customer the_customer;Room the_room;ifstream in_customer;in_customer.open("E:customer.txt"); /打開存儲客戶信息的文件ifstream in_room; in_room.open("E:room.txt"); /打開存儲房間信息的文件label_menu:cout<<" 房間預(yù)訂菜單"<<endl;cout<<&quo

50、t;1 預(yù)定房間"<<endl;cout<<"2 退訂房間"<<endl;cout<<"3 查詢房間預(yù)定情況"<<endl;cout<<"4 增刪客戶信息"<<endl;cout<<"5 增刪房間信息"<<endl;cout<<"6 查詢客戶和房間總信息"<<endl;cout<<"0 退出"<<endl;cou

51、t<<"Your choice:"<<endl;cin>>choice;if(choice>6|choice<0)cout<<"輸入的數(shù)字有誤,請重新輸入!"<<endl;system("cls");goto label_menu;switch(choice) case 1:cout<<"請輸入客戶編號和房間編號"<<endl;cout<<"客戶編號:"<<endl;cin&g

52、t;>customer_number;cout<<"房間編號:"<<endl;cin>>room_number;readfile(in_customer,CB_ptr); /讀取文件客戶信息if(!check(CB_ptr,customer_number)cout<<"客戶編號不存在,請核查!"<<endl;pause();/system("cls");goto label_menu;readfile(in_room,RB_ptr);讀取文件房間信息if(!check(

53、RB_ptr,room_number)cout<<"房間編號不存在,請核查!"<<endl;pause();/system("cls");goto label_menu;if(!IB_ptr->checkall(IB_ptr,customer_number,room_number) /客戶沒有預(yù)訂房間且房間沒有被預(yù)訂IB_ptr->add(IB_ptr,customer_number,room_number);break;case 2:cout<<"請輸入客戶編號:"<<en

54、dl;cout<<"客戶編號:"<<endl;cin>>customer_number;readfile(in_customer,CB_ptr); /讀取文件客戶信息if(!check(CB_ptr,customer_number)cout<<"客戶編號不存在,請核查!"<<endl;pause();/system("cls");goto label_menu;)if(IB_ptr->check(IB_ptr,customer_number) /檢查該客戶是否已經(jīng)預(yù)定房

55、間IB_ptr->remove(IB_ptr,customer_number);elsecout<<"該客戶未預(yù)定房間,請核查!"<<endl;pause();/system("cls");goto label_menu;)break;)case 3:IB_ptr->output(IB_ptr);break;)case 4:int choose;cout<<"1 增加客戶信息"<<endl;cout<<"2 刪除客戶信息"<<end

56、l;cout<<"3 返回主菜單"<<endl;cin>>choose;switch(choose) case 1:string name=""int number=-1;Customer temp;cout<<"請輸入客戶名稱和編號:"<<endl;cout<<"客戶名稱:"<<endl;cin>>name;cout<<"客戶編號:"<<endl;cin>>num

57、ber;=name; temp.number=number;CB_ptr->add(temp);break;)case 2:(string name=""int number=-1;Customer temp;cout<<"請輸入客戶編號:"<<endl;cin>>number;=name; temp.number=number;CB_ptr->remove(temp);break;)case 3:(system("cls");goto label_menu;)break;)case 5:(int choose;cout<<"1 增加房間信息"<<endl;cout<<-2 刪除房間信息"<<endl;cout<<"3 返回主菜單"<<endl;cin>>choose;switch(choose)(case 1:(int number=-1;int level=0;string config=""Room temp;cout<<"請輸入房間編號,等級(1-5級

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論