只有一些基本的功能,有其它的需要可以自己添加功能。

#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <conio.h>
using namespace std;
class Car
{protected:string name;//汽车名字float price;//汽车价格
public:Car();//构造函数Car(const string N,const float P);//重载构造函数void setname(const string N);//设置汽车名字void setprice(const float P);//设置汽车售价string getname();//获取汽车名字float getprice();//获取汽车售价
};
Car::Car()
{name="noname";price=0;
}
Car::Car(const string N,const float P)//重载构造函数
{name=N;price=P;
}
void Car::setname(const string N)
{name=N;
}
void Car::setprice(const float P)
{price=P;
}
string Car::getname()
{return name;
}
float Car::getprice()
{return price;
}
class Car1 :public Car
{protected:string color;//汽车颜色int num;//汽车数量int size;//汽车载量
public:Car1();//无参构造函数,给汽车颜色、数量和载量设置默认值。Car1(const string N,const float P,const string C,const int Num,const int S);//带参构造函数,设置汽车颜色、数量和载量void setcolor(const string C);//设置汽车颜色void setnum(const int Num);//设置汽车数量void setsize(const int S);//设置汽车载量string getcolor();//获取汽车颜色int getnum();//获取汽车数量int getsize();//获取载量friend ostream &operator <<(ostream&cout1,Car1&car);//输出构造函数的重载,直接输出汽车类所有数据成员信息
};
Car1::Car1()
{name="noname";price=0;color="nocolor";num=0;size=0;
}
Car1::Car1(const string N,const float P,const string C,const int Num,const int S):Car(N,P)
{name=N;price=P;color=C;num=Num;size=S;
}
void Car1::setcolor(const string c)
{color=c;
}
void Car1::setnum(const int n)
{num=n;
}
void Car1::setsize(const int s)
{size=s;
}
string Car1::getcolor()
{return color;
}
int Car1::getnum()
{return num;
}
int Car1::getsize()
{return size;
}
ostream &operator<<(ostream &cout1,Car1&car)//运算符的重载
{cout1<<setiosflags(ios::left)<<setw(15)<<car.getname();cout1<<setw(15)<<car.getprice();cout1<<setw(25)<<car.getcolor();cout1<<setw(15)<<car.getnum()<<setw(15)<<car.getsize()<<endl;return cout1;
}
class CarList
{Car1 carList[20];
public:int carNum;CarList()//无参构造函数,为carNum赋初值{carNum=0;}void readFile()//文件的读入{float pr;int nu,si,Num;char na[20],co[20];ifstream infile("data.txt");//定义文件指针infile指向BookList.txtif(!infile){cerr<<"打开失败!\n";return;}while((infile>>na))//读入数据为空则循环结束{infile>>pr;infile>>co;infile>>nu;infile>>si;insert(na,pr,co,nu,si);}cout<<"从CarList中读取到的汽车信息有:"<<endl;showAll();infile.close();}void writeFile()//文件的修改{ofstream outfile("data.txt",ios::out);if(!outfile){cerr<<"无法打开data.txt\n";exit(-1);}for(int i=0;i<carNum;i++){outfile<<setiosflags(ios::left)<<setw(15)<<carList[i].getname();outfile<<setw(15)<<carList[i].getprice();outfile<<setw(25)<<carList[i].getcolor();outfile<<setw(15)<<carList[i].getnum();outfile<<setw(15)<<carList[i].getsize()<<endl;}outfile.close();}void insert(string N,float P,const string C,const int Num,const int S)//增添汽车信息{carList[carNum].setname(N);carList[carNum].setprice(P);carList[carNum].setcolor(C);carList[carNum].setnum(Num);carList[carNum].setsize(S);carNum++;}void showCar(int i)//输出一种车{cout<<carList[i];}int search(string N)//查找汽车{int i;for(i=0;i<carNum;i++){if(carList[i].getname()==N)return i;}if(i==carNum)return -1;}void updata(int i,string N,float P,const string C,const int Num,const int S)//修改车的信息{carList[i].setname(N);carList[i].setprice(P);carList[i].setcolor(C);carList[i].setnum(Num);carList[i].setsize(S);}void deleted(int i)//删除汽车信息{if(i>1){cout<<"您要删除汽车类型的信息如下:"<<endl;cout<<carList[i]<<endl;for(int j=i;j<carNum;j++){carList[j].setname(carList[j+1].getname());carList[j].setprice(carList[j+1].getprice());carList[j].setcolor(carList[j+1].getcolor());carList[j].setnum(carList[j+1].getnum());carList[j].setsize(carList[j+1].getsize());}carNum--;cout<<"您已成功删除"<<endl;}else{carNum--;cout<<"您已成功删除"<<endl;}if(i==-1)cout<<"没有找到该汽车"<<endl;}void showCar_title()//输出列名{cout<<setiosflags(ios::left)<<setw(15)<<"汽车名"<<setw(15)<<"价格";cout<<setw(25)<<"颜色"<<setw(15)<<"数量"<<setw(15)<<"载量"<<endl;}void showAll()//输出所有汽车的信息{showCar_title();for(int i=0;i<carNum;i++)showCar(i);cout<<"共有汽车"<<carNum<<"种型号"<<endl;}void screen(float x,float y)//根据价格范围筛选汽车{int j=1;for(int i=0;i<carNum;i++){if(carList[i].getprice()>=x&&carList[i].getprice()<=y){cout<<carList[i];j=0;}}if(j)cout<<"对不起,没有该范围的车型"<<endl;elsecout<<"您要查找的范围内的车型如上"<<endl;}void sort()//根据汽车价格排序(从小到大){int nu,si;float pr;string na,co;for(int i=0;i<carNum;i++){for(int j=i;j<carNum-i-1;j++){if(carList[j].getprice()>carList[j+1].getprice()){nu=carList[j].getnum();si=carList[j].getsize();pr=carList[j].getprice();na=carList[j].getname();co=carList[j].getcolor();carList[j].setname(carList[j+1].getname());carList[j].setprice(carList[j+1].getprice());carList[j].setcolor(carList[j+1].getcolor());carList[j].setnum(carList[j+1].getnum());carList[j].setsize(carList[j+1].getsize());carList[j+1].setname(na);carList[j+1].setprice(pr);carList[j+1].setcolor(co);carList[j+1].setnum(nu);carList[j+1].setsize(si);}}}}
};
int main()
{CarList c;int j,i;float pr,n,m;int nu,si;char s;char na[20],co[20];c.readFile();while(1){cout<<endl<<endl<<endl;cout<<"\t\t\t\t  某中介汽车信息管理系统\n"<<endl;cout<<"\t\t\t\t--------------------------\n"<<endl;cout<<"\t\t\t\t1 添加汽车信息\n"<<endl;cout<<"\t\t\t\t2 根据汽车名字查询汽车信息\n"<<endl;cout<<"\t\t\t\t3 排除已出售的汽车类型\n"<<endl;cout<<"\t\t\t\t4 根据价格范围筛选汽车 \n"<<endl;cout<<"\t\t\t\t5 根据汽车价格排序(从小到大)\n"<<endl;cout<<"\t\t\t\t6 更改汽车的信息\n"<<endl;cout<<"\t\t\t\t7 显示所有汽车信息 \n"<<endl;cout<<"\t\t\t\t8 退出\n"<<endl;cout<<"\t\t\t\t---------------------------\n"<<endl;cout<<"\t\t\t          请选择[1/2/3/4/5/6]:"<<endl;cin>>j;switch(j){case 1:cout<<"请输入新汽车的名称:"<<endl;cin>>na;cout<<"请输入新汽车的价格:"<<endl;cin>>pr;cout<<"请输入新汽车的颜色:"<<endl;cin>>co;cout<<"请输入新汽车的数量:"<<endl;cin>>nu;cout<<"请输入新汽车的载量:"<<endl;cin>>si;c.insert(na,pr,co,nu,si);cout<<"您已成功添加,该汽车的信息如下:"<<endl;c.showCar(c.search(na));break;case 2:cout<<"请输入要查询汽车的名字:"<<endl;cin>>na;c.showCar(c.search(na));break;case 3:cout<<"请输入已出售的汽车名字:"<<endl;cin>>na;c.deleted(c.search(na));break;case 4:cout<<"请输入要查找的价格范围(例如300000 400000):"<<endl;cin>>m>>n;c.screen(m,n);break;case 5:cout<<"汽车根据价格从小到大的排序后的列表如下:"<<endl;c.sort();c.showAll();break;case 6:cout<<"请输入要更改汽车信息的名称:"<<endl;cin>>na;i=c.search(na);if(i==-1){cout<<"没有找到该汽车"<<endl;break;}else{cout<<"您要更改的汽车类型的信息如下:"<<endl;c.showCar(i);}cout<<"您确定要更改吗?(y/n)"<<endl;cin>>s;if(s=='y'||s=='Y'){cout<<"请输入该汽车更改后的名称:"<<endl;cin>>na;cout<<"请输入该汽车更改后的价格:"<<endl;cin>>pr;cout<<"请输入该汽车更改后的颜色:"<<endl;cin>>co;cout<<"请输入该汽车更改后的数量:"<<endl;cin>>nu;cout<<"请输入该汽车更改后的载量:"<<endl;cin>>si;c.updata(i,na,pr,co,nu,si);}else{cout<<"您已取消更改"<<endl;}break;case 7:c.showAll();break;case 8:c.writeFile();exit(0);}getch();system("cls");}return 0;
}

