计算机基础强化训练报告书-宾馆客房信息管理的设计与实现.doc_第1页
计算机基础强化训练报告书-宾馆客房信息管理的设计与实现.doc_第2页
计算机基础强化训练报告书-宾馆客房信息管理的设计与实现.doc_第3页
计算机基础强化训练报告书-宾馆客房信息管理的设计与实现.doc_第4页
计算机基础强化训练报告书-宾馆客房信息管理的设计与实现.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档课程设计书课程名称: 基础强化设计题目: 宾馆客房信息管理的设计与实现班 级: 计算机0806学 号: 0120810340626姓 名: 吴育龙指导教师: 闵联营20010年7月5日7月10日计算机基础强化训练任务书学生姓名: 吴育龙 专业班级: 计算机0806 指导教师: 闵联营 工作单位: 计算机科学与技术学院 题 目: 初始条件:理论:学完计算机基础知识,掌握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内存数据结构设计class room friend class list;private: char num8; /房间号 int capacity; /容量 int grade; /档次 double price; /价格 int checked; /已入住人数public: room():checked(0); int checkIn(int n);基本操作:void showTitle(); /输出表项目 void show(node *); /显示客房信息的具体情况 void display(); /显示客房的信息 void insert(node *); /添加客房 void setData(node *); /添加客房的信息 void add(); /继续添加客房 void modi(); /修改客房号信息 node *qur(int); /通过房间号或者房间容量来查询客房的信息 void menu(); /菜单显示 void select(); /选择信息管理的功能 void save(); /将客房信息保存到文件里2.2数据文件设计用rooms.txt储存数据2.3代码设计#include #include #include using namespace std;class list;class room /定义房间类 friend class list;private: char num8; /房间号 int capacity; /容量 int grade; /档次 double price; /价格 int checked; /已入住人数public: room():checked(0); int checkIn(int n);int room:checkIn(int n) /房间的入住人数 if(n+checkedcapacity) return 0; /判断房间是否满 checked+=n; /若不满,则把入住的人数赋给checken return 1;class node /定义房间的类 friend class list;private: room r; node *next,*last;public: ;class list /定义房间链表类private: node *head,*tail;public: list(); list(); void showTitle(); /输出表项目 void show(node *); /显示客房信息的具体情况 void display(); /显示客房的信息 void insert(node *); /添加客房 void setData(node *); /添加客房的信息 void add(); /继续添加客房 void modi(); /修改客房号信息 node *qur(int); /通过房间号或者房间容量来查询客房的信息 void menu(); /菜单显示 void select(); /选择信息管理的功能 void save(); /将客房信息保存到文件里 ;void list:showTitle() /输出表项目 cout房间号t容量t档次t价格t已入住endl;void list:show(node *p) /显示客房信息的具体情况 coutr.numtr.capacitytr.gradetr.pricetr.checkednext; showTitle(); while(p!=tail) show(p); p=p-next; system(pause);void list:insert(node *p) /添加客房 node *q=head-next; while(q!=tail) if(strcmp(p-r.num,q-r.num)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; void list:setData(node *p) /添加客房的信息 int n; coutp-r.num; coutp-r.capacity; coutp-r.grade; coutp-r.price; coutn; if(!p-r.checkIn(n) cout容量不足,请重新输入!endl; else break; while (1);void list:add() /继续添加客房 char ch; do system(cls); node *p=new node; setData(p); insert(p); coutch; while(ch!=y&ch!=Y);node *list:qur(int method) /通过房间号或者房间容量来查询客房的信息 if(method!=1) coutmethod; node *p=head-next; if(method=1) char num8; coutnum; while(p!=tail&strcmp(p-r.num,num)!=0) p=p-next; else if(method=2) int c; coutc; while(p!=tail) if(p-r.capacity=c) show(p); p=p-next; system(pause); system(cls); return NULL; return p;void list:modi() /修改客房号信息 node *p=qur(1); if(p=tail) cout未找到endl; system(pause); else setData(p);void list:save() /将客房信息保存到文件里 ofstream out; out.open(d:rooms.txt,ios:out); if(!out) cerr保存失败endl; system(pause); return; out房间号t容量t档次t价格t已入住next; while(p!=tail) outr.numtr.capacitytr.gradetr.pricetr.checkednext; out.close();void list:menu() /菜单显示 cout*宾馆信息管理*endl * *endl * 1.浏览 *endl * 2.添加 *endl * 3.修改 *endl * 4.查询 *endl * 5.退出 *endl * *endl *endl;void list:select() /选择信息管理的功能 int n; do system(cls); menu(); coutn; switch(n) case 1:display();break; case 2:add();break; case 3:modi();break; case 4: node *p=qur(2); if(p=tail) cout未找到next=tail; head-last=NULL; tail-last=head; tail-next=NULL; /* -读取已保存的客房信息- */ ifstream inrooms; inrooms.open(d:rooms.txt,ios:in);if(!inrooms)coutp-r.num;inroomsp-r.capacity;inroomsp-r.grade;inroomsp-r.price;inroomsp-r.checked;insert(p);p=head-next-next;head-next-next=head-next-next-next;head-next-next-last=head-next;delete p;inrooms.close();/* -读取完成- */list:list() /清空链表存储 node* p=head-next; while(p!=tail) head-next=p-next; delete p; p=head-next; delete head; delete tail;int main() /主函数 list l; l.select(); l.save(); return 0;2.4 其他设计2.4.1输入/输出设计程序首先从文件rooms.txt提取数据生成链表,然后显示功能选择菜单,输入命令的序号来选择相应的功能,选择功能2添加客房信息,逐项输入客房号、容量、档次、价格和已入住人数;选择功能3修改客房信息,输入所需修改的客房号再逐项修改;选择功能4查询你所需的客房信息,输入1按房间号查询,输入2按容量查询;功能5退出程序,退出后客房信息保存在文件中。2.4.2用户界面设计2.4.3处理过程设计通过循环语句使菜单界面循环显示,每次执行完命令都再次输出菜单界面,直到选择退出命令,函数返回值循环终止。3.系统测试3.1测试用例的描述原始记录房间号容量档次价格已入住1 2 3 20013 2 1 50 0添加客房信息房间号容量档次价格已入住4 1 2 100 12 3 2 200 0保存查询客房信息修改客房信息退出3.2测试方法和测试结果运行程序,输出宾馆信息管理的菜单,浏览已有的信息:添加新的客房信息:查询你所需要的客房信息:按容量来查询:4.小结与体会本次实验是宾馆信息管理的设计与实现,程序中,用链表储存从文件中读取的数据并进行一些增加、查询、保存的操作。选择命令用的是switch语句,通过提示选择所要进行的操作。刚开始时不是很了解宾馆的信息具体有哪些内容,后来通过查阅书籍,上网查找资料确定下来几个比较简单的基本内容。查询操作在设计调试的时候一直出错,后来通过不断修改,最终能够完成查询操作。通过将信息写入到文件和从文件中读取信息,这个因为以前没有学过,写程序的时候就觉得有些困难,后来又同学说在原来的C+课本上第十二章又这方面的内容,通过不断的摸索和请教,终于能够掌握一些基本操作,完成实验的要求。5.参考文献1.C/C+程序设计 高俊文主编 人民邮电出版社 20052.计算机科学导论(第二版) 钟珞主编 武汉理工大学出版社 2004.13.C+程序设计教程(第一版) 闵联营、何克右主编 武汉理工大学出版社 2005.74.数据结构(C语言版)(第一版) 严蔚敏、吴伟民主编 清华大学出版社 2004.35.数据结构(用面向对象方法和C+描述) 殷人昆主编 清华大学出版社 2003.7本科生课程设计成绩评定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论