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语言版交通管理系统》课程设计实验指导
任务四:数据更新与删除模块
2. 实现事务处理机制,确保数据一致性。
3. 提供友好的用户界面,方便管理员进行操作。
04
实验结果与演示
实验结果展示
实验结果展示
学生需要将实验结果以书面报告 的形式展示出来,包括程序代码、 运行结果、数据分析和结论等部 分。
实验结果评价
教师对学生的实验结果进行评估, 包括程序的正确性、效率、可读 性和可维护性等方面。
03
培养学生对实际问题的分析和解决能力,提高学生 的编程实践能力和团队协作能力。
实验要求
01
完成一个简单的交通管理系统,实现车辆信息录入、
查询、修改和删除等基本功能。
02
在实现基本功能的基础上,可适当增加其他功能,如
按车牌号查询、按车主姓名查询、统计车辆数量等。
03
保证程序的正确性、稳定性和可维护性,遵循良好的
将各个模块进行整合,实现系统整体功能。
数据结构设计
车辆信息表
存储车辆的基本信息,如车牌号、车 型、颜色等。
驾驶员信息表
存储驾驶员的基本信息,如姓名、性 别、年龄等。
违章记录表
存储违章记录的信息,如违章时间、 地点、违章内容等。
事故处理表
存储事故处理的信息,如事故时间、 地点、责任方等。
03
实验任务与步骤
任务一:数据录入模块
2. 实现添加新数据的函数,包括输入验证和错误处理。
3. 确保数据的一致性和完整性。
任务二:数据查询模块
• 数据查询模块概述:该模块允许 用户根据特定条件查询交通信息。
任务二:数据查询模块
功能要求 1. 能够按车辆ID查询车辆信息。 2. 能够按驾驶员ID查询驾驶员信息。
车辆管理系统【附源代码】_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++实验报告
#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++)
#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语言综合训练》实习报告题目:汽车租借公司的管理学号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++)
#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#和sql设计的 车辆管理系统 课程设计报告,附带代码
课程设计课程设计名称:车辆系统的管理与调度专业班级:计科0802班****:**学号: ****************:***课程设计时间:2011年06月30日计算机科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 需求分析本课程设计要求了解车辆管理系统的过程,要求对车辆的管理有一定的理解,并进一步加深对车辆运作的实现和理解。
要求用C#语言和SQL SERVER 2000实现车辆相关信息记录和调度。
要求建立一个数据库,然后用C#编程序,编号后要求把数据库与程序连接起来,组成一个大模块。
车辆管理过程中涉及车辆的添加、删除、修改,驾驶员的添加、删除、修改,车场的添加、删除、修改,其中当实现车辆调度时能顺利完成要求,另外系统还可以实现修改用户,修改密码等功能。
2 概要设计本系统要求建立六个表,分别包括用户信息,车辆信息,驾驶员信息,车辆调度信息,车辆预约信息,车辆库存信息。
在设计程序的时候要求完成的模块有(1)设计车辆信息,包括车辆信息维护和查询;(2)设计驾驶员信息,包括驾驶员信息维护和查询;(3)设计车场信息,包括车场信息维护和查询;(4)设计车辆调度;(5)实现系统界面,包括用户管理,修改密码,退出。
在实现功能的时候要连接数据库,充分利用数据库中的数据。
3 运行环境Windous XP系统4 开发工具和编程语言Microsoft Visaul Stadio 2008Microsoft Sql Server 20005 详细设计(!)首先建立一个数据库,在数据库中建立所需要的表,建立过程大概如下:CREATE TABLE [dbo].[UserInfo] ([UserID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[UserName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,[passwod] [varchar] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[UserLevel] [char] (1) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]CREATE TABLE [dbo].[CarInfo] ([CarID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[CarType] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [CarDriver] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL , [CarColor] [char] (5) COLLATE Chinese_PRC_CI_AS NULL ,[Carbuytime] [datetime] NULL ,[CarLoad] [int] NULL) ON [PRIMARY]CREATE TABLE [dbo].[CarOut] ([OutID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[OutCarID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[CarOutTime] [datetime] NOT NULL ,[CarInTime] [datetime] NOT NULL ,[Outfee] [money] NOT NULL) ON [PRIMARY]CREATE TABLE [dbo].[Driver] ([DriverID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[DriverName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [DriverSex] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL , [DriverLevel] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[DriverAddress] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [DriverPhone] [char] (11) COLLATE Chinese_PRC_CI_AS NULL ,[worktime] [datetime] NULL) ON [PRIMARY]CREATE TABLE [dbo].[OrderInfo] ([OrderID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[OrderCarID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[OrderPersonName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,[OrderTime] [datetime] NOT NULL ,[OrderReason] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]CREATE TABLE [dbo].[StopPlace] ([SpID] [char] (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,[SpName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,[SpLocation] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,[bigcarnum] [int] NOT NULL ,[mediumcarnum] [int] NOT NULL ,[smallcarnum] [int] NOT NULL) ON [PRIMARY](2)程序中各模块如下:1. namespace DA模块public DataTable CarInfoSelectAll(){ using (SqlConnection conn = DABase.CreateConnection()){ if (ConnectionState.Closed == conn.State){ conn.Open();}using (SqlCommand cmd = conn.CreateCommand()){ mandType = CommandType.StoredProcedure; mandText = "CarInfoSelectAll";try{ SqlDataAdapter Adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet();Adapter.Fill(ds);conn.Close();return ds.Tables[0];}catch (SqlException sqlEx){ throw sqlEx;}}}}public CarInfoModule CarInfoSelectOne(String CarID){ using (SqlConnection conn = DABase.CreateConnection()){ if (ConnectionState.Closed == conn.State){ conn.Open();}using (SqlCommand cmd = conn.CreateCommand()){ mandType = CommandType.StoredProcedure;mandText = "CarInfoSelectOne";#region 添加存储过程参数cmd.Parameters.AddWithValue("@CarID", CarID);//车辆标号#endregion try{ SqlDataReader dr = cmd.ExecuteReader();if (dr.HasRows == false){ dr.Close();return null;}CarInfoModule CarMod = new CarInfoModule();dr.Read();#region 读取字段值CarMod.CarID = CommonSqlValue.GetString(0, dr);CarMod.CarType = CommonSqlValue.GetString(1, dr);CarMod.CarDriver = CommonSqlValue.GetString(2, dr);CarMod.CarColor = CommonSqlValue.GetString(3, dr);CarMod.Carbuytime = CommonSqlValue.GetDateTime(4, dr);CarMod.CarLoad = CommonSqlValue.GetInt32(5, dr);#endregiondr.Close();conn.Close();return CarMod;}catch (SqlException sqlEx){ throw sqlEx;}}}}public void CarInfoDeleteOne(String CarID){ using (SqlConnection conn = DABase.CreateConnection()) { if (ConnectionState.Closed == conn.State){ conn.Open();}using (SqlCommand cmd = conn.CreateCommand()){mandType = CommandType.StoredProcedure;mandText = "CarInfoDeleteOne";#region 添加存储过程参数cmd.Parameters.AddWithValue("@CarID", CarID);//记录序列号#endregiontry{ cmd.ExecuteNonQuery();conn.Close();}catch (SqlException sqlEx){ throw sqlEx;}}}}public void CarInfoUpdateOne(CarInfoModule CarMod){ using (SqlConnection conn = DABase.CreateConnection()){ if (ConnectionState.Closed == conn.State){ conn.Open();}using (SqlCommand cmd = conn.CreateCommand()){ mandType = CommandType.StoredProcedure; mandText = "CarInfoUpdateOne";#region 添加存储过程参数cmd.Parameters.AddWithValue("@CarID", CarMod.CarID);cmd.Parameters.AddWithValue("@CarType", CarMod.CarType);cmd.Parameters.AddWithValue("@CarDriver", CarMod.CarDriver);cmd.Parameters.AddWithValue("@CarColor", CarMod.CarColor);cmd.Parameters.AddWithValue("@Carbuytime", CarMod.Carbuytime);cmd.Parameters.AddWithValue("@CarLoad", CarMod.CarLoad);#endregiontry{ cmd.ExecuteNonQuery();conn.Close();}catch (SqlException sqlEx){switch (sqlEx.Number){ case 2601:case 2627:throw new Exception("修改记录失败!插入的键值已经存在,请确认后重试。
车辆管理系统实验报告
车辆管理系统实验报告车辆管理系统实验报告篇一:车辆信息管理系统实验报告新课程设计报告格式面向对象程序设计I课程设计报告题目:车辆信息管理系统学院:计算机科学与工程学院专业:软件工程专业班级:学号:姓名:指导老师:设计日期:1. 题目及程序(系统)功能设计说明课程设计题目:车辆信息管理系统程序(系统)的基本功能:车辆信息管理系统由两个子系统构成:一是:对轿车信息的管理;二是:对车辆信息的管理功能。
主要是增删改功能2. 程序涉及的知识点1.类、内联函数、类的继承与派生、虚函数、抽象类的知识. Class car //轿车类基类:class Emcar //汽车类派生类:class Pascar:public Emcar //客车类class Limou:public Emcar //轿车类class Truck:public Emcar //卡车类class Train:public Emcar //火车实现车辆管理class Company //公司类2.实现对文件的操作,stream的子类ifstream,ofstream以及其中的相关函数:open,close,good调用的头文件有#include,#include #include,#include,#include #include掌握getline()逐行读取功能以及ios::in,ios::out,ios::app,对于文件的格式的实现。
了解system 函数对于命令行指令的调用,cls指令实现清屏及color指令改变控制台的前景色和背景。
还应用了左对齐setiosflags,设置域宽setw等函数。
3.链表这种数据结构相关增删改查基本功能实现相关知识。
3.功能设计或算法设计车辆信息管理系统由两个子系统构成,它的主要功能如下:.轿车信息管理系统1. 添加车辆信息主要添加的车辆信息包括5各方面,分别是:桥车的车牌号(编号不唯一),车辆名字,车辆的价格,车辆的生产日期,车辆的生产地等。
C++ 程序设计实验报告----车辆信息管理系统
C++ 程序设计实验报告----车辆信息管理系统车辆信息管理系统一、课题背景简介我国经济的快速发展,汽车已经成为人们不可缺少的交通工具。
对于拥有大量车辆的机关企事业来说,车辆的管理系统成为日常事务中的一项重要工作。
如何让管理人员及时了解每一辆车的具体情况,就成为个单位需要解决的一个难题。
随着计算机技术的不断发展,信息高速公路的兴起,全球信息化进入了一个新的发展时期。
计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。
目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。
在这样的大背景下,现代车辆的管理方式,资源建设等方面都发生了重大变化,这种变化表现在车辆工作,管理和服务平台发生的变化,车辆不再是传统的手工操作,人工管理,而是全面实行计算机管理。
二、实验目的1、掌握类的应用,并定义其构造函数、析构函数和各成员函数。
2、掌握类的派生用法。
三、程序功能简介本程序共定义了3个类,分别为AutoMobile、Car、Truck。
其中AutoMobile 为汽车类,Car为小汽车类,Truck为卡车类。
1、AutoMobile为汽车类,其私有成员包括汽车品牌brand、车牌号number、档位speed ,档位分为7个档,包括1、2、3、4、5、0、-1,0表示空档,-1表示倒档;成员函数有: char *theBrand()const{ return brand; } ,其功能是返回汽车的品牌名称, char *theNumber()const{ return number; },其功能是返回汽车车牌号,int currentSpeed()const{ return speed;},其功能是返回汽车当前的档位, void changeGearTo(intthe_speed) {},其功能是使汽车换到指定的档位, void show()const{},其功能是输出汽车的基本信息。
c++程序设计车辆管理系统实验报告附源代码
C++程序设计车辆管理系统实验报告附源代码1.实习题目车辆管理系统2.原理概述某运输公司,需要对其下所有的各种车辆进行管理,拟建立一个车辆管理系统进行管理,该系统能够实现以下功能:(1)利用类、继承的相关理论知识,建立合理的类,能够管理至少5种车型,各种车型的相关数据,根据需要自行设定(1)能够统计出该公司,所有车辆的累积行驶里程(2)能够分类统计出每一类车辆的累积行驶里程、资产总额、驾驶员数量等相关信息(3)能够根据驾驶员信息查找该驾驶员驾驶的车辆的详细信息(4)能够统计出该公司车辆的总数额以及每类车辆的数量(5)能够实现某个类型车辆的添加和删除(6)其他功能可根据需要自行扩充,并请在课程设计报告中详细说明!3.设计方案编程语言C++语言数据结构.系统结构图技术方案先定义结构体类,再将其继承,分别记录车辆信息和车辆编号函数;类的定义和使用;While函数for循环if判断语句switch循环;文件的打开与关闭,输入和输出。
流程图车辆信息添加车辆信息查询车辆信息显示否车辆信息删除车辆信息统计车辆信息保存车辆信息读取车辆信息打印4.程序编写#include<iostream>#include<fstream>#include<string>using namespace std;#define N 25执行界面、运行结果分析车辆信息添加输入编号添加车辆依次输入车辆信息。
车辆信息查询输入车辆编号查询车辆信息。
车辆信息显示显示车库内所有车辆。
车辆信息删除选择编号显示车辆信息,完成删除。
车辆信息统计选择要统计的内容,显示统计的内容。
车辆信息保存将车辆信息保存在文件中。
车辆信息读取将保存的车辆信息读取出来。
车辆信息打印将车辆信息打印下来。
6.总结与体会经过了几个星期的学习与实践,汽车管理系统已基本完成,基本功能已全部实现,顽强可以在汽车公司投入使用。
系统功能有:添加车辆信息,删除车辆信息,查询车辆信息,显示车辆信息,统计车辆信息,保存车辆信息,读取车辆信息,打印车辆信息等。
车辆管理系统【附源代码】C++课程设计报告-
北华航天工业学院《基于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++语言的基本知识和技能。
车辆管理系统 论文+代码
目录1:需求分析------------------------------------------------------------------------ 2:算法设计---------------------------------------------------------------------- (1)设计思想-------------------------------------------------------------------- (2)设计表示--------------------------------------------------------------------- (3)实现注释-------------------------------------------------------------------- (4) 算法设计中一些新的想法--------------------------------------------------- 3:用户手册---------------------------------------------------------------------- 4:调试及测试------------------------------------------------------------------- 5:课程小结----------------------------------------------------------------------6:参考文献----------------------------------------------------------------------7:附录-----------------------------------------------------------------------------(1)源程序清单-----------------------------------------------------------------(2)测试数据---------------------------------------------------------------------(3)运行结果---------------------------------------------------------------------一:需求分析1)描述问题:设计一个汽车站车票管理系统,该系统要求对班次信息和售票退票进行维护和管理。
c语言车辆管理系统课程设计
#include<stdio.h> 之青柳念文创作#include<stdlib.h>#include<string.h>#define MAX 3 /*车库容量*/#define price 0.5 /*每车每分钟费用*/ typedef struct time{int hour;int min;}Time; /*时间结点*/typedef struct node{char num[10];Time reach;Time leave;}CarNode;/*车辆信息结点*/typedef struct NODE{CarNode *stack[MAX + 1];int top;}Moni_Cheku;typedef struct car{CarNode *data;struct car *next;}QueueNode;typedef struct Node{QueueNode *head;QueueNode *rear;}Moni_Biandao;void InitStack(Moni_Cheku *); /*初始化车库*/int InitQueue(Moni_Biandao *);/*初始化便道*/int Arrival(Moni_Cheku *, Moni_Biandao *); /*车辆到达*/void Leave(Moni_Cheku *, Moni_Cheku *, Moni_Biandao *); /*车辆分开*/void List(Moni_Cheku, Moni_Biandao); /*显示车库和便道的存车信息*/int main(){Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初始化车站*/InitStack(&Temp); /*初始化让路的姑且链表*/InitQueue(&Wait); /*初始化便道*/printf("\n");printf(" ^_^欢迎进入停车场管理系统1!^_^\n");printf("\n");printf("提示! (1).该车库的最大容量为:%d;\n", MAX); printf(" (2).该车库的收费尺度为:%4.2f元/(辆*分钟).\n", price);while (1){system("CLS");printf("********************主菜单********************\n");printf("1.车辆到达");printf(" 2.车辆分开");printf(" 3.列表显示");printf(" 4.退出系统\n");printf("**********************************************\n");printf("请选择(1-4):[ ]\b\b");while (1){scanf("%d",&ch);if (ch >= 1 && ch <= 4)break;else printf("错误!请重选(1-4):[ ]\b\b");}switch (ch){case 1:Arrival(&Enter, &Wait); break; /*车辆到达*/ case 2:Leave(&Enter, &Temp, &Wait); break; /*车辆分开*/case 3:List(Enter, Wait); break; /*打印列表信息*/ case 4:exit(0); /*退出主程序*/default: break;}}return 0;}void InitStack(Moni_Cheku *s) /*初始化车库*/{int i;s->top = 0;for (i = 0; i <= MAX; i++)s->stack[s->top] = NULL;}int InitQueue(Moni_Biandao *Q) /*初始化便道*/{Q->head = (QueueNode *)malloc(sizeof(QueueNode));if (Q->head != NULL){Q->head->next = NULL;Q->rear = Q->head;return(1);}else return(-1);}void PRINT(CarNode *p, int room) /*输出出库车的信息*/{int A1, A2, B1, B2;{printf("请输入分开的时间:/**:**/");scanf("%d:%d", &(p->leave.hour), &(p->leave.min)); printf("分开车辆的车商标为:");puts(p->num);printf("其到达时间为: %d:%d\n", p->reach.hour, p->reach.min);printf("分开时间为: %d:%d\n", p->leave.hour, p->leave.min);A1 = p->reach.hour;A2 = p->reach.min;B1 = p->leave.hour;B2 = p->leave.min;printf("应交费用为:%4.2f元", ((B1 - A1) * 60 + (B2 - A2))*price);free(p);}}int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/{CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode));fflush(stdin);printf("请输入车商标(例如:中CUG888):");scanf("%s",&(p->num));if (Enter->top < MAX) /*车库未满,车进车库*/{Enter->top++;printf("该车在车库位置%d.\n", Enter->top);printf("请输入到达时间(**:**):");scanf("%d:%d", &(p->reach.hour), &(p->reach.min)); Enter->stack[Enter->top] = p;return(1);}else /*车库已满,车进便道*/{printf("该车须在便道等待!\n");t = (QueueNode *)malloc(sizeof(QueueNode));t->data = p;t->next = NULL;W->rear->next = t;W->rear = t;return(1);}}void Leave(Moni_Cheku *Enter, Moni_Cheku *Temp,Moni_Biandao *W) /*车辆分开*/{int i, room;CarNode *p, *t;QueueNode *q;/*断定车库内是否有车*/if (Enter->top > 0) /*有车*/{printf("请输入车在车库的位置(1--%d):", Enter->top);/*输入车辆分开的信息*/while (1){scanf("%d", &room);if (room >= 1 && room <= Enter->top) break;else printf("错误!请重选:");}while (Enter->top > room) /*车辆分开*/{Temp->top++;Temp->stack[Temp->top] = Enter->stack[Enter->top]; Enter->stack[Enter->top] = NULL;Enter->top--;}p = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;while (Temp->top >= 1){Enter->top++;Enter->stack[Enter->top] = Temp->stack[Temp->top]; Temp->stack[Temp->top] = NULL;Temp->top--;}PRINT(p, room); /*断定通道上是否有车及车库是否已满*/if ((W->head != W->rear) && Enter->top < MAX) /*便道的车辆进入车库*/{q = W->head->next;t = q->data;Enter->top++;printf("\n便道的%s号车进入车场第%d位置.", t->num, Enter->top);printf("\n请输入现在的时间(**:**):");scanf("%d:%d", &(t->reach.hour), &(t->reach.min)); W->head->next = q->next;if (q == W->rear) W->rear = W->head;Enter->stack[Enter->top] = t;free(q);}else printf("\n便道里没有车.\n");}else printf("车库里没有车!\n"); /*没车*/}void List1(Moni_Cheku *S) /*列表显示车库信息*/{int i;if (S->top > 0) /*断定车库内是否有车*/{printf("车库号到达时间 \t车商标\n");for (i = 1; i <= S->top; i++){printf(" %d ", i);printf(" \t%d:%d", S->stack[i]->reach.hour, S->stack[i]->reach.min);printf("\t\t%s\n",S->stack[i]->num);}}else printf("车库里没有车\n");}void List2(Moni_Biandao *W) /*列表显示便道信息*/ {QueueNode *p;p = W->head->next;if (W->head != W->rear) /*断定便道上是否有车*/ {printf("在便道里等待的车辆的号码为:\n");while (p != NULL){puts(p->data->num);p = p->next;}}else printf("便道里没有车.\n");}void List(Moni_Cheku S, Moni_Biandao W){int flag, tag;while (flag){printf("**********检查**********\n"); printf("1.车库2.便道3.返回\n");printf("************************\n"); printf("请选择(1-3):[ ]\b\b");while (1){scanf("%d", &tag);if (tag >= 1 && tag <= 3) break;else printf("错误!请重选(1-3):[ ]\b\b"); }switch (tag){case 1:List1(&S);break;/*列表显示车库信息*/case 2:List2(&W);break; /*列表显示便到信息*/case 3:break; default: break; }}}。
c语言车辆管理系统课程设计
#include<stdio.h> 之阳早格格创做#include<stdlib.h>#include<string.h>#define MAX 3 /*车库容量*/#define price 0.5 /*每车每分钟费用*/ typedef struct time{int hour;int min;}Time; /*时间结面*/typedef struct node{char num[10];Time reach;Time leave;}CarNode;/*车辆疑息结面*/typedef struct NODE{CarNode *stack[MAX + 1];int top;}Moni_Cheku;typedef struct car{CarNode *data;struct car *next;}QueueNode;typedef struct Node{QueueNode *head;QueueNode *rear;}Moni_Biandao;void InitStack(Moni_Cheku *); /*初初化车库*/int InitQueue(Moni_Biandao *);/*初初化便讲*/int Arrival(Moni_Cheku *, Moni_Biandao *); /*车辆到达*/ void Leave(Moni_Cheku *, Moni_Cheku *, Moni_Biandao *); /*车辆离启*/void List(Moni_Cheku, Moni_Biandao); /*隐现车库战便讲的存车疑息*/int main(){Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初初化车站*/InitStack(&Temp); /*初初化让路的临时链表*/InitQueue(&Wait); /*初初化便讲*/printf("\n");printf(" ^_^欢迎加进停车场管制系统1!^_^\n");printf("\n");printf("提示! (1).该车库的最大容量为:%d;\n", MAX); printf("(2).该车库的支费尺度为:%4.2f元/(辆*分钟).\n", price); while (1){system("CLS");printf("********************主菜单********************\n");printf("1.车辆到达");printf(" 2.车辆离启");printf(" 3.列表隐现");printf(" 4.退出系统\n");printf("********************************************* *\n");printf("请采用(1-4):[ ]\b\b");while (1){scanf("%d",&ch);if (ch >= 1 && ch <= 4)break;else printf("过失!请沉选(1-4):[ ]\b\b");}switch (ch){case 1:Arrival(&Enter, &Wait); break; /*车辆到达*/case 2:Leave(&Enter, &Temp, &Wait); break; /*车辆离启*/ case 3:List(Enter, Wait); break; /*挨印列表疑息*/case 4:exit(0); /*退出主步调*/default: break;}}return 0;}void InitStack(Moni_Cheku *s) /*初初化车库*/{int i;s->top = 0;for (i = 0; i <= MAX; i++)s->stack[s->top] = NULL;}int InitQueue(Moni_Biandao *Q) /*初初化便讲*/{Q->head = (QueueNode *)malloc(sizeof(QueueNode));if (Q->head != NULL){Q->head->next = NULL;Q->rear = Q->head;return(1);}else return(-1);}void PRINT(CarNode *p, int room) /*输出出库车的疑息*/{int A1, A2, B1, B2;{printf("请输进离启的时间:/**:**/");scanf("%d:%d", &(p->leave.hour), &(p->leave.min));printf("离启车辆的车牌号为:");puts(p->num);printf("其到达时间为: %d:%d\n", p->reach.hour, p->reach.min);printf("离启时间为: %d:%d\n", p->leave.hour, p->leave.min);A1 = p->reach.hour;A2 = p->reach.min;B1 = p->leave.hour;B2 = p->leave.min;printf("应接费用为:%4.2f元", ((B1 - A1) * 60 + (B2 - A2))*price);free(p);}}int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/{CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode));fflush(stdin);printf("请输进车牌号(比方:中CUG888):");scanf("%s",&(p->num));if (Enter->top < MAX) /*车库已谦,车进车库*/{Enter->top++;printf("该车正在车库位子%d.\n", Enter->top);printf("请输进到达时间(**:**):");scanf("%d:%d", &(p->reach.hour), &(p->reach.min));Enter->stack[Enter->top] = p;return(1);}else /*车库已谦,车进便讲*/{printf("该车须正在便讲等待!\n");t = (QueueNode *)malloc(sizeof(QueueNode));t->data = p;t->next = NULL;W->rear->next = t;W->rear = t;return(1);}}void Leave(Moni_Cheku *Enter, Moni_Cheku *Temp, Moni_Biandao *W) /*车辆离启*/{int i, room;CarNode *p, *t;QueueNode *q;/*推断车库内是可有车*/if (Enter->top > 0) /*有车*/{printf("请输进车正在车库的位子(1--%d):", Enter->top);/*输进车辆离启的疑息*/while (1){scanf("%d", &room);if (room >= 1 && room <= Enter->top) break;else printf("过失!请沉选:");}while (Enter->top > room) /*车辆离启*/{Temp->top++;Temp->stack[Temp->top] = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;}p = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;while (Temp->top >= 1){Enter->top++;Enter->stack[Enter->top] = Temp->stack[Temp->top];Temp->stack[Temp->top] = NULL;Temp->top--;}PRINT(p, room); /*推断通讲上是可有车及车库是可已谦*/if ((W->head != W->rear) && Enter->top < MAX) /*便讲的车辆加进车库*/{q = W->head->next;t = q->data;Enter->top++;printf("\n便讲的%s号车加进车场第%d位子.", t->num, Enter->top);printf("\n请输进当前的时间(**:**):");scanf("%d:%d", &(t->reach.hour), &(t->reach.min));W->head->next = q->next;if (q == W->rear) W->rear = W->head;Enter->stack[Enter->top] = t;free(q);}else printf("\n便讲里不车.\n");}else printf("车库里不车!\n"); /*出车*/}void List1(Moni_Cheku *S) /*列表隐现车库疑息*/{int i;if (S->top > 0) /*推断车库内是可有车*/{printf("车库号到达时间 \t车牌号\n");for (i = 1; i <= S->top; i++){printf(" %d ", i);printf(" \t%d:%d", S->stack[i]->reach.hour, S->stack[i]->reach.min);printf("\t\t%s\n",S->stack[i]->num);}}else printf("车库里不车\n");}void List2(Moni_Biandao *W) /*列表隐现便讲疑息*/{QueueNode *p;p = W->head->next;if (W->head != W->rear) /*推断便讲上是可有车*/ {printf("正在便讲里等待的车辆的号码为:\n"); while (p != NULL){puts(p->data->num);p = p->next;}}else printf("便讲里不车.\n");}void List(Moni_Cheku S, Moni_Biandao W){int flag, tag;flag = 1;while (flag){printf("**********查看**********\n");printf("1.车库2.便讲3.返回\n");printf("************************\n");printf("请采用(1-3):[ ]\b\b");while (1){scanf("%d", &tag);if (tag >= 1 && tag <= 3) break;else printf("过失!请沉选(1-3):[ ]\b\b"); }switch (tag){case 1:List1(&S);break;/*列表隐现车库疑息*/case 2:List2(&W);break; /*列表隐现便到疑息*/case 3:flag = 0;break;default:break;}}}。
C语言课程设计实验报告--汽车租赁管理系统剖析
《C语言程序设计》课程设计实验报告题目:汽车租赁管理系统专业:班级:姓名:学号:时间:2015年6月一、目的1、进一步掌握和利用C 语言进行程序设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S 图表示算法;6、掌握书写程序设计开发文档,即书写课程设计报告的能力;二、内容与设计思想。
1、系统功能与分析(填写你所设计的菜单及流程图)。
主函数系统选项非0,1,2,3,4为无效值查询汽车办理租赁管理系统归还登记退出系统1:增加汽车2:删除汽车3:汽车统计4:会员管理系统1: 申请新卡2: 删除卡号3: 卡号统计0: 返回2、数据结构数据表格图形会员信息车辆信息卡号姓名性别电话编号车型品牌租金状态数据结构代码struct member{int cardnum;char lendcar[10];}member[1000];struct car{int carnum;char carname[20];float carprice;char carcreat[20];int turefalse;}car[1000];struct card{int cardnum;char sex[5];char membersname[20];long int memberstel;}card[1000];全局变量:char ch1,ch2,ch4;3、模块设计根据功能需要:源文件函数名功能汽车租赁管理系统.c main() 主函数chacar() 分类查找汽车findcar() 按“车型”查找findcar1() 按“品牌”查找lendcar() 将汽车租出并记录huancar() 将汽车归还并记录addcard() 新增会员,采集信息delcard() 删除会员,清除信息cardcount() 统计会员总数,显示详细信息addcar() 增加新车,采集信息delcar() 删除车辆,清除信息carcount() 统计车辆总数,显示详细信息end() 结束系统运行4、总体设计思想:整个程序主要由4个界面组成,分别是查询汽车,办理租赁,管理系统,归还登记组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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<<"输入错误系统返回中。