《软件设计基础-C》课程设计报告书

《软件设计基础-C》课程设计报告书本文简介:河北联合大学2012-2013第2学期《软件设计基础-C++》课程设计报告设计名称:公路收费程序姓名:孙少臣学号:201214670204专业班级:金属材料专业轧2班学院:冶金与能源学院设计时间:2013年5月10日至2013年7月1日设计地点:机房指导教师评语:教师评定:自评成绩:指导教师签字:*
《软件设计基础-C》课程设计报告书本文内容:
河北联合大学
2012-2013第2学期
《软件设计基础-C++》
课程设计报告
设计名称:
公路收费程序
姓
名:
孙少臣
学
号:
201214670204
专业班级:
金属材料专业轧2班
学
院:
冶金与能源学院
设计时间:
2013年5月10日至2013年7月1日
设计地点:
机房
指导教师评语:
教师评定:
自评成绩:
指导教师签字:*年*月*日
《软件设计基础-C++》课程设计报告
第
18
页,共
18
页
目
录
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语句来达到继续输入数据的效果。
模块结构图:
开始
统计小客车数和收费小计
统计客车的车辆数和收费小计
统计公汽的车辆数和收费小计
各类车型的车辆数和收费小计,
合计总的收费金额
⑵详细设计
开始
总体流程图:
.:
Unitcar=10;
Unittruck=25;
Unitbus=10;
Car=0,carfee=0
Truck=0,truckfee=0
Bus=0,busfee=0
输入3
输入2
输入1
Void
buss()
{
bus++;
busfee+=unitbus;
}
Void
trucks()
{
truck++;
truckfee+=unittruck;
}
Void
cars()
{
car++;
carfee+=unitcar;
}
输出:
小客车:car
辆
收费小计:
carfee
卡车
:truck
辆
收费小计:
truckfee
公汽
:bus
辆
收费小计
:busfee
收费合计
:carfee+truckfee+busfee
各功能模块流程图:
1
Void
cars()
{
car++;
carfee+=unitcar;
}
统计小客车数和收费小计
2
Void
trucks()
{
truck++;
truckfee+=unittruck;
}
统计客车的车辆数和收费小计
3
Void
buss()
{
bus++;
busfee+=unitbus;
}
统计公汽的车辆数和收费小计
4
输出:
小客车:car
辆
收费小计:
carfee
卡车
:truck
辆
收费小计:
truckfee
公汽
:bus
辆
收费小计
:busfee
收费合计
:carfee+truckfee+busfee
各类车型的车辆数和收费小计,合计总的收费金额
4.课程设计成果
#include
const
int
unitcar=10;
const
int
unittruck=25;
const
int
unitbus=15;
class
Free
{
int
car,carfee;
int
truck,truckfee;
int
bus,busfee;
public:
Free()
{
car=carfee=truck=truckfee=bus=busfee=0;
}
void
cars()
{
car++;
carfee+=unitcar;
}
void
trucks()
{
truck++;
truckfee+=unittruck;
}
void
buss()
{
bus++;
busfee+=unitbus;
}
void
process()
{
int
no,n=0;
cout
no;
switch
(no)
{
case
0:break;
case
1:cars();break;
case
2:trucks();break;
case
3:buss();break;
default:cout
<<
“车型输入错误!“<<
endl;
}
if(no==0)
break;
}
}
void
display()
{
cout
<<
“收费统计如下:“<<
endl;
cout
<<
“小客车:“<<
car
<<
“辆
收费小计:“<<
carfee
<<
endl;
cout
<<
“卡车:“<
i;
switch(i)
{
case
1:
obj.process();break;
case
0:
break;
default:
cout<<“输入错误!“<<
endl;
}
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++程序设计》
谭浩强主编
清华大学出版社
