车辆标准管理系统专业课程设计方案报告C
时间:2020-10-30 12:33:51 来源:勤学考试网 本文已影响 人
课程设计汇报
课程设计题目:车辆管理系统
学生姓名:A B C
专 业:软件工程
班 级:16*****
指导老师:*祥 **康
(完整源代码和注释在我上次另一篇文章里)
20XX年 6 月 18 日
东华理工大学
课程设计评分表
学生姓名:A 班级16***** 学号:20XX20XX****
课程设计题目:
项目内容
满分
实 评
选
题
能结合所学课程知识、有一定能力训练。符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文件及利用文件资料能力
10
理论依据充足,数据正确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能表现发明性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语正确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清楚
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范正确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总 分
100
指导老师评语:
指导老师署名:
年 月 日
格式要求:
汉字正文使用五号字体,英文及代码使用小五号字体
东华理工大学
课程设计评分表
学生姓名:B 班级16***** 学号:20XX20XX****
课程设计题目:
项目内容
满分
实 评
选
题
能结合所学课程知识、有一定能力训练。符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文件及利用文件资料能力
10
理论依据充足,数据正确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能表现发明性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语正确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清楚
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范正确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总 分
100
指导老师评语:
指导老师署名:
年 月 日
格式要求:
汉字正文使用五号字体,英文及代码使用小五号字体
东华理工大学
课程设计评分表
学生姓名:C 班级16***** 学号:20XX20XX****
课程设计题目:
项目内容
满分
实 评
选
题
能结合所学课程知识、有一定能力训练。符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文件及利用文件资料能力
10
理论依据充足,数据正确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能表现发明性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语正确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清楚
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范正确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总 分
100
指导老师评语:
指导老师署名:
年 月 日
格式要求:
汉字正文使用五号字体,英文及代码使用小五号字体
【目录】
题目 …………………03
课程设计任务 …………………03
数据结构 …………………04
四、模块划分 …………………04
程序总体设计 …………………05
步骤图 …………………06
七、关键源程序代码(附件源代码) …………………09
八、测试情况及调试中问题和处理方案 …………………10
九、试验小结及心得 …………………15
十、工作日志 …………………16
十一、东华理工大学评分表 …………………17
一、题目:车辆管理系统设计
二、课程设计任务:
车辆管理系统关键负责多种车辆常规信息管理工作。
系统中车辆关键有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造企业、车辆购置时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基础维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。
每台车辆当月总费用=油价*耗油量/公里+基础维护费用。
基础维护费用:客车:20XX元/月,小轿车:1000元/月,卡车:1500元/月。
(1)添加车辆:关键完成车辆信息添加,要求编号唯一。当添加了反复编号时,则提醒数据添加反复并取消添加;当车辆信息库已满,则提醒不能再添加新数据。
(2)查询车辆:可根据三种方法来查询物品,分别为:按车辆制造企业查询:输入车辆制造企业,输出所查询信息,若不存在该统计,则提醒“该车辆制造企业不存在!”;按编号查询:输入编号,输出所查询信息,若不存在该统计,则提醒“该编号不存在!”;按类别查询:输入类别,输出所查询信息,若不存在统计,则提醒“该类别没有车辆!”;
(3)显示车辆信息库:输出目前车辆信息库中全部车辆信息,每条统计占据一行。
(4)编辑功效:可依据查询结果对对应统计进行修改,修改时注意编号唯一性。
(5)删除车辆:关键完成车辆信息删除。假如目前车辆信息库为空,则提醒“车辆信息库为空!”,并返回操作;不然,输入要删除编号,依据编号删除该车辆统计,假如该编号不在车辆信息库库中,则提醒“该编号不存在”。
(6)统计信息:输出目前车辆信息库中总物品数,和按车辆类别,统计出目前车辆信息库中各类别物品数并显示。
(7)车辆信息存盘:将目前途序中车辆信息存入文件中。
(8)读出车辆信息:从文件中将车辆信息读入程序。。
要求:
1、用C++语言实现程序设计;
2、利用类和对象数组实现信息数据结构设计;
3、系统各个功效模块要求用函数形式实现;
4、界面友好(良好人机交互),程序加必需注释。
三、数据结构
Cars
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; //申明为友元
Manager
int people[N]; //最大载客量(大客车)
int coach[N]; //箱数(小轿车)
int weight[N]; //载重量(卡车)
int top; //统计目前车辆数量
Manager(){top = 0;}//车辆初始值为0
void add(); //添加车辆
void search(); //查询车辆
void show(); //显示车辆信息库
void edit(); //编辑功效
void delet(); //删除车辆
void sum(); //统计信息
void write(); //车辆信息存盘
void read(); //读出车辆信息
void jiemian(); //总界面
四、模块划分
车辆信息添加
车辆信息添加
车辆信息查询
车辆信息显示
车辆信息编辑
车辆信息删除
退出系统
车辆管理系统
五、程序总体设计
·类设计:
class Cars
{
public:
int num; //编号
int pnum; //车牌号
char made[20]; //制造企业
double time; //购置时间(多少个月)
int type; //型号(1-大客车,2-小轿车,3-卡车)
double km; //总公里数
int cost; //基础维护费用
int RoadFee; //养路费
double OilKm; //耗油量/公里
double AllCount;//累计总费用
};
class Manager
{
private:
Cars car[N];
int people[N]; //最大载客量(大客车)
int coach[N]; //箱数(小轿车)
int weight[N]; //载重量(卡车)
int top; //统计目前车辆数量
public:
Manager(){top = 0;}//车辆初始值为0
void add(); //添加车辆
void search(); //查询车辆
void show(); //显示车辆信息库
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(); //读出车辆信息
void write(); //车辆信息存盘
void 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];
else
cout<<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();
}
八、测试情况及调试中问题和处理方案
以下几点分别为我们在课程设计期间测试情况及调试中问题和处理方案
显示车辆出现问题
问题:养路费数据有问题和功效3中显示车辆信息库要求每条统计占据一行,目前途序显示没有达成要求(图1.1)
处理方案:发现代码分别在169 201 233 282行因为复制出现问题,将top改为j后养路费数据正常(图1.2),使用setw设置域宽来控制显示将每条统计占据一行,修正后正确显示(图1.3)
图1.1
图1.2
图1.3
文件无法自动创建问题
问题:这是开始编读取文件功效,当D盘根目录存在a.txt文件时,功效运行正常。但当D盘根目录不存在a.txt文件时,会出现以下问题(即编译没问题,但运行时会停止工作,图2.1-图2.2)
图2.1
图2.2
2)处理方案:这是修改后读取文件功效函数(图2.3),函数增加了判定“是否能顺利读取文件”功效。假如不能,则创建a.txt文件再进行读取
图2.3
3.删除车辆问题
1)问题:这个问题是我们课程设计中碰到最大问题,困扰了我们很久,当车辆数量足够时,能成功删除车辆(图3.1- 3.3),当车辆删除到最终1辆时,界面显示剩下未发生改变,而存取文档中车辆信息已经删除(图3.4-3.6)。
图3.1
图3.2
图3.3
图3.4
图3.5
图3.6
2)处理方案:将代码中删除功效函数中算法进行改善,修正后即使车辆只有一辆也能删除,不会再出现1)中问题(图3.7-3.8)
图3.7
图3.8
九、试验小结
在我们课程设计任务书中,说明了课程设计目标是依据软件工程方法和步骤,在相对集中实训教课时间内,经过一个功效较完整小型应用系统设计和开发,深入复习并深入掌握面向对象程序设计思想和方法。同时,培养我们采取面向对象方法分析问题和处理问题能力及团体组织和协作能力。这次课程设计是我们小组三个人历经一个多星期左右共同完成,经过这一个多星期学习、合作、交流,我们合作完成了车辆管理系统程序设计。
我们小组三个人全部是第一次做课程设计,面对我们所选课程设计任务,一开始有点摸不着头脑,但在不停分工,查找资料,合作交流后,我们逐步实现车辆管理系统中功效要求。因为我们小组长在课程设计之前就开始查阅资料,完成了程序总体设计,在组长率领下我们小组完成了这次任务。在这次课程设计中,我们也碰到了很多问题,当我们完成了程序大致设计和函数功效实现后,发觉在显示功效这部分出现问题,在我们查阅书本后,使用了我们不熟悉一个操作符setw(int n)来设置域宽,处理了显示问题,但因为界面受限制,为确保每条统计占据一行,造成输入数据受到部分限制。在这以后,我们处理了一个困扰我们很久数据问题,显示界面中养路费数据一直为0,即使我们小组有分工,每个人能力也不一样,不过在我们三个人集体讨论这个问题后,我们找到了问题根源并处理了这个问题,也正是这个问题,让我们体会到了合作意义和团体力量。除此之外,在课程设计期间,碰到问题,也要学会向同学、老师请教,因为我们很可能一时思绪受阻或不熟悉一些操作,经过请教她人,能够快速处理问题并学习到她人优点。在课程设计中途,我们发觉程序中文件读取及功效函数中删除信息出现问题,影响了我们进度,以后尝试了不一样方法,进行测试,并请教她人,对程序进行修改,完成了程序,在这次问题中,我们碰到问题受到阻碍,心情也有些低落,原来认为已经完成了大部分,忽然发觉问题,感到部分压力,不过我们小组人全部没有放弃,一直坚持,不停尝试,最终一起努力完成了课程设计。当我们共同完成了这个课程设计,发觉在这个过程中我们学习到了很多,得到了成长,学会和人沟通,和人合作,学会虚心请教她人,将所学知识和实践相结合,我们分析处理实际问题能力得到了锻炼,而且更真切感受到不管做什么全部需要细心和耐心,小细节也会出大错,细心和耐心,才能发觉问题并处理问题从而避免问题,坚持完成。这次课程设计我们参考了部分程序进行,对我们来说是一个挑战和锻炼。我们在完成设计要求基础上在程序中加入了自己想法和其它程序内容,也就是对程序改善了一番,并有部分创新。即使感觉我们创新还不够经典,但经过这番修改,我们对修改程序感到满意。因为时间紧迫和对知识了解不够广泛,造成了系统中可能还存在部分不足,以后我们会继续努力,大胆创新,争取能编写出透射着自己思想程序。这次课程设计让我们充足认识到了自己不足,认识到了动手能力关键性。我们会在以后学习中愈加努力锻炼自己,提升自己,让自己写出愈加好更完善程序,为以后编程打好基础!
十、工作日志
周一:我们经过共同讨论,有了各自大致关键分工任务(A关键编写功效主函数实现;黄晨茹关键负责代码完善优化和试验汇报;C关键负责调试代码和PPT)
A在今天绘制了大致算法步骤图,有了基础设计雏形。编写了部分函数功效代码。
黄晨茹在今天对部分功效函数有了优化思绪方向,并合作编写了部分函数功效实现代码。
C在今天对添加车辆函数进行了调试,并经过不停地测试调试将添加车辆函数错误基础处理。
小组每个组员对此次任务充满信心,今天全部异常激动。
周二:我们今天共同编写其它全部函数功效代码,并对各项功效进行了测试。经过请教老师和同学们,我们完成进度越来越快。
A今天在编写文件存取功效上碰到了部分麻烦。经过查阅相关书籍,将文件相关功效函数问题处理了。
黄晨茹今天设计了输出车辆信息库函数,开始显示每组数据上下全部没对齐。以后利用了域宽函数出色处理了每组数据对齐格式,使显示愈加漂亮。
C今天对车辆信息编辑功效进行了调试,并着手准备PPT制作。对开始编写代码进行了再次测试,发觉添加功效函数一个漏洞。(即当添加一个卡车、大客车、小轿车之外车时,还会添加车辆)
周三:我们在今天将课程设计整体设计功效函数全部编完,并能够编译运行,只是还残留有部分小细节没有处理。
A今天将剩下删除功效、编辑功效等编写完成。并对全部代码进行了大致注释,使她人读代码时能快速明白设计思绪。
黄晨茹今天将各功效函数运行结果和错误代码进行了截图,还将错误代码原因进行了解释,以方便完成接下来试验汇报。
C对全部函数功效进行了调试。将有错功效函数代码进行修改。最终在删除车辆功效函数碰到一个小问题。(即删不掉系统里最终一辆车,但文件删除了)
周四:我们小组经过在一起讨论分析,最终最终将那个删除函数功效代码根本修复。程序能够完全无误地实现全部功效并运行。我们离胜利已经不远了。
A今天将程序源代码进行了优化,将反复代码进行了更改替换,使代码相对较简练部分。并辅助C一起做PPT。
黄晨茹今天在一起讨论分析代码错误中,忽然一语道破那个困扰我们许久问题,让我们激动万分,因为这就意味着程序设计代码根本完成。她也开始编写试验汇报。
C今天在讨论犯错误后,赶快进入担心PPT制作中,为了让周五PPT演示更成功,她不停地进行优化PPT界面。最终完成了,时间已经到第二天凌晨了。
周五:我们一同上台进行了PPT演示和课程设计答辩,在答辩完成,黄晨茹开始撰写课程设计汇报,A和C辅助黄晨茹完成。最终汇报完成,大家身上担子根本没了。即使课程设计完成,大家全部意识到团体合作优势,确定了以后目标。