C++程序设计课程设计-酒店客房预订管理.doc

上传人:西安人 文档编号:5013996 上传时间:2020-01-28 格式:DOC 页数:25 大小:109KB
返回 下载 相关 举报
C++程序设计课程设计-酒店客房预订管理.doc_第1页
第1页 / 共25页
C++程序设计课程设计-酒店客房预订管理.doc_第2页
第2页 / 共25页
C++程序设计课程设计-酒店客房预订管理.doc_第3页
第3页 / 共25页
C++程序设计课程设计-酒店客房预订管理.doc_第4页
第4页 / 共25页
C++程序设计课程设计-酒店客房预订管理.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C++程序设计课程设计-酒店客房预订管理.doc》由会员分享,可在线阅读,更多相关《C++程序设计课程设计-酒店客房预订管理.doc(25页珍藏版)》请在三一文库上搜索。

1、 C+程序设计 -酒店客房预订管理一 设计要求 本课程的设计的重点是练习文件的存储与读取,通过对各类完成各种操作。客户类,实现对客户的信息的描述;客户库类,实现建立客户的个人资料;客房类,实现对客房的描述,如客房等级;空房库类,实现对客房的管理,如查找,删除等具体要求如下:(1)客房库类存放10个客户资料,将数据保存到customer.txt文件中并验证是否正确存入(2)增添新的客户(客房)修改客户(客房)信息,删除客户(客房)信息(3)按房号,客户号查询房间预订情况(4)通过主函数调用四个类(客户类、客户库类、客房类。客房库类)二设计思想 现今酒店规模不断扩大,客户数量增加,有关客户的各种信

2、息也成倍增长,面对庞大的信息量要有客户信息管理系统来提高管理。通过这样一个系统可以更加便捷高效。它有以下几个功能:(1) 客房设置:可以添加新客房,修改客房描述,删除客房(2) 客户设置:可以添加新客户,修改客户信息,删除已退订客户(3) 房间预订情况查询:可以按客户号,房号查询,方便实用,众多房间中准确查询到某一个房间或客户。设计一个程序来实现酒店客房预订的管理,该程序包含信息录入,输出,修改,查询等功能。下面是主菜单以及菜单功能(1)程序主页面,选择04进入相应的功能(2)客房信息:主页面选择3进入客户信息系统1. 新增:系统提示输入客户号码。姓名等信息,按要求录入即可。2. 更改:系统提

3、示输入客户号码,输入后即可更改该客户的个人信息3. 删除:系统提示输入要删除的客户号,输入后即可删除该客户4. 查询:系统提示输入要查询的客户号,输入后即可查看该客户的订房信息5. 显示:显示所有预订客户的个人信息以及预订房号6. 全删:删除所有客户0. 返回:返回主界面(3)客户信息:主界面选择4进入客房信息管理菜单1. 新增:系统提示输入房间号。房间描述等信息,按要求录入即可2. 新增:系统提示输入要更改飞房间号,输入后即可更改该房间的描述信息3. 删除:系统提示输入要删除的房间号,输入后即可删除该房间4. 查询:系统提示要查询的房间号,输入后即可查看该房间的预订情况5. 现实:显示所有房

4、间的描述信息已经预订情况6. 全删:删除所有房间0. 返回:返回主界面(4)订房:主界面选择1进入订房系统(5)退房:主界面选择2进入退房系统(6)退出:主界面选择0退出程序并保存数据库三程序源代码/酒店管理程序代码#include”iostream.h”#include”iomanip.h”#include”string.h”#include”fstream.h” /输入输出文件流类const int maxr=100; /最多的客户const int maxb=100; /最多的客户const int maxbor=5; /每位客户最多预定五间客户/客户类,实现对客户的信息的描述class

5、 customerprivate:int tag;int no;char name10;int borbookmaxbor;public:vustomer() char *getname() return name; /获取姓名int gertag() return tag; /获取删除标记int getno() return no; /获取客户编号void setname(char na)strcpy(name ,na);void delbook() tag=1;void addcustumer(int n,char *na)tag=0no=n;strcpy(name,na);for(int

6、 i=0;imaxbor;i+)borboooki=0;void borrowbook(int bookid)for(int i=0;imaxbor;i+)If(borbooki=0) borbooki=bookid;return;int retbook(int bookid)for(int i=0;imaxbor;i+)if(borbooki=bookid)borbooki=0;return 1;return 0;void disp()coutsetw(5)nosetw(10)name”t 客户编码:“;for(int i=0;imaxbor;i+)if(borbooki!=0)coutbo

7、rbooki;cout”endl;/客户库类,实现建立客户的个人资料class rdatabaseprivate:int top; /客户记录指针coustomer readmaxr;public:rdatabase() /构造函数,将customer.txt读到read中customer s;top=-1;fstream file(“customer.txt”,ios:in); /打开一个输入文件while(1)file.read(char*)&s,sizeof(s);if(!file) break;top+;readtop=s;file.close(); /关闭customer.txtvo

