李喜乐 杨润耀 于洪基
摘 要:本文基于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()(按编号查询客房)为例说明。首先定义各个变量,通过语句语句“ifstream f1(“Guestroom.txt”);”打开文件;通过if语句“if(!f1)”进行安全检查,若文件出错,打印“对不起,没有客房信息!”;若打开文件成功,进行while循环,循环条件:文件中内容没有读取完,语句“while(f1>>num1>>type1>>price1>>count1>>s1)”实现;如果找到了num==num1,就使flag=true;紧接着打印出内容cout<<”\t客房编号:”< 3.3 修改函数 首先定义Guestroom p[N];和Guestroom q;用于读取数据;string num1;int i=0;用于循环;bool flag=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中部分信息复制进去,这几个函数在前面都已详细介绍。 数据的提取和写入是通过输出流和输入流来进行的,通过重载<<和>>,方便的提取和写入数据。friend istream&operator;>> (istream&fin;,Basicperson&p;){p.Pinput(fin);return fin;}friend ostream&operator;<<(ostream&fout;,Basicperson&p;){p.Pprt(fout);return fout;}同时还运用了read_ch,tellg,seekp来读取数据。 4 综述 本系统的类和函数有紧密的联系,函数又与文件紧紧相连,通过这几块大的知识相互结合运用再与C++中的异常,虚函数,模板等知识串联,实现了系统基本的录入,打印,查询,修改,删除功能。 参考文献 [1] 陈建平,刘维富等.Visual C++程序设计课程建设研究与实践[J].计算机教育,2007(12).