#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Car
{
public:
Car(string a,string b){licence_number=a;name=b;}
void Print()
{
printf("%-20s%-20s",name.c_str(),licence_number.c_str());
}
private:
string licence_number;//车牌号
string name;//车主
};
class Rec:public Car
{
public:
Rec(string temp,string a,string b,string c,string d,float e):Car(a,b)
{
ans=c;
time=d;
money=e;
num=temp;
}
void Print()
{
printf("%-20s",num.c_str());
Car::Print();
printf("%-20s%-20s",ans.c_str(),time.c_str());
printf("%-20.2f\n",money);
}
string Get_Num()
{
return num;
}
private:
float money;//罚款
string ans;//违规原因
string time;//违规时间
string num;//编号
};
class Run
{
public:
Run()
{
do
{
menu();
if(choice=="1")
{
Push_New_Rec();
}
else if(choice=="2")
{
Del_Rec();
}
else if(choice=="3")
{
Modify_Rec();
}
else if(choice=="4")
{
Serach_Rec();
}
else if(choice=="5")
{
Print();
}
}while(choice!="0");
}
private:
void menu()
{
system("cls");
cout<<"1:添加"<<endl;
cout<<"2:删除"<<endl;
cout<<"3:修改"<<endl;
cout<<"4:查询"<<endl;
cout<<"5:查看"<<endl;
cout<<"0:退出"<<endl;
cout<<"请输入选择:";
cin>>choice;
while(choice!="0"&&choice!="1"&&choice!="2"&&choice!="3"&&choice!="4"&&choice!="5")
{
cout<<"请重新输入选择:";
cin>>choice;
}
}
void Push_New_Rec()
{
string licence_number;//车牌号
string name;//车主
string num;//编号
float money;//罚款
string ans;//违规原因
string time;//违规时间
system("cls");
cout<<"请输入记录编号:";
cin>>num;
cout<<"请输入车主姓名:";
cin>>name;
cout<<"请输入车牌号:";
cin>>licence_number;
cout<<"请输入违规原因:";
cin>>ans;
cout<<"请输入违规时间:";
cin>>time;
cout<<"请输入付款金额:";
cin>>money;
Rec temp(num,licence_number,name,ans,time,money);
rec.push_back(temp);
cout<<"录入成功!"<<endl;
system("pause");
}
void Modify_Rec()
{
bool flag=true;
string num;
vector<Rec>::iterator p=rec.begin();
vector<Rec>::iterator q=rec.end();
system("cls");
cout<<"请输入要修改的编号:";
cin>>num;
for(;p!=q;p++)
{
if(p->Get_Num() == num)
{
printf("%-20s%-20s%-20s%-20s%-20s%-20s\n","编号","车主姓名","车牌号","违规原因","违规时间","罚款金额");
p->Print();
flag=false;
break;
}
}
if(flag==true)
{
cout<<"无该记录!"<<endl;
}
else
{
rec.erase(p);
string licence_number;//车牌号
string name;//车主
string count;//编号
float money;//罚款
string ans;//违规原因
string time;//违规时间
cout<<"请修改记录编号:";
cin>>count;
cout<<"请修改车主姓名:";
cin>>name;
cout<<"请修改车牌号:";
cin>>licence_number;
cout<<"请修改违规原因:";
cin>>ans;
cout<<"请修改违规时间:";
cin>>time;
cout<<"请修改付款金额:";
cin>>money;
Rec temp(num,licence_number,name,ans,time,money);
rec.push_back(temp);
cout<<"修改成功!"<<endl;
}
system("pause");
}
void Serach_Rec()
{
bool flag=true;
string num;
vector<Rec>::iterator p=rec.begin();
vector<Rec>::iterator q=rec.end();
system("cls");
cout<<"请输入要查询的编号:";
cin>>num;
for(;p!=q;p++)
{
if(p->Get_Num() == num)
{
printf("%-20s%-20s%-20s%-20s%-20s%-20s\n","编号","车主姓名","车牌号","违规原因","违规时间","罚款金额");
p->Print();
flag=false;
break;
}
}
if(flag==true)
{
cout<<"无该记录!"<<endl;
}
system("pause");
}
void Del_Rec()
{
bool flag=true;
string num;
vector<Rec>::iterator p=rec.begin();
vector<Rec>::iterator q=rec.end();
system("cls");
cout<<"请输入要删除的编号:";
cin>>num;
for(;p!=q;p++)
{
if(p->Get_Num() == num)
{
rec.erase(p);
cout<<"删除成功!"<<endl;
flag=false;
break;
}
}
if(flag==true)
{
cout<<"无该记录!"<<endl;
}
system("pause");
}
void Print()
{
vector<Rec>::iterator p=rec.begin();
vector<Rec>::iterator q=rec.end();
system("cls");
if(p==q)
{
cout<<"无记录!"<<endl;
}
else
{
printf("%-20s%-20s%-20s%-20s%-20s%-20s\n","编号","车主姓名","车牌号","违规原因","违规时间","罚款金额");
}
for(;p!=q;p++)
{
p->Print();
}
system("pause");
}
string choice;
vector<Rec> rec;
};
int main()
{
system("mode con: cols=122 lines=35");
Run run;
return 0;
}