8、id clear() /删除所有客户信息top=-1;int addcustomer(int n,char *na) /添加客户时先查找是否存在customer *p=query(n);if(p=null)top+;readtop.asscustomer(n,na);return 1;return 0customer *query(int customerid) /按编号查找for(int i=0;i=top;i+)if(readi.getno()=customerid&readi.gettag()=0)return & readi;read null;void disp() /输出所有客户信

9、息for(int i=0;i=top;i+)readi.disp();void customerdata(); /客户库维护rdatabase() /析构函数,将read写到customer.txt文件fstream file(“customer.txt”,ios:out);for (int i=0;i=top;i+)if(readi.gettag()=0)file.write(char *)&readi,sizeof(readi);file.close();void rdatabase:customerdata()char choice;char rname20;int customerid

10、;customer *r;while(choice!=0) cout”nnttt客 户 信 息nnnttt1 新 增nnttt2 更改nnttt3 删 除nnttt4 查 找nnttt5显示nnttt6全删nnttt0返回”choice;switch(choice)case 1:coutcustomerid;coutrname;addcustomer(customerid,rname);break;case 2:coutcustomerid;r=query(customerid);if(r=null)cout”该客户不存在:”endl;break;coutrname;r-setname(rna

11、me);break;case 3:coutcustomerid;r=query(customerid);if(r=null)cout”该客户不存在”delbook();break;case 4:coutcusromerid;r=query(cusromerid);if(t=null)cout”该客户不存在”disp();break;case 5:disp();break;case 6:clear();break;default:cout”正在返回主界面”;break;/客房类,实现对客房的描述,如客房等级class bookprivate:int tag; /删除标记 1:已删0:未删int

12、no; /客房编号char name20; /客房描述int onshelf; /是否预订 1:空房2:已预订public:book() char *getname() return name; /获取名字int getno() return no; /获取客房编号int gettag() return tag; /获取删除标记void sername(char na) /设置客房描述strcpy(name,na);void delbook() tag=1; /删除客房void addbook(int n,char *na) /增加客房tag=0;no=n;strcpy(name,na);on

13、shelf=1;int borrowbook() /预订操作if(onshelf=1)onshelf=0;return 1;return 0;void retbook() /退订操作onshelf=1;void disp() /输出客房coutsetw(6)nosetw(18)namesetw(10)(onshelf=1?”空房”:”已预订”)endl;/客房库类,实现对客房的管理,如查找,删除等class bdatabaseprivate:int top; /客房记录指针book bookmaxb; /客房记录public:bdatabase() /构造函数,将book.txt读到book中

14、book b;top=-1;fstream file(“book.txt”,ios:in);while(1)file.read(char*)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close();void clear() /全删top=-1;int addbook(int n,char *na) /增加客房book *p=query(n);if(null=p)top+;booktop.addbook(n,na); /查找客房return 1;return 0;book *query(int bookid)for(int i=0;i=t

15、op;i+)if(booki.getno()=bookid&booki.gettag=0)return &booki; /客房库维护return null;void bookdata();void diap()for(int i=0;i=top;i+)if (booki.gettag()=0)booki.disp();bdatabase() /析构函数。将book写到book.txt文件中fstream file(“book.txt”.ios:out);for(int i=0;i=top;i+)if(booki.gettag()=0)file.write(char*)&booki,sizeof

16、(booki);file.close();void bdatabase:bookdata()char choice;char bname40;int bookid;book *b;while(choice!=0)cout”nnttt 客 户 信 息nnnttt1 新 增nnttt2 更改nnttt3 删 除nnttt4 查 找nnttt5显示nnttt6全删nnttt0返回”choice;switch(choice)case 1:coutbookid;cout bname;addbook(bookid,bname);break;case 2:coutbookid;b=query(bookid)

17、;if(b=null)cout”该客户不存在:”endl;break;coutbname;b-setname(bname);break;case 3:coutbookid;b=query(bookid);if(b=null)cout”该客户不存在”delbook();break;case 4:coutbookid;b=query(bookid);if(b=null)cout”该客户不存在”disp;break;case 5:disp();break;case 6:clear();break;default:cout”正在返回主页面”; /main()函数的实现void main()char c

18、hoice;int bookid,customerid;rdatabase customerdb;customer *r;bdatabase bookdb;book *b;while(choice!=0)coutendlendl”tt 酒店客房预订管理nnn”;cout”ttt1 订房nnttt2退订nnttt3客房信息nnttt4客户信息nnttt0退出”choice;switch(choice)case 1:coutcustomerid;coutbookid;r=customerdb.query(customerid); /按编号查找if (r=null)cout”不存在的客房,不能预订”

19、endl;break;b=bookdb.query(bookid);if(b=null)cout” 不存在的客房,不能预订”borrowbook()=0)cout”该客房已预订,不能预订”borrowbook(b-getno);break;case 2:coutcustomerid;coutbookid;r=customerdb.quety(customerid); /按编号查找if (r=null)cout”不存在的客房,不能预订”endl;break;b=bookdb.query(bookid);if(b=null)cout” 不存在的客房,不能预订”retbook();r-retbook(b-getno()break;case3:bookdb.bookdata();break;case4:customerdb.customerdata();break;default:cout”正在写入数据库谢谢使用!”;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1