第五组酒店客房预订管理系统的设计与实现源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#include"conio.h" //输入/输出文件流类
using namespace std;
const int Maxr=100; //最多的客户
const int Maxb=100; //最多的客房
const int Maxbor=10; //每位客户最多预订十间客房//person类
class person
{
public:
char name[20];
char ID[18];
char *getname() {return name;}//获取姓名
char *getID() {return ID;} //获取身份证号
void setID(char I[]) //设置身份证号
{
strcpy(ID,I);
}
void setname(char na[]) //设置姓名
{
strcpy(name,na);
}
};
//客户类公有继承了person类,实现对客户的信息的描述
class customer:public person
{
private:
int num; //客户编号
int tag; //删除标记1:已删0:未删
int borbook[Maxbor]; //所订房间
public:
customer() {}
int gettag() {return tag;} //获取删除标记
void delbook(){ tag=1; } //设置删除标记1:已删0:未删
int getnum() {return num;} //获取客户编号
void addcustomer(int n,char *na,char *I) //增加客户
{
tag=0;
num=n;
strcpy(name,na);
strcpy(ID,I);
for(int i=0;i borbook[i]=0; } void borrowbook(int bookid) //预订操作 { for(int i=0;i { if (borbook[i]==0) { borbook[i]=bookid; return; } } } int retbook(int bookid) //退订操作 { for(int i=0;i { if(borbook[i]==bookid) { borbook[i]=0; return 1; } } return 0; } void display() //读出客户信息 { cout <<"客户编号:" << num < for(int i=0;i if(borbook[i]!=0) cout <<"#"<< borbook[i]<<" "; cout << "]"< } }; //客户库类,实现建立客户的个人资料 class RDatabase { private: int top; //客户记录指针 customer read[Maxr]; //客户记录 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++; read[top]=s; } file.close(); //关闭customer.txt } void clear() //删除所有客户信息 { top=-1; } int addcustomer(int n,char *na,char *I) //添加客户时先查找是否存在 { customer *p=query(n); if (p==NULL) { top++; read[top].addcustomer(n,na,I); return 1; } return 0; } customer *query(int customerid) //按编号查找 { for (int i=0;i<=top;i++) if (read[i].getnum()==customerid&&read[i].gettag()==0) { return &read[i]; } return NULL; } customer *query(string name) //按name查找 { for (int i=0;i<=top;i++) if (read[i].getname()==name&&read[i].gettag()==0) { return &read[i];