收藏 分销(赏)

车辆管理系统课程设计报告完整.doc

上传人:天**** 文档编号:4792655 上传时间:2024-10-12 格式:DOC 页数:86 大小:10MB
下载 相关 举报
车辆管理系统课程设计报告完整.doc_第1页
第1页 / 共86页
车辆管理系统课程设计报告完整.doc_第2页
第2页 / 共86页
车辆管理系统课程设计报告完整.doc_第3页
第3页 / 共86页
车辆管理系统课程设计报告完整.doc_第4页
第4页 / 共86页
车辆管理系统课程设计报告完整.doc_第5页
第5页 / 共86页
点击查看更多>>
资源描述

1、车辆管理系统课程设计报告(优质文档,可直接使用,可编辑,欢迎下载)课程设计报告课程设计题目:车辆管理系统学生姓名:ABC专业:软件工程班 级:16*指导教师:*祥 *康(完整源代码和注释在我上次的另一篇文章里)2021年 6 月 18 日东华理工大学课程设计评分表学生姓名:A班级16*学号:20212021*课程设计题目:项目内容满分实评选题能结合所学课程知识、有一定的能力训练.符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等1

2、0能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求.10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总分100指导教师评语:指导教师签名:年月日格式要求:中文正文使用五号字体,英文及代码使用小五号字体东华理工大学课程设计评分表学生姓名:B班级16*学号:20212021*课程设计题目:项目内容满分实评选题能结合所学课程知识、有一定的能力训练.符合选题要

3、求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总分100指导教师评语:指导教师签名:年月日格

4、式要求:中文正文使用五号字体,英文及代码使用小五号字体东华理工大学课程设计评分表学生姓名:C班级16*学号:20212021*课程设计题目:项目内容满分实评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语

5、言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总分100指导教师评语:指导教师签名:年月日格式要求:中文正文使用五号字体,英文及代码使用小五号字体【目录】一、 题目03二、 课程设计任务03三、 数据结构04四、模块划分 04五、 程序的总体设计05六、 流程图 06七、主要源程序代码(附件源代码)09八、测试情况及调试中问题与解决方案10九、实验小结及心得15十、工作日志 16十一、东华理工大学评分表17一、题目:车辆管理系统设计二、课程设计任务:车辆管理系统主要负责各种车辆的

