C++汽车租赁管理系统.docx
- 文档编号:25853800
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:39
- 大小:20.96KB
C++汽车租赁管理系统.docx
《C++汽车租赁管理系统.docx》由会员分享,可在线阅读,更多相关《C++汽车租赁管理系统.docx(39页珍藏版)》请在冰豆网上搜索。
C++汽车租赁管理系统
#include
#include
#include
#include
#include
//输入/输出文件流类
usingnamespacestd;
constintMaxr=100;
//最多的客户
constintMaxc=100;
//最多的汽车
constintMaxcar=5;
//每位客户最多租五辆汽车
classbiaozhi
{
public:
inttag;
//删除标记1:
已删0:
未删
intno;
//编号
};
//客户类,实现对客户的信息的描述
classCustomer:
publicbiaozhi
{
public:
charname[20];
//客户姓名
intborcar[Maxcar];
//所租汽车
Customer(){}
//构造函数
char*getname()
{
returnname;
}
//获取姓名
intgettag()
{
returntag;
}
//获取删除标记
intgetno()
{
returnno;
}
//获取客户编号
voidsetname(charna[])
{
strcpy(name,na);
}
//设置姓名
voiddelcar()
{
tag=1;
}
//设置删除标记
voidaddcustomer(intn,char*na);
//增加客户
voidborrowcar(intcarid);
//出租操作
intretcar(intcarid);
//归还操作
voiddisp();
//输出客户信息
virtualvoidprint();
//输出原客户信息
};
voidCustomer:
:
addcustomer(intn,char*na)
{
tag=0;
no=n;
strcpy(name,na);
for(inti=0;i { borcar[i]=0; } } //增加客户 voidCustomer: : borrowcar(intcarid) { for(inti=0;i { if(borcar[i]==0) { borcar[i]=carid; return; } } } //出租操作 intCustomer: : retcar(intcarid) { for(inti=0;i { if(borcar[i]==carid) { borcar[i]=0; return1; } else continue; } return0; } //归还操作 voidCustomer: : disp() { cout< cout< cout< cout< cout<<"出租汽车编号: ["; for(inti=0;i { if(borcar[i]! =0) { cout< } } cout<<"]"< } //输出客户信息 voidCustomer: : print() { cout<<"原客户编号: "; cout< cout< cout<<"\t原客户姓名: "; cout< cout< cout<<"\t租租汽车编号: ["; for(inti=0;i { if(borcar[i]! =0) { cout< } } cout<<"]"< } //输出原客户信息 //客户类库,实现建立客户的个人资料 classCDatabase { public: inttop; //客户记录指针 Customercustom[Maxc]; //客户记录 CDatabase(); //构造函数,将customer.txt读到custom[]中 voidclear() { top=-1; } //删除所有客户信息 intaddcustomer(intn,char*na); //增添客户信息 Customer*query(intcustomerid) { for(inti=0;i<=top;i++) { if(custom[i].getno()==customerid&& custom[i].gettag()==0) { return&custom[i]; } } returnNULL; } //按编号查找 voiddisp(); //输出所有客户信息 voidprint(intcustomerid) { for(inti=0;i<=top;i++) { if(custom[i].getno()==customerid&& custom[i].gettag()==0) { custom[i].print(); } } } //输出客户原有信息 intcustomernum(); //得到客户编号 voidcustomerdata(); //客户库管理 ~CDatabase(); //析构函数,将custom[]写入customer.txt文件中 }; CDatabase: : CDatabase() { Customers; top=-1; fstreamfile("customer.txt",ios: : in); while (1) { file.read((char*)&s,sizeof(s)); if(! file)break; top++; custom[top]=s; } file.close(); } //构造函数,将customer.txt读到custom[]中 CDatabase: : ~CDatabase() { fstreamfile("customer.txt",ios: : out); for(inti=0;i<=top;i++) if(custom[i].gettag()==0) file.write((char*)&custom[i],sizeof(custom[i])); else file.close(); ofstreamf("c: \\kehu.txt"); for(intj=0;j<=top;j++) { if(custom[j].gettag()==0) f<<"编号"< f<<"\t\t\t"; f<<"姓名"; f< f<<"\t\t\t"; f<<"所租汽车编号(没有就写0)"; f< f< } } //析构函数,将custom[]写入customer.txt文件中 intCDatabase: : addcustomer(intn,char*na) { Customer*p=query(n); if(p==NULL) { top++; custom[top].addcustomer(n,na); cout<<"客户添加成功"< return1; } return0; } //增添客户信息 voidCDatabase: : disp() { for(inti=0;i<=top;i++) { custom[i].disp(); } } //输出所有客户信息 intCDatabase: : customernum() { returntop; } //客户库管理 voidCDatabase: : customerdata() { charchoice; charcname[20]; //客户姓名 intcustomerid; Customer*r; do { cout<<"\n\n\n\t\t\t欢迎进入汽车管理界面"< cout<<"\t\t----------------------------"< cout<<"\t\t|1增加客户|"< cout<<"\t\t|2更改客户|"< cout<<"\t\t|3删除客户|"< cout<<"\t\t|4查找客户|"< cout<<"\t\t|5查看全部|"< cout<<"\t\t|6删除全部|"< cout<<"\t\t|0返回上一层|"< cout<<"\t\t----------------------------"< cin>>choice; switch(choice) { case'1': cout<<"新增\n输入客户编号: "; cin>>customerid; try { if(customerid<=0)throw1; } catch(...) { cout<<"输入有误,请重新输入"; break; } cout<<"输入客户姓名: "; cin>>cname; addcustomer(customerid,cname); break; case'2': cout<<"更改\n输入客户编号: "; cin>>customerid; try { if(customerid<=0)throw1; } catch(...) { cout<<"输入有误,请重新输入"; break; } r=query(customerid); if(r==NULL) { cout<<"该客户不存在"< break; } print(customerid); cout<<"输入新的客户编号: "; cin>>customerid; try { if(customerid<=0)throw1; } catch(...) { cout<<"输入有误,请重新输入"; break; } cout<<"输入新的客户姓名: "; cin>>cname; r->addcustomer(customerid,cname); cout<<"修改成功! "< break; case'3': cout<<"删除\n输入客户编号: "; cin>>customerid; try { if(customerid<=0)throw1; } catch(...) { cout<<"输入有误,请重新输入"; break; } r=query(customerid); if(r==NULL) { cout<<"该客户不存在"< break; } r->delcar(); break; case'4': cout<<"查找\n读入客户编号: "; cin>>customerid; try { if(customerid<=0)throw1; } catch(...) { cout<<"输入有误,请重新输入"; break; } r=query(customerid); if(r==NULL) { cout<<"该客户不存在"< break; } r->disp(); break; case'5': cout<<"显示: "< disp(); break; case'6': clear(); cout<<"已删除! "< break; default: if(choice! ='0')cout<<"输入错误,请从新输入: "; break; } } while(choice! ='0'); } //汽车类,实现对汽车的描述,汽车的编号,名称,租出,归还等 classCar: publicbiaozhi { public: charname[20]; //名称 intonshelf; //是否在车库1: 在车库0: 已租 Car(){} char*getname(){returnname;} //获取姓名 intgetno(){returnno;} //获取汽车编号 intgettag(){returntag;} //获取删除标记 voidsetname(charna[]) { strcpy(name,na); } //设置名称 voiddelcar(){tag=1;} //删除汽车 voidaddcar(intn,char*na) { tag=0; no=n; strcpy(name,na); onshelf=1; } //增加汽车 intborrowcar() { if(onshelf==1) { onshelf=0; return1; } return0; } //出租操作 voidretcar() { onshelf=1; } //归还操作 voidprint() { cout<<"汽车原编号: "< "< <<(onshelf==1? "在车库": "已租")< } //输出汽车 voiddisp() { cout< <<(onshelf==1? "在车库": "已租")< } //显示 voiddisp(intk) { cout<<"编号为"< } }; template classbiaozhiq { public: Tabaso; }; //汽车库类,实现对汽车的管理,查找,删除等 classCarDatabase { public: inttop; //汽车记录指针 Carche[Maxc]; //汽车记录 CarDatabase() { Carb; top=-1; fstreamfile("che.txt",ios: : in); while (1) { file.read((char*)&b,sizeof(b)); if(! file) break; top++; che[top]=b; } file.close(); } //构造函数,将che.txt读到che[]中 voidclear()//全删 { top=-1; } intaddcar(intn,char*na); //增加汽车 Car*query(intcarid) { for(inti=0;i<=top;i++) if(che[i].getno()==carid&&che[i].gettag()==0) { return&che[i]; } returnNULL; } //查找汽车 voidcardata(); //汽车库管理 virtualvoidprint(intn) { for(inti=0;i<=top;i++) if(che[i].getno()==n) che[i].print(); } //输出原汽车 voiddisp() { for(inti=0;i<=top;i++) if(che[i].gettag()==0) che[i].disp(); } //显示 ~CarDatabase(); //析构函数,将che[]写到che.txt文件中 }; intCarDatabase: : addcar(intn,char*na) { Car*p=query(n); if(NULL==p) { top++; che[top].addcar(n,na); return1; } return0; } //增加汽车 CarDatabase: : ~CarDatabase() { fstreamfile("che.txt",ios: : out); for(inti=0;i<=top;i++) if(che[i].gettag()==0) file.write((char*)&che[i],sizeof(che[i])); file.close(); ofstreamf("c: \\qiche.txt"); for(intj=0;j<=top;j++) { if(che[j].gettag()==0) f<<"编号"; f< f<<"\t\t\t"; f<<"汽车"; f< f<<"\t\t\t"; if(che[j].onshelf==1) f<<"在车库"< else f<<"已出租"< } } //析构函数,将che[]写到che.txt文件中 //汽车管理 voidCarDatabase: : cardata() { charchoice; charcname[20]; intcarid; Car*b; do { cout<<"\n\n\n\t\t\t欢迎进入汽车管理界面"< cout<<"\t\t----------------------------"< cout<<"\t\t|1增加汽车|"< cout<<"\t\t|2更改汽车|"< cout<<"\t\t|3删除汽车|"< cout<<"\t\t|4查找汽车|"< cout<<"\t\t|5查看全部|"< cout<<"\t\t|6删除全部|"< cout<<"\t\t|0返回上一层|"< cout<<"\t\t----------------------------"< cin>>choice; switch(choice) { case'1': cout<<"新增\n输入汽车编号: "< cin>>carid; try { if(carid<=0)throw1; } catch(...) { cout<<"输入有误,请重新输入"; break; } cout<<"输入汽车名称: "< cin>>cname; addcar(carid,cname); break; case'2': cout<<"更改\n输入汽车编号: "< cin>>carid; try { if(c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 汽车 租赁 管理 系统