版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <iostream>#include <iomanip>#include<conio.h>#include <string>#include <fstream>/输入/输出文件流类using namespace std;const int Maxr=100;/最多的客户const int Maxc=100;/最多的汽车const int Maxcar=5;/每位客户最多租五辆汽车class biaozhipublic:int tag;/删除标记 1:已删 0:未删int no; /编号;/客户类,实现对客户的信息的描
2、述class Customer :public biaozhi public:char name20; /客户姓名int borcarMaxcar;/所租汽车 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); /
3、增加客户void borrowcar(int carid); /出租操作int retcar(int carid); /归还操作void disp(); /输出客户信息virtual void print(); /输出原客户信息; void Customer:addcustomer(int n,char *na) tag=0; no=n; strcpy(name,na); for (int i=0;i<Maxcar;i+) borcari=0; /增加客户void Customer:borrowcar(int carid) for (int i=0;i<Maxcar;i+) if
4、(borcari=0) borcari=carid; return; /出租操作int Customer:retcar(int carid) for(int i=0;i<Maxcar;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<< " 出租汽车编号:&quo
5、t; for (int i=0;i<Maxcar;i+) if (borcari!=0)cout <<borcari <<"|"cout<<""<<endl; /输出客户信息void Customer:print() cout <<"原客户编号:"cout<<setw(5);cout<< no;cout<<"t原客户姓名:"cout<< setw(10);cout<< name;cout&l
6、t;< " t租租汽车编号:" for (int i=0;i<Maxcar;i+)if (borcari!=0) cout <<borcari <<"|"cout<<""<<endl; /输出原客户信息 /客户类库,实现建立客户的个人资料 class CDatabase public: int top; /客户记录指针 Customer customMaxc; /客户记录CDatabase();/构造函数,将customer.txt读到custom中void clear()t
7、op=-1;/删除所有客户信息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
8、()=customerid&&customi.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 (!fi
9、le) break;top+;customtop=s;file.close(); /构造函数,将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);elsefile.close();ofstream f("c:kehu.txt");for (int j=0;j&l
10、t;=top;j+)if(customj.gettag()=0)f<<"编号"<<customj.no;f<<"ttt"f<<"姓名"f<<;f<<"ttt"f<<"所租汽车编号(没有就写0)"f<<customj.borcarj;f<<endl;/ 析构函数,将custom写入customer.txt文件中int CDatabase:addcustomer(int
11、 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();/输出所有客户信息int CDatabase:customernum()return top;/客户库管理void CDatabase:customerdata() char choi
12、ce;char cname20; /客户姓名int customerid;Customer *r;do cout <<"nnnttt欢迎进入汽车管理界面 "<<endl<<endl;cout<<"tt-"<<endl;cout<<"tt| 1增加客户 |"<<endl;cout<<"tt| 2更改客户 |"<<endl;cout<<"tt| 3删除客户 |"<<en
13、dl;cout<<"tt| 4查找客户 |"<<endl;cout<<"tt| 5查看全部 |"<<endl; cout<<"tt| 6删除全部 |"<<endl;cout<<"tt| 0返回上一层 |"<<endl;cout<<"tt-"<<endl;cin >> choice;switch (choice) case '1':cout <&
14、lt; "新增n输入客户编号:"cin >> customerid;tryif(customerid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;cout << "输入客户姓名:"cin >> cname;addcustomer (customerid,cname);break; case '2':cout << "更改n输入客户编号:"cin >> customerid;tryi
15、f(customerid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;r=query(customerid);if (r=NULL)cout << " 该客户不存在 "<<endl; break;print(customerid);cout<<"输入新的客户编号:"cin>>customerid;tryif(customerid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入
16、"break;cout<<"输入新的客户姓名:"cin >> cname;r->addcustomer(customerid,cname);cout<<"修改成功!"<<endl; break; case '3': cout << " 删除n输入客户编号:" cin >> customerid;tryif(customerid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入&qu
17、ot;break;r=query(customerid);if (r=NULL) cout <<" 该客户不存在" << endl; break;r->delcar();break;case '4':cout << "查找n读入客户编号:"cin >> customerid;tryif(customerid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;r=query(customerid);if (r=NU
18、LL)cout <<"该客户不存在"<< endl;break;r->disp();break;case '5':cout<<"显示:"<<endl;disp();break;case '6':clear();cout<<"已删除!"<<endl;break;default:if (choice!='0') cout<<"输入错误,请从新输入:"break;while (choi
19、ce!='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);/设置名称void delcar() tag=1;/删除汽车void addca
20、r(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&quo
21、t;<< setw(10)<<(onshelf=1? "在车库":"已租") <<endl;/输出汽车void disp()cout << setw(6) << no << setw(18) << name << setw(10)<<(onshelf=1? "在车库":"已租") <<endl;/显示void disp(int k)cout<<"编号为"<&l
22、t;no<<endl;template<class T>class biaozhiqpublic:T abaso;/汽车库类,实现对汽车的管理,查找,删除等class CarDatabasepublic: int top; /汽车记录指针Car cheMaxc; /汽车记录CarDatabase() Car b;top=-1;fstream file("che.txt",ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;chetop=b;file.clos
23、e();/构造函数,将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();/汽车库管理virtual void print(int n) for(int i=0;i<=top;i+)if(chei.getno()=n
24、)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);return 1;return 0;/增加汽车CarDatabase:CarDatabase()fstream file("che.txt&quo
25、t;,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<<"编号"f<<chej.no;f<<"ttt"f<<"汽车"f<<;
26、f<<"ttt"if(chej.onshelf=1)f<<"在车库"<<endl;else f<<"已出租"<<endl;/析构函数,将che写到che.txt文件中/汽车管理void CarDatabase:cardata() char choice;char cname20;int carid;Car *b;do cout <<"nnnttt欢迎进入汽车管理界面 "<<endl<<endl;cout<<&
27、quot;tt-"<<endl;cout<<"tt| 1增加汽车 |"<<endl;cout<<"tt| 2更改汽车 |"<<endl;cout<<"tt| 3删除汽车 |"<<endl;cout<<"tt| 4查找汽车 |"<<endl;cout<<"tt| 5查看全部 |"<<endl; cout<<"tt| 6删除全部 |&qu
28、ot;<<endl;cout<<"tt| 0返回上一层 |"<<endl;cout<<"tt-"<<endl;cin >> choice;switch (choice) case '1':cout << "新增n输入汽车编号:"<<endl;cin >> carid;tryif(carid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;
29、 cout << "输入汽车名称:"<<endl;cin >> cname;addcar(carid,cname);break; case '2':cout << "更改n输入汽车编号:"<<endl;cin >> carid;tryif(carid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;b=query(carid);if (b=NULL)cout << " 该
30、汽车不存在 "cout<<endl; break;print(carid);cout << "输入新的汽车编号:"cout<<endl;cin>>carid;tryif(carid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;cout << "输入新的汽车名称:"<<endl;cin >> cname;b->addcar(carid,cname);cout<<&qu
31、ot;修改成功!"<<endl; break; case '3': cout <<" 删除n读入汽车编号:"<<endl; cin >> carid;tryif(carid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;b=query(carid);if (b=NULL) cout <<" 该汽车不存在" ;cout<< endl; break;b->delcar();bre
32、ak;case '4':cout << " 查找n读入汽车编号:"cout<<endl;cin >> carid;tryif(carid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;b=query(carid);if (b=NULL)cout <<" 该汽车不存在"cout<< endl;break;b->disp();break;case '5':cout<<&qu
33、ot;显示:"<<endl;disp();break;case '6':clear();cout<<"已删除!"<<endl;break;default:if(choice!='0')cout<<"输入错误,请从新输入:"while (choice!='0');void showmenu()cout<<" -*-*-"<<endl;cout<<" 1.* 出租汽车 *"<
34、;<endl;cout<<" -*-*-"<<endl;cout<<" 2.* 归还汽车 *"<<endl;cout<<" -*-*-"<<endl;cout<<" 3.* 汽车管理 *"<<endl;cout<<" -*-*-"<<endl;cout<<" 4.* 客户管理 *"<<endl;cout<<"
35、; -*-*-"<<endl;cout<<" 0.* 退出并保存 *"<<endl;cout<<" -*-*-"<<endl;void showtip() cout<<"ntt-操作完成!-"<<endl;cout<<"tt-选择0-5继续-"<<endl;cout<<" -*-*-"<<endl;cout<<" 1.* 出租汽车 *
36、"<<endl;cout<<" -*-*-"<<endl;cout<<" 2.* 归还汽车 *"<<endl;cout<<" -*-*-"<<endl;cout<<" 3.* 汽车管理 *"<<endl;cout<<" -*-*-"<<endl;cout<<" 4.* 客户管理 *"<<endl;cout<
37、<" -*-*-"<<endl;cout<<" 0.* 退出并保存 *"<<endl;cout<<" -*-*-"<<endl;/main() 函数的实现,程序的主界面的引导int main() cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "
38、<<endl;cout<<" "<<endl;cout<<" * * * * * * * * "<<endl;cout<<" * * * * * * * * "<<endl;cout<<" * * * * * * "<<endl;cout<<" * * * * "<<endl;cout<<" * * * * "<<endl
39、;cout<<" * * 欢迎使用 * * "<<endl;cout<<" * * 汽车租赁 * * "<<endl;cout<<" * * 管理系统 * * "<<endl;cout<<" * * "<<endl;cout<<" welcome to the Car rental management system "<<endl;cout<<" &qu
40、ot;<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;cout<<" "<<endl;getch();/为了停顿一下,按任意键才继续往下运行system("cls");/系统清屏char k20;int t=3;p3:cout<<"
41、欢迎使用汽车租赁管理系统,请输入登陆密码(只可输入3次):"cout<<endl; cin>>k; /输入密码 if(strcmp("111",k)=0) cout<<"密码正确"<<endl; else cout<<"密码错误!剩余"<<-t<<"次。"<<endl;if(t=0)return 0;goto p3;char choice;int carid,customerid; /汽车编号,客户编号CDat
42、abase CustomerDB; /客户库Customer *r; /客户CarDatabase CarDB; /汽车库Car *b; /汽车cout<<"正在打开系统,请稍后."<<endl;showmenu(); /显示菜单 cout<<"ttt请选择菜单中的数字以便处理数据:"cin >> choice;while (choice!='0')switch (choice)case '1': /输入客户编号和要出租的汽车 cout <<" 出租n 客户编号:"cin >>customerid;tryif(customerid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;cout <<" 汽车编号: "cin >>carid;tryif(carid<=0)throw 1;catch(.)cout<<"输入有误,请重新输入"break;r=CustomerDB.query(customerid); /按编号查找if (NULL=r)cout <
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红楼梦第十七回赏析
- 2026年连云港师范高等专科学校单招职业倾向性考试题库及答案详解一套
- 《药品生物检定技术》创新课件-数字化中药馆-创新健康服务模式
- 云资源优化运维协议
- 智能窗帘安装调试师岗位招聘考试试卷及答案
- 2026年消防队工作计划(3篇)
- 2025年度基层卫生人员全员在线培训考试试题及答案
- 2025年CPA审计真题及答案解析
- 2026年护理部年度工作计划与战略部署
- 2025年安徽皖江高速公路有限公司高速公路收费人员招聘考试笔试试题及答案
- XF-T 3004-2020 汽车加油加气站消防安全管理
- 行为金融学课件
- 低空经济产业园建设项目可行性研究报告
- 中考数学讲座中考数学解答技巧基础复习课件
- 短视频的拍摄与剪辑
- 单轴仿形铣床设计
- 全口义齿人工牙的选择与排列 28-全口义齿人工牙的选择与排列(本科终稿)
- 低压电缆敷设方案设计
- 原发性肝癌病人的护理原发性肝癌病人的护理
- GB/T 7324-2010通用锂基润滑脂
- 新能源有限公司光伏电站现场应急处置方案汇编
评论
0/150
提交评论