C++程序设计车辆管理系统实验报告 附源代码

合集下载

《C语言程序设计》公交车管理系统源码

《C语言程序设计》公交车管理系统源码

《C语言程序设计》公交车管理系统源码#include<stdio.h>main(){int ticket=0,stops=0,symbol=0,cardnumber=0,cardmoney=0,num=0; int i=0,balance=0,maxindex=0;int cnum[20]={0},cmoney[20]={0},cbalance[20]={0},flag[20]={0}; char choose='\0';while(1){ clrscr();printf("\n\t\t||=======================================||"); printf("\n\t\t||---------------------------------------||"); printf("\n\t\t||-------------Welcome-------------------||"); printf("\n\t\t||----------use bus traffic--------------||"); printf("\n\t\t||--------------Card---------------------||"); printf("\n\t\t||---------------------------------------||"); printf("\n\t\t||=======================================||"); printf("\n\n\n\n");printf("\n\t\t||---------------------------------------||"); printf("\n\t\t||----------Please input(0-8)------------||"); printf("\n\t\t||---------------------------------------||"); printf("\n\t\t| 1.Add new Card |");printf("\n\t\t| 2.Logout Card |");printf("\n\t\t| 3.Modify Card |");printf("\n\t\t| 4.Read card |");printf("\n\t\t| 5.Save money |");printf("\n\t\t| 6.Stat.max money |");printf("\n\t\t| 7.Display |");printf("\n\t\t| 8.Delete Data File |");printf("\n\t\t| 0.Exit |");printf("\n\t\t|-----------------------------------------|"); printf("\n\t\t");scanf("%c",&choose);switch(choose){ case'1':for(i=0;i<num;i++)if(flag[i]==1)break;cardnumber=i;printf("\n\tHow much money you want to save in your card"); scanf("%d",&cardmoney);cnum[cardnumber]=cardnumber+1;cmoney[cardnumber]=cardmoney;cbalance[cardnumber]=cardmoney;flag[cardnumber]=0;if(cardnumber==num) num++;printf("\n\t|--%5d--|--%5d--|--%5d--|",cnum[i],cmoney[i],cbalance[i]);getch();break;case'2':printf("\n\tPlease input your card number:");scanf("%d",&cardnumber);for(i=0;i<num;i++)if(cnum[i]==cardnumber && flag[i]!=1){printf("\n\tReturu you balance money:%d.",cbalance[i]);do{printf("\n\n\tAre you sure logout the card(y/n)?");scanf("%c",&choose);}while(choose!='y' && choose!='y' && choose!='N' && choose!='n'); if(choose=='y' || choose=='y'){cmoney[i]=0;cbalance[i]=0;flag[i]=1;}break;}if(i==num){printf("\n\ntNo find the card.");getch();}break;case'3':printf("\n\tPlease input card number that you want to modify:"); scanf("%d",&cardnumber);for(i=0;i<num;i++)if(cnum[i]==cardnumber && flag[i]!=1){do{clrscr();printf("\n\t\t-------------------------------------------"); printf("\n\t\t please input modify Item ");printf("\n\t\t-------------------------------------------"); printf("\n\t\t------------ 1.save money------------------"); printf("\n\t\t------------ 2.balance money---------------"); printf("\n\t\t------------ 3.Return----------------------"); printf("\n\t\t-------------------------------------------"); scanf("%c",&choose);switch(choose){case'1':printf("\n\tPlease input new save money:"); scanf("%d%",&cardmoney);cbalance[i]+=cardmoney-cmoney[i];cmoney[i]=cardmoney;break;case'2':printf("\n\tPlease input new balance money:"); scanf("%d%",&balance);cbalance[i]=balance;break;case'3':break;default:printf("\n\tInput error, Please input again!"); getch();continue;}}while(choose!='3');break;}if(i==num){printf("\n\tNo find the card.");getch();}break;case'4':printf("\n\tPlease input your card number:");scanf("%d",&cardnumber);for(i=0;i<num;i++)if(cnum[i]==cardnumber && flag[i]!=1){ while(symbol==0){ printf("\n\tHow many you want to take bus stops:"); scanf("%d",&stops);if(stops<1||stops>30){printf("\n\tInput error.Please input again.");getch();}else if(stops<=10){ticket=1;symbol=1;}else if(stops<=15){ticket=2;symbol=1;}else if(stops<=20){ticket=3;symbol=1;}else if(stops<=25){ticket=4;symbol=1;}else if(stops<=30){ticket=5;symbol=1;}}if(cbalance[i]>=ticket){printf("\n\tBefore:");printf("cnum:%5d cmoner:%5dcbalance:%5d",cnum[i],cmoney[i],cbalance[i]); cbalance[i]-=ticket;printf("\n\tAfter:");printf("cnum:%5d cmoner:%5dcbalance:%5d",cnum[i],cmoney[i],cbalance[i]);getch();}else{printf("\n\tYour card balance money is not enough.Please use cash.");getch();}break;}if(i==num){ printf("\n\tNo find the card");getch();}break;case'5':printf("\n\tPlease input your card number:");scanf("%d",&cardnumber);for(i=0;i<num;i++)if(cnum[i]==cardnumber && flag[i]!=1){ do{ printf("\n\tPlease input you want to save money in thecard:");scanf("%d",&cardmoney);if(cardmoney<=0)printf("\n\tInput error.Please input again.");}while(cardmoney<=0);cmoney[i]=cardmoney;cbalance[i]+=cardmoney;printf("\n\tYour card have already saved money:%5d.",cardmoney); printf("\n\tcnum:% 5d cmoney:%5d cbalance:%5d",cnum[i],cmoney[i],cbalance[i]);getch();break;}if(i==num){ printf("\n\tNo find the card.");getch();}break;case'6':maxindex=0;for(i=1;i<num;i++)if(cmoney[maxindex]<cmoney[i])maxindex=i;printf("\n\tMax save money is:%d.",cmoney[maxindex]);printf("\n\tcnum:%5d cmoney:%5d cbalance:%5d",cnum[maxindex],cmoney[maxindex],cbalance[maxindex]); getch();break;case'7':clrscr();printf("\n\t|---------------------------------------|"); printf("\n\t|--Cardnum--|--Savvemoney--|--Balance-- |"); for(i=0;i<num;i++){ if(flag[i]==1) continue;else{ printf("\n\t|-----------------------------|");printf("\n\t|--%5d--|--%5d--|--%5d--------|");cnum[i],cmoney[i],cbalance[i];if((i+1)%10==0){ getch();printf("Press any key to go on...");}}}printf("\n\t|---------------------------------|");getch();break;case'8':printf("\n\tYou select 8");getch();break;case'0':do{ printf("\n\tAre you sure exit(y/n):");scanf("%c",&choose);}while(choose!='Y' && choose!='y' && choose!='N'&&choose!='n');if(choose=='Y'||choose=='y')exit(0);break;default:printf("\n\tYou input error.Please input again."); getch();}}}。