6、常规信息管理工作. 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。 每台车辆当月总费用=油价耗油量/公里+基本维护费用。 基本维护费用:客车:2000元/月,小轿车:1000元/月,卡车:1500元/月.(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。(2)

7、查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!;(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该

8、车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。(6)统计信息:输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。(7)车辆信息存盘:将当前程序中的车辆信息存入文件中。(8)读出车辆信息:从文件中将车辆信息读入程序。要求:1、用C+语言实现程序设计;2、利用类和对象数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。三、数据结构Carsint num; /编号int pnum; /车牌号char made20; /制造公司double time; /购买时间(多少个月

9、)int type;/型号(1大客车,2-小轿车,3卡车)double km; /总公里数int cost; /基本维护费用int RoadFee; /养路费double OilKm; /耗油量/公里double AllCount; /累计总费用friend Manager; /声明为友元Managerint peopleN; /最大载客量(大客车)int coachN; /箱数(小轿车)int weightN; /载重量(卡车)int top; /记录当前车辆数量Manager()top = 0;/车辆初始值为0void add(); /添加车辆void search(); /查询车辆voi

10、d show();/显示车辆信息库void edit(); /编辑功能void delet(); /删除车辆void sum(); /统计信息void write(); /车辆信息存盘void read(); /读出车辆信息void jiemian(); /总界面四、模块划分车辆信息添加车辆信息查询车辆信息显示车辆信息编辑车辆信息删除退出系统车辆管理系统五、程序的总体设计类的设计:class Carspublic:int num; /编号 int pnum; /车牌号 char made20; /制造公司 double time; /购买时间(多少个月) int type; /型号(1大客车,

11、2小轿车,3卡车) double km; /总公里数 int cost; /基本维护费用int RoadFee; /养路费double OilKm; /耗油量/公里double AllCount;/累计总费用;class Managerprivate:Cars carN;int peopleN; /最大载客量(大客车)int coachN; /箱数(小轿车)int weightN; /载重量(卡车)int top; /记录当前车辆数量public:Manager()top = 0;/车辆初始值为0void add(); /添加车辆void search(); /查询车辆void show();

12、 /显示车辆信息库 void edit(); /编辑功能 void delet(); /删除车辆 void sum(); /统计信息 void read(); /读出车辆信息 void write(); /车辆信息存盘 void jiemian(); /总界面;函数设计:在管理类中定义了以下函数,功能标注在其后void add(); /用于添加车辆信息,进行信息录入;void search(); /用于查询车辆信息;void show(); /显示车辆信息库 void edit(); /编辑功能 void delet(); /删除车辆 void sum(); /统计信息 void read()

13、; /读出车辆信息 void write(); /车辆信息存盘 void jiemian(); /总界面六、流程图车辆信息添加车辆信息查询车辆信息显示车辆信息编辑车辆信息删除七、主要源程序代码由于程序代码功能多,此处只节选了添加车辆这一功能的代码,程序完整源代码另附文件/ 查询车辆 /void Manager:search() int choose,m,n,a = 0;char i,t20;cout*”endl;cout” 1。按车辆制造公司查询 endl;cout* 2。按编号查询 endl;cout 3。按类别查询 *endl;cout*endl;couti;coutendl;if(i=1

14、|i=2|i=3)break;cout”输入错误,重输:;if(i = 1)cout请输入需查询车辆的制造公司:;cint;else if(i = 2)cout”请输入需查询的车辆编号:”;cinn;else if(i = 3)coutm;for(int j = 0; j top; j+)if(strcmp(carj。made, t) = 0|carj。num = n|carj.type = m)cout”编号 车牌号 制造商 购买时间 型号 特性 总公里 养路费 维护费 油耗 总费用endl;break;for( j = 0; j top; j+)if(strcmp(carj。made, t

15、) = 0|carj。num = n|carj.type = m) coutsetw(4)carj。numsetw(7)carj.pnumsetw(7)carj.madesetw(7)carj.time;if(carj.type = 1 )coutsetw(9)大客车setw(8)载客量:peoplej;else if(carj。type = 2 )coutsetw(9)”小轿车”setw(9)”车厢数: ”coachj;elsecoutsetw(8)”卡 车setw(9)”载重量:”weightj;coutsetw(6)carj.kmsetw(7)carj.RoadFeesetw(7)car

16、j.costsetw(7)carj。OilKmsetw(8)carj.AllCountendl;a+;if(a != 0)cout是否进行修改?(1是,2-否):”;cinchoose;if(choose = 1)edit();elseif(i=1) cout车辆制造公司不存在!”endl;if(i=2) cout”车辆编号不存在!”endl;else if (i=3) cout”车辆型号不存在!endl;cout”按任意键返回功能主界面”endl; char zz=getch(); jiemian();八、测试情况及调试中问题与解决方案以下几点分别为我们在课程设计期间测试情况及调试中问题与解

17、决方案1. 显示车辆出现问题1) 问题:养路费数据有问题以及功能3中显示车辆信息库要求每条记录占据一行,当前程序显示没有达到要求(图1。1)2) 解决方案:发现代码分别在169 201 233 282行由于复制出现问题,将top改为j后养路费数据正常(图1。2),使用setw设置域宽来控制显示将每条记录占据一行,修正后的正确显示(图1。3)图1.1图1。2图1.32. 文件无法自动创建问题1) 问题:这是开始编的读取文件功能,当D盘根目录存在a。txt文件时,功能运行正常。但当D盘根目录不存在a.txt文件时,会出现如下问题(即编译没问题,但运行时会停止工作,如图2。1图2。2)图2.1图2.

