




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实践教学实践教学 兰州理工大学兰州理工大学 计算机与通信学院 2012 年春季学期 数据结构数据结构 课程设计课程设计 题 目 宾馆客房管理系统 专业班级 姓 名 学 号 指导教师 成 绩 目目 录录 摘摘 要要 1 1 采用类C语言定义相关的数据类型 2 2 各模块的伪码算法 2 3 函数的调用关系图 6 4 调试分析 6 5 测试结果 7 6 源程序 带注释 10 总总 结结 15 参考文献参考文献 16 致致 谢谢 17 附件附件 任务一源程序代码任务一源程序代码 18 0 摘摘 要要 为了实现酒店能够及时地录入客房和顾客信息 以备对客房的各项管理 实现 顾客的定房 推房操作 以简单 易读友好的界面面向用户 以易于理解的方式提醒用户如何操作 该程序以菜单的形式清楚地展示在 DOS 环境下系统的各块的功能 当录入的 住房和顾客信息需要修改 删除 查询等时如何进行操作 该系统满足了客房管理的基本要求 以简单的思维方式展示界面 尽量满足用 户的要求 关键词 信息管理 1 1 1 采用类采用类 c c 语言定义相关的数据类型语言定义相关的数据类型 顾客类 person 的成员 1 NO 顾客编号 int 2 Name 顾客姓名 char 3 ID 顾客身份证号 int 4 Intime 入住时间 int 5 Outtime 离开时间 int 6 Borrow 所住房间 int 房间类 room 的成员 1 NO 房间编号 int 2 Price 住宿费 int 3 Level 房间等级 char 2 2 各模块的伪码算法各模块的伪码算法 1 房间类 private int state int NO 住房编号 int price 住宿费 char level 20 级别 public Room 构造函数 int getstate return state int getNO return NO 获取住房编号 int getprice return price 获取住宿费 char getlevel return level 获取房间级别 void setprice int pri 设置住宿费 2 void setlevel char le 设置等级 void delroom state 1 删除 void addroom int n int pri char le 增加房间 int borrowroom 入住 void retroom 退房 void disp 输出 2 房间数据类 class RDatabase private int top 住房记录指针 Room room Maxr 住房记录 public RDatabase 将 book txt 读到 book 中 void clear 清除所有信息 int addroom int n int prichar le 增加房间 Room query int roomID 查找住房 void roomdata 住房库维护 void disp RDatabase 析构函数 将 book 写到 book txt 文件中 其中 void roomdata 实现对住房信息的增加 更改 删除 查找 显示 清 除信息功能 3 顾客类 class Person 3 private int state int NO 顾客编号 char name 20 顾客姓名 long ID 顾客身份证号 int borroom 所住房间 int intime 入住时间 int outtime 离开时间 public Person int getstate return state int getNO return NO 获取顾客编号 char getname return name int getID return ID 获取顾客身份证号 int getintime return intime 获取入住时间 int getouttime return outtime 获取离开时间 void setname char na 设置姓名 void setID char i 设置身份号 void setborroom char bor 设置预定房间 void setintime char in 设置入住时间 void setouttime char out 设置离开时间 void delroom state 1 4 void addperson int n char na long i int in int out int bor 增加顾客 void borrowroom int roomID 定房 int retroom int roomID 退房 void disp 显示信息 4 顾客数据类 class PDatabase private int top 顾客记录指针 Person per Maxp 顾客记录 public PDatabase 将reader txt读到read 中 void clear 清除所有顾客信息 int addperson int n char na long i int in int out int bor 添加顾客时先查找是否 存在 Person query int personNO 按编号查找 Person queryn char personname 20 按姓名查找 Person queryi int personID 按身份证号查找 void disp 显示信息 void persondata 顾客数据操作 PDatabase 将read 写到reader txt文件中 其中void persondata 实现对顾客信息的增加 更改 删除 查找 显示 清 除功能 5 3 3 函数的调用关系图函数的调用关系图 4 4 调试分析调试分析 在显示顾客的所有信息时 只能同时显示住房的编号 不能同时把住房的 所有信息显示 顾客类和住房类之间没能很好的沟通 在程序的严谨性和规范化上还不是很好 按姓名查询的时候如果姓名一样 则只能显示一个 不能够将所有的信息 都显示出来 算法的时间复杂度 时间复杂度为 O n 退 出 查 询 浏 览 顾 客 管 理 房 间 管 理 菜单模块 主模块 6 5 5 测试结果测试结果 图 1 登录界面 图 2 房间管理 7 图 3 顾客管理 图 4 按房间编号查询浏览 8 图 5 按顾客信息查询浏览 图 6 退房管理 9 图 7 退出界面 6 6 源程序 带注释 源程序 带注释 Person query int personno 按编号查找 for int i 0 i top i if per i getNO personno return NULL Person queryn char personname 20 按姓名查找 for int i 0 i top i if strcmp per i getname personname 0 return NULL Person queryi char personid 20 按身份证号查找 10 for int i 0 i top i if strcmp per i getID personid 0 return NULL void disp for int i 0 i top i if per i getstate 0 per i disp void persondata PDatabase 将 read 写到 reader txt 文件中 fstream file person txt ios out for int i 0 i top i if per i getstate 0 file write char file close void PDatabase persondata int choice char pname 20 int pno char pid 20 int pin pout pbor Person r while choice 0 cout endl endl cout 顾客管理 endl endl cout 新增 2 更改 3 删除 4 清除数据 0 退出 choice switch choice case 0 11 cout 已退出 endl break case 1 cout pno cout pname cout pid cout pin cout pout cout pbor addperson pno pname pid pin pout pbor break case 2 cout pno r query pno if r NULL cout 不存在该顾客 endl break int k cout 姓名 2 身份证号 3 入 住时间 4 离开时间 5 房间号 0 退出 k switch k case 0 cout 已退出 break case 1 cout pname r setname pname break case 2 cout pid r setID pid 12 break case 3 cout pin r setintime pin break case 4 cout pout r setouttime pout break case 5 cout pout r setborroom pbor break default cout 输入有误 break case 3 cout pno int d cout 请慎重操作 是否真的删除所有顾客信息 endl cout 1 是 2 否 d if d 1 r query pno if r NULL cout 不存在该顾客 delroom cout 该顾客信息已被删除 endl break case 4 int c cout 请慎重操作 是否真的删除所有顾客信息 endl cout 1 是 2 否 c 13 if c 1 clear break default cout 输入有误 请重试 break 14 总总 结结 调试过程中文件的操作是觉得最麻烦的 可是经过多次的修改 终于还是掌 握了一定的办法 因此对类中文件操作 构造函数 析构函数和成员函数有 了更深刻的认识 加深了对成员函数调用方法的认识 同时指针也起了不少的作用 通过对客房管理系统的课程设计 利用面向对象的办法 基本满足了设计要 求 使我对所学的知识有所深入认识和了解 也发现自己有许多不足的地方 并 且对课本知识的领悟还有所欠缺 我想只有更多的加以练习 实践 才会让自己 提高水平 C 语言是基础的学科 它的运用是广泛而且不可或缺的 我希望自己能够 在以后的学习中进一步完善自己 使自己能够真正掌握这门语言 15 参考文献参考文献 1 严蔚敏 吴伟民 数据结构 C 语言版 清华大学出版社 2 严蔚敏 吴伟民 数据结构题集 C 语言版 清华大学出版社 3 DATA STRUCTURE WITH C William Ford William Topp 清华大学出 版社 影印版 16 致致 谢谢 首先感谢指导老师在我的课程设计过程中给予了巨大的帮助和悉心的指导 帮 我解决了许多课程设计中的问题 使我得到了很多的启示 让我少走了很多的弯路 使我的课程设计顺利进行 在我的课程设计过程中 我也得到了其他老师的帮助 在这里 我对你们表示感 谢 当然 同班同学们同样给予了我很多的帮助与指导 再一次表示感谢 17 附件附件 任务一源程序代码任务一源程序代码 include include include 用于对文件读写的操作 using namespace std 顾客类 class Person private int state int NO char name 20 char ID 20 int borroom int intime int outtime public Person int getstate return state int getNO return NO char getname return name char getID return ID int getintime return intime int getouttime return outtime void setname char na strcpy name na void setID char i strcpy ID i void setborroom char bor borroom bor void setintime char in intime in 18 void setouttime char out outtime out void delroom state 1 void addperson int n char na char i int in int out int bor NO n strcpy name na strcpy ID i intime in outtime out borroom bor state 0 void borrowroom int roomID borroom roomID return int retroom int roomID if borroom roomID borroom 0 return 1 return 0 void disp cout 顾客编号 NO endl 顾客姓名 name endl 顾客 身份 ID ID endl 入住时间 intime endl 离开时间 outtime endl cout 所住房间 borroom endl 顾客数据类 const int Maxp 100 class PDatabase private int top Person per Maxp public 19 PDatabase 将 reader txt 读到 read 中 Person s top 1 fstream file person txt ios in 打开一个输入文件 while 1 file read char if file break top per top s file close 关闭 reader txt void clear top 1 int addperson int n char na char i int in int out int bor Person p query n if p NULL top per top addperson n na i in out bor return 1 return 0 Person query int personno 按编号查找 for int i 0 i top i if per i getNO personno return NULL Person queryn char personname 20 按姓名查找 for int i 0 i top i 20 if strcmp per i getname personname 0 return NULL Person queryi char personid 20 按身份证号查找 for int i 0 i top i if strcmp per i getID personid 0 return NULL void disp for int i 0 i top i if per i getstate 0 per i disp void persondata PDatabase 将 read 写到 reader txt 文件中 fstream file person txt ios out for int i 0 i top i if per i getstate 0 file write char file close void PDatabase persondata int choice char pname 20 int pno char pid 20 21 int pin pout pbor Person r while choice 0 cout endl endl cout 顾客管理 endl endl cout 新增 2 更改 3 删除 4 清除数据 0 退出 choice switch choice case 0 cout 已退出 endl break case 1 cout pno cout pname cout pid cout pin cout pout cout pbor addperson pno pname pid pin pout pbor break case 2 cout pno r query pno if r NULL cout 不存在该顾客 endl break int k cout 姓名 2 身份证号 3 入 住时间 4 离开时间 5 房间号 0 退出 k switch k 22 case 0 cout 已退出 break case 1 cout pname r setname pname break case 2 cout pid r setID pid break case 3 cout pin r setintime pin break case 4 cout pout r setouttime pout break case 5 cout pout r setborroom pbor break default cout 输入有误 break case 3 cout pno int d cout 请慎重操作 是否真的删除所有顾客信息 endl cout 1 是 2 否 d if d 1 r query pno if r NULL 23 cout 不存在该顾客 delroom cout 该顾客信息已被删除 endl break case 4 int c cout 请慎重操作 是否真的删除所有顾客信息 endl cout 1 是 2 否 c if c 1 clear break default cout 输入有误 请重试 break 房间类 class Room private int state int NO int price char level 20 int onshelf public Room int getstate return state int getNO return NO int getprice return price char getlevel return level void setprice int pri price pri 24 void setlevel char le strcpy level le void delroom state 1 void addroom int n int pri char le state 0 NO n price pri strcpy level le onshelf 1 int borrowroom 入住 if onshelf 1 onshelf 0 return 1 return 0 void retroom 退房 onshelf 1 void disp cout 房间编号 NO endl 房间费用 price endl 房间 级别 level endl 房间数据类 const int Maxr 100 class RDatabase private int top Room room Maxr public RDatabase 将 book txt 读到 book 中 25 Room b top 1 fstream file room txt ios in while 1 file read char if file break top room top b file close void clear top 1 int addroom int n int pri char le 增加住房 Room p query n if NULL p top room top addroom n pri le return 1 return 0 Room query int roomID 查找住房 for int i 0 i top i if room i getNO roomID return NULL void roomdata 维护 void disp for int i 0 i top i if room i getstate 0 26 room i disp RDatabase 将 book 写到 book txt 文件中 fstream file room txt ios out for int i 0 i top i if room i getstate 0 file write char file close void RDatabase roomdata int choice char rlevel 40 int rno rpri Room b while choice 0 cout endl endl cout 房间管理 endl endl cout 增加 2 更改 3 删除 4 清除信息 0 退出 choice switch choice case 0 cout 已退出 endl break case 1 cout 输入住房编号 rno cout 输入住宿费 rpri cout 输入住房等级 rlevel addroom rno rpri rlevel break case 2 cout 输入住房编号 rno b query rno if b NULL 27 cout 不存在该房间 endl break int k cout 住宿费 2 客房等级 0 退出 k switch k case 0 cout 已退出 break case 1 cout 输入新的住宿费 rpri b setprice rpri break case 2 cout 输入新的住房等级 rlevel b setlevel rlevel break break case 3 cout 请输入房间编号 rno int d cout 请慎重操作 是否真的删除所有顾客信息 endl cout 1 是 2 否 d if d 1 b query rno if b NULL cout 不存在该房间 delroom cout 该房间信息已被删除 endl break 28 case 4 int c cout 请慎重操作 是否真的删除所有房间信息 endl cout 是 2 否 c if c 1 clear break default cout 输入有误 请重试 break 主界面入口 void main int choice int roomno personno char name 6 char code 9 PDatabase PersonDB Person r RDatabase RoomDB Room b cout 请输入用户名和密码 用空格隔开 na
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州大方县人民医院专项引进高层次急需紧缺人才考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年咸阳经济技术开发区管委会招聘?(24人)模拟试卷及答案详解(有一套)
- 2025吉林松原经济技术开发区管理委员会招聘事业单位(含专项招聘高校毕业生)5人模拟试卷附答案详解
- 2025呼伦贝尔莫旗消防救援大队招聘消防文员模拟试卷带答案详解
- 广汽本田凌派讲解课件
- 2025年软泡聚醚项目发展计划
- 2025贵州丹寨县人民检察院招聘聘用制检察辅助人员考前自测高频考点模拟试题及答案详解(名师系列)
- 小学安全办主任培训笔记课件
- 2025年水发集团权属一级公司纪委副书记专项招聘模拟试卷及答案详解(名师系列)
- 2025年超高压复合胶管合作协议书
- 2025年河北大学版(2024)小学信息科技三年级(全一册)教学设计(附目录 P179)
- 2025至2030全球及中国工业I和和O模块行业发展趋势分析与未来投资战略咨询研究报告
- 过敏性紫癜的护理
- 瑶族少数民族文化介绍
- 团队士气提升培训课件
- 自来水厂药品管理制度
- 瑞幸咖啡公司员工管理制度
- 2025至2030年中国电动场地车行业竞争战略分析及市场需求预测报告
- 胖东来考勤管理制度
- 公司举办台球赛策划方案
- DZ 53-1987沉积岩分散有机质中镜质组反射率测定方法
评论
0/150
提交评论