车辆管理系统-实验报告

车辆管理系统-实验报告

成绩: 《C++程序设计实践》报告专业:软件工程班级:学号:姓名:日期:2016年 06月 26日目录一、设计目的 (1)二、总体设计 (2)三、详细设计(以car类为例) (5)car.cpp: (5)车辆信息管理系统.cpp (5)四、测试与调试 (6)1)在调试过程中遇到的问题: (6)2)解决办法: (6)五、源程序清单和执行结果 (6)A.车辆信息管理系统.cpp: (6)B.car.h: (6)C.car.cpp: (25)D.truck.h: (28)E.truck.cpp: (29)F.bus.h: (32)G.bus.cpp: (33)H.base.h (36)I.base.cpp (36)J.执行结果(以轿车管理为例): (37)六、课程设计总结 (45)一、设计目的(1)要求学生能够熟练掌握C++语言的基本知识和技能。

(2)基本掌握面向对象程序设计的基本思路和方法。

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

所做题目:4题:车辆管理系统主要负责各种车辆的常规信息管理工作。

系统中的车辆主要有大客车、小轿车和卡车。

每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。

大客车还有载客量信息,小轿车还有厢数信息,卡车还有载重量信息。

每台车辆当月总费用=油价*耗油量/公里+基本维护费用。

基本维护费用:客车:2000元/月;小轿车:1000元/月;卡车:1500元/月功能要求:A.添加车辆B.查询车辆C.显示车辆信息库D.修改车辆E.删除车辆F.统计功能G.保存车辆H.读取车辆二、总体设计(1)定义基类base,设计出函数框架;(2)派生car类、truck类、bus类,在其中具体实现函数功能;(3)分别设计轿车、卡车、客车管理子菜单,主函数中设计添加总菜单,解决问题。

《C语言版交通管理系统》课程设计实验指导

《C语言版交通管理系统》课程设计实验指导

任务四:数据更新与删除模块
2. 实现事务处理机制,确保数据一致性。
3. 提供友好的用户界面,方便管理员进行操作。
04
实验结果与演示
实验结果展示
实验结果展示
学生需要将实验结果以书面报告 的形式展示出来,包括程序代码、 运行结果、数据分析和结论等部 分。
实验结果评价
教师对学生的实验结果进行评估, 包括程序的正确性、效率、可读 性和可维护性等方面。
03
培养学生对实际问题的分析和解决能力,提高学生 的编程实践能力和团队协作能力。
实验要求
01
完成一个简单的交通管理系统,实现车辆信息录入、
查询、修改和删除等基本功能。
02
在实现基本功能的基础上,可适当增加其他功能,如
按车牌号查询、按车主姓名查询、统计车辆数量等。
03
保证程序的正确性、稳定性和可维护性,遵循良好的
将各个模块进行整合,实现系统整体功能。
数据结构设计
车辆信息表
存储车辆的基本信息,如车牌号、车 型、颜色等。
驾驶员信息表
存储驾驶员的基本信息,如姓名、性 别、年龄等。
违章记录表
存储违章记录的信息,如违章时间、 地点、违章内容等。
事故处理表
存储事故处理的信息,如事故时间、 地点、责任方等。
03
实验任务与步骤
任务一:数据录入模块
2. 实现添加新数据的函数,包括输入验证和错误处理。
3. 确保数据的一致性和完整性。
任务二:数据查询模块
• 数据查询模块概述:该模块允许 用户根据特定条件查询交通信息。
任务二:数据查询模块
功能要求 1. 能够按车辆ID查询车辆信息。 2. 能够按驾驶员ID查询驾驶员信息。

车辆管理系统【附源代码】_C++课程设计报告-2013年

车辆管理系统【附源代码】_C++课程设计报告-2013年

