C++程序设计课程设计--酒店客房预订管理_第1页
C++程序设计课程设计--酒店客房预订管理_第2页
C++程序设计课程设计--酒店客房预订管理_第3页
C++程序设计课程设计--酒店客房预订管理_第4页
C++程序设计课程设计--酒店客房预订管理_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、C+程序设计课程设计酒店客房预订管理指导教师:*专业班级:自动化*班设 计 者:*、*、*、*设计时间:2021年*月目 录一 需求分析······································

2、3;·3二 组员分工········································4三 系统总框图······&

3、#183;·······························4四 系统软硬件环境················

4、83;·················4五 模块设计分析·······························

5、·····5六 函数定义及说明··································12七 使用说明········

6、································18八 程序源代码················

7、83;·····················21九 结束语···························&#

8、183;··············35十 参考文献··································

9、······35酒店客房预订管理一 需求分析综述随着人类社会进入信息时代,计算机越来越多地活泼在社会各个领域:管理,网络,计算,控制,多媒体等。并且在某些方面成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的各种信息也成倍增长,尤其是大量的客房预订信息。面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。通过这样的系统,可以做到信息的标准管理,科学统计和快速的查询,从而减少管理方面的工作量。当前许多酒店正在逐步完善客户信息管理工作,

10、需要一个能满足内部管理需求,提高管理效率的应用系统进行内部管理。许多宾馆经过多年的开展,规模不断扩大,客流量成倍增长,积累了大量的客户信息急需进行统一管理以防信息的流失。因此,许多宾馆需要一个功能全面的客户信息管理系统来进行管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。酒店客房预订信息管理系统是一个对客户全方面管理的程序。该客房预订信息管理系统是在Visual C+,以TXT文档为后台数据库,采用面向对象的语言开发而成,实现对客户预订信息的根本管理,包括客房信息、客户信息的添加,修改和查询。该系统充分考虑用户的操作简便性,实现快捷操作。它有以下几个功能:1客房设置:可以添加新客房

11、,修改客房描述房间等级,内部设施等,删除客房。2客户设置:可以添加新客户,修改客户信息,删除已退订客户等。可准确了解每一客户的预订信息。3房间预订情况查询:可按客户号、房号查询。方便实用,在众多房间、客户中准确查询到某一个房间或客户。二 组员分工封面设计:*程序设计:*、*、*、*程序勘误:*、*报告编写:*、*、*小组组长:*三 系统总框图设计一个程序来实现酒店客房预订的管理,该程序应该包含信息录入、输出、修改、删除和查询等功能模块。本程序各功能模块结构总框图如下:四 系统软硬件环境WindowsXP、Visual C+6.0、CPUpentium4 2.4Hz、内存256MB、硬盘80G五

12、 模块设计分析本程序共有五大功能模块:新建模块、更改模块、删除模块、查询模块和显示模块。各模块在功能上互相补充,在程序中互相融合,才能实现一个具有多种功能的管理系统。1新建模块:实现所有客房、订房客户的录入工作。2更改模块:提供数据的修改,包括客户姓名、客房描述等。3删除模块:将已退订的客户从数据库中删除。4查询模块:本程序最重要的模块,也是本系统的精髓所在。通过房间号或客户号实现客房的预订情况以及客户入住情况的查询工作。5显示模块:显示所有客房、订房客户的根本信息。在程序设计上,我们的目标就是先实现单个模块,进而实现整个程序。本程序正是本着这种思想,一步一步,有条不紊的进行规划与设计。本程序

13、通过四个类:客户类、客户库类、客房类、客房库类,并通过主函数调用类函数实现了这五大功能模块的功能。五大功能模块的实现客户类:class customer private:int tag; /删除标记 1:已删 0:未删int no; /客户编号char name10; /客户姓名int borbookMaxbor; /所订房间 public:customer() char *getname() return name;/获取姓名int gettag() return tag; /获取删除标记int getno() return no; /获取客户编号 void setname(char na)

