宾馆退房管理的设计与实现.docx
《宾馆退房管理的设计与实现.docx》由会员分享,可在线阅读,更多相关《宾馆退房管理的设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。
宾馆退房管理的设计与实现
计算机基础强化训练任务书
学生姓名:
专业班级:
指导教师:
工作单位:
计算机科学与技术学院
题目:
宾馆退房管理的设计与实现
初始条件:
理论:
学完计算机基础知识,掌握C/C++语言编程基础和VC开发平台的使用。
实践:
计算机科学系实验中心提供计算机及软件开发环境。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
(1)系统需求分析,得到系统的数据需求和功能需求,分析结果用表格形式记录。
(2)系统设计,包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。
要求内存数据用链表组织,数据文件用文本文件,用户界面用字符界面,枚举量用枚举类型表示。
至少实现数据记录的增加、修改、删除、查询及相应结果的显示,查询应能按不同数据项进行。
(3)编制好程序后,设计若干测试用例,上机测试并通过所设计的程序系统。
(4)设计报告按格式要求书写。
设计报告书正文的内容应包括:
1.系统描述,包括问题说明、数据需求和功能需求;
2.系统设计,包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计的说明;
3.系统测试,包括测试用例的描述,测试方法和测试结果;
4.设计的特点、不足、收获与体会。
时间安排:
设计安排一周(21—21周(7月6-10日)):
周1上午:
指导教师介绍开发平台的使用、文件操作等。
周1下午:
完成系统分析、代码设计、文件设计、输入设计、
输出设计、用户界面设计和处理过程设计。
周2-周4:
完成程序设计与调试,并撰写设计报告书。
周五全天:
设计验收并收取设计报告(第1-8节课到实验中心进行上机验收)。
指导教师签名:
201年月日
系主任(或责任教师)签名:
201年月日
宾馆退房管理的设计与实现
1.系统描述
1.1问题说明
此次课程设计的要求是,内存数据用链表组织,数据文件用文本文件,用户界面用字符界面,枚举量用枚举类型表示。
完成数据记录的相应操作,并将结果显示出来。
结合本次的任务是设计与实现宾馆的退房管理,我们要完成初始信息的设定与储存、特定信息的查询和删除。
1.2数据需求
房间信息:
intnum
房间号
intgrade
房间等级
intprice
房间租赁每日价格
intmode
房间状态
顾客信息:
charname[10]
旅客姓名
intID
旅客身份证号
introom_num
旅客居住的房间号
intday
旅客居住天数
intcharge
旅客居住费用
1.3功能需求
1)信息的设定与存储:
对于宾馆中各房间规格设置不同,我们需要存储每个房间的基本信息,同时,我们还要存储每位入住旅客的基本信息,这样,我们就需要用两个文件分别保存房间信息和旅客信息。
2)信息的查询和删除:
在对信息进行操作时,需要先将信息从文本文件中读出。
对于查询的实现,提供两种方式供用户选择,即按顾客信息查询和按房间号查询,任何一种查询都是对两个文件中数据的操作,而两文件之间由房间号相关联。
对于信息的删除,我们用链表实现此操作,同时将更改后的信息重新存入文件,以取代原有信息。
2.系统设计
2.1内存数据结构设计
按照本次课程设计的要求,在内存中采用链表进行数据的存储:
房间信息存储表示:
structroom
{
intnum;//房间号
intgrade;//等级
intprice;//价格
intmode;//状态
room*next;//指向下一结点的指针
};
旅客信息存储表示:
structcustomer
{
charname[10];//旅客姓名
intID;//旅客身份证号
introom_num;//旅客入住房间号
intday;//旅客入住天数
intcharge;//住宿费用
customer*next;//指向下一结点的指针
};
2.2数据文件设计
对于两类信息需用不同的文本文件保存,这里使用“room.txt”文本文件保存房间信息,使用“customer.txt”文本文件保存旅客信息,对文件信息的操作分为读、写操作,程序中的实现如下:
写入:
fstreamout_r;//对room.txt写操作
out_r.open("room.txt",ios:
:
out);
fstreamout_c;//对customer.txt写操作
out_c.open("customer.txt",ios:
:
out);
读出:
fstreamin_r;//对room.txt读操作
in_r.open("room.txt",ios:
:
in);
fstreamin_c;//对customer.txt读操作
in_c.open("customer.txt",ios:
:
in);
2.3代码设计和输入/输出设计
2.3.1代码设计
room*Creat_room(room*&r)
操作结果:
打开文件“room.txt”,创建链表,并对链表中各结点的成员赋值,用以对各房间的基本信息的初始化,同时将各房间信息存入相应文件中。
customer*Creat_customer(customer*&c,room*rr,int&n)
初始条件:
宾馆中各房间基本信息已知
操作结果:
打开文件“customer.txt”,创建链表,对各结点的成员赋值,用以记录已入住宾馆的旅客的信息,并将所有旅客信息存入到相应文件中。
voidsearch_1()
初始条件:
文件“room.txt”和“customer.txt”已存在,并保存有相应所需信息。
操作结果:
打开两个文本文件,按输入的顾客信息进行查询,读出文本信息,找出所查询的顾客信息和对应房间信息,并输出;若未能查找到,则输出相应错误信息。
voidsearch_2()
初始条件:
文件“room.txt”和“customer.txt”已存在,并保存有相应所需信息。
操作结果:
打开两个文本文件,按输入的房间号进行查询,读出文本信息,找出所查询的顾客信息和对应房间信息,并输出;若未能查找到,则输出相应错误信息。
voidcheck_out(customer*c,room*rr)
初始条件:
房间信息和顾客信息的链式存储表示,文件“room.txt”和“customer.txt”已存在,并保存有相应所需信息。
操作结果:
对输入的顾客信息查找并删除表示顾客信息的链表中相应结点,并修改对应房间状态,将文件“room.txt”和“customer.txt”中原有信息清除,将更新链表中的信息对应存储,以实现文本中信息的更新,从而实现信息删除操作。
2.3.2输入/输出设计
对于此次课程设计,选用文件管理的方式对数据信息进行保存,采用文件管理的基本操作,利用流输出运算符“<<”和流输入运算符“>>”输输入输出标准类型数据。
对于用户,在界面上提供各种操作的入口,依次实现按顾客信息进行查询、按房间号信息进行查询、顾客退房管理等功能,根据用户的需要,可实现循环操作,在用户选择退出指令时,退出整个程序,并对数据进行保存。
2.4用户界面和处理过程设计
2.4.1用户界面设计
在对房间信息和已入住顾客信息进行初始化后,便可进入此管理应用的用户界面,界面设计如下:
voidwelcome()
{
cout<<"";
for(inti=0;i<10;i++)
cout<<"****";
cout<cout<<"*欢迎进入宾馆退房管理系统*"<cout<<"**"<cout<<"*<1>按顾客信息查询*"<cout<<"*<2>按房间号查询*"<cout<<"*<3>退房管理*"<cout<<"*<4>退出*"<cout<<"";
for(intj=0;j<10;j++)
cout<<"****";
cout<cout<<"请选择<1-4>:
";
}
效果图如下:
2.4.2处理过程设计
在查找顾客信息时,两种方法的实现都是运用对room.txt和customer.txt中的数据进行遍历,查找与相应职匹配的结果并进行输出,若没有找到匹配结果,则给出if()语句条件判断,输出查询未果提示。
而对文本文件的遍历是通过do…while语句实现的,对链表操作也是通过do…while语句确定指针的位置,实现查找删除工作。
在为用户提供多种功能时,是通过switch语句实现依据用户的不同选择调用不同功能函数,以实现不同功能,为实现操作的可持续进行,使用while语句来控制循环,给出程序结束控制条件控制程序结束。
3.系统测试
3.1测试用例的描述
房间初始信息:
房间号
房间等级
房间价格
当前房间状态
101—110
1
100
0
201—210
2
200
0
301—310
3
400
0
旅客信息:
姓名
身份证号
房间号
住宿天数
住宿费用
郭靖
123456
106
5
—
黄蓉
320143
107
5
—
杨过
542310
309
4
—
李斯
100001
210
7
—
段誉
130210
109
4
—
李斯
120130
301
8
—
3.2测试方法
1)按顾客信息进行查询:
分别查询已入住顾客中相同姓名不同身份证号的顾客信息,查询已入住的顾客和未入住的顾客信息。
2)按房间号查询:
查询已租赁的房间信息及对应顾客信息,以及未被租赁的房间信息。
3)退房管理:
提出退房请求,输入退房旅客信息,查找、结算并删除顾客信息,并对其进行检测。
3.3测试结果
3.3.1初始化后的文件信息
房间信息:
旅客信息
以上信息显示了文本文件room.txt和customer.txt分别对房间信息和旅客
信息的存储。
3.3.2信息查询
按旅客信息查询:
由上图输出结果显示,可以看到实现了对旅客住宿信息的按旅客姓名和身份证
号进行查询,并能对非入住人员的查询给出相应提示。
按房间号查询:
由上图输出结果显示,可以看到实现了对旅客住宿信息的按旅客房间号进行查
询,并能对为租赁房间的查询以及错误房间号的输入给出相应提示。
3.3.3退房管理
由上图输出结果显示,可以看到实现了对住宿旅客的住宿结算和退房管理,并
能对对未入住旅客的退房操作给出相应提示。
3.3.4退房操作后的文件存储
room.txt:
由上图显示可看到,在有旅客入住的房间,其状态表示mode=1,符合预期结果。
customer.txt:
由此可见,退房操作中删除的信息已经从customer.txt中删除,符合预期结果。
结束显示:
4.总结与体会
4.1总结
此次课程设计对于实现的功能是较为简单的,是我们所熟知的,但重要的是我们要学会使用文本文件存储数据信息,并对数据进行基本操作。
通过此次课程设计,我们不仅温习了已学的知识,提高其熟练程度,更熟悉了文本文件的操作,虽然开始时未能掌握对文本文件操作的要点,但经过反复尝试、同学讲解渐渐熟悉了文本文件中的一些操作。
另外,在实现功能上,我