北华航天工业学院《基于C++的面向对象程序设计实例》实践报告报告题目:车辆管理系统设计作者所在系部:计算机科学与工程系作者所在专业:网络工程作者所在班级:B12522作者学号:作者姓名:妖YYYao指导教师姓名:李瑛完成时间:2013年6月北华航天工业学院教务处制在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品,同时也要有好的管理方式,所以必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息、完善服务质量、提高经济效益、分析市场需求、制定销售计划和目标等管理目的。

本文利用Visual C++6.0 编写程序,实现了用户对公司车辆的编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息的管理。

本系统主要实现了对车辆的添加,查询,显示,编辑,删除,统计,存盘,读出。

主要运用了类的继承等编程方法来实现对这些车辆的管理。

已经过全面的系统测试,能够很好的运行,达到了预期的效果。

关键词:系统设计车辆管理类的继承摘要 (Ⅰ)第1章绪论 (1)1.1 课程设计的目的 (1)1.2 课程设计的背景及意义 (1)1.2.1课程设计的背景 (1)1.2.2课程设计的意义 (1)1.3 课程设计环境 (1)第2章系统需求分析 (2)2.1问题描述 (2)2.2功能分析 (2)2.3问题的解决方案 (3)第3章系统设计 (4)3.1 数据设计 (4)3.1.1 类设计 (4)3.1.2 类之间的关系 (4)3.1.3 函数设计 (4)3.2 结构设计 (5)3.2.1 系统流程图 (5)3.2.2 界面设计 (6)第4章系统实现 (8)4.1 类实现 (8)4.2 函数实现 (10)4.3 主函数实现 (14)第5章系统测试 (16)5.1 模块测试 (16)5.2 课程设计过程中遇到的问题 (18)总结 (19)致谢 (20)参考文献 (21)第一章绪论1.1 课程设计的目的(1)要求学生能够熟练掌握C++语言的基本知识和技能。

车辆管理系统VC++实验报告

车辆管理系统VC++实验报告