18、22)解决方案:这是修改后的读取文件功能函数(图2。3),函数增加了判断“是否能顺利读取文件”功能。如果不能,则创建a。txt文件再进行读取图2.33。删除车辆问题1)问题:这个问题是我们课程设计中遇到的最大的问题,困扰了我们很久,当车辆数量足够时,能成功删除车辆(图3.1- 3。3),当车辆删除到最后1辆时,界面显示剩余未发生改变,而存取的文档中车辆信息已经删除(图3。43。6)。图3.1图3。2图3。3图3。4图3.5图3.62)解决方案:将代码中的删除功能函数中算法进行改进,修正后即使车辆只有一辆也能删除,不会再出现1)中问题(图3.7-3.8)图3.7图3。8九、实验小结在我们课程设计

19、的任务书中,说明了课程设计的目的是根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统的设计与开发,深入复习并进一步掌握面向对象的程序设计思想与方法。同时,培养我们采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。这次课程设计是我们小组三个人历经一个多星期左右共同完成的,通过这一个多星期的学习、合作、交流,我们合作完成了车辆管理系统的程序设计。我们小组的三个人都是第一次做课程设计,面对我们所选的课程设计任务,一开始有点摸不着头脑,但在不断的分工,查找资料,合作交流后,我们逐步实现车辆管理系统中的功能要求。因为我们的小组长在课程设计之前就开始查阅资

20、料,完成了程序的总体设计,在组长的带领下我们小组完成了这次任务.在这次课程设计中,我们也遇到了很多问题,当我们完成了程序的大体设计以及函数功能实现后,发现在显示功能这部分出现问题,在我们查阅书本后,使用了我们不熟悉的一个操作符setw(int n)来设置域宽,解决了显示问题,但由于界面受限制,为保证每条记录占据一行,导致输入的数据受到一些限制。在这之后,我们解决了一个困扰我们很久的数据问题,显示界面中养路费数据始终为0,虽然我们小组有分工,每个人的能力也不同,但是在我们三个人集体讨论这个问题后,我们找到了问题的根源并解决了这个问题,也正是这个问题,让我们体会到了合作的意义以及团队的力量。除此之

21、外,在课程设计期间,遇到问题,也要学会向同学、老师请教,因为我们很可能一时思路受阻或者不熟悉某些操作,通过请教他人,能够迅速解决问题并学习到他人的长处。在课程设计中途,我们发现程序中的文件读取及功能函数中删除信息出现问题,影响了我们的进度,后来尝试了不同的方法,进行测试,并请教他人,对程序进行修改,完成了程序,在这次的问题中,我们遇到问题受到阻碍,心情也有些低落,本来以为已经完成了大部分,突然发现问题,感到一些压力,不过我们小组的人都没有放弃,一直坚持,不断尝试,最终一起努力完成了课程设计。当我们共同完成了这个课程设计,发现在这个过程中我们学习到了很多,得到了成长,学会与人沟通,与人合作,学会

22、虚心请教他人,将所学知识与实践相结合,我们的分析解决实际问题的能力得到了锻炼,并且更真切的感受到无论做什么都需要细心和耐心,小细节也会出大错,细心和耐心,才能发现问题并解决问题从而避免问题,坚持完成。这次课程设计我们参考了部分程序进行的,对我们来说是一个挑战和锻炼。我们在完成设计要求的基础上在程序中加入了自己的想法和其他程序内容,也就是对程序改进了一番,并有一些创新。虽然感觉我们的创新还不够典型,但经过这番修改,我们对修改的程序感到满意.由于时间的紧迫和对知识的了解不够广泛,造成了系统中可能还存在一些不足,以后我们会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我们充分认

23、识到了自己的不足,认识到了动手能力的重要性。我们会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!十、工作日志周一:我们通过共同讨论,有了各自的大致主要分工任务(A主要编写功能主函数的实现;黄晨茹主要负责代码的完善优化和实验报告;C主要负责调试代码和PPT)A在今天绘制了大致算法流程图,有了基本的设计雏形。编写了一些函数功能代码。黄晨茹在今天对一些功能函数有了优化的思路方向,并合作编写了一些函数功能实现的代码.C在今天对添加车辆函数进行了调试,并经过不断地测试调试将添加车辆函数错误基本解决。小组的每个成员对此次任务充满信心,今天都异常的激动。周二:我

