课程设计宾馆客房管理程序的设计与实现.docx
- 文档编号:13235259
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:30
- 大小:170.53KB
课程设计宾馆客房管理程序的设计与实现.docx
《课程设计宾馆客房管理程序的设计与实现.docx》由会员分享,可在线阅读,更多相关《课程设计宾馆客房管理程序的设计与实现.docx(30页珍藏版)》请在冰点文库上搜索。
课程设计宾馆客房管理程序的设计与实现
课程设计
题目
宾馆客房管理程序的设计与实现
学院
计算机科学与技术学院
专业
软件工程专业
班级
姓名
指导教师
2013
年
元
月
25
日
课程设计任务书
题目:
宾馆客房管理程序的设计与实现
初始条件:
理论:
学习了《数据结构》课程,掌握了基本的数据结构和常用的算法;
实践:
软件工程系实验室提供计算机及软件开发环境。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、系统应具备的功能:
(1)管理员对客房基本信息进行输入、删除、修改和查询
(2)旅客入住处理
(3)管理人员对客房的入住情况进行查询
(4)旅客退房结帐处理
2、数据结构设计;
3、主要算法设计;
4、编程及上机实现;
5、撰写课程设计报告,包括:
(1)设计题目;
(2)摘要和关键字(中文和英文);
(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、设计体会等;
(4)结束语;
(5)参考文献。
时间安排:
2013年元月21日-25日(第21周)
元月21日查阅资料
元月22日系统设计,数据结构设计,算法设计
元月23日-24日编程并上机调试,验收程序
元月25日撰写报告、提交报告
指导教师签名:
2013年元月21日
系主任(或责任教师)签名:
2013年元月21日
宾馆客房管理程序的设计与实现
摘要:
本次课程设计需要实现的是——客房管理系统的链表实现。
主要实现的功能包括:
客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。
客房信息可写入文件,也可从文件中读取。
客房信息涉及的数据有客房编号、客房类型、定房日期、客房内容(设施)、定房有效期等。
关键字:
链表排序输入输出算法
Summary:
Theneedtoimplementthecurriculumdesign-roomslinkedimplementationofthemanagementsystem.Themainachievementofthefeaturesinclude:
Roominformationentry,modify,delete,remainingroomsinformationsearch,sortandoutput.Roominformationcanbewrittentoafile,andcanalsobereadfromafile.Theroominformationrelatestothedataroomnumber,roomtype,theroomgivendate,roomsthecontent(facilities),Bookingexpirationdate.
Keywords:
LinkedlistSequenceInputandoutputAlgorithm
1引言
客房管理系统是根据某酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作。
客房是一个对外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。
客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。
2需求分析
经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房,VIP间,甚至总统套房。
而初步设定通过客房的编号、类型、价格来定位一个客房的管理系统。
客房是一个对外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。
客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。
本次课程设计需要实现的是——客房管理系统的链表实现。
3数据结构设计
按照需求分析所得,客房信息系统有以下几个功能模块:
1.添加录入信息模块;
编写指针摸板,定义临时的客房间数,包括其各项类的成员,编号,类型,定房日期,价格,客房内容,入住天数。
3.修改客房信息模块;
读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数,并保存。
4.删除客房信息模块;
从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。
5.查询剩余客房函数;
分按编号、类型、价格查询,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。
6.排序剩余客房模块;
根据具体所需排序,可以是编号、价格或者类型,本系统中根据的是客房入住的天数来排序。
7.输出剩余客房函数;
输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。
由上述需求分析可得,系统的功能模块图如图1所示。
4算法设计
4.1类的设计
根据上述需求分析,有客房类和链表类。
4.1.1客房类
系统研究客房cGuestroom类中成员:
ID[SIZE]是客房编号,Type[SIZE]是客房类型,Book[SIZE]是定房日期,Price[SIZE]是每间客房的价格,StayTime[SIZE]是定房的有效期,Function[SIZE]是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。
客房类的UML图如(图2)所示:
classcGuestroom
+ID[BUFSIZE]:
char//客房编号
+Type[BUFSIZE]:
char//客房类型
+Book[BUFSIZE]:
char//定房日期
+Function[BUFSIZE]:
char//客房内容
+StayTime:
int//定房有效期
+flay:
bool//标志
+cGuestroom()//构造函数初始化
4.1.2链表类
在tList类中,有成员:
构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty()const,从尾部插入一个元素的函数Insert(constTe),返回第i个节点的函数GetcNode(inti),在链表中查询某个值的函数boolFind(constTe),析构函数~tList(),头节点head。
链表类的UML图如(图3)所示:
tList
+tList();
+Create():
void
+Empty()const:
bool
+Insert(conste:
T):
void
+*GetcNode(i:
int):
cNode
+Find(conste:
T):
bool
+~tList();
+*head:
cNode
4.2界面设计:
4.2.1主界面的设计
主界面中显示客房管理系统的全部信息,客房信息的录入,客房信息的保存,客房信息的修改,客房信息的删除,剩余客房的查询,剩余客房的排序,剩余客房的输出。
4.2.2分界面:
客房信息的录入的设计
提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。
4.2.3分界面:
客房信息的保存的设计
针对第一步客房信息的输入及以后信息的修改、删除做一个文件保存。
4.2.4分界面:
客房信息的修改的设计
提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。
4.2.5分界面:
客房信息的删除的设计
提示进入删除截面,根据客房编号查找所需删除的客房信息。
4.2.6分界面:
剩余客房信息的查询的设计
在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。
4.2.7剩余客房信息的排序的设计
按提示进行剩余客房的排序,本系统中是以客人的入住天数排序
4.2.8分界面:
剩余客房信息的输出的设计
在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。
5参考文献
【1】陈维兴,林小茶.C++面向对象程序设计教程.北京.清华大学出版社
【2】谭浩强.C语言程序设计.北京:
清华大学出版社.2010,5
【3】www.51CTO.com
6程序实现及测试
6.1源代码
//客房管理系统主要实现的功能包括:
客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。
客房信息可写入文件,也可从文件中读取。
/*系统的登录信息的添加信息的删除信息的修改*/
#include
usingnamespacestd;
#include
#defineBUFSIZE50
classcGuestroom;
voidFindTheGuestroom();//查找客房
voidFindTheGuestroomById();//按照编号找客房
voidFindTheGuestroomByType();//按照类型找客房
voidFindTheGuestroomByPrice();//按照价格找客房
voidDeleteTheGuestroom();//删除客房
voidAddTheGuestroom();//客房添加
voidModifyTheGuestroom();//修改客房
template
模板,样板
classcNode//节点
{
public:
Tdata;
cNode*next;
};
template
classtList
{
public:
//定义成员函数
tList();
voidCreate();//创建链表
boolEmpty()const;//判断链表是否为空
voidInsert(constTe);//从尾部插入一个元素
cNode
boolFind(constTe);//在链表中查找某个值
~tList();//销毁链表,析构
cNode
};
template
tList
:
tList()//类的成员函数的实现
{
head=newcNode
head->next=NULL;
}
template
voidtList
:
Create()
{
cNode
p=head;
p->next=NULL;
}
template
booltList
:
Empty()const
{
return(head->next==NULL);
}
template
voidtList
:
Insert(constTe)//insert:
插入
{
cNode
p=head;
q=newcNode
q->data=e;
while(p->next)
{
p=p->next;
}
p->next=q;
q->next=NULL;
}
template
cNode
:
GetcNode(inti)//返回第i个节点
{
intk=0;
cNode
p=head;
while(p&&k
{
p=p->next;
++k;
}
returnp;
}
template
booltList
:
Find(constTe)//在链表中查找某个值
{
boolflag=false;
cNode
p=head->next;
while(p)
{
if(p->data==e)
{
flag=true;
break;
}
p=p->next;
}
returnflag;
}
template
tList
:
~tList()
{
cNode
while(head)
{
p=head->next;
deletehead;
head=p;
}
}
classcGuestroom
{
public:
charID[BUFSIZE];//客房编号
charType[BUFSIZE];//客房类型
charBook[BUFSIZE];//提前定房日期
charPrice[BUFSIZE];//客房价格
charFunction[BUFSIZE];//客房主要内容
intStayTime;//入住天数有效期
boolflag;//标志
cGuestroom()//构造函数初始化
{
memset(ID,0,BUFSIZE);memset(Type,0,BUFSIZE);memset(Book,0,BUFSIZE);memset(Function,0,BUFSIZE);
memset(Price,0,BUFSIZE);StayTime=0.0;flag=false;
}//memset:
把char类型转换成ASCII值
};
voidReadData(tList
{
charbuf[BUFSIZE];
ifstreamifile("Guestroom.txt",ios_base:
:
in);//创建一个输出文件流对象
if(!
ifile)
{
cerr<<"读取时打开文件出错!
"< } cGuestroomGuestroom; while(ifile.getline(buf,BUFSIZE))//遍历文本,读取数据 { ifile.getline(buf,BUFSIZE); strcpy(Guestroom.ID,buf);//读取客房编号 memset(buf,0,BUFSIZE); ifile.getline(buf,BUFSIZE);//读取客房类型 strcpy(Guestroom.Type,buf); memset(buf,0,BUFSIZE); ifile.getline(buf,BUFSIZE);//读取提前定房日期 strcpy(Guestroom.Book,buf); memset(buf,0,BUFSIZE); ifile.getline(buf,BUFSIZE);//读取价格 strcpy(Guestroom.Price,buf); memset(buf,0,BUFSIZE); ifile.getline(buf,BUFSIZE);//读取客房主要内容 strcpy(Guestroom.Function,buf); memset(buf,0,BUFSIZE); ifile.getline(buf,BUFSIZE);//读取入住有效期 Guestroom.StayTime=atoi(buf); memset(buf,0,BUFSIZE); Guestroom.flag=true; tListGue->Insert(Guestroom); } cout<<"读取数据成功! \n\n"; ifile.close();//关闭文件 return; } voidAddtheGuestroom(tList { cGuestroomtempGuestroom;//定义临时客房 cout<<"下面开始添加客房信息\n"; cout<<"请输入入住的客房编号: "; cin>>tempGuestroom.ID;//读入客房编号 cout<<"请输入客房类型: "; cin>>tempGuestroom.Type;//读入客房类型 cout<<"请输入客人定房日期: "; cin>>tempGuestroom.Book;//读入定房日期 cout<<"请输入客房价格: "; cin>>tempGuestroom.Price;//读入价格 cout<<"请输入客房的主要内容: "; cin>>tempGuestroom.Function;//读入主要内容 cout<<"请输入客房入住有效期: "; cin>>tempGuestroom.StayTime;//读入入住有效期 tempGuestroom.flag=true; tListGue->Insert(tempGuestroom); cout<<"添加成功! \n"; system("pause");//pause: 停顿,终止 system("cls"); } voidSaveData(tList { inti=0; ofstreamofile("Guestroom.txt",ios_base: : out);//创建一个输入文件流对象 if(! ofile) { cerr<<"保存时打开文件出错! "< } cNode p=tListGue->head->next; while(p) { //从内存中读取数据,存到外盘 if(p->data.flag) { ofile<<"\n"; ofile<<(p->data).ID<<"\n"; ofile<<(p->data).Type<<"\n"; ofile<<(p->data).Book<<"\n"; ofile<<(p->data).Price<<"\n"; ofile<<(p->data).Function<<"\n"; ofile<<(p->data).StayTime<<"\n"; } p=p->next; } cout<<"保存数据成功! \n"; ofile.close(); system("pause"); system("cls"); return; } voidModifytheGuestroom(tList { charid[BUFSIZE]; cout<<"\n请输入你要查找的客房编号: "; cin>>id;//读取客房编号 boolflag=false; cNode p=tListGue->head->next; while(p) { if(strcmp(p->data.ID,id)==0&&p->data.flag) { flag=true; break; } p=p->next; } if(flag==true) {//显示屏幕 cout<<"找到了,该客房的原始信息是: \n"; cout<<"\n\n客房编号: "<<(p->data).ID<<"\t客房类型: "<<(p->data).Type<<"\n\t\t定房日期: "<<(p->data).Book<<"\n\t\t价格: "<<(p->data).Price; cout<<"\n\t\t客房的主要内容: "<<(p->data).Function<<"\n\t\t入住有效期: "<<(p->data).StayTime; cout<<"\n下面开始修改该客房的信息: \n"; cGuestroomtempGuestroom;//定义临时客房 cout<<"请输入客房的客房编号: "; cin>>tempGuestroom.ID;//读入客房编号 cout<<"请输入客房的客房类型: "; cin>>tempGuestroom.Type;//读入客房类型 cout<<"请输入客人的定房日期: "; cin>>tempGuestroom.Book;//读入定房日期 cout<<"请输入客房的客房价格: "; cin>>tempGuestroom.Price;//读入价格 cout<<"请输入客房的客房主要内容: "; cin>>tempGuestroom.Function;//读入客房的主要内容 cout<<"请输入客人入住客房有效期: "; cin>>tempGuestroom.StayTime;//读入入住有效期 tempGuestroom.flag=true; p->data=tempGuestroom; cout<<"修改成功! "; } cout< system("pause"); system("cls"); return; } voidDeletetheGuestroom(tList { charid[BUFSIZE]; cout<<"\n请输入你要查找的客房编号: "; cin>>id;//读取客房编号 boolflag=false; intcount=0; cNode p=tListGue->head->next; while(p) { if(strcmp(p->data.ID,id)==0&&p->data.flag) { count++; flag=true; break; } p=p->next; } if(flag==false)cout<<"对不起,你所查找的客房延长了住房日期! \n";//如果不能删 else//如果能删 { count--; cout<<"找到了,该客房的原始信息是: \n"; cout<<"\n\n客房编号: "<<(p->data).ID<<"\t客房类型: "<<(p->data).Type<<"\n\t\t定房日期: "<<(p->data).Book<<"\n\t\t价格: "<<(p->data).Price; cout<<"\n\t\t客房的主要内容: "<<(p->data).Fun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 宾馆 客房 管理程序 设计 实现