#include<header.h>//#include<CAR.CPP>//#include<car.h>#define N 10#define MAX 30#include <iostream.h>#include <fstream.h>#include <string.h>#include <stdlib.h>double maFee=1000;//维护费double oilprice=7;//油价int countcar=0;//小轿车数量class Car{friend class car;public:int carNo;//车编号char LPNu[N];//车牌号char cmp[N];//出场公司int year,month,day;//购买时间char type[N];//车类型double totalM;//总公里数double gasoline;//耗油量//double maFee;//维护费double toll;//养路费double totalFee;//总费用virtual void addCar()=0;virtual void readInfor()=0;};//****************小轿车**************** class car :public Car{private:int carriage;//车厢数public:void addCar();//增加小轿车void searchCar(int);//查询小轿车void showCar();//显示小轿车void editCar(int);//编辑小轿车void deleteCar(char x[]);//删除小轿车//void countCar();//统计小轿车void saveInfor();//保存信息void readInfor();//读取信息};car mycar[MAX];car*pp=NULL;/****************增加小轿车***********************/void car::addCar(){mycar[countcar].carNo=carNo;strcpy(mycar[countcar].LPNu,LPNu);strcpy(mycar[countcar].cmp,cmp);mycar[countcar].year=year;mycar[countcar].month=month;mycar[countcar].day=day;strcpy(mycar[countcar].type,type);mycar[countcar].totalM=totalM;mycar[countcar].gasoline=gasoline;mycar[countcar].toll=toll;countcar++;}/****************查询小轿车***********************/void car::searchCar(int x){int i;bool flag=true;switch (x){case 1:for(i=0;i<countcar;i++){if(mycar[i].carNo==carNo){cout<<"编号:"<<mycar[i].carNo<<" 车牌:"<<mycar[i].LPNu<<" 公司:"<<mycar[i].cmp<<" 出厂日期:"<<mycar[i].year<<"年"<<mycar[i].month<<"月"<<mycar[i].day<<"日"<<" 类别:"<<mycar[i].type<<" 总公里:"<<mycar[i].totalM<<" 耗油量:"<<mycar[i].gasoline<<" 维护费:"<<maFee<<" 养路费:"<<mycar[i].toll<<" 总费用:"<<mycar[i].gasoline*oilprice+maFee<<endl;flag=false;}//end if}//endfor//if(flag) cout<<"查询失败!"<<endl;break;case 2:for(i=0;i<countcar;i++){if(strcmp(mycar[i].cmp,cmp)==0){cout<<"编号:"<<mycar[i].carNo<<" 车牌:"<<mycar[i].LPNu<<" 公司:"<<mycar[i].cmp<<" 出厂日期:"<<mycar[i].year<<"年"<<mycar[i].month<<"月"<<mycar[i].day<<"日"<<" 类别:"<<mycar[i].type<<" 总公里:"<<mycar[i].totalM<<"耗油量:"<<mycar[i].gasoline<<" 维护费:"<<maFee<<" 养路费:"<<mycar[i].toll<<" 总费用:"<<mycar[i].gasoline*oilprice+maFee<<endl;flag=false;}//end if}if(flag) cout<<"查询失败!"<<endl;break;case 3:for(i=0;i<countcar;i++){if(strcmp(mycar[i].type,type)==0){cout<<"编号:"<<mycar[i].carNo<<" 车牌:"<<mycar[i].LPNu<<" 公司:"<<mycar[i].cmp<<" 出厂日期:"<<mycar[i].year<<"年"<<mycar[i].month<<"月"<<mycar[i].day<<"日"<<" 类别:"<<mycar[i].type<<" 总公里:"<<mycar[i].totalM<<" 耗油量:"<<mycar[i].gasoline<<" 维护费:"<<maFee<<" 养路费:"<<mycar[i].toll<<" 总费用:"<<mycar[i].gasoline*oilprice+maFee<<endl;flag=false;}//end if}if(flag) cout<<"查询失败!"<<endl;break;}//end switch}/****************显示小轿车***********************/void car::showCar(){int i;/*int x=0;ifstream infile;infile.open("car.txt");while(!infile.eof()) x++;*/for(i=1;i<countcar;i++){cout<<"编号:"<<mycar[i].carNo<<" 车牌:"<<mycar[i].LPNu<<" 公司:"<<mycar[i].cmp<<" 出厂日期:"<<mycar[i].year<<"年"<<mycar[i].month<<"月"<<mycar[i].day<<"日"<<" 类别:"<<mycar[i].type<<" 总公里:"<<mycar[i].totalM<<endl;cout<<" \t耗油量:"<<mycar[i].gasoline<<" 维护费:"<<maFee<<" 养路费:"<<mycar[i].toll<<" 总费用:"<<mycar[i].gasoline*oilprice+maFee<<endl;cout<<endl;}//end ifcout<<"小轿车显示完毕!"<<endl;}/****************编辑小轿车***********************/void car::editCar(int x){int f;bool flag=false;for(int i=0;i<countcar;i++){if(x==mycar[i].carNo){f=i;flag=true;mycar[i].carNo=carNo;mycar[i].carNo=carNo;strcpy(mycar[i].LPNu,LPNu);strcpy(mycar[i].cmp,cmp);mycar[i].year=year;mycar[i].month=month;mycar[i].day=day;strcpy(mycar[i].type,type);mycar[i].totalM=totalM;mycar[i].gasoline=gasoline;mycar[i].toll=toll;}//end if//cout<<"编号:"<<mycar[i].carNo<<" 车牌:"<<mycar[i].LPNu<<" 公司:"<<mycar[i].cmp<<" 出厂日期:"<<mycar[i].year<<"年"<<mycar[i].month<<"月"<<mycar[i].day<<"日"<<" 类别:"<<mycar[i].type<<" 总公里:"<<mycar[i].totalM<<" 耗油量:"<<mycar[i].gasoline<<" 养路费:"<<mycar[i].toll<<endl;}//end forif(flag==true){i=f;cout<<"修改完成,修改后的信息为:"<<endl;cout<<"编号:"<<mycar[i].carNo<<" 车牌:"<<mycar[i].LPNu<<" 公司:"<<mycar[i].cmp<<" 出厂日期:"<<mycar[i].year<<"年"<<mycar[i].month<<"月"<<mycar[i].day<<"日"<<" 类别:"<<mycar[i].type<<" 总公里:"<<mycar[i].totalM<<" 耗油量:"<<mycar[i].gasoline<<" 维护费:"<<maFee<<" 养路费:"<<mycar[i].toll<<" 总费用:"<<mycar[i].gasoline*oilprice+maFee<<endl;}else cout<<"你所要编辑的记录不存在,编辑失败!"<<endl;}/****************删除小轿车*******************/void car::deleteCar(char x[]){int f=0;for(int i=0;i<countcar;i++){if(strcmp(x,mycar[i].LPNu)==0){for(int j=i;j<countcar;j++) mycar[j]=mycar[j+1];countcar--;f=1;}//end if}//end forif(f==1) cout<<"记录已删除!"<<endl;else cout<<"该记录不存在!"<<endl;}/****************保存小轿车信息*******************/void car::saveInfor(){int i;ofstream outfile;outfile.open("car.txt");for(i=1;i<countcar;i++){outfile<<mycar[i].carNo<<" "<<mycar[i].LPNu<<" "<<mycar[i].cmp<<" "<<mycar[i].year<<" "<<mycar[i].month<<" "<<mycar[i].day<<" "<<mycar[i].type<<" "<<mycar[i].totalM<<" "<<mycar[i].gasoline<<" "<<mycar[i].toll<<endl;}outfile.close();}/****************读取小轿车信息*******************/void car::readInfor(){int x=0;ifstream carfile;carfile.open("car.txt");//carfile>>mycar[countcar].carNo>>mycar[countcar].LPNu>>mycar[countcar].cmp> >mycar[countcar].year>>mycar[countcar].month>>mycar[countcar].day>>mycar[countca r].type>>mycar[countcar].totalM>>mycar[countcar].gasoline>>mycar[countcar].toll;while(!carfile.eof()){x++;carfile>>mycar[x].carNo>>mycar[x].LPNu>>mycar[x].cmp>>mycar[x].year>>mycar[x ].month>>mycar[x].day>>mycar[x].type>>mycar[x].totalM>>mycar[x].gasoline>>mycar[ x].toll;}countcar=x;carfile.close();}/****************小轿车信息管理***********************/void theCar(){int select;int i=0;while(1){cout<<"-------------------"<<endl;cout<<"----1.添加车辆-----"<<endl;cout<<"----2.查询车辆-----"<<endl;cout<<"----3.显示车辆-----"<<endl;cout<<"----4.编辑车辆-----"<<endl;cout<<"----5.删除车辆-----"<<endl;//cout<<"----6.显示车辆-----"<<endl;cout<<"----请输入菜单选项:"<<endl;cout<<endl;cin>>select;switch(select){case 1:{car mycar1;pp=&mycar1;cout<<"输入编号:";cin>>mycar1.carNo;cout<<"输入车牌:";cin>>mycar1.LPNu;cout<<"输入公司:";cin>>mycar1.cmp;cout<<"购买时间:";cin>>mycar1.year>>mycar1.month>>mycar1.day;cout<<"输入车型:";cin>>mycar1.type;cout<<"总公里数:";cin>>mycar1.totalM;cout<<"输入耗油:";cin>>mycar1.gasoline;//cout<<"维护费用:";cin>>carNo;cout<<"养路费用:";cin>>mycar1.toll;//cout<<"总共费用:";cin>>totalFee;pp->addCar();//将输入的车辆信息添加到对象数组pp->saveInfor();}break;case 2:{int x;car mycar2;pp=&mycar2;cout<<"1.按编号查询"<<endl;cout<<"2.按公司查询"<<endl;cout<<"3.按类别查询"<<endl;cin>>x;if(x==1){cout<<"输入编号:";cin>>mycar2.carNo;pp->searchCar(x);}else if(x==2){cout<<"输入公司:";cin>>mycar2.cmp;mycar2.searchCar(x);}else if(x==3){cout<<"输入类型:";cin>>mycar2.type;mycar2.searchCar(x);}else cout<<"输入无效!"<<endl;}break;case 3:{car mycar3;pp=&mycar3;pp->readInfor();pp->showCar();}break;case 4:{int no;car mycar4;pp=&mycar4;cout<<"输入要编辑的编号:"<<endl;cin>>no;//pp->searchCar(1);cout<<"输入修改后的信息:"<<endl;cout<<"输入编号:";cin>>mycar4.carNo;cout<<"输入车牌:";cin>>mycar4.LPNu;cout<<"输入公司:";cin>>mycar4.cmp;cout<<"购买时间:";cin>>mycar4.year>>mycar4.month>>mycar4.day;cout<<"输入车型:";cin>>mycar4.type;cout<<"总公里数:";cin>>mycar4.totalM;cout<<"输入耗油:";cin>>mycar4.gasoline;//cout<<"维护费用:";cin>>carNo;cout<<"养路费用:";cin>>mycar4.toll;//cout<<"总共费用:";cin>>totalFee;pp->editCar(no);pp->saveInfor();}//end casebreak;case 5:{car mycar5;pp=&mycar5;char lpnu[6];cout<<"输入你要删除的车牌号:";cin>>lpnu;pp->deleteCar(lpnu);pp->saveInfor();}break;}//end switch}//end while}void esc(){exit(0);}void main(){car (mycar);(mycar).readInfor();//将小轿车信息读入内存cout<<"--------- 欢迎使用车辆管理系统 -------"<<endl;cout<<"--------------------------------------"<<endl;cout<<endl;cout<<"--------------1.小轿车辆--------------"<<endl;cout<<"--------------2.卡车车辆--------------"<<endl;cout<<"--------------3.客车车辆--------------"<<endl;cout<<"--------------4.全部显示--------------"<<endl;cout<<"--------------5.退出程序--------------"<<endl;int a,select;cout<<"------------请输入菜单选项:"<<endl;cin>>select;while(1){switch(select){case 1://mycar[countcar].addCar();theCar();break;case 2:theCar();break;case 3:theCar();break;case 4:{car mycar6;mycar6.readInfor();mycar6.showCar();break;}case 5:cout<<"按任意键退出..."<<endl;cin>>a;esc();break;}//end switch }//endl while}。

