C汽车租赁管理系统.docx
《C汽车租赁管理系统.docx》由会员分享,可在线阅读,更多相关《C汽车租赁管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
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(carid<=0)throw1;
}
catch(...)
{
cout<<"输入有误,请重新输入";
break;
}
b=query(carid);
if(b==NULL)
{
cout<<"该汽车不存在";
cout<break;