1、C+汽车租赁管理系统#include #include #include#include #include /输入/输出文件流类using namespace std;const int Maxr=100;/最多的客户const int Maxc=100;/最多的汽车const int Maxcar=5;/每位客户最多租五辆汽车class biaozhipublic: int tag; /删除标记 1:已删 0:未删 int no; /编号;/客户类,实现对客户的信息的描述class Customer :public biaozhi public: char name20; /客户 int b
2、orcarMaxcar; /所租汽车 Customer() /构造函数 char *getname() return name; /获取 int gettag() return tag; /获取删除标记 int getno() return no; /获取客户编号 void setname(char na) strcpy(name,na); /设置 void delcar() tag=1; /设置删除标记 void addcustomer(int n,char *na); /增加客户 void borrowcar(int carid); /出租操作 int retcar(int carid);
3、 /归还操作 void disp(); /输出客户信息 virtual void print(); /输出原客户信息; void Customer:addcustomer(int n,char *na) tag=0; no=n; strcpy(name,na); for (int i=0;iMaxcar;i+) borcari=0; /增加客户void Customer:borrowcar(int carid) for (int i=0;iMaxcar;i+) if (borcari=0) borcari=carid; return; /出租操作int Customer:retcar(int
4、carid) for(int i=0;iMaxcar;i+) if(borcari=carid) borcari=0; return 1; else continue; return 0; /归还操作void Customer:disp() cout setw(5); cout no; cout setw(10) ; cout name ; cout 出租汽车编号:; for (int i=0;iMaxcar;i+) if (borcari!=0) cout borcari |; coutendl; /输出客户信息void Customer:print() cout 原客户编号:; couts
5、etw(5); cout no; coutt原客户:; cout setw(10); cout name; cout t租租汽车编号:; for (int i=0;iMaxcar;i+) if (borcari!=0) cout borcari |; coutendl; /输出原客户信息 /客户类库,实现建立客户的个人资料 class CDatabase public: int top; /客户记录指针 Customer customMaxc; /客户记录 CDatabase(); /构造函数,将customer.txt读到custom中 void clear() top=-1; /删除所有客
6、户信息 int addcustomer(int n,char *na); /增添客户信息 Customer *query(int customerid) for (int i=0;i=top;i+) if(customi.getno()=customerid& customi.gettag()=0) return &customi; return NULL; /按编号查找 void disp(); /输出所有客户信息 void print(int customerid) for (int i=0;i=top;i+) if(customi.getno()=customerid& customi.
7、gettag()=0) customi.print(); /输出客户原有信息 int customernum(); /得到客户编号 void customerdata(); /客户库管理 CDatabase(); / 析构函数,将custom写入customer.txt文件中;CDatabase:CDatabase() Customer s; top=-1; fstream file(customer.txt,ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file) break; top+; customtop=s; file.c
8、lose(); /构造函数,将customer.txt读到custom中CDatabase:CDatabase() fstream file(customer.txt,ios:out); for (int i=0;i=top;i+) if(customi.gettag()=0) file.write(char *)&customi,sizeof(customi); else file.close(); ofstream f(c:kehu.txt); for (int j=0;j=top;j+) if(customj.gettag()=0)f编号customj.no; fttt; f; fcus
9、tomj.name; fttt; f所租汽车编号(没有就写0); fcustomj.borcarj; fendl; / 析构函数,将custom写入customer.txt文件中int CDatabase:addcustomer(int n,char *na) Customer *p=query(n); if (p=NULL) top+; customtop.addcustomer(n,na); cout客户添加成功endl; return 1; return 0; /增添客户信息void CDatabase:disp() for (int i=0;i=top;i+) customi.disp
10、(); /输出所有客户信息int CDatabase:customernum() return top; /客户库管理void CDatabase:customerdata() char choice; charame20; /客户 int customerid; Customer *r; do cout nnnttt欢迎进入汽车管理界面 endlendl; couttt-endl; couttt| 1增加客户 |endl; couttt| 2更改客户 |endl; couttt| 3删除客户 |endl; couttt| 4查找客户 |endl; couttt| 5查看全部 |endl; c
11、outtt| 6删除全部 |endl; couttt| 0返回上一层 |endl; couttt- choice; switch (choice) case 1: cout customerid; try if(customerid=0)throw 1; catch(.) cout输入有误,请重新输入; break; cout ame; addcustomer (customerid,ame); break; case 2: cout customerid; try if(customerid=0)throw 1; catch(.) cout输入有误,请重新输入; break; r=query
12、(customerid); if (r=NULL) cout 该客户不存在 endl; break; print(customerid); coutcustomerid; try if(customerid=0)throw 1; catch(.) cout输入有误,请重新输入; break; coutame; r-addcustomer(customerid,ame); cout修改成功!endl; break; case 3: cout customerid; try if(customerid=0)throw 1; catch(.) cout输入有误,请重新输入; break; r=que
13、ry(customerid); if (r=NULL) cout 该客户不存在 delcar(); break; case 4: cout customerid; try if(customerid=0)throw 1; catch(.) cout输入有误,请重新输入; break; r=query(customerid); if (r=NULL) cout 该客户不存在disp(); break; case 5: cout显示:endl; disp(); break; case 6: clear(); cout已删除!endl; break; default: if (choice!=0)
14、cout输入错误,请从新输入:; break; while (choice!=0);/汽车类,实现对汽车的描述,汽车的编号,名称,租出,归还等class Car:public biaozhipublic: char name20; /名称 int onshelf; /是否在车库 1:在车库 0:已租 Car() char *getname() return name; /获取 int getno() return no; /获取汽车编号 int gettag() return tag; /获取删除标记 void setname(char na) strcpy(name,na); /设置名称vo
15、id delcar() tag=1; /删除汽车 void addcar(int n,char *na) tag=0; no=n; strcpy(name,na); onshelf=1; /增加汽车 int borrowcar() if (onshelf=1) onshelf=0; return 1; return 0; /出租操作 void retcar() onshelf=1; /归还操作 void print() cout 汽车原编号: setw(6) no t汽车原名称: setw(18) name t setw(10) (onshelf=1? 在车库:已租) endl; /输出汽车
16、void disp() cout setw(6) no setw(18) name setw(10) (onshelf=1? 在车库:已租) endl; /显示 void disp(int k) cout编号为noendl; ;templateclass biaozhiqpublic: T abaso;/汽车库类,实现对汽车的管理,查找,删除等class CarDatabasepublic: int top; /汽车记录指针 Car cheMaxc; /汽车记录 CarDatabase() Car b; top=-1; fstream file(che.txt,ios:in); while (
17、1) file.read(char *)&b,sizeof(b); if (!file) break; top+; chetop=b; file.close(); /构造函数,将che.txt读到che中 void clear()/全删 top=-1; int addcar(int n,char *na); /增加汽车 Car *query(int carid) for (int i=0;i=top;i+) if (chei.getno()=carid &chei.gettag()=0) return &chei; return NULL; /查找汽车 void cardata(); /汽车库
18、管理 virtual void print(int n) for(int i=0;i=top;i+) if(chei.getno()=n) chei.print(); /输出原汽车 void disp() for (int i=0;i=top;i+) if (chei.gettag()=0) chei.disp(); /显示 CarDatabase(); /析构函数,将che写到che.txt文件中;int CarDatabase:addcar(int n,char *na) Car *p=query(n); if (NULL=p) top+; chetop.addcar(n,na); ret
19、urn 1; return 0; /增加汽车CarDatabase:CarDatabase() fstream file(che.txt,ios:out); for (int i=0;i=top;i+) if (chei.gettag()=0) file.write(char *)&chei,sizeof(chei); file.close(); ofstream f(c:qiche.txt); for (int j=0;j=top;j+) if(chej.gettag()=0) f编号; fchej.no; fttt; f汽车; fchej.name; fttt; if(chej.onshe
20、lf=1) f在车库endl; else f已出租endl; /析构函数,将che写到che.txt文件中/汽车管理void CarDatabase:cardata() char choice; charame20; int carid; Car *b; do cout nnnttt欢迎进入汽车管理界面 endlendl; couttt-endl; couttt| 1增加汽车 |endl; couttt| 2更改汽车 |endl; couttt| 3删除汽车 |endl; couttt| 4查找汽车 |endl; couttt| 5查看全部 |endl; couttt| 6删除全部 |endl; couttt| 0返回上一层 |endl; couttt- choice; switch (choice) case 1: cout 新增n输入汽车编号: carid; try if(carid=0)throw 1; catch(.) cout输入有误,请重新输入; break; cout 输入汽车名称:ame; addcar(carid,ame); break; case 2: cout 更改n输入汽车编号: carid; try if(carid=0)throw 1; catch(.) cout
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1