(完整word版)车辆管理系统源代码(C++)

(完整word版)车辆管理系统源代码(C++)

#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; //编号int pnum; //车牌号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;}//车辆初始值为0void add(); //添加车辆void search(); //查询车辆void show(); //显示车辆信息库void edit(); //编辑功能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;cout<<"车辆编号:";cin>>x;for(int j = 0; j < top; j++){if ( car[j].num == x ) //编号重复{cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;a++;break;}}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{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){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(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7)<<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j];elsecout<<setw(8)<<"卡车"<<setw(9)<<"载重量:"<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;a++;}if(a != 0){cout<<"是否进行修改?(1-是,2-否):";cin>>choose;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 != 0){cout<<"********************************************************************************"< <endl;cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;for(int j = 0; j < top; j++){cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7) <<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<setw(2)<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(8)<<"车厢数:"<<setw(2)<<coach[j];elsecout<<setw(9)<<"卡车"<<setw(8)<<"载重量:"<<setw(2)<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;}cout<<"********************************************************************************"< <endl;}elsecout<<"车辆库为空!"<<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;}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////void Manager::delet() //////////////////删除车辆{int i, a = 0;while(1){if(top == 0){cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;break;}else{cout<<"请输入需要删除的车辆编号:";cin>>i;for(int j = 0; j < top; j++){if(car[j].num == i) //车辆编号存在{if(top==1)car[0].type=0;else{if( car[top - 1].type == 1 ) //判断出此时car数组里储存在最后一组的是1-大客车{people[j] = people[top - 1];///////// (把最后一组数据)///////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 //判断出此时car数组里储存在最后一组的是3-卡车{weight[j] = weight[top - 1];car[j].cost = 1500;car[j].OilKm = 0.15;}car[j].num = car[top - 1].num; ///////// (把最后)///////car[j].pnum = car[top - 1].pnum; ///////// (一组数)///////strcpy(car[j].made, car[top - 1].made); ///////// (据赋给)///////car[j].time = car[top - 1].time; ///////// (将要删)///////car[j].type = car[top - 1].type; ///////// (除的那)///////car[j].km = car[top - 1].km; ///////// (组数据)///////car[j].RoadFee = car[top - 1].RoadFee; ///////// (的位置)///////car[j].AllCount = car[top-1].AllCount; ///////// ()///////}top--; //此时删除车辆数据彻底完成,车辆总数减一a++;write();}}if(a == 0)cout<<"此编号不存在,不能进行删除,请重新输入!"<<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++){//依次存入编号、车牌号、制造商、购买时间、型号、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;}}else cout<<"write failed"<<endl;}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////void Manager::read() ///////////////////读出车辆信息{while(1){ifstream read("d:\\a.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;top=0;read();system("cls");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<<"输入错误,请重新输入:";char i=getch();cout<<endl;}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(){system("color 3f");Manager a;a.jiemian();return 0;}。

