收藏 分销(赏)

宾馆客房管理系统说明书.doc

上传人:天**** 文档编号:3673780 上传时间:2024-07-13 格式:DOC 页数:34 大小:269.46KB
下载 相关 举报
宾馆客房管理系统说明书.doc_第1页
第1页 / 共34页
宾馆客房管理系统说明书.doc_第2页
第2页 / 共34页
宾馆客房管理系统说明书.doc_第3页
第3页 / 共34页
宾馆客房管理系统说明书.doc_第4页
第4页 / 共34页
宾馆客房管理系统说明书.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、*实践教学*兰州理工大学计算机与通信学院2012年春季学期数据结构 课程设计题 目: 宾馆客房管理系统 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目 录摘 要11.采用类c语言定义相关的数据类型22.各模块的伪码算法23.函数的调用关系图64.调试分析65.测试结果76.源程序(带注释)10总 结15参考文献16致 谢17附件 任务一源程序代码18摘 要为了实现酒店能够及时地录入客房和顾客信息,以备对客房的各项管理,实现顾客的定房、推房操作。以简单,易读友好的界面面向用户,以易于理解的方式提醒用户如何操作。该程序以菜单的形式清楚地展示在DOS环境下系统的各块的功能,当录入的住房和顾

2、客信息需要修改,删除,查询等时如何进行操作。该系统满足了客房管理的基本要求,以简单的思维方式展示界面,尽量满足用户的要求。关键词: 信息管理311. 采用类c语言定义相关的数据类型顾客类(person)的成员:1、 NO(顾客编号),int2、 Name(顾客姓名),char3、 ID(顾客身份证号),int4、 Intime(入住时间),int5、 Outtime(离开时间),int6、 Borrow(所住房间),int房间类(room)的成员:1、 NO(房间编号),int2、 Price(住宿费),int3、 Level(房间等级),char2. 各模块的伪码算法1) 房间类privat

3、e:int state;int NO/住房编号int price;/住宿费char level20;/级别public:Room()/构造函数int getstate() return state; int getNO() return NO; /获取住房编号int getprice() return price;/获取住宿费char *getlevel() return level/获取房间级别void setprice(int pri)/设置住宿费void setlevel(char le)/设置等级void delroom()state=1;/删除void addroom(int n,i

4、nt pri,char *le)/增加房间int borrowroom()/入住void retroom()/退房void disp()/输出2) 房间数据类class RDatabaseprivate:int top; /住房记录指针Room roomMaxr; /住房记录public:RDatabase()/将book.txt读到book中void clear()/清除所有信息int addroom(int n,int prichar *le)/增加房间Room *query(int roomID)/查找住房void roomdata();/住房库维护void disp()RDatabas

5、e()/析构函数,将book写到book.txt文件中其中:void roomdata()实现对住房信息的增加,更改,删除,查找,显示,清除信息功能。3) 顾客类:class Personprivate:int stateint NO /顾客编号char name20; /顾客姓名long ID /顾客身份证号int borroom;/所住房间int intime;/入住时间int outtime; /离开时间public:Person() int getstate () return state;int getNO() return NO;/获取顾客编号char *getname() ret

6、urn 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; void addperso

7、n(int n,char *na,long i,int in,int out,int bor)/增加顾客void borrowroom(int roomID) /定房int retroom(int roomID) /退房void disp() /显示信息4) 顾客数据类class PDatabaseprivate:int top; /顾客记录指针Person perMaxp;/顾客记录public:PDatabase() /将reader.txt读到read中void clear()/清除所有顾客信息int addperson(int n,char *na,long i,int in,int

8、out,int bor)/添加顾客时先查找是否存在Person *query(int personNO)/按编号查找Person *queryn(char personname20)/按姓名查找Person *queryi(int personID)/按身份证号查找void disp() /显示信息void persondata();/顾客数据操作PDatabase() /将read写到reader.txt文件中其中void persondata()实现对顾客信息的增加,更改,删除,查找,显示,清除功能。主模块3. 函数的调用关系图菜单模块退出房间管理查询浏览顾客管理4. 调试分析在显示顾客的