汽车信息管理系统(C++实训)相关推荐

  1. 电动车电池管理系统c语言实训,纯电动汽车电池管理系统(BMS)实训台,汽车电池教学设备...

    TW-CAR60纯电动汽车电池管理系统(BMS)实训台 一.概 述 本设备可展示并真实运行动力电池组及管理系统工作过程,系统通电即可工作,显示并采集电池总电压,容量,单节电池电压,单节电池温度,电池故 ...

  2. 头歌-信息安全技术-【实训10】HTML信息隐藏、动态分析技术

    头歌-信息安全技术-[实训10]HTML信息隐藏.动态分析技术 一.[实训10]HTML信息隐藏 1.任务要求 (1)步骤1 (2)步骤2 (3)步骤3:选择隐藏方法 (4)步骤4:对比隐藏效果 2. ...

  3. Java+SSM+Jsp+Mysql实现Web汽车信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.工程截图 二.系统展示 1.登录系统 2.系统首页 3.用户管理-添加用户 4.用户管理-查询用户 5.用户管理-修改 ...

  4. 基于Java+Swing+Mysql实现汽车信息管理系统

    基于Java+Swing+Mysql实现汽车信息管理系统 一.系统介绍 二.功能展示 1.登陆 2.车辆信息 3.车辆入库 4.车辆出库 5.车辆查询 6.车辆信息修改 三.数据库 四.其它 1.其他 ...

  5. 汽车vr汽修仿真实训软件,清晰直观全面的认识和了解汽车构造

    高成本造价的汽车以其零部件,导致企业.院校及培训机构的学员,很少有真车实操演练的机会,再加上师资力量的不足,严重拉低了汽修的整体教学质量.而基于web3d和VR虚拟现实三维立体视觉开发的汽车vr汽修仿 ...

  6. 基于servlet+jsp+mysql人事工资管理系统(含实训报告)

    基于servlet+jsp+mysql人事工资管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.查看个人信息 3.查看个人工资.查看考勤 4.查看自己所在部门 5.人员信息管理 6.考勤管理(管 ...

  7. Qt下的综合练习—汽车信息管理系统(三)车辆出售功能的实现

    项目介绍 这次练习的项目是汽车信息管理系统,项目参考Qt5开发及实例(第3版)中的汽车销售管理系统,写到博客上的目的是为了梳理自己的思路,所以代码很大程度上是参照书上的实例. 项目实现了车辆与销售的的 ...

  8. Java实训学生信息_(java实训)学生信息管理系统.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava (java实训)学生信息管理系统.doc9页 本文档一 ...

  9. 汽车出租管理系统javaee实训_温州专业电动汽车充电设备实训台厂家诚信互利-嘉育仪器...

    温州专业电动汽车充电设备实训台厂家诚信互利,基本规则型策略.该策略综合了恒温器策略与功率跟踪式策略两者的优点,根据发动机负荷特性图设定了率工作区,根据动力电池的充放电特性设定了动力电池率的荷电状态范围 ...

最新文章

  1. html两个性别按钮并排,css实现男女切换按钮
  2. 绿色噱头VS数据中心的机会
  3. DOS配合FastCopy实现远程增量备份
  4. SAP ABAP实用技巧介绍系列之ABAP取中文字符串的字节长度
  5. Spring Security登录
  6. 蚁群算法matlab vrp问题车辆限重,蚁群算法MATLAB解VRP问题
  7. 无法从ftp服务器上复制文件格式,ftp服务器上复制不了文件格式
  8. 百面机器学习—5.SVM要点总结
  9. 正版卡巴斯基安全部队2011激活码1年
  10. OFFICE技术讲座:标点压缩是各大OFFICE软件差异关键,总体考量有哪些
  11. linux双系统优先开启_更改双系统启动菜单(启动顺序)的2种方法
  12. oracle获取本月天数,Oracle查询日期所属月份的天数
  13. txt文件内容导入mysql数据库中_将txt文件导入mysql数据库
  14. 帝国cms网站管理系统之安全设置最优化分享
  15. 亚马逊运营listing优化A+页面
  16. mac win7 计算机,苹果电脑win7单系统更换OS X系统
  17. JuJu alpha
  18. nc-服务器间文件传输
  19. 计算机房防凝露保温材料,机房地板保温有哪些要注意的
  20. 楚列斯基分解法、求矩阵范数的C++实现

热门文章

  1. 法国大数据分析协作初创企业Dataiku获1400万美元风险投资
  2. OKR落地四部曲:vika维格表帮你快速养成OKR思维
  3. linux常用命令(自我积累)
  4. STM32数据采集及上云实现——DHT11温湿度采集
  5. 【AIGC使用教程】论文阅读神器 SciSpace 从注册到体验
  6. VS2017下安装fltk库——C++程序设计原理与实践图形编程指南
  7. FLTK学习-2-新手入门参考
  8. 测试英语口语标准的软件,最客观的英语口语APP亲身测评,这3款软件让你的口语脱颖而出...
  9. 金蝶K3服务器一键配置精灵
  10. 制作一个创意的生日快乐网页祝福网站送给心爱的她(HTML+CSS+JS)