C语言 汽车租赁管理系统实习报告书

C语言 汽车租赁管理系统实习报告书

西北农林科技大学信息工程学院《数据结构与C语言综合训练》实习报告题目:汽车租借公司的管理学号2010012843姓名陈金亚专业班级计算机科学与技术102班指导教师蔡骋完成日期2011年7月8日——7月17日目录一、综合训练目的与要求 (3)二、综合训练任务描述 (3)三、算法设计 (3)四、详细设计说明 (12)五、调试与测试 (13)六、实习日志 (15)七、实习总结 (15)八、附录:核心代码清单 (15)一、综合训练目的与要求本综合训练是软件工程专业重要的实践性环节之一,是在学生学习完《算法分析》课程后进行的综合练习。

本课综合训练的目的和任务:1. 巩固和加深学生对算法分析课程基本知识的理解和掌握;2. 培养利用算法知识解决实际问题的能力;3. 掌握利用程序设计语言进行算法程序的开发、调试、测试的能力;4. 掌握书写算法设计说明文档的能力;5. 提高综合运用算法、程序设计语言、数据结构知识的能力。

6. 应用线性数据结构存储信息,并能够应用上面的基本操作实现事务管理。

二、综合训练任务描述设计数据结构及算法完成某个汽车租借公司日常工作的组织与管理。

该管理系统的基本管理对象为汽车,每台汽车用一个license number进行唯一标识。

每个汽车存在三种可能状态:·可以租借(available for rent)·已借(rented)·修理中(in repair)其中在available队列中汽车应该依据汽车行驶过的路程进行排序,行驶路程最少的汽车排在最前面。

在rented队列中的汽车应依据其预期返回时间进行排序,排在最前的应是预期最早返回的汽车。

三、算法设计(1) 文字描述用三个链表组织三种状态的汽车, 能够实现租借的日常事务:引入新车,租借,收费,修理等。

租借收费应根据汽车行驶的路程及借去的时间综合计算得出,路程收费标准如下:低于100Km收费20.00元, 100Km以外的路程枚Km收费0.15元, 汽车根据行驶的路程定期进行维护, 还需实现辅助操作:汽车查询,打印全部信息,计算并打印收入、成本及收益,, 主要集中在链表的基本操作上管理系统应有完整地界面(最好是图形化界面)主要集中在链表的基本操作上,主要是链表的插入、删除、排序,文件导入导出。

(完整word版)车辆管理系统源代码(C++)

(完整word版)车辆管理系统源代码(C++)

#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; //编号int pnum; //车牌号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;}//车辆初始值为0void add(); //添加车辆void search(); //查询车辆void show(); //显示车辆信息库void edit(); //编辑功能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;cout<<"车辆编号:";cin>>x;for(int j = 0; j < top; j++){if ( car[j].num == x ) //编号重复{cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;a++;break;}}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{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){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(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7)<<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j];elsecout<<setw(8)<<"卡车"<<setw(9)<<"载重量:"<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;a++;}if(a != 0){cout<<"是否进行修改?(1-是,2-否):";cin>>choose;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 != 0){cout<<"********************************************************************************"< <endl;cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;for(int j = 0; j < top; j++){cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7) <<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<setw(2)<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(8)<<"车厢数:"<<setw(2)<<coach[j];elsecout<<setw(9)<<"卡车"<<setw(8)<<"载重量:"<<setw(2)<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;}cout<<"********************************************************************************"< <endl;}elsecout<<"车辆库为空!"<<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;}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////void Manager::delet() //////////////////删除车辆{int i, a = 0;while(1){if(top == 0){cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;break;}else{cout<<"请输入需要删除的车辆编号:";cin>>i;for(int j = 0; j < top; j++){if(car[j].num == i) //车辆编号存在{if(top==1)car[0].type=0;else{if( car[top - 1].type == 1 ) //判断出此时car数组里储存在最后一组的是1-大客车{people[j] = people[top - 1];///////// (把最后一组数据)///////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 //判断出此时car数组里储存在最后一组的是3-卡车{weight[j] = weight[top - 1];car[j].cost = 1500;car[j].OilKm = 0.15;}car[j].num = car[top - 1].num; ///////// (把最后)///////car[j].pnum = car[top - 1].pnum; ///////// (一组数)///////strcpy(car[j].made, car[top - 1].made); ///////// (据赋给)///////car[j].time = car[top - 1].time; ///////// (将要删)///////car[j].type = car[top - 1].type; ///////// (除的那)///////car[j].km = car[top - 1].km; ///////// (组数据)///////car[j].RoadFee = car[top - 1].RoadFee; ///////// (的位置)///////car[j].AllCount = car[top-1].AllCount; ///////// ()///////}top--; //此时删除车辆数据彻底完成,车辆总数减一a++;write();}}if(a == 0)cout<<"此编号不存在,不能进行删除,请重新输入!"<<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++){//依次存入编号、车牌号、制造商、购买时间、型号、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;}}else cout<<"write failed"<<endl;}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////void Manager::read() ///////////////////读出车辆信息{while(1){ifstream read("d:\\a.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;top=0;read();system("cls");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<<"输入错误,请重新输入:";char i=getch();cout<<endl;}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(){system("color 3f");Manager a;a.jiemian();return 0;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++程序设计车辆管理系统实验报告附源代码1. 实习题目 车辆管理系统2.原理概述某运输公司,需要对其下所有的各种车辆进行管理,拟建立一个车辆管理系统进行管理,该系统能够实现以下功能:(1)利用类、继承的相关理论知识,建立合理的类,能够管理至少5种车型,各种车型的相关数据,根据需要自行设定(1)能够统计出该公司,所有车辆的累积行驶里程(2)能够分类统计出每一类车辆的累积行驶里程、资产总额、驾驶员数量等相关信息(3)能够根据驾驶员信息查找该驾驶员驾驶的车辆的详细信息 (4)能够统计出该公司车辆的总数额以及每类车辆的数量 (5)能够实现某个类型车辆的添加和删除(6)其他功能可根据需要自行扩充,并请在课程设计报告中详细说明!3.设计方案3.1 编程语言 C++语言 3.2数据结构3.3.系统结构图3.4技术方案先定义结构体类,再将其继承,分别记录车辆信息和车辆编号函数;类的定义和使用;While函数for循环if判断语句switch循环;文件的打开与关闭,输入和输出。

