《软件设计方案基础C》课程设计方案报告书.docx
《《软件设计方案基础C》课程设计方案报告书.docx》由会员分享,可在线阅读,更多相关《《软件设计方案基础C》课程设计方案报告书.docx(13页珍藏版)》请在冰豆网上搜索。
《软件设计方案基础C》课程设计方案报告书
河北联合大学
2012-2013第2学期
《软件设计基础-C++》
课程设计报告
设计名称:
公路收费程序
姓名:
孙少臣学号:
201214670204
专业班级:
金属材料专业轧2班
学院:
冶金与能源学院
设计时间:
2013年5月10日至2013年7月1日
设计地点:
机房
指导教师评语:
教师评定:
自评成绩:
指导教师签字:
年月日
1.课程设计目的
2.课程设计任务与要求
3.课程设计说明书
4.课程设计成果
5.程序调试过程
6.设计问题的不足和改进方案
7.课程设计心得
8.参考文献
1.课程设计目的
《软件设计基础-C++》课程设计是这门课程的实践性教案环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C++这门课程的主要内容,养成良好的编程习惯,更好的完成教案任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《软件设计基础-C++》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:
(1)用模块化设计思想来完成程序的设计
(2)要求各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,要求使用头文件;
3.课程设计说明书
概要设计
模块说明:
在我设计的程序中一共包括四个模块,分别是统计小客车数和收费小计模块、统计客车的车辆数和收费小计模块、统计公汽的车辆数和收费小计模块、收费处理模块。
这四个模块中统计小客车数和收费小计模块、统计客车的车辆数和收费小计模块、统计公汽的车辆数和收费小计模块都是独立分开作为子函数的,另外一个包含着switch语句,通过switch语句,把其他三大模块联系起来,同时,为了实现多次继续输入数据,就在obj.dispiay()后加个switch语句来达到继续输入数据的效果。
模块结构图:
详细设计
总体流程图:
.:
各功能模块流程图:
1
2
3
4
4.课程设计成果
#include
constintunitcar=10。
constintunittruck=25。
constintunitbus=15。
classFree
{
intcar,carfee。
inttruck,truckfee。
intbus,busfee。
public:
Free()
{
car=carfee=truck=truckfee=bus=busfee=0。
}
voidcars()
{
car++。
carfee+=unitcar。
}
voidtrucks()
{
truck++。
truckfee+=unittruck。
}
voidbuss()
{
bus++。
busfee+=unitbus。
}
voidprocess()
{
intno,n=0。
cout<<"1:
小客车2:
卡车3:
公汽0:
退出"<while
(1)
{
cout<<""<<++n<<"-车型:
"。
cin>>no。
switch(no)
{
case0:
break。
case1:
cars()。
break。
case2:
trucks()。
break。
case3:
buss()。
break。
default:
cout<<"车型输入错误!
"<}
if(no==0)break。
}
}
voiddisplay()
{
cout<<"收费统计如下:
"<cout<<"小客车:
"<"<cout<<"卡车:
"<"<cout<<"公汽:
"<"<cout<<"收费合计:
"<}
}。
voidmain()
{
Freeobj。
inti。
obj.process()。
obj.display()。
while
(1)
{
cout<<"是否继续输入?
"<<"1:
是0:
否"<cin>>i。
switch(i)
{
case1:
obj.process()。
break。
case0:
break。
default:
cout<<"输入错误!
"<}
obj.display()。
if(i==0)break。
}
}
开始界面为:
输入数据后界面:
停止输入后最后结果界面:
5.程序调试过程
1先进行人工检查,即静态检查。
在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。
2在人工检查无误后,才可以上机调试。
通过上机发现错误称动态检查。
在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。
如果系统提示的出错信息多,应当从上到下一一改正。
有时显示出一大片出错信息往往使人感到问题严重,无从下手。
其实可能只有一二个错误。
3在改正语法错误后,程序经过连接就得到可执行的目标程序。
运行程序,输入程序所需数据,就可得到运行结果。
应当对运行结果作分析。
看它是否符合要求。
有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。
4运行结果不对,大多属于逻辑错误。
对这类错误往往需要仔细检查和分析才能发现。
问题:
1、编译时就会对所有含该变量的语句发出出错信息
2、显示出一大片出错信息
3、一段程序调试多次都有一个错误,在包含stalfsa.h头文件出现问题
原因:
1、对使用的变量未定义
2、少了“}”或多了“}”,书写语句时忘记写“;”或是全角的“;”了
3、本计算机不存在这个文件,只能找另一个iostream,h替换
6.设计问题的不足和改进方案
(1)对自己的程序自我评价
虽然我设计的这段程序可以基本完成题目要求,但还有待完美改善,总的来说,优缺点都多少有点,这段程序可以方便的记录各类车型的车辆数和收费情况,但其功能比较少,使用面比较小,需进一步改善。
(2)对课题提出更加完善的改进方案
对于本课题,如果能更全面的记录车辆信息,如记录车牌号、车型、驾驶人信息等,与生活中的公路收费更接近。
7.课程设计心得
第一次接触c++这个东西真的让人感觉到有许多的陌生感,虽然一开始觉得很难,但学着学着就发现它越来越有意思。
我想学了这么久,课程设计是最能展示出学习成果的。
在这次设计中,一次次的失败让我感到十分的无力,但是我还是坚持做了下来,尽管仍然不完美,但是我想我尽力了,这次设计让人遗憾的是收费界面和管理界面没能分开。
在这次课程设计中,我对c++的强大功能有了更进一步的认识。
为了能够准确地设计出程序,我多次核对课本上的知识,对程序进行了很大的改进。
当遇到自己不能解决的问题时,也上网查询的许多的信息,同时也向其他同学进行了的咨询。
终于完成了现在的课程设计!
在这次设计中,遇到的了许多问题。
如数据库的连接,汽车的信息显示,再到各个独立功能的实现,一步步走来收获颇多。
其中数据库的连接及信息显示是碰到的主要的问题,起初我想用列表控件实现数据库中逐条记录的显示,但是我始终无法与数据库连接上,后来又改为编辑框可是还是无法连接,最后我发现错误在于我基于的是对话框,所以才无法实现与数据库的相连,后来我把所有的控件都建在了主窗口才得以实现。
还有很多问题,都在权衡之后在我的能力范围内得到了较优的解决方法。
我希望在未来的c++道路上能够走的更远。
8.参考文献
1、《数据结构(c语言版)例题详解与课程设计指导》第二版
袁志祥、秦锋主编
中国科学技术大学出版社出版
2、《C++程序设计》
谭浩强主编
清华大学出版社