武理课设宾馆退房管理的设计与实现.docx
- 文档编号:28596828
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:30
- 大小:147.85KB
武理课设宾馆退房管理的设计与实现.docx
《武理课设宾馆退房管理的设计与实现.docx》由会员分享,可在线阅读,更多相关《武理课设宾馆退房管理的设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。
武理课设宾馆退房管理的设计与实现
学号:
课程设计
题目
宾馆退房管理的设计与实现
学院
计算机科学与技术学院
专业
计算机科学与技术专业
班级
姓名
指导教师
2012
年
07
月
02
日
计算机基础强化训练任务书
学生姓名:
专业班级:
指导教师:
工作单位:
计算机科学与技术学院
题目:
宾馆退房管理的设计与实现
初始条件:
理论:
学完计算机基础知识,掌握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总结 此次课程设计对于实现的功能是较为简单的,是我们所熟知的,但重要的是我们要学会使用文本文件存储数据信息,并对数据进行基本操作。 通过此次课程设计,我们不仅温习了已学的知识,提高其熟练程度,更熟悉了文本文件的操作,虽然开始时未能掌握对文本文件操作的要点,但经过反复尝试、同学讲解渐渐熟悉了文本文件中的一些操作。 另外,在实现功能上,我们为用户提供操作界面供用户选择执行,优化了视图界面,是我们摆脱了以往的单纯输入输出模式,而进入更加美观化的视图界面设计。 通过对美化过程中的控制以达到预期效果,使我们更加熟悉了各基本语句的相互结合使用。 4.2体会 5.源程序代码 #include #include #include #include usingnamespacestd; structroom { intnum;//房间号 intgrade;//等级 intprice;//价格 intmode;//状态 room*next; }; structcustomer { charname[10];//姓名 intID;//身份证号 introom_num;//住宿房间号 intday;//住宿天数 intcharge;//住宿费用 customer*next; }; room*Creat_room(room*&r) {//创建链表,初始化宾馆所有房间信息,并将数据信息存入room.txt文本文件中 fstreamout_r; out_r.open("room.txt",ios: : out); if(! out_r) { cout<<"无法打开文件! \n"; abort(); } r=newroom; room*p,*q; q=r; inti,j=101; for(i=0;i<10;i++) { p=newroom; p->num=j+i; out_r< p->grade=1; out_r< p->price=100; out_r< p->mode=0; out_r< q->next=p; q=p; } j=201; for(i=0;i<10;i++) { p=newroom; p->num=j+i; out_r< p->grade=2; out_r< p->price=200; out_r< p->mode=0; out_r< q->next=p; q=p; } j=301; for(i=0;i<10;i++) { p=newroom; p->num=j+i; out_r< p->grade=3; out_r< p->price=400; out_r< p->mode=0; out_r< q->next=p; q=p; } p->next=NULL; out_r.close(); returnr; } customer*Creat_customer(customer*&c,room*rr,int&n) {//创建链表,初始化住宿旅客信息,并将数据信息存入customer.txt文本文件中 fstreamout_c; out_c.open("customer.txt",ios: : out); if(! out_c) { cout<<"无法打开文件! \n"; abort(); } customer*p,*q; c=newcustomer; room*r; r=rr->next; q=c; p=newcustomer; cout<<"请输入住宿人员信息(姓名身份证号房间号入住天数): "< cin>>p->name; while(strcmp(p->name,"000")! =0) { out_c< cin>>p->ID>>p->room_num>>p->day; out_c< while(p->room_num! =r->num) { r=r->next; } if(r)r->mode=1; r=rr->next; n++; q->next=p; q=p; p=newcustomer; cin>>p->name; } deletep; q->next=NULL; out_c.close(); returnc; } voidsearch_1() {//按旅客信息进行查找 stringname; intnum,grade,price,mode,id,ID,room_num,day,charge; fstreamin_r; in_r.open("room.txt",ios: : in); if(! in_r) { cout<<"无法打开文件! \n"; abort(); } fstreamin_c; in_c.open("customer.txt",ios: : in); if(! in_c) { cout<<"无法打开文件! \n"; abort(); } stringna; cout< "; cin>>na>>id; do{ in_c>>name>>ID>>room_num>>day; } while((na! =name||id! =ID)&&! in_c.eof()); if(in_c.eof()) { cout< cout< "< cout< cout< } if(! in_c.eof()) { do{ in_r>>num>>grade>>price>>mode; } while(room_num! =num&&! in_r.eof()); cout<<"********************************************************"< cout<<"所要查找的人员信息为: "< cout<<"姓名身份证号房间号入住天数房间等级房间价格住宿费用"< cout< cout< charge=day*price; cout< cout<<"********************************************************"< cout< } in_c.close(); in_r.close(); } voidsearch_2() {//按房间号进行查找 stringname; intnum,grade,price,mode,ID,room_num,day,charge; fstreamin_r; in_r.open("room.txt",ios: : in); if(! in_r) { cout<<"无法打开文件! \n"; abort(); } fstreamin_c; in_c.open("customer.txt",ios: : in); if(! in_c) { cout<<"无法打开文件! \n"; abort(); } intnumber; cout< "; cin>>number; do{ in_c>>name>>ID>>room_num>>day; } while(room_num! =number&&! in_c.eof()); do{ in_r>>num>>grade>>price>>mode; } while(num! =number&&! in_r.eof()); if(in_r.eof()) { cout< cout< "< cout< cout< } elseif(in_c.eof()) { cout< cout< "< cout< cout< } else{ cout<<"********************************************************"< cout<<"所要查找的人员信息为: "< cout<<"姓名身份证号房间号入住天数房间等级房间价格住宿费用"< cout< cout< charge=day*price; cout< cout<<"********************************************************"< } in_c.close(); in_r.close(); } voidcheck_out(customer*c,room*rr) {//实现宾馆的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 武理课设 宾馆 房管 设计 实现