9、所有信息时,只能同时显示住房的编号,不能同时把住房的所有信息显示。顾客类和住房类之间没能很好的沟通。在程序的严谨性和规范化上还不是很好。按姓名查询的时候如果姓名一样,则只能显示一个,不能够将所有的信息都显示出来。算法的时间复杂度:时间复杂度为O(n).5. 测试结果 图1(登录界面) 图2(房间管理) 图3(顾客管理) 图4(按房间编号查询浏览) 图5(按顾客信息查询浏览) 图6(退房管理) 图7(退出界面)6. 源程序(带注释)Person *query(int personno)/按编号查找for (int i=0;i=top;i+)if (peri.getNO()=personno &

10、peri.getstate()=0)return &peri;return NULL;Person *queryn(char personname20)/按姓名查找for (int i=0;i=top;i+)if (strcmp(peri.getname(),personname)=0)& peri.getstate()=0)return &peri;return NULL;Person *queryi(char personid20)/按身份证号查找for (int i=0;i=top;i+)if (strcmp(peri.getID(),personid)=0)& peri.getstat

11、e()=0)return &peri;return NULL;void disp() for (int i=0;i=top;i+) if (peri.getstate()=0) peri.disp(); void persondata();PDatabase() /将read写到reader.txt文件中fstream file(person.txt,ios:out); for (int i=0;i=top;i+)if (peri.getstate()=0)file.write(char *)&peri,sizeof(peri);file.close();void PDatabase:pers

12、ondata() int choice;char pname20; int pno; char pid20; int pin,pout,pbor;Person *r;while (choice!=0) coutendlendl;cout 顾客管理 endlendl;cout 新增 2.- 更改 3.- 删除 4.-清除数据 0.- 退出 choice;switch (choice) case 0:cout已退出endl;break; case 1:cout pno;cout pname; coutpid; coutpin;coutpout; coutpbor; addperson (pno,p

13、name,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: coutpid; r-setID(pid); break;case 3:coutpin; r-setintime(pin);

14、break;case 4:coutpout; r-setouttime(pout);break;case 5:coutpout; r-setborroom(pbor); break;default :cout输入有误;break; case 3: cout pno;int d; cout请慎重操作,是否真的删除所有顾客信息?endl; cout1.是 2.否d; if(d=1) r=query(pno);if (r=NULL) cout 不存在该顾客 delroom();cout该顾客信息已被删除!endl;break;case 4:int c;cout请慎重操作,是否真的删除所有顾客信息?e

15、ndl;cout1.是 2.否c;if(c=1)clear();break;default:cout输入有误,请重试:;break;总 结调试过程中文件的操作是觉得最麻烦的,可是经过多次的修改,终于还是掌握了一定的办法。因此对类中文件操作、构造函数、析构函数和成员函数有了更深刻的认识,加深了对成员函数调用方法的认识。同时指针也起了不少的作用。通过对客房管理系统的课程设计,利用面向对象的办法,基本满足了设计要求,使我对所学的知识有所深入认识和了解。也发现自己有许多不足的地方,并且对课本知识的领悟还有所欠缺。我想只有更多的加以练习、实践,才会让自己提高水平。C+语言是基础的学科,它的运用是广泛而且

16、不可或缺的。我希望自己能够在以后的学习中进一步完善自己,使自己能够真正掌握这门语言。参考文献1 严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社.2 严蔚敏,吴伟民.数据结构题集(C语言版).清华大学出版社.3 DATA STRUCTURE WITH C+. William Ford,William Topp .清华大学出版社(影印版).致 谢首先感谢指导老师在我的课程设计过程中给予了巨大的帮助和悉心的指导,帮我解决了许多课程设计中的问题,使我得到了很多的启示,让我少走了很多的弯路,使我的课程设计顺利进行.在我的课程设计过程中,我也得到了其他老师的帮助,在这里,我对你们表示感谢.当然,同班

17、同学们同样给予了我很多的帮助与指导,再一次表示感谢!附件 任务一源程序代码#include #include #include /用于对文件读写的操作using namespace std;/顾客类class Person private: int state; int NO; char name20; char ID20; int borroom; int intime; int outtime; public:Person() int getstate() return state; int getNO() return NO; char *getname() return name; c

18、har *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;void setouttime(char out) outtime=out; void delroom() state=1; void add

19、person(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 顾客编号:NOendl顾客姓名:nameendl顾客身份ID

20、:IDendl入住时间:intimeendl离开时间:outtimeendl;cout所住房间:borroomendl;/顾客数据类const int Maxp=100;class PDatabase private: int top; Person perMaxp;public:PDatabase() /将reader.txt读到read中Person s;top=-1;fstream file(person.txt,ios:in);/打开一个输入文件while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;pertop=s;fi

21、le.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+; pertop.addperson(n,na,i,in,out,bor); return 1;return 0;Person *query(int personno)/按编号查找for (int i=0;i=top;i+)if (peri.getNO()=personno & peri.getstate()=0)re

22、turn &peri;return NULL;Person *queryn(char personname20)/按姓名查找for (int i=0;i=top;i+)if (strcmp(peri.getname(),personname)=0)& peri.getstate()=0)return &peri;return NULL;Person *queryi(char personid20)/按身份证号查找for (int i=0;i=top;i+)if (strcmp(peri.getID(),personid)=0)& peri.getstate()=0)return &peri;r