24、们今天共同编写其他所有函数的功能代码,并对各项功能进行了测试。通过请教老师和同学们,我们完成的进度越来越快.A今天在编写文件存取功能上遇到了一些麻烦。通过查阅相关书籍,将文件的相关功能函数问题解决了.黄晨茹今天设计了输出车辆信息库函数,开始显示的每组数据上下都没对齐.后来运用了域宽函数出色的解决了每组数据的对齐格式,使显示更加漂亮.C今天对车辆信息编辑功能进行了调试,并着手准备PPT的制作.对开始编写的代码进行了再次测试,发现添加功能函数的一个漏洞。(即当添加一个卡车、大客车、小轿车之外的车时,还会添加车辆)周三:我们在今天将课程设计的整体设计功能函数全部编完,并能够编译运行,只是还残留有一些

25、小细节没有解决。A今天将剩余的删除功能、编辑功能等编写完毕。并对所有代码进行了大致的注释,使他人读代码时能快速明白设计的思路。黄晨茹今天将各功能函数的运行结果和错误代码进行了截图,还将错误代码的原因进行了解释,以方便完成接下来的实验报告.C对所有函数功能进行了调试。将有错的功能函数的代码进行修改。最后在删除车辆功能函数遇到一个小问题。(即删不掉系统里的最后一辆车,但文件的删除了)周四:我们小组通过在一起讨论分析,最后终于将那个删除函数功能代码彻底修复。程序可以完全无误地实现所有功能并运行。我们离胜利已经不远了。A今天将程序的源代码进行了优化,将重复的代码进行了更改替换,使代码相对较简洁一些.并

26、辅助C一起做PPT.黄晨茹今天在一起讨论分析代码错误中,突然一语道破那个困扰我们许久的问题,让我们激动万分,因为这就意味着程序设计代码彻底完成。她也开始编写实验报告。C今天在讨论出错误后,赶紧进入紧张的PPT制作中,为了让周五的PPT演示更成功,他不断地进行优化PPT界面.最终完成了,时间已经到第二天凌晨了。周五:我们一同上台进行了PPT演示和课程设计答辩,在答辩完成,黄晨茹开始撰写课程设计报告,A和C辅助黄晨茹完成。最终报告完成,大家的身上的担子彻底没了。虽然课程设计完成,大家都意识到团队合作的优势,确定了今后的目标。includestdio.h#includeconio.h”#includ

27、estdlib。hinclude”string。h”#define N 1000/N为可输入的学生总人数,可根据需要更改#define M 2/M为宏定义的(在创建密码函数中)可建立的登陆用户个数,可更改struct student/定义学生信息结构体数组char num9; /学号char name20; /姓名char depar15; /院系char zhuanye15; /专业char classes5;/班级char age3; /年龄char sex4; /性别char nation5;/民族char birth9; /出生日期char add10; /籍贯;struct code

28、/定义密码结构体数组char name20;char code7;coM,s0;/确认是否新创建密码文件模块int code()FILE *fp;if((fp=fopen(”学生学籍管理系统_code。txt”,rt))=NULL)printf(”密码文件不存在,请输入新的用户名及密码:n);/若不存在此密码文件,则提示用户创建密码printf(”请输入任意键继续!”);getch();system(”cls);return 1;/无密码文件返回1elsereturn 0;/已有密码文件返回0/新创建初始密码void code_input()FILE fp;int i;if(fp=fopen(

29、”学生学籍管理系统_code.txt”,wt))=NULL);/当建立密码文件成功时,进入for循环for(i=0;iM;i+)/M为宏定义的可建立的登陆用户个数,可更改printf(请录入第d个用户名:,i+1);/创建不同的用户名及密码scanf(s”,coi。name);printf(”请录入第%d个密码(最多6位):,i+1);scanf(”%s”,coi.code);printf(n);fwrite(&coi,sizeof(struct code),1,fp);/将密码保存进文件中fclose(fp);getch();system(”cls);/用户登陆验证模块int enter(c

30、har name120,char code16)FILE fp;int flog=0;int i;fp=fopen(”学生学籍管理系统_code。txt,”rt);/打开存放密码的文件for(i=0;iM;i+)fread(coi,sizeof(struct code),1,fp);/读密码文件if((strcmp(name1,coi.name)=0))/如果输入的用户名与已存在用户名相同,再比较密码是否相同,否则进行下一个用户名的比较if(strcmp(code1,coi.code)=0)) /比较此用户名下的密码是否一致 return 1; /验证成功后回到主函数if(i=M)/当比较完成

