车辆管理系统 c++
vc++6.0下运行,其他软件不知道……
这个我是抄袭的,搜了好多一样的,但是都无法运行,找不到谁先写的,所以就不做转载了。
因为要做大二下学期的课程设计,就在网上搜、在这上面搜,搜是搜到了但是无法运行,没办法就只能自己稍微改改,看看哪里有错,没想到居然真被我改的能运行了。改的是能在vc++6.0上能运行,文档就不放了,嘿嘿,下面看代码,如果有错请指出来
#include<windows.h>
#include<iostream>
#include<fstream>
#include<iomanip>
#include<conio.h>
using namespace std;
#define N 20 //车辆最大存储量20
#define OilPrice 8.0 //油价8元每升
class Manager;
class Cars //汽车类
{
private:int num; //编号char pnum[20]; //车牌号char made[20]; //制造公司double time; //购买时间(多少个月)int type; //型号(1-大客车,2-小轿车,3-卡车) 公共变量double km; //总公里数int cost; //基本维护费用int RoadFee; //养路费double OilKm; //耗油量/公里double AllCount; //累计总费用friend Manager;
};
class Manager //总的类
{
private:Cars car[N]; //汽车数int people[N]; //最大载客量(大客车) int coach[N]; //箱数(小轿车)int weight[N]; //载重量(卡车)int top; //记录当前车辆数量
public:Manager(){top = 0;}//车辆初始值为0 汽车总数void add(); //添加车辆void search(); //查询车辆void show(); //显示车辆信息库void edit(); //编辑功能void delet(); //删除车辆void sum(); //统计信息void read(); //读出车辆信息void write(); //车辆信息存盘void jiemian(); //总界面
};void Manager::add() //添加车辆 调用总的类之中的add函数
{int a = 0, x, y; // x代表车辆编号while(1){if(top < N) //判断top当前已存车辆数小于汽车最大存储数N{cout<<"请输入需添加的车辆信息"<<endl;cout<<"车辆编号:";cin>>x;for(int j=0; j<top;j++) //判断编号是否重复{if (car[j].num==x) {cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;a++; //如果重复++,此时a不为0break;}}if(a==0) //此时编号不重复{ car[top].num = x;cout<<"车牌号:";cin>>car[top].pnum; cout<<"车辆制造公司:";cin>>car[top].made;cout<<"购买时间:";cin>>car[top].time;cout<<"养路费:";cin>>car[top].RoadFee;cout<<"车辆型号(1-大客车,2-小轿车,3-卡车):";cin>>car[top].type;while(!(car[top].type==1||car[top].type==2||car[top].type==3)) //判断输入指令是否为1-3{cout<<"输入指令号错误,重输:";cin>>car[top].type;}cout<<"总公里数:";cin>>car[top].km;if( car[top].type==1) //此时是1-大客车,{cout<<"最大载客量:";cin>>people[top];car[top].cost = 2000; //基本维护费用car[top].OilKm = 0.1; //耗油量/公里}else if( car[top].type == 2 ) //此时是2-小轿车{cout<<"车厢数:";cin>>coach[top];car[top].cost = 1000;car[top].OilKm = 0.05;}else //此时是3-卡车{cout<<"载重量:";cin>>weight[top];car[top].cost = 1500;car[top].OilKm = 0.15;}car[top].AllCount =(OilPrice * car[top].OilKm * car[top].km) + (car[top].time *car[top].cost); //计算总费用top++; //车辆总数加一write(); //调用车辆信息存盘函数,在下面定义cout<<"是否继续添加车辆?(1-是,2-否):";cin>>y;while(!( y==1 || y==2 )) {cout<<"输入指令号错误,重输:";cin>>y;}if(y == 2){cout<<"即将跳转至功能主界面"<<endl;break;}}else //此时编号重复break;}else //top>N{cout<<"车辆信息库已满,不能再添加车辆!"<<endl;cout<<"即将跳转至功能主界面"<<endl;break;}}Sleep(1000); //延迟1秒jiemian(); //调用总界面函数
}void Manager::search() //查询车辆
{int choose,m,n,a=0;char i,t[20];cout<<"****************************"<<endl;cout<<"* 1.按车辆制造公司查询 *"<<endl;cout<<"* 2.按编号查询 *"<<endl;cout<<"* 3.按类别查询 *"<<endl;cout<<"****************************"<<endl;cout<<" 请输入你的选项:";while(1){cin>>i; cout<<endl;if(i=='1'||i=='2'||i=='3')break;cout<<"输入错误,重输:";}if(i=='1'){cout<<"请输入需查询车辆的制造公司:";cin>>t;}else if(i =='2'){cout<<"请输入需查询的车辆编号:";cin>>n;}else if(i == '3'){cout<<"请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):";cin>>m;}for(int j=0;j<top;j++)if(strcmp(car[j].made,t)==0 || car[j].num==n || car[j].type==m) //strcmp比较,相同返回0,小于负数,大于正数{cout<<"编号 车牌号 制造商 购买时间 型号 特性 总公里 养路费 维护费 油耗 总费用"<<endl;break;}for( j=0;j<top;j++)if(strcmp(car[j].made, t)==0 || car[j].num==n || car[j].type==m) {cout<<setw(0)<<car[j].num<<setw(13)<<car[j].pnum<<setw(9)<<car[j].made<<setw(6)<<car[j].time; //前四个if(car[j].type==1 )cout<<setw(13)<<"大客车"<<setw(8)<<"载客量:"<<people[j]; //输出特性else if(car[j].type == 2 )cout<<setw(13)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j]; elsecout<<setw(13)<<"卡 车"<<setw(9)<<"载重量:"<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(8)<<car[j].cost<<setw(7)<<car[j].OilKm<<setw(9)<<car[j].AllCount<<endl; a++; //使a不为0}if(a!=0){cout<<"是否进行修改?(1-是,2-否):";cin>>choose;if(choose == 1)edit(); //调用编辑功能函数}else //上述a++的函数未成功,最上面1,2,3的查询结果没有{if(i=='1') cout<<"车辆制造公司不存在!"<<endl;if(i=='2') cout<<"车辆编号不存在!"<<endl;else if (i=='3') cout<<"车辆型号不存在!"<<endl;}cout<<"按任意键返回功能主界面"<<endl;char zz=getch(); //无回显的取一个字符jiemian(); //调用界面函数
}void Manager::show() //显示车辆信息库
{if(top != 0) //top记录当前车辆数目{cout<<"********************************************************************************"<<endl;cout<<"编号 车牌号 制造商 购买时间 型号 特性 总公里 养路费 维护费 油耗 总费用"<<endl;for(int j = 0; j < top; j++) //使用for循环对应输出,j代表车辆数{cout<<setw(0)<<car[j].num<<setw(13)<<car[j].pnum<<setw(9)<<car[j].made<<setw(6)<<car[j].time;if(car[j].type == 1 )cout<<setw(13)<<"大客车"<<setw(8)<<"载客量:"<<setw(2)<<people[j];else if(car[j].type == 2 )cout<<setw(13)<<"小轿车"<<setw(8)<<"车厢数:"<<setw(2)<<coach[j];elsecout<<setw(13)<<"卡 车 "<<setw(8)<<"载重量:"<<setw(2)<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(8)<<car[j].cost<<setw(7)<<car[j].OilKm<<setw(9)<<car[j].AllCount<<endl;}cout<<"********************************************************************************"<<endl;}else cout<<"车辆库为空!"<<endl;cout<<"按任意键返回主界面:";char z=getch(); //从输出获得一个字符之后调用界面函数jiemian();
}void Manager::edit() //编辑车辆,既修改车辆
{int i, j, a = 0;cout<<"请依次输入需要修改的车辆信息:"<<endl;while(1){cout<<"车辆编号:";cin>>i;for(j = 0; j < top; j++){if(car[j].num == i) //车库有此编号的车{cout<<"车牌号:";cin>>car[j].pnum;cout<<"制造公司:";cin>>car[j].made;cout<<"购买时间:";cin>>car[j].time;cout<<"型号(1-大客车,2-小轿车,3-卡车):";cin>>car[j].type;while(!(car[j].type==1||car[j].type==2||car[j].type==3)) //判断是否有误{cout<<"输入信息有误,请输入1-3:";cin>>car[j].type;}cout<<"总公里数:";cin>>car[j].km;cout<<"养路费:";cin>>car[j].RoadFee;if( car[j].type == 1 ) //此时是1-大客车{cout<<"最大载客量:";cin>>people[j];car[j].cost = 2000;car[j].OilKm = 0.1;}else if( car[j].type == 2 ) //此时是2-小轿车{cout<<"车厢数:";cin>>coach[j];car[j].cost = 1000;car[j].OilKm = 0.05;}else //此时是3-卡车{cout<<"载重量:";cin>>weight[j];car[j].cost = 1500;car[j].OilKm = 0.15;}write(); //调用存盘函数a++; //成功后加一}}if(a == 0) //未存成功,说明有错误cout<<"此编号不存在,不能进行修改,请重新输入!"<<endl;else{cout<<"修改成功!系统将返回主界面..."<<endl;break; //跳出while循环}}
Sleep(1000); //延迟1秒
jiemian();
}void Manager::delet() //删除车辆
{int i, a = 0; //a用来判断循环是否成功while(1){if(top == 0) //车库为空无法删除{cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;break; //跳出while循环}else //不为空{cout<<"请输入需要删除的车辆编号:";cin>>i;for(int j = 0; j < top; j++) //for循环用来删除所有存盘的信息{if(car[j].num == i) //车辆编号存在{if(top==1)car[0].type=0; //就一辆车,使其变为0 else //top不等于1{if( car[top - 1].type == 1 ) //判断出此时car数组里储存在最后一组的是1-大客车{people[j] = people[j+1]; //people载客量car[j].cost = 2000; car[j].OilKm = 0.1; }else if(car[top - 1].type == 2 ) //判断出此时car数组里储存在最后一组的是2-小轿车{coach[j] = coach[top - 1]; car[j].cost = 1000; car[j].OilKm = 0.05;}else if(car[top - 1].type == 3 ) //判断出此时car数组里储存在最后一组的是3-卡车{weight[j] = weight[j+1];car[j].cost = 1500;car[j].OilKm = 0.15;}car[j].num = car[j+1].num; //使所有的数据均减一strcpy(car[j].pnum, car[j+1].pnum);strcpy(car[j].made, car[j+1].made); car[j].time = car[j+1].time; car[j].type = car[j+1].type; car[j].km = car[j+1].km; car[j].RoadFee = car[j+1].RoadFee; car[j].AllCount = car[j+1].AllCount;car[j+1].type=0;} a++;write(); //存盘函数}}if(a == 0)cout<<"此编号不存在,不能进行删除,请重新输入!"<<endl;else{cout<<"删除成功!系统将返回功能界面..."<<endl;break;}}}
Sleep(1000); //延迟1秒
jiemian();
}void Manager::write() //车辆信息存盘
{ofstream write;write.open("d:\\b.txt",ios::out); //以输出方式打开文件if(write){for(int i = 0; i <=top; i++){write<<endl;write<<car[i].num<<" "<<car[i].pnum<<" "<<car[i].made<<" "<<car[i].time<<" "<<car[i].type<<" ";if(car[i].type == 1)write<<people[i];//存入 载客量else if(car[i].type == 2)write<<coach[i];//存入 车厢数elsewrite<<weight[i];//存入 载重量 write<<" "<<car[i].km<<" "<<car[i].RoadFee<<" "<<car[i].cost<<" "<<car[i].OilKm<<" "<<car[i].AllCount;}}
}
void Manager::read() ///读出车辆信息
{while(1){ifstream read("d:\\b.txt",ios::in);if(read){while(!read.eof()) //文件不结束,还有内容{read>>car[top].num>>car[top].pnum>>car[top].made>>car[top].time>>car[top].type;if(car[top].type == 1)read>>people[top];//读取 载客量else if(car[top].type == 2)read>>coach[top];//读取 车厢数elseread>>weight[top];//读取 载重量 read>>car[top].km>>car[top].RoadFee>>car[top].cost>>car[top].OilKm>>car[top].AllCount;if(car[top].type==1||car[top].type==2||car[top].type==3)top++;}read.close(); //关闭文件break;}else {ofstream o("d:\\a.txt"); o.close();}}
}
void Manager::jiemian()
{ int c1=0,c2=0,c3=0;for(int j = 0; j <= top; j++){if( car[j].type == 1 ) c1++; //统计大客车的数量else if(car[j].type == 2) c2++; //统计小轿车的数量else if(car[j].type==3) c3++; //统计卡车的数量}top=c1+c2+c3;cout<<"***********************************"<<endl;cout<<"* 欢迎进入车辆管理系统 *"<<endl;cout<<"* 1.添加车辆 *"<<endl;cout<<"* 2.查询车辆 *\t\t总车辆\t"<<top<<endl;cout<<"* 3.显示车辆 *\t\t大客车\t"<<c1<<endl;cout<<"* 4.编辑车辆 *\t\t小轿车\t"<<c2<<endl;cout<<"* 5.删除车辆 *\t\t卡 车 \t"<<c3<<endl;cout<<"* 0.退出系统 *"<<endl;cout<<"***********************************"<<endl;cout<<"请输入你需要操作的选项:";char i;cin>>i;while(!(i=='1'||i=='2'||i=='3'||i=='4'||i=='5'||i=='0')){cout<<"输入错误,请重新输入:";cin>>i; }switch(i){case '1':add();break;case '2':search();break;case '3':show();break;case '4':edit();break;case '5':delet();break;case '0':return;}
}
int main()
{ Manager a;a.jiemian();return 0;
}
车辆管理系统 c++相关推荐
- 车辆管理系统之继续自己的任务(四)
JAVA EE第一阶段项目--车辆管理系统.MyEclipse + MySQL +powerDesinger +tomcat +svn. 我周五的时候说这个周末就完成自己的任务的.结果我写了两天的代码 ...
- 车辆管理系统之开始自己的任务(三)
JAVA EE第一阶段项目--车辆管理系统.MyEclipse + MySQL +powerDesinger +tomcat +svn. 其实今天就开始各自的任务了!但是在开始之前我就把自己坑了!昨天 ...
- 【第二周】四人小组:车辆管理系统
组长:林莉 组员:宫丽君,胡丽娜,王东涵 项目名称:车辆管理系统 项目期限:暂定十周 一.需求概要 在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开发体系结构的. ...
- 北斗GPS系统在车辆管理系统中的运用与北斗GPS车辆管理调度系统平台建设方案硬件设备
移动管家北斗GPS车辆管理系统系统YD8001,通过融合北斗导航定位技术,再结合大数据.物联网.云计算和移动互联网等新一代信息技术,以城市空间信息数据为基础,整合动静态交通数据,研制北斗智能交通应用终 ...
- [附源码]SSM计算机毕业设计政府公用车辆管理系统JAVA
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- 【java毕业设计】基于javaEE+SSH+SqlServer的企业车辆管理系统设计与实现(毕业论文+程序源码)——车辆管理系统
基于javaEE+SSH+SqlServer的企业车辆管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+SqlServer的企业车辆管理系统设计与实现,文章末尾 ...
- springboot车辆管理系统的设计与实现毕业设计源码031034
车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发 ...
- spring boot车辆管理系统毕业设计源码031034
车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发 ...
- (附源码)springboot车辆管理系统 毕业设计 031034
车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发 ...
- (附源码)springboot车辆管理系统 毕业设计031034
车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发 ...
最新文章
- 我所经历的大文件数据导出(后台执行,自动生成)
- linux服务器性能监控命令汇总之sar命令(五)
- C#实现所有经典排序算法汇总
- 原来自己一直平凡着 2015-10-20
- 系统的crontab设定:/etc/crontab
- 使用Seq搭建免费的日志服务
- 算法笔记_056:蓝桥杯练习 未名湖边的烦恼(Java)
- 20个Excel操作技巧,提高你的数据分析效率
- 计算机组装与维修技能大赛视频,2013年计算机组装与维修技能大赛试题及答案真题...
- ACL'22 | 基于强化学习的实体对齐
- Zip 文件覆盖漏洞曝光,Java、.NET、Go 生态集体中枪
- 一次澄清:数据分析思维五大误区
- 程序员面试头条被拒,一年后逆袭拿到offer【巴分巴秒】
- redhat linux 下小企鹅输入法fcitx的安装
- 计算机中公式提取用什么函数,技巧:Excel快速从文本中提取单元格中的数字函数公式...
- 二叉树:二叉树视频笔记
- python 支付宝接口_python实现支付宝转账接口
- 网页抓包工具httpwatch
- 软件著作权包括了哪些权利
- Hydra 使用方法
热门文章
- MotoSimEG-VRC软件:安川机器人弧焊焊接离线编程与虚拟仿真
- 物联网时代即将到来,LED显示屏内容显示安全尤为重要
- Springboot后台管理系统
- 万年历单片机c语言程序,51单片机c语言电子万年历完整程序.pdf
- 计算机算法分析与设计心得体会,算法设计与分析课程的心得体会
- 河北省农村居民家庭平均每百户家用计算机拥有量,2013-2015年全国居民家庭平均每百户计算机拥有量统计...
- WinForms时代结束,报表控件FastReport.NET开启FastReport.Core.Skia 时代!
- Python编程--目标IP地址段主机指定端口状态扫描
- java画图板_java画图板工具下载
- 计算机网络笔记(一):网络基本构成