酒店客房管理系統的設計與實現論文

酒店客房管理系統的設計與實現論文

  摘要:本文基於C語言和C++論述了酒店客房管理系統的設計與實現,運用“類”將客房資訊管理、客戶資訊管理以及入住資訊管理相互聯絡;運用各個函式實現具體功能。

  關鍵詞:酒店客房管理;C語言;C++類

  1系統需求分析

  站在使用者的角度上,酒店客房管理系統設計的目的及意義是:

  (1)為了較便利地在檔案中錄入相關的客房資訊和入住資訊;

  (2)為了較便捷地按個人需求或意願來查詢已儲存的相關資訊;

  (3)為了可以透過該系統修改已儲存的相關資訊。

  基於以上考慮,該酒店客房管理系統所需實現的功能有客房資訊、入住資訊和客戶資訊的錄入、查詢、修改等功能。

  2總體設計

  2.1系統功能分析

  根據系統的需求分析,本系統主要實現三大功能:

  (1)客房資訊管理。錄入客房資訊:包括客房編號,價格,型別,容量,使用狀況等資訊的錄入;查詢客房資訊:分別按照編號,價格,型別來查詢客房,瞭解客房狀況;修改及儲存客房資訊:修改客房的基本屬性並進行儲存;列印客房資訊:將酒店中的客房資訊實現全部列印在螢幕上,便於瞭解入住狀況。

  (2)客戶資訊管理。錄入客戶資訊:從入住資訊調入客戶客戶的`基本屬性;查詢客戶資訊:分別按照姓名,身份證號,訂房日期來查詢客戶資訊;修改及儲存客戶資訊:修改客戶基本屬性並儲存;列印客戶資訊:將所有入住過的客戶資訊打印出來,以便檢視;

  (3)入住資訊管理。錄入入住資訊:客戶的基本屬性包括入住客戶的姓名,身份證號,性別,年齡,籍貫,電話,訂房日期,入住時長等,以及入住的房號和房間型別;查詢入住資訊:分別按客戶姓名,房號,入住時間,身份證號進行資訊查詢;修改及儲存入住資訊:修改入住客戶的基本屬性以及所住房間的號碼和型別;列印入住資訊:將入住資訊打印出來,以便查詢。

  2.2類的描述

  本系統共分為五個大類,分別是:

  Basicroom,Guestoom,Basicperson,Person,RoomPerson。

  各個類及函式的關係如下圖所示。

  3詳細設計與實現

  3.1錄入函式

  錄入函式運用在客房資訊與客戶資訊中,在AddtheGuestroom()(輸入客房函式)中,運用“cout<<”下面開始新增客房資訊\n”;cout<<”客房編號:”;”提示使用者輸入資訊;然後用if語句判斷是否儲存,若儲存,建立一個輸入檔案流物件,建立並開啟檔案,透過語句“ofile<3.2查詢函式

  以客房資訊中的Rfindbynum()(按編號查詢客房)為例說明。首先定義各個變數,透過語句語句“ifstreamf1(“Guestroom.txt”);”開啟檔案;透過if語句“if(!f1)”進行安全檢查,若檔案出錯,列印“對不起,沒有客房資訊!”;若開啟檔案成功,進行while迴圈,迴圈條件:檔案中內容沒有讀取完,語句“while(f1>>num1>>type1>>price1>>count1>>s1)”實現;如果找到了num==num1,就使flag=true;緊接著打印出內容cout<<”\t客房編號:”<3.3修改函式

  首先定義Guestroomp[N];和Guestroomq;用於讀取資料;stringnum1;inti=0;用於迴圈;boolflag=false;用於判斷是否已找出所要修改的客房。然後語句:cout<<”\n請輸入你要查詢的客房編號:”;cin>>num1;讀取客房編號;語句“ifstreamifile(“Guestroom.txt”,ios::in);”開啟檔案;運用while(ifile)語句,當沒有讀到檔案尾時,迴圈一直進行;再命令一個tellg指標和seekp指標,指到所要修改的一行;語句“ifile>>p[i].num>>p[i].type>>p[i].price>>p[i].count>>p[i].s;”讀出檔案內容,if(p[i].num==num1),找到,開始列印客房的原始資訊,確認資訊之後,開始修改該客房的資訊。

  修改完成之後,ofstreamofile(“Guestroom.txt”,ios::in|ios::out);ofile.seekp(j);再次運用指標,寫到檔案中指定位置,ofile<3.4資料的儲存和裝載

  本系統中一共有三類資訊:客房資訊,客戶資訊,入住資訊。分別儲存在Guestroom.txt檔案,Person.txt檔案和RoomPerson.txt檔案中(使用者可根據個人習慣更改名稱)。其中,Guestroom.txt和RoomPerson.txt中的資訊是通過錄入函式寫入檔案中的,Person.txt中的資訊是透過調入函式將RoomPerson.txt中部分資訊複製進去,這幾個函式在前面都已詳細介紹。

  資料的提取和寫入是透過輸出流和輸入流來進行的,透過過載<<和>>,方便的提取和寫入資料。friendistream&operator>>(istream&fin,Basicperson&p){p.Pinput(fin);returnfin;}friendostream&operator<<(ostream&fout,Basicperson&p){p.Pprt(fout);returnfout;}同時還運用了read_ch,tellg,seekp來讀取資料。

  4綜述

  本系統的類和函式有緊密的聯絡,函式又與檔案緊緊相連,透過這幾塊大的知識相互結合運用再與C++中的異常,虛擬函式,模板等知識串聯,實現了系統基本的錄入,列印,查詢,修改,刪除功能。

  參考文獻

  [1] 陳建平,劉維富等.Visual C++程式設計課程建設研究與實踐[J].計算機教育,2007(12).

最近訪問