31、后,都没有符合条件的用户名与密码,则直接跳出程序printf(*您无权进入此管理系统!!*);fclose(fp);getch();exit(1);/从文件读入数据int read_file(struct student stu)FILE *sp;int i=0;system(”cls);if((sp=fopen(学生学籍管理系统_学生信息。txt”,”rt)=NULL)/读文件,若文件不存在,则需要创建一个新的文件(文件创建在save_file函数中完成)printf(”n学生学籍管理系统_学生信息文件不存在,请创建!n”);getch();system(”cls);return 0;whi

32、le((fread(stui,sizeof(struct student),1,sp)=1)/判断文件是否处在结束位置if(stui。num=0)/若文件内容为空,则跳出循环break;else/若文件内容不为空,i自加1。i+;/i为文件内结构体数组的数量fclose(sp);return i;/返回i值,代表文件中学生的人数/保存学生信息(保存在文件中)void save_file(struct student stu,int sum)FILE *sp;int i;if((sp=fopen(学生学籍管理系统_学生信息。txt,wb)=NULL)/若不存在此TXT文档,则创建;printf(

33、读文件错误!n);/创建不成功,返回menu函数;return;for(i=0;i=x(用户要求创建学生的人数)时,跳出输入信息的for循环;save_file(stu,x);/保存学生信息致文件printf(”录入完毕,请按任意键返回);getch();return i;/返回创建学生的人数/修改学生信息void modify(struct student stu,int sum)int i,item,a=1;/i控制数组下标,item控制子菜单的选择char s18;FILE sp;system(”cls”);read_file(stu,sum);/读函数doprintf(”nnn请输入你

34、要修改的学号:n);scanf(”%s,s1);/要修改的学生学号for(i=0;isum;i+)/查找此学生if(strcmp(stui。num,s1)=0)/若找到该生,输出该生的信息printf(该学生学号:%sn”,stui.num);printf(”该学生姓名:sn,stui.name);printf(”该学生院系:sn”,stui。depar);printf(该学生专业:sn,stui.zhuanye);printf(该学生班级:%sn”,stui.classes);printf(该学生性别:sn,stui.sex);printf(该学生年龄:sn,stui。age);printf

35、(”该学生出生日期:%sn”,stui。birth);printf(”该学生民族:%sn,stui。nation);printf(该学生籍贯:sn,stui.add);a=0;/找到该生,a=0;break;/出for循环if(a=1)/若没有找到该生,a=1,输出提示语句printf(”nn该学号不存在!请重新输入学号:n);while(a);/当a=0,即没有找到该生,则继续循环重新输入学生学号printf(”t*n);printf(”t你选择你要修改的选项:n);printf(t1。修改姓名n);printf(t2.修改年龄n);printf(t3.*修改性别n);printf(”t4.修改出生日期n”);printf(t5.*修改籍贯n); printf(t6.*修改院系名称n”);printf(t7.修改专业名称n);printf(t8.*修改班级n”);printf(”t9。修改民族n”);printf(”t0。*退出菜单n);printf(”t*n);while(1)printf(”nt请选择你要进行的操作:);scanf(”d”,item);/item控制子菜单的选择 switch(item)

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服