14、 /设置姓名 strcpy(name,na);void delbook() tag=1; /设置删除标记 1:已删 0:未删void addcustomer(int n,char *na) /增加客户 tag=0;no=n;strcpy(name,na);for(int i=0;i<Maxbor;i+)borbooki=0;void borrowbook(int bookid) /预订操作for(int i=0;i<Maxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid) /退订操作 for(i

15、nt i=0;i<Maxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp() /读出客户信息 cout << setw(5) << no <<setw(10) << name<<"t 客房编号:"for(int i=0;i<Maxbor;i+)if(borbooki!=0)cout << borbooki;cout << ""<<endl;客户库类:class RDa

16、tabase private: int top; /客户记录指针 customer 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; void clear() /删除所有客户信息top=-1;int addcustomer(int

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

18、=top;i+) readi.disp();void customerdata(); /客户库维护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();客房类:class Bookprivate: int tag; /删除标记 1:已删 0:未删int no; /客房编号char name20; /客房描述int onshelf; /是否预订 1:空

19、房 2:已预订public:Book()char *getname() return name; /获取姓名int getno() return no; /获取客房编号int gettag() return tag; /获取删除标记void setname(char na) /设置客房描述strcpy(name,na);void delbook() tag=1; /删除客房void addbook(int n,char *na) /增加客房tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook() /预订操作if (onshelf=1)onshe

20、lf=0;return 1;return 0;void retbook() /退订操作onshelf=1;void disp() /输出客房cout << setw(6) << no << setw(18) << name << setw(10)<<(onshelf=1? "空房":"已预订") <<endl;客房库类:class BDatabaseprivate: int top; /客房记录指针Book bookMaxb; /客房记录public:BDatabase(

21、) /构造函数,将book.txt读到book中 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;

22、Book *query(int bookid) /查找客房for (int i=0;i<=top;i+)if (booki.getno()=bookid &&booki.gettag()=0)return &booki;return NULL;void bookdata(); /客房库维护void disp() for (int i=0;i<=top;i+) if (booki.gettag()=0) booki.disp();fstream file("book.txt",ios:out); for (int i=0;i<=top

23、;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();六 函数定义及说明主函数void main() char choice;int bookid,customerid;RDatabase customerDB;customer *r;BDatabase BookDB;Book *b;while(choice!='0') cout <<endl<<endl<<"tt 酒 店 客 房 预 订 管 理nnn"cout &

24、lt;<"ttt1 订 房nnttt2 退 订nnttt3 客 房 信 息nnttt4 客 户 信 息nnttt0 退 出"<<endl;cin >> choice;switch (choice)case '1':cout <<"=n输入客户编号:"cin >>customerid;cout <<"输入客房编号:"cin >>bookid;r=customerDB.query(customerid);/按编号查找if (NULL=r)cout

25、 <<" 不存在的客户,不能预订"<< endl;break;b=BookDB.query(bookid);if (b=NULL)cout <<" 不存在的客房,不能预订"<< endl;break;if (b->borrowbook()=0)cout << " 该客房已预订,不能预订"<< endl;break;r->borrowbook(b->getno();break;case '2':cout<<"=

26、n输入客户编号:"cin >>customerid;cout << "输入客房编号:"cin >>bookid;r=customerDB.query(customerid);if (r=NULL)cout <<" 不存在的客户,不能退订" << endl;break;b=BookDB.query(bookid);if (b=NULL)cout <<" 不存在的客房,不能退订" <<endl;break;b->retbook();r-&g

27、t;retbook(b->getno();break;case '3':BookDB.bookdata();break;case '4': customerDB.customerdata(); break;default:cout<<"正在写入数据库.谢谢使用!"void RDatabase:customerdata() char choice;char rname20;int customerid;customer *r;while (choice!='0') cout <<"nntt

28、t客 户 信 息nnnttt1 新 增nnttt2 更 改nnttt3 删 除nnttt4 查 找nnttt5 显 示nnttt6 全 删nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '1':cout << "输入客户编号:"cin >> customerid;cout << "输入客户姓名:"cin >> rname;addcustomer (customerid,rname);break; ca

29、se '2':cout << "输入客户编号:"cin >> customerid;r=query(customerid);if (r=NULL)cout << " 该客户不存在 "<<endl; break;cout << "输入新的客户姓名:"cin >> rname;r->setname(rname); break; case '3': cout << "输入客户编号:" cin >

30、> customerid;r=query(customerid);if (r=NULL) cout <<" 该客户不存在" << endl; break;r->delbook();break;case '4':cout << "输入客户编号:"cin >> customerid;r=query(customerid);if (r=NULL)cout <<" 该客户不存在"<< endl;break;r->disp();break;

31、case '5':disp();break;case '6':clear();break;default:cout<<"正在返回主界面."break;void BDatabase:bookdata() char choice;char bname40;int bookid;Book *b;while (choice!='0')cout <<"nnnttt客 房 信 息 "<<endl<<endl;cout<<"nttt1 新 增nnttt

32、2 更 改nnttt3 删 除nnttt4 查 找nnttt5 显 示nnttt6 全 删nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '1':cout << "输入客房编号:"cin >> bookid; cout << "输入客房描述:"cin >> bname;addbook(bookid,bname);break; case '2':cout << "输

33、入客房编号:"cin >> bookid;b=query(bookid);if (b=NULL)cout <<" 该客房不存在 "<<endl; break;cout << "输入新的客房描述:"cin >> bname;b->setname(bname); break; case '3': cout <<"输入客房编号:" cin >> bookid;b=query(bookid);if (b=NULL) cout &

34、lt;<" 该客房不存在" << endl; break;b->delbook();break;case '4':cout << "输入客房编号:"cin >> bookid;b=query(bookid);if (b=NULL)cout <<" 该客房不存在"<< endl;break;b->disp();break;case '5':disp();break;case '6':clear();break;d

35、efault:cout<<"正在返回主界面."七 使用说明1程序主界面:界面简洁明了,一目了然,便于操作。选择数字0-4进入相应功能。2客户信息:主界面选择4进入客户信息管理菜单。 1.新增:系统提示输入客户号码、姓名等信息,按要求录入即可。 2.更改:系统提示输入要更改的客户号,输入后即可更改该客户的个人信息。 3.删除:系统提示输入要删除的客户号,输入后即可删除该客户。4.查询:系统提示输入要查询的客户号,输入后即可查看该客户的订房信息。5.显示:显示所有预订客户的个人信息以及预订房号。6.全删:删除所有客户。0.返回:返回主界面。3客房信息:主界面选择3进

36、入客房信息管理菜单。 1.新增:系统提示输入房间号、房间描述等信息,按要求录入即可。 2.更改:系统提示输入要更改的房间号,输入后即可更改该房间的描述信息。3.删除:系统提示输入要删除的房间号,输入后即可删除该房间。4.查询:系统提示输入要查询的房间号,输入后即可查看该房间的预订情况。5.显示:显示所有房间的描述信息以及预订情况。6.全删:删除所有房间。0.返回:返回主界面。4订房:主界面选择1进入订房功能。5退房:主界面选择2进入退房功能。6退出:主界面选择0退出程序并保存数据库。 八 程序源代码#include <iostream>#include <iomanip>

37、;#include <string>#include <fstream> /输入/输出文件流类using namespace std;const int Maxr=100; /最多的客户const int Maxb=100; /最多的客房const int Maxbor=5; /每位客户最多预订五间客房/客户类,实现对客户的信息的描述class customer private:int tag; /删除标记 1:已删 0:未删int no; /客户编号char name10; /客户姓名int borbookMaxbor; /所订房间 public:customer()

38、 char *getname() return name;/获取姓名int gettag() return tag; /获取删除标记int getno() return no; /获取客户编号 void setname(char na) /设置姓名 strcpy(name,na);void delbook() tag=1; /设置删除标记 1:已删 0:未删void addcustomer(int n,char *na) /增加客户 tag=0;no=n;strcpy(name,na);for(int i=0;i<Maxbor;i+)borbooki=0;void borrowbook(

39、int bookid) /预订操作for(int i=0;i<Maxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid) /退订操作 for(int i=0;i<Maxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp() /读出客户信息 cout << setw(5) << no <<setw(10) << name<<"t 客房编号:"

40、for(int i=0;i<Maxbor;i+)if(borbooki!=0)cout << borbooki;cout << ""<<endl;/客户库类,实现建立客户的个人资料 class RDatabase private: int top; /客户记录指针 customer readMaxr; /客户记录public:RDatabase() /构造函数,将customer.txt读到read中customer s;top=-1;fstream file("customer.txt",ios:in); /翻

41、开一个输入文件while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;readtop=s; void clear() /删除所有客户信息top=-1;int addcustomer(int n,char *na) /添加客户时先查找是否存在customer *p=query(n);if (p=NULL) top+; readtop.addcustomer(n,na); return 1;return 0;customer *query(int customerid) /按编号查找for (int i=0;i<=top

42、;i+)if (readi.getno()=customerid && readi.gettag()=0)return &readi;return NULL;void disp() /输出所有客户信息 for (int i=0;i<=top;i+) readi.disp();void customerdata(); /客户库维护fstream file("customer.txt",ios:out); for (int i=0;i<=top;i+)if (readi.gettag()=0)file.write(char *)&re

43、adi,sizeof(readi);file.close();void RDatabase:customerdata() char choice;char rname20;int customerid;customer *r;while (choice!='0') cout <<"nnttt客 户 信 息nnnttt1 新 增nnttt2 更 改nnttt3 删 除nnttt4 查 找nnttt5 显 示nnttt6 全 删nnttt0 返 回"<<endl;cin >> choice;switch (choice) ca

44、se '1':cout << "输入客户编号:"cin >> customerid;cout << "输入客户姓名:"cin >> rname;addcustomer (customerid,rname);break; case '2':cout << "输入客户编号:"cin >> customerid;r=query(customerid);if (r=NULL)cout << " 该客户不存在 "

45、;<<endl; break;cout << "输入新的客户姓名:"cin >> rname;r->setname(rname); break; case '3': cout << "输入客户编号:" cin >> customerid;r=query(customerid);if (r=NULL) cout <<" 该客户不存在" << endl; break;r->delbook();break;case '4&

46、#39;:cout << "输入客户编号:"cin >> customerid;r=query(customerid);if (r=NULL)cout <<" 该客户不存在"<< endl;break;r->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"正在返回主界面."break;/客房类,实现对客房的描述,如客房等级,有无宽带等clas

47、s Bookprivate: int tag; /删除标记 1:已删 0:未删int no; /客房编号char name20; /客房描述int onshelf; /是否预订 1:空房 2:已预订public:Book()char *getname() return name; /获取姓名int getno() return no; /获取客房编号int gettag() return tag; /获取删除标记void setname(char na) /设置客房描述strcpy(name,na);void delbook() tag=1; /删除客房void addbook(int n,c

48、har *na) /增加客房tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook() /预订操作if (onshelf=1)onshelf=0;return 1;return 0;void retbook() /退订操作onshelf=1;void disp() /输出客房cout << setw(6) << no << setw(18) << name << setw(10)<<(onshelf=1? "空房":"已预订") <

49、;<endl;/客房库类,实现对客房的管理,如查找、删除等class BDatabaseprivate: int top; /客房记录指针Book bookMaxb; /客房记录public:BDatabase() /构造函数,将book.txt读到book中 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=-

50、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<=top;i+)if (booki.getno()=bookid &&booki.gettag()=0)return &booki;return NULL;void bookdata(); /客房库维护void disp() for (int i=0;i<=

51、top;i+) if (booki.gettag()=0) booki.disp();fstream file("book.txt",ios:out); for (int i=0;i<=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata() char choice;char bname40;int bookid;Book *b;while (choice!='0')cout <<"nnnttt客 房 信 息 "<<endl<<endl;cout<<"nttt1 新 增nnttt2 更 改nnttt3 删 除nnttt4 查 找nnttt5 显 示nnttt6 全 删nnttt0 返 回"<<endl;cin >> choice;switch (choice) case '1':cout << &quo

温馨提示

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

最新文档

评论

0/150

提交评论