3.4流程图车辆信息添加车辆信息查询车辆信息显示车辆信息删除车辆信息统计车辆信息保存车辆信息读取车辆信息打印4.程序编写#include<iostream>#include<fstream>#include<string>using namespace std;#define N 25//车辆极限存储量struct Manager {int num;//车辆编号int pnum;//车牌号string made;//生产厂家string name;//名字int time;//日期double distance;//里程double price;//价格string driver;//驾驶员long longcellphone;//手机号int type;//车型};class Car {private:Manager car[N];int top;//当前车的数量。

public:Car() { top = 0; }void add();//增加void search();//查询void show();//显示void delet();//删除void sum();//统计void jiemian();//界面void store();//保存void read();//读取void write();//打印};void Car::add(){}void Car::search(){}void Car::show(){}void Car::delet(){}void Car::sum (){}void Car::jiemian(){}void Car::store (){}void Car::read(){}void Car::write(){}5.执行界面、运行结果分析车辆信息添加输入编号添加车辆依次输入车辆信息。

车辆信息查询输入车辆编号查询车辆信息。

车辆信息显示显示车库内所有车辆。

车辆信息删除选择编号显示车辆信息,完成删除。

车辆信息统计选择要统计的内容,显示统计的内容。

车辆信息保存将车辆信息保存在文件中。

车辆信息读取将保存的车辆信息读取出来。

车辆信息打印将车辆信息打印下来。

6.总结与体会经过了几个星期的学习与实践,汽车管理系统已基本完成,基本功能已全部实现,顽强可以在汽车公司投入使用。

系统功能有:添加车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,统计车辆信息,保存车辆信息,读取车辆信息,打印车辆信息等。

通过这次实践学习,我不仅加深了课堂知识还学到了许多课上学不到的技能。

既提高了我的基础知识,又增强了我的动手操作能力。

比如在做一个大项目时,一开始不急于动手写代码,应该先对这个项目做整体的分析,明确此项目的数据结构和基本实现功能,然后收集资料,设计算法,在这些工作完成后再开始编写代码。

在本次实践过程中我也发现了许多的不足。

比如,在这次系统设计中,只考虑到问题的一般情况,而忽略特殊情况;考虑问题不全面,只会单一的在某一方面或某一类方面考虑问题,视野没有得以开阔等。

我相信经过本次实践,我会在以后的学习工作中变得更加小心和自信,系统也会学做越熟练。

在不断的错误和失败中逐渐弥补和提高,是自己变得更加完美,设计以更加完美。

#include<iostream>#include<fstream>#include<string>using namespace std;#define N 25//车辆极限存储量struct Manager {int num;//车辆编号int pnum;//车牌号string made;//生产厂家string name;//名字int time;//日期double distance;//里程double price;//价格string driver;//驾驶员long longcellphone;//手机号int type;//车型};class Car {private:Manager car[N];int top;//当前车的数量。