23、eturn NULL;void disp() for (int i=0;i=top;i+) if (peri.getstate()=0) peri.disp(); void persondata();PDatabase() /将read写到reader.txt文件中fstream file(person.txt,ios:out); for (int i=0;i=top;i+)if (peri.getstate()=0)file.write(char *)&peri,sizeof(peri);file.close();void PDatabase:persondata() int choice;

24、char pname20; int pno; char pid20; int pin,pout,pbor;Person *r;while (choice!=0) coutendlendl;cout 顾客管理 endlendl;cout 新增 2.- 更改 3.- 删除 4.-清除数据 0.- 退出 choice;switch (choice) case 0:cout已退出endl;break; case 1:cout pno;cout pname; coutpid; coutpin;coutpout; coutpbor; addperson (pno,pname,pid,pin,pout,pb

25、or); 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: coutpid; r-setID(pid); break;case 3:coutpin; r-setintime(pin);break;case 4:coutpou

26、t; r-setouttime(pout);break;case 5:coutpout; r-setborroom(pbor); break;default :cout输入有误;break; case 3: cout pno;int d; cout请慎重操作,是否真的删除所有顾客信息?endl; cout1.是 2.否d; if(d=1) r=query(pno);if (r=NULL) cout 不存在该顾客 delroom();cout该顾客信息已被删除!endl;break;case 4:int c;cout请慎重操作,是否真的删除所有顾客信息?endl;cout1.是 2.否c;if(

27、c=1)clear();break;default:cout输入有误,请重试:;break;/房间类class Roomprivate: int state;int NO;int price;char level20;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;void setlevel(char le)s

28、trcpy(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 房间编号: NOendl房间费用: priceendl房间级别: levelendl;/房间数据类 const int Maxr=100;cl

29、ass RDatabaseprivate: int top; Room roomMaxr; public:RDatabase()/将book.txt读到book中 Room b;top=-1;fstream file(room.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;roomtop=b;file.close(); void clear()top=-1; int addroom(int n,int pri,char *le)/增加住房Room *p=query(n);if (NULL=p)t

30、op+;roomtop.addroom(n,pri,le);return 1;return 0;Room *query(int roomID)/查找住房for (int i=0;i=top;i+)if (roomi.getNO()=roomID&roomi.getstate()=0)return &roomi;return NULL;void roomdata();/维护void disp() for (int i=0;i=top;i+) if (roomi.getstate()=0) roomi.disp(); RDatabase()/将book写到book.txt文件中fstream file(room.txt,ios:out); for (int i=0;i=top;i+)if (roomi.getstate()=0)file.write(char *)&roomi,sizeof(roomi);file.close();void RDatabase:roomdata() int choice;char rlevel40;int rno,rpri;Room *b;while (choice!=0) coutendl

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服