您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > C++车辆信息管理系统
软件学院课程设计报告设计名称:C++课程设计选题名称:车辆信息管理系统姓名:王海洋学号:1515925530专业班级移动二班系(院):软件学院设计时间:2016.6.13~2016.6.17设计地点:15#5051.课程设计目的(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C++语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2.课程设计任务与要求:任务设计题目从任务书所列选题表中选取,每人1题。要求:基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义三个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。3.课程设计说明书一需求分析需要进行车辆信息的录入,然后进行查询、修改、删除、插入操作,最后要向文件中写入全部的车辆信息,完成这些基本功能后,进行一些菜单美化操作,加上一些特殊功能,例如密码登录等等。二系统设计利用了C++完成了这个车辆信息管理系统。在设计中采用文件的记忆功能可以对已输入的货物信息进行二次操作。系统首先是数据的录入并将数据储存在二进制文件中基本功能:(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。(6)插入车辆在已有车辆信息中插入一个新车辆信息,根据编号判断插入位置,若编号不存在,提示”该车辆不存在!”;(7)统计信息输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。有功能模块图和流程图车辆信息管理系统卡车管理轿车管理客车管理添加车辆信息车辆信息写入文件文件中读取车辆信息修改车辆信息查找车辆信息删除车辆信息插入车辆信息显示车辆信息按车牌号查找按公司查找类关系图1.查询函数流程图。YNYN重新选择按车牌号查询按公司查询Index=count_***输出车辆信息无车辆信息cho=1cho=22.插入信息。2.删除函数。3.修改信息。三详细设计1、首先写入头文件#includeiostream#includewindows.h#includecstring#includecstdlib//#includeiomanip#includefstreamusingnamespacestd;2、抽象类classBase{public:virtualvoidread()=0;//从文件中读取virtualvoidsave()=0;//写入文件中virtualvoidadd()=0;//添加新信息virtualvoidmodify(int)=0;//修改virtualvoiddel(int)=0;//删除virtualvoidinsert(int)=0;//插入virtualvoidsearch()=0;//查询};3.轿车类的实现。classCar:publicBase{public:voidread();voidadd();voidmodify(int);voiddel(int);voidinsert(int);voidsearch();voidsave();charcarID[20];//车牌号charcar_corporation[20];//公司doublecar_year,car_month,car_day;//购买时间doublecar_kilo;//总公里数doublecar_oil;//耗油量doublecar_road;//养路费charbox[10];//车厢数};constintMAXcar=10;externCarcar[MAXcar];externintcount_car;//车辆信息的最后一个,判断添加的位置voidCar::read()//读取文件{ifstreamcarfile;carfile.open(轿车信息.txt);carfilecar[count_car].carIDcar[count_car].car_corporationcar[count_car].car_yearcar[count_car].car_month;carfilecar[count_car].car_daycar[count_car].car_kilocar[count_car].car_oilcar[count_car].car_roadcar[count_car].box;while(!carfile.eof()){count_car++;carfilecar[count_car].carIDcar[count_car].car_corporationcar[count_car].car_yearcar[count_car].car_month;carfilecar[count_car].car_daycar[count_car].car_kilocar[count_car].car_oilcar[count_car].car_roadcar[count_car].box;}carfile.close();}voidCar::save()//写入文件{ofstreamcarfile;inti;carfile.open(轿车信息.txt);for(i=0;i=count_car-1;i++){carfilecar[i].carIDcar[i].car_corporationcar[i].car_yearcar[i].car_month;carfilecar[i].car_daycar[i].car_kilocar[i].car_oilcar[i].car_roadcar[i].boxendl;}carfile.close();}voidCar::add()//添加新信息{strcpy(car[count_car].carID,carID);strcpy(car[count_car].car_corporation,car_corporation);strcpy(car[count_car].box,box);car[count_car].car_year=car_year;car[count_car].car_month=car_month;car[count_car].car_day=car_day;car[count_car].car_kilo=car_kilo;car[count_car].car_oil=car_oil;car[count_car].car_road=car_road;count_car++;}voidCar::modify(intindex)//轿车修改函数{strcpy(car[index-1].carID,carID);strcpy(car[index-1].car_corporation,car_corporation);strcpy(car[count_car].box,box);car[index-1].car_year=car_year;car[index-1].car_month=car_month;car[index-1].car_day=car_day;car[index-1].car_kilo=car_kilo;car[index-1].car_oil=car_oil;car[index-1].car_road=car_road;}voidCar::del(intindex)//删除函数{//删除车辆信息之后均前移inti;for(i=index;i=count_car-1;i++){strcpy(car[i-1].carID,car[i].carID);strcpy(car[i-1].car_corporation,car[i].car_corporation);strcpy(car[i-1].box,car[i].box);car[i-1].car_year=car[i].car_year;car[i-1].car_month=car[i].car_month;car[i-1].car_day=car[i].car_day;car[i-1].car_kilo=car[i].car_kilo;car[i-1].car_oil=car[i].car_oil;car[i-1].car_road=car[i].car_road;}count_car--;}voidCar::insert(intindex){inti;for(i=count_car-1;i=index;i--){strcpy(car[i+1].carID,car[i].carID);strcpy(car[i+1].car_corporation,car[i].car_corporation);strcpy(car[i+1].box,car[i].box);car[i+1].car_year=car[i].car_year;car[i+1].car_month=car[i].car_month;car[i+1].car_day=car[i].car_day;car[i+1].car_kilo=car[i].car_kilo;car[i+1].car_oil=car[i].car_oil;car[i+1].car_road=car[i].car_road;}strcpy(car[index].carID,carID);strcpy(car[index].car_corporation,car_corporation);strcpy(car[index].box,box);car[index].car_year=car_year;car[index].car_month=car_month;car[index].car_day=car_day;car[index].car_kilo=car_kilo;car[index].car_oil=car_oil;car[index].car_road=car_road;count_car++;}voidCar::search(){inti,m=0;intcho;charcorporation[20],ID[20];cout请选择查询方式:endl;cout1.按公司查询endl;cout2.按车牌号查询endl;cincho;switch(cho){case1:cout请输入公司名称:endl;cincorporation;break;case2:cout请输入车牌号:endl;cinID;break;default:cout选择1或2!endl;}for(i=0;icount_car;i++){if(strcmp(car[i].carID,ID)==0||strc
本文标题:C++车辆信息管理系统
链接地址:https://www.777doc.com/doc-6336454 .html