public:Car() { top = 0; }void add();//增加void search();//查询void show();//显示void delet();//删除void sum();//统计void jiemian();//界面void store();//保存void read();//读取void write();//打印};void Car::add() {int a = 1, b;while (1) {if (top<N) {int i;cout<< "请输入添加的车辆信息:" <<endl;cout<< "车辆编号:";cin>>i;for (int j = 0; j<top; j++) {if (car[j].num == i) {cout<< "车辆编号重复,系统返回." <<endl;a++;break;}}if (a == 1) {car[top].num = i;cout<< "输入车牌号:";cin>> car[top].pnum;cout<< "输入车名:";cin>> car[top].name;cout<< "输入购买日期:";cin>> car[top].time;cout<< "输入生产厂家:";cin>> car[top].made;cout<< "输入行驶里程:";cin>> car[top].distance;cout<< "输入价格:";cin>> car[top].price;cout<< "输入驾驶员的名字:";cin>> car[top].driver;cout<< "输入驾驶员的手机号:";cin>> car[top].cellphone;cout<< "输入车型:(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)";cin>> car[top].type;top++;cout<< "添加成功!是否继续添加车辆?(1->yes or 2->no)" <<endl;cin>> b;if (b = 2) {cout<< "系统返回中,请稍后!" <<endl;break;}}else//编号重复break;}else {cout<< "车库已满无法添加" <<endl;cout<< "系统返回 "<<endl;break;}}jiemian();}void Car::search() {int i, j, k,a = 0, b=0,c;cout<< "1-根据编号查询!"<<endl;cout<< "2-根据驾驶员信息查询!"<<endl;cout<< "请输入你的查询方式!(1 or 2)"<<endl;cin>>i;switch (i){case 1:{ int n;cout<< "输入要查询的车辆编号:" <<endl;cin>> n;for (j = 0; j < top; j++) {if (car[j].num == n) {cout<< "车辆编号:" << car[j].num <<endl;cout<< "车名:" << car[j].name <<endl;cout<< "购买日期:" << car[j].time<<endl;cout<< "生产厂家:" << car[j].made<<endl;cout<< "行驶里程:" << car[j].distance<<endl;cout<< "车辆价格:" << car[j].price<<endl;cout<< "驾驶员的名字:" << car[j].driver<<endl;cout<< "驾驶员的手机号:" << car[j].cellphone<<endl;cout<< "车型:" << car[j].type<<endl;cout<< "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" <<endl;a++;}}if (a == 0) {cout<< "编号不存在!" <<endl;}break;}case 2:{ int m;string l;cout<< "输入驾驶员的名字" <<endl;cin>> l;cout<< "输入驾驶员的手机号" <<endl;cin>> m;for (k = 0; k < top; k++) {if (car[k].driver == l) {if (car[k].cellphone == m) {cout<< "车辆编号:" << car[k].num <<endl;cout<< "车名:" << car[k].name <<endl;cout<< "购买日期:" << car[k].time<<endl;cout<< "生产厂家:" << car[k].made<<endl;cout<< "行驶里程:" << car[k].distance<<endl;cout<< "车辆价格:" << car[k].price<<endl;cout<< "驾驶员的名字:" << car[k].driver<<endl;cout<< "驾驶员的手机号:" << car[k].cellphone<<endl;cout<< "车型:" << car[k].type<<endl;cout<< "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" <<endl;b++;}}}if (b = 0) {cout<< "信息错误或不存在!" <<endl;}break;}default:cout<< "输入有误!" <<endl;break;}cout<< "按1返回主界面:" <<endl;cin>> c;if (c == 1) {jiemian();}else {jiemian();}}void Car::show() {int i, j;if (top != 0) {cout<< "车库中所有车的基本信息:" <<endl;for (i = 0; i< top; i++) {cout<< "车辆编号:" << car[i].num <<endl;cout<< "车名:" << car[i].name <<endl;cout<< "购买日期:" << car[i].time<<endl;cout<< "生产厂家:" << car[i].made<<endl;cout<< "行驶里程:" << car[i].distance<<endl;cout<< "车辆价格:" << car[i].price<<endl;cout<< "驾驶员的名字:" << car[i].driver<<endl;cout<< "驾驶员的手机号:" << car[i].cellphone<<endl;cout<< "车型:" << car[i].type<<endl;cout<< "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" <<endl;}}elsecout<< "车辆库为空!" <<endl;cout<< "按1返回主界面:" <<endl;cin>> j;if (j == 1) {jiemian();}else {jiemian();}}void Car::delet() {int i,a=0;while(1){if(top==0){cout<<"车辆库为空将退回功能界面!"<<endl;break;}else{cout<<"请输入要删除的车辆编号!"<<endl;cin>>i;for(int j=0;j<top;j++){if(car[j].num ==i){cout<< "车辆编号:" << car[j].num <<endl;cout<< "车名:" << car[j].name <<endl;cout<< "购买日期:" << car[j].time<<endl;cout<< "生产厂家:" << car[j].made<<endl;cout<< "行驶里程:" << car[j].distance<<endl;cout<< "车辆价格:" << car[j].price<<endl;cout<< "驾驶员的名字:" << car[j].driver<<endl;cout<< "驾驶员的手机号:" << car[j].cellphone<<endl;cout<< "车型:" << car[j].type<<endl;cout<< "(1->摩托车,2->汽车,3->客车,4->面包车,5->货车)" <<endl;cout<<"是否确定信息并删除!(1->是,2->否)"<<endl;int n;cin>>n;if(n==1){car[j].num=car[top-1].num;car[j].name=car[top-1].name;car[j].time=car[top-1].time;car[j].made=car[top-1].made;car[j].distance=car[top-1].distance;car[j].price=car[top-1].price;car[j].driver=car[top-1].driver;car[j].cellphone=car[top-1].cellphone;car[j].type=car[top-1].type;top--;a++;}elseif(n==2){cout<<"系统返回中!"<<endl;}else{cout<<"输入错误系统返回中。

相关文档
最新文档