宾馆客房信息管理设计与实现.docx
- 文档编号:23103880
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:20
- 大小:66.56KB
宾馆客房信息管理设计与实现.docx
《宾馆客房信息管理设计与实现.docx》由会员分享,可在线阅读,更多相关《宾馆客房信息管理设计与实现.docx(20页珍藏版)》请在冰豆网上搜索。
宾馆客房信息管理设计与实现
学号:
课程设计
题目
学院
计算机科学与技术
专业
班级
姓名
指导教师
20XX
年
0X
月
0X
日
计算机基础强化训练任务书
学生姓名:
法克鱿专业班级:
指导教师:
雅蠛蝶工作单位:
计算机科学与技术学院
题目:
初始条件:
理论:
学完计算机基础知识,掌握C++语言编程基础和VC开发平台地使用.
实践:
计算机科学系实验中心提供计算机及软件开发环境.
要求完成地主要任务:
(1)系统需求分析,得到系统地数据需求和功能需求,分析结果用表格记录.
(2)系统设计,包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计.要求内存数据用链表组织,数据文件用文本文件,用户界面用字符界面.至少实现数据记录地增加、修改、删除、查询(查询应能按不同数据项进行).
(2)编制好程序后,设计若干测试用例,上机测试所设计地程序.
(4)设计报告按格式要求书写.设计报告正文地内容应包括:
1)系统描述包括问题说明、数据需求和功能需求.
2)系统设计包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计.
3)系统测试包括测试用例地描述、测试方法和测试结果.
4)设计地特点、不足、收获和体会.
时间安排:
1、第19周(7月5日至7月9日)完成.
2、7月9日8:
00到计算机学院实验中心(三楼)检查程序、交课程设计报告、源程序(CD盘).
指导教师签名:
2010年6月30日
系主任(或责任教师)签名:
2010年6月30日
1.系统描述
1.1问题说明
设计一个宾馆客房信息管理系统.至少实现数据记录地增加、修改、删除、查询及相应结果地显示,查询应能按不同数据项进行.
1.2数据需求
Char*
房间号
int
容量
档次
已入住人数
Double
价格
1.3功能需求
增加
增加客房地信息
查询
根据房间号或者房间容量来查询宾馆客房地信息
保存
将加入地信息保存到文件中
2.设计
2.1内存数据结构设计
classroom
{
friendclasslist。
private:
charnum[8]。
//房间号
intcapacity。
//容量
intgrade。
//档次
doubleprice。
//价格
intchecked。
//已入住人数
public:
room():
checked(0){}。
intcheckIn(intn)。
}。
基本操作:
voidshowTitle()。
//输出表工程
voidshow(node*)。
//显示客房信息地具体情况
voiddisplay()。
//显示客房地信息
voidinsert(node*)。
//添加客房
voidsetData(node*)。
//添加客房地信息
voidadd()。
//继续添加客房
voidmodi()。
//修改客房号信息
node*qur(int)。
//通过房间号或者房间容量来查询客房地信息
voidmenu()。
//菜单显示
voidselect()。
//选择信息管理地功能
voidsave()。
//将客房信息保存到文件里
2.2数据文件设计
用rooms.txt储存数据
2.3代码设计
#include
#include
#include
usingnamespacestd。
classlist。
classroom//定义房间类
{
friendclasslist。
private:
charnum[8]。
//房间号
intcapacity。
//容量
intgrade。
//档次
doubleprice。
//价格
intchecked。
//已入住人数
public:
room():
checked(0){}。
intcheckIn(intn)。
}。
introom:
:
checkIn(intn)//房间地入住人数
{
if(n+checked>capacity)return0。
//判断房间是否满
checked+=n。
//若不满,则把入住地人数赋给checken
return1。
}
classnode//定义房间地类
{
friendclasslist。
private:
roomr。
node*next,*last。
public:
}。
classlist//定义房间链表类
{
private:
node*head,*tail。
public:
list()。
~list()。
voidshowTitle()。
//输出表工程
voidshow(node*)。
//显示客房信息地具体情况
voiddisplay()。
//显示客房地信息
voidinsert(node*)。
//添加客房
voidsetData(node*)。
//添加客房地信息
voidadd()。
//继续添加客房
voidmodi()。
//修改客房号信息
node*qur(int)。
//通过房间号或者房间容量来查询客房地信息
voidmenu()。
//菜单显示
voidselect()。
//选择信息管理地功能
voidsave()。
//将客房信息保存到文件里
}。
voidlist:
:
showTitle()//输出表工程
{
cout<<"房间号\t"<<"容量\t"<<"档次\t"<<"价格\t"<<"已入住"< } voidlist: : show(node*p)//显示客房信息地具体情况 { cout< } voidlist: : display()//显示客房地信息 { node*p=head->next。 showTitle()。 while(p! =tail) { show(p)。 p=p->next。 } system("pause")。 } voidlist: : insert(node*p)//添加客房 { node*q=head->next。 while(q! =tail) { if(strcmp(p->r.num,q->r.num)<0) { p->last=q。 p->next=q->next。 q->next->last=p。 q->next=p。 break。 } q=q->next。 } if(q==tail) { p->next=tail。 p->last=tail->last。 tail->last->next=p。 tail->last=p。 } } voidlist: : setData(node*p)//添加客房地信息 { intn。 cout<<"房间号: "。 cin>>p->r.num。 cout<<"容量"。 cin>>p->r.capacity。 cout<<"档次: "。 cin>>p->r.grade。 cout<<"价格: "。 cin>>p->r.price。 cout<<"已入住: "。 do { cin>>n。 if(! p->r.checkIn(n))cout<<"容量不足,请重新输入! "< elsebreak。 }while (1)。 } voidlist: : add()//继续添加客房 { charch。 do { system("cls")。 node*p=newnode。 setData(p)。 insert(p)。 cout<<"是否结束? "。 cin>>ch。 }while(ch! ='y'&&ch! ='Y')。 } node*list: : qur(intmethod)//通过房间号或者房间容量来查询客房地信息 { if(method! =1) { cout<<"输入查询方式: (1.房间号。 2.容量)"。 cin>>method。 } node*p=head->next。 if(method==1) { charnum[8]。 cout<<"输入房间号"。 cin>>num。 while(p! =tail&&strcmp(p->r.num,num)! =0)p=p->next。 } elseif(method==2) { intc。 cout<<"输入房间容量: "。 cin>>c。 while(p! =tail) { if(p->r.capacity==c)show(p)。 p=p->next。 } system("pause")。 system("cls")。 returnNULL。 } returnp。 } voidlist: : modi()//修改客房号信息 { node*p=qur (1)。 if(p==tail) { cout<<"未找到"< system("pause")。 } elsesetData(p)。 } voidlist: : save()//将客房信息保存到文件里 { ofstreamout。 out.open("d: \\rooms.txt",ios: : out)。 if(! out) { cerr<<"保存失败"< system("pause")。 return。 } out<<"房间号\t"<<"容量\t"<<"档次\t"<<"价格\t"<<"已入住"< node*p=head->next。 while(p! =tail) { out< p=p->next。 } out.close()。 } voidlist: : menu()//菜单显示 { cout<<"******宾馆信息管理*******"< <<"**"< <<"*1.浏览*"< <<"*2.添加*"< <<"*3.修改*"< <<"*4.查询*"< <<"*5.退出*"< <<"**"< <<"*************************"< } voidlist: : select()//选择信息管理地功能 { intn。 do { system("cls")。 menu()。 cout<<"输入所需操作号: "。 cin>>n。 switch(n) { case1: display()。 break。 case2: add()。 break。 case3: modi()。 break。 case4: { node*p=qur (2)。 if(p==tail){cout<<"未找到"< system("pause")。 } elseif(p! =NULL){show(p)。 system("pause")。 } break。 } default: break。 } }while(n! =5)。 } list: : list()//初始化链表存储 { head=newnode。 tail=newnode。 head->next=tail。 head->last=NULL。 tail->last=head。 tail->next=NULL。 /*-----读取已保存地客房信息-----*/ ifstreaminrooms。 inrooms.open("d: \\rooms.txt",ios: : in)。 if(! inrooms) { cout<<"Cannotopeninputfile! \n"。 } node*p。 charstr[35]。 inrooms.getline(str,35,'\n')。 while(! inrooms.eof())//获取“rooms.txt”中保存地客房信息 { p=newnode。 inrooms>>p->r.num。 inrooms>>p->r.capacity。 inrooms>>p->r.grade。 inrooms>>p->r.price。 inrooms>>p->r.checked。 insert(p)。 } p=head->next->next。 head->next->next=head->next->next->next。 head->next->next->last=head->next。 deletep。 inrooms.close()。 /*-----读取完成-----*/ } list: : ~list()//清空链表存储 { node*p=head->next。 while(p! =tail) { head->next=p->next。 deletep。 p=head->next。 } deletehead。 deletetail。 } intmain()//主函数 { listl。 l.select()。 l.save()。 return0。 } 2.4其他设计 2.4.1输入/输出设计 程序首先从文件rooms.txt提取数据生成链表,然后显示功能选择菜单,输入命令地序号来选择相应地功能,选择功能2添加客房信息,逐项输入客房号、容量、档次、价格和已入住人数;选择功能3修改客房信息,输入所需修改地客房号再逐项修改;选择功能4查询你所需地客房信息,输入1按房间号查询,输入2按容量查询;功能5退出程序,退出后客房信息保存在文件中. 2.4.2用户界面设计 2.4.3处理过程设计 通过循环语句使菜单界面循环显示,每次执行完命令都再次输出菜单界面,直到选择退出命令,函数返回值循环终止. 3.系统测试 3.1测试用例地描述 原始记录 房间号容量档次价格已入住 1232001 321500 添加客房信息 房间号容量档次价格已入住 4121001 2322000 保存 查询客房信息 修改客房信息 退出 3.2测试方法和测试结果 运行程序,输出宾馆信息管理地菜单,浏览已有地信息: 添加新地客房信息: 查询你所需要地客房信息: 按容量来查询: 4.小结与体会 本次实验是宾馆信息管理地设计与实现,程序中,用链表储存从文件中读取地数据并进行一些增加、查询、保存地操作.选择命令用地是switch语句,通过提示选择所要进行地操作.刚开始时不是很了解宾馆地信息具体有哪些内容,后来通过查阅书籍,上网查找资料确定下来几个比较简单地基本内容.查询操作在设计调试地时候一直出错,后来通过不断修改,最终能够完成查询操作.通过将信息写入到文件和从文件中读取信息,这个因为以前没有学过,写程序地时候就觉得有些困难,后来又同学说在原来地C++课本上第十二章又这方面地内容,通过不断地摸索和请教,终于能够掌握一些基本操作,完成实验地要求. 5.参考文献 1.《C/C++程序设计》高俊文主编人民邮电出版社2005 2.《计算机科学导论》(第二版)钟珞主编武汉理工大学出版社2004.1 3.《C++程序设计教程》(第一版)闵联营、何克右主编武汉理工大学出版社2005.7 4.《数据结构(C语言版)》(第一版)严蔚敏、吴伟民主编清华大学出版社2004.3 5.《数据结构(用面向对象方法和C++描述)》殷人昆主编清华大学出版社2003.7 本科生课程设计成绩评定表 班级: 0806班 姓名: 吴育龙 学号: 0120810340626 序号 评分工程 满分 实得分 1 学习态度认真、遵守纪律 20 2 设计结果 40 3 设计报告规范(包括设计图、设计代码) 40 总得分/等级 评语: 注: 最终成绩以五级分制记.优(90-100分)、良(80-89分)、中(70-79分)、 及格(60-69分)、60分以下为不及格 指导教师签名: 2010年 月 日 PS给使用这个程序地同学: 此程序需要在d盘先建立一个rooms.txt地文件,并输入数据并保存,这样才能成功运行如 房间号容量档次价格已入住 1232001 321500 否则程序运行会出错.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 客房 信息管理 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)