1、完整word版车辆管理系统源代码C+#include#include#include#include#includeusing namespace std;#define N 20 /车辆最大存储量20#define OilPrice 8.0 /油价8元每升class Manager;class Carsprivate: int num; /编号 int pnum; /车牌号 char made20; /制造公司 double time; /购买时间(多少个月) int type; /型号(1-大客车,2-小轿车,3-卡车) double km; /总公里数 int cost; /基本维护费用
2、 int RoadFee; /养路费 double OilKm; /耗油量/公里 double AllCount;/累计总费用 friend Manager;class Managerprivate: Cars carN; int peopleN; /最大载客量(大客车) int coachN; /箱数(小轿车) int weightN; /载重量(卡车) int top; /记录当前车辆数量public: Manager()top = 0;/车辆初始值为0 void add(); /添加车辆 void search(); /查询车辆 void show(); /显示车辆信息库 void ed
3、it(); /编辑功能 void delet(); /删除车辆 void sum(); /统计信息 void read(); /读出车辆信息 void write(); /车辆信息存盘 void jiemian(); /总界面;/void Manager:add() /添加车辆 int a = 0, x, y; while(1) if(top N) cout请输入需添加的车辆信息endl; coutx; for(int j = 0; j top; j+) if ( carj.num = x ) /编号重复 cout编号重复,添加失败! 即将跳转至功能主界面endl; a+; break; if
4、(a = 0) /此时编号不重复 cartop.num = x; coutcartop.pnum; coutcartop.made; coutcartop.time; coutcartop.RoadFee; coutcartop.type; while(!(cartop.type=1|cartop.type=2|cartop.type=3) /判断输入指令是否为1-3 coutcartop.type; coutcartop.km; if( cartop.type = 1 ) /此时是1-大客车 coutpeopletop; cartop.cost = 2000; cartop.OilKm =
5、0.1; else if( cartop.type = 2 ) /此时是2-小轿车 coutcoachtop; cartop.cost = 1000; cartop.OilKm = 0.05; else /此时是3-卡车 coutweighttop; cartop.cost = 1500; cartop.OilKm = 0.15; cartop.AllCount =(OilPrice * cartop.OilKm * cartop.km) + (cartop.time *cartop.cost); /计算总费用 top+; /车辆总数加一 write(); /调用车辆信息存盘函数 couty;
6、 while(!( y=1 | y=2 ) couty; if(y = 2) cout即将跳转至功能主界面endl; break; else /此时编号重复 break; else cout车辆信息库已满,不能再添加车辆!endl; cout即将跳转至功能主界面endl; break; Sleep(1000); /延迟1秒jiemian();/void Manager:search() /查询车辆 int choose,m,n,a = 0; char i,t20; cout*endl; cout* 1.按车辆制造公司查询 *endl; cout* 2.按编号查询 *endl; cout* 3.
7、按类别查询 *endl; cout*endl; couti; coutendl; if(i=1|i=2|i=3) break; cout输入错误,重输:; if(i = 1) coutt; else if(i = 2) coutn; else if(i = 3) coutm; for(int j = 0; j top; j+) if(strcmp(carj.made, t) = 0|carj.num = n|carj.type = m) cout编号 车牌号 制造商 购买时间 型号 特性 总公里 养路费 维护费 油耗 总费用endl;break; for( j = 0; j top; j+)
8、if(strcmp(carj.made, t) = 0|carj.num = n|carj.type = m) coutsetw(4)carj.numsetw(7)carj.pnumsetw(7)carj.madesetw(7)carj.time; if(carj.type = 1 ) coutsetw(9)大客车setw(8)载客量:peoplej; else if(carj.type = 2 ) coutsetw(9)小轿车setw(9)车厢数: coachj; else coutsetw(8)卡 车setw(9)载重量:weightj; coutsetw(6)carj.kmsetw(7)
9、carj.RoadFeesetw(7)carj.costsetw(7)carj.OilKmsetw(8)carj.AllCountendl; a+; if(a != 0) coutchoose; if(choose = 1) edit(); else 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 !=
10、0) cout*endl; cout编号 车牌号 制造商 购买时间 型号 特性 总公里 养路费 维护费 油耗 总费用endl; for(int j = 0; j top; j+) coutsetw(4)carj.numsetw(7)carj.pnumsetw(7)carj.madesetw(7)carj.time; if(carj.type = 1 ) coutsetw(9)大客车setw(8)载客量:setw(2)peoplej; else if(carj.type = 2 ) coutsetw(9)小轿车setw(8)车厢数:setw(2)coachj; else coutsetw(9)卡
11、 车 setw(8)载重量:setw(2)weightj; coutsetw(6)carj.kmsetw(7)carj.RoadFeesetw(7)carj.costsetw(7)carj.OilKmsetw(8)carj.AllCountendl; cout*endl; else cout车辆库为空!endl; cout按任意键返回主界面:; char z=getch(); jiemian();/void Manager:edit() /编辑功能 int i, j, a = 0; cout请依次输入需要修改的车辆信息:endl; while(1) couti; for(j = 0; j to
12、p; j+) if(carj.num = i) /车库有此编号的车 coutcarj.pnum; coutcarj.made; coutcarj.time; coutcarj.type; while(!(carj.type=1|carj.type=2|carj.type=3) coutcarj.type; coutcarj.km; coutcarj.RoadFee; if( carj.type = 1 ) /此时是1-大客车 coutpeoplej; carj.cost = 2000; carj.OilKm = 0.1; else if( carj.type = 2 ) /此时是2-小轿车 c
13、outcoachj; carj.cost = 1000; carj.OilKm = 0.05; else /此时是3-卡车 coutweightj; carj.cost = 1500; carj.OilKm = 0.15; write(); a+; if(a = 0) cout此编号不存在,不能进行修改,请重新输入!endl; else cout修改成功!系统将返回主界面.endl; break; Sleep(1000); /延迟1秒jiemian();/void Manager:delet() /删除车辆 int i, a = 0; while(1) if(top = 0) cout车辆信息
14、库为空!系统将返回功能界面.endl; break; else couti; for(int j = 0; j top; j+) if(carj.num = i) /车辆编号存在 if(top=1) car0.type=0; else if( cartop - 1.type = 1 ) /判断出此时car数组里储存在最后一组的是1-大客车 peoplej = peopletop - 1;/ ( 把最后一组数据 ) / carj.cost = 2000; / ( 赋给将要删除的 ) / carj.OilKm = 0.1; / ( 那组数据的位置 ) / else if(cartop - 1.ty
15、pe = 2 ) /判断出此时car数组里储存在最后一组的是2-小轿车 coachj = coachtop - 1; carj.cost = 1000; carj.OilKm = 0.05; else /判断出此时car数组里储存在最后一组的是3-卡车 weightj = weighttop - 1; carj.cost = 1500; carj.OilKm = 0.15; carj.num = cartop - 1.num; / ( 把最后 ) / carj.pnum = cartop - 1.pnum; / ( 一组数 ) / strcpy(carj.made, cartop - 1.ma
16、de); / ( 据赋给 ) / carj.time = cartop - 1.time; / ( 将要删 ) / carj.type = cartop - 1.type; / ( 除的那 ) / carj.km = cartop - 1.km; / ( 组数据 ) / carj.RoadFee = cartop - 1.RoadFee; / ( 的位置 ) / carj.AllCount = cartop-1.AllCount; / ( ) / top-; /此时删除车辆数据彻底完成,车辆总数减一 a+; write(); if(a = 0) cout此编号不存在,不能进行删除,请重新输入!
17、endl; else cout删除成功!系统将返回功能界面.endl; break; Sleep(1000); /延迟1秒jiemian();/void Manager:write() /车辆信息存盘 ofstream write; write.open(d:a.txt,ios:out); if(write) for(int i = 0; i top; i+) /依次存入 编号 、 车牌号 、 制造商 、 购买时间 、 型号 、 writeendl; writecari.num cari.pnum cari.made cari.time cari.type ; if(cari.type = 1
18、) writepeoplei;/存入 载客量 else if(cari.type = 2) writecoachi;/存入 车厢数 else writeweighti;/存入 载重量 /依次存入 总公里 、 养路费 、 维护费 、 油耗 、 总费用 write cari.km cari.RoadFee cari.cost cari.OilKm cari.AllCount; else coutwrite failedcartop.numcartop.pnumcartop.madecartop.timecartop.type; if(cartop.type = 1) readpeopletop;/读取 载客量 else if(cartop.type = 2) readcoachtop;/读取 车厢数 else readweighttop;/读取 载重量
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1