交通违章处理

#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;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值