《软件设计基础C++》课程设计报告书.docx
- 文档编号:6166294
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:18
- 大小:294.33KB
《软件设计基础C++》课程设计报告书.docx
《《软件设计基础C++》课程设计报告书.docx》由会员分享,可在线阅读,更多相关《《软件设计基础C++》课程设计报告书.docx(18页珍藏版)》请在冰豆网上搜索。
《软件设计基础C++》课程设计报告书
河北联合大学
2011-2012第2学期
《软件设计基础-C++》
课程设计报告
设计名称:
购置车辆保险费用计算器
姓名:
王山学号:
201114310320
专业班级:
建筑环境与设备工程(3)班
学院:
建筑工程学院
设计时间:
2012年5月28日
设计地点:
河北联合大学
成绩:
指导教师评语:
指导教师签字:
年月日
目录
1.课程设计目的
2.课程设计任务与要求
3.课程设计说明书
4.课程设计成果
5.程序调试过程
6.设计问题的不足和改进方案
7.课程设计心得
8.参考文献
1.课程设计目的
《软件设计基础-C++》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C++这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《软件设计基础-C++》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:
1、设计内容:
根据输入的车型(1:
小客车 2:
卡车 3:
公共汽车)、汽车排量和购车金额、保险年限等计算不同保险公司所收取的车辆保险费用金额。
2、设计要求:
(1)使用VisualC++中的MFCAppWizard创建基于对话框的应用程序;
(2)使用VisualC++中的资源编辑器对程序的对话框进行可视化编辑,实现程序所需的操作界面;
(3)编辑对话框所对应的对话框类,添加成员变量来操纵控件,建立按铵的消息映射和消息映射函数,最后编写函数代码实现其功能
3.课程设计说明书
概要设计
模块说明:
在我设计的程序中一共包括了四个模块:
车辆基本信息模块、联系人信息模块、输出结果模块、信息的输出与重置模块。
外部的显示的框架结构中,车辆排量、保险年限均用switch选择结构来对当前的保险金额做一个百分比的划分,以计算出最后的实际价格。
行驶区域、车牌号码、购车时间均直接显示车辆信息。
内部计算的框架结构当中,车辆损失险、第三者责任险、全车抢盗险、玻璃损失险、车辆自燃险全部采用if-else选择结构来计算不同车型的不同的保险项目的保险金额。
输出结果模块中,显示出各项保险类型的保险金额及汇总的保险金额。
模块结构图:
车辆保险计算器模块结构图
详细设计
总体流程图:
车辆保险计算器总体流程图
各功能模块流程图:
各按钮和编辑框等对象的属性
对象
ID
标题或说明
按钮
IDC_EDIT1
车牌号码
按钮
IDC_EDIT2
购车金额
按钮
IDC_EDIT5
联系人姓名
按钮
IDC_EDIT6
电子邮件
按钮
IDC_EDIT7
结果显示
按钮
IDC_EDIT8
联系人手机号码
按钮
IDC_RADIO1
男士
按钮
IDC_RADIO2
女士
按钮
IDC_RADIO4
卡车
按钮
IDC_RADIO5
公共汽车
按钮
IDC_RADIO_MINBUS
小客车
按钮
IDC_COMBO1
行驶区域
按钮
IDC_COMBO5
保险年限
按钮
IDC_COMBO6
汽车排量
按钮
IDC_COMBO7
邮件尾码
按钮
IDC_DATETIMEPICKER2
购车时间
按钮
IDC_BUTTON1
快速报价
按钮
IDC_BUTTON2
重置
4.课程设计成果
1、源代码:
#include"stdafx.h"
#include"852.h"
#include"Calculate.h"
#ifdef_DEBUG
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#definenewDEBUG_NEW
#endif
CCalculate:
:
CCalculate()
{
m_Thrid=0;
SetCarType(0);
SetTime(0);
SetCC(0);
SetMoney(0);
}
CCalculate:
:
~CCalculate()
{
}
intCCalculate:
:
GetCar()
{
returnm_CarType;//返回输出车的类型
}
voidCCalculate:
:
SetCarType(inti)
{
m_CarType=i;
}
voidCCalculate:
:
SetTime(intt)
{
m_Time=t;
switch(t)//保险年限的保险费用折扣的选择结构
{
case0:
m_TimeDiscount=1;
break;
case1:
m_TimeDiscount=0.98;
break;
case2:
m_TimeDiscount=0.95;
break;
default:
m_TimeDiscount=1;
break;
}
}
voidCCalculate:
:
SetCC(intcc)
{
m_CC=cc;
switch(cc)
{
case0:
//车辆排量的保险费用折扣的选择结构
m_CCDiscount=0.95;
break;
case1:
m_CCDiscount=0.98;
break;
case2:
m_CCDiscount=1;
}
}
voidCCalculate:
:
SetMoney(doublemoney)
{
m_Money=money;
}
voidCCalculate:
:
SetThrid(doublet)
{
m_Thrid=t;
}
doubleCCalculate:
:
GetDamageMoney()
{
if(0==m_CarType)//车辆损失险针对于不同车型的选择计算结构
{
return630+m_Money*0.01;
}
elseif(1==m_CarType)
{
return630+m_Money*0.02;
}
else
{
return630+m_Money*0.03;
}
}
doubleCCalculate:
:
GetThird()
{
if(0==m_CarType)//第三者责任险针对于不同车型的选择计算结构
{
SetThrid(2000);
return2000;
}
elseif(1==m_CarType)
{
SetThrid(5000);
return5000;
}
else
{
SetThrid(3000);
return3000;
}
}
doubleCCalculate:
:
GetStealMoney()
{
if(0==m_CarType)//车辆抢盗险针对于不同车型的选择计算结构
{
returnm_Money*0.015;
}
elseif(1==m_CarType)
{
return630+m_Money*0.025;
}
else
{
return630+m_Money*0.035;
}
}
doubleCCalculate:
:
GetGlassMoney()
{
if(0==m_CarType)//玻璃破碎险针对于不同车型的选择计算结构
{
returnm_Money*0.001;
}
elseif(1==m_CarType)
{
returnm_Money*0.002;
}
else
{
returnm_Money*0.003;
}
}
doubleCCalculate:
:
GetselfigniteMoney()
{
if(0==m_CarType)//车辆自燃损失险针对于不同车型的选择计算结构
{
returnm_Money*0.0015;
}
elseif(1==m_CarType)
{
returnm_Money*0.0025;
}
else
{
returnm_Money*0.0035;
}
}
doubleCCalculate:
:
GetDutyMoney()
{
returnm_Thrid*0.2;//无过责任险
}
doubleCCalculate:
:
GetTeyueMoney()
{
if(0==m_CarType)//不计免赔特约保险
{
return(GetDamageMoney()+m_Thrid)*0.1;
}
elseif(1==m_CarType)
{
return(GetDamageMoney()+m_Thrid)*0.2;
}
else
{
return(GetDamageMoney()+m_Thrid)*0.3;
}
}
2、运行结果:
本个保险计算器的计算项目包括:
1、车辆损失保险费2、第三者责任保险费
3、全车抢盗保险费4、玻璃单独破碎保险费
5、自然损失保险费6、无过责任险
7、不计免赔特约保险费
本次车辆保险计算器针对于三种车型:
1、小客车2、卡车3、公共汽车
三种不同的车型有三种不同的计算方法,其中最主要的部分是三种车型保险费的费率不同,输入车辆信息和个人信息后,框架中显示出各种保险费的金额以及最后汇总的保险金额。
5.程序调试过程
写出程序调试步骤,及遇到的问题。
1、程序的开展步骤:
(1)建立AppWizard[exe]工程,工程名称为车辆保险计算器
(2)定义程序类型为基本对话框
(3)点击IDD-MY-DIALOG出来框图架,
(4)更改静态控件属性标题
(5)对信息编辑框进行属性编辑
(6)对快速报价建立类向导,将各个项目保险的函数联系起来。
2、遇到的问题:
1、编译时提示错误:
c:
\documentsandsettings\administrator\桌面\新建文件夹
(2)\3\3dlg.cpp(4):
fatalerrorC1083:
Cannotopenprecompiledheaderfile:
'Debug/3.pch':
Nosuchfileordirectory
执行cl.exe时出错.
解决方案:
经过调试之后,发现出现这个问题的原因是,工程→设置→C++→预编译头文件→自动使用预补偿页眉,开始系统自定义的是选择使用预补偿页眉文件。
所以经过查询资料并调试之后,问题得以解决。
2、重做时调用其他工程中的对话框资源后编译链接运行后还是本来有的那个对话框,后来将原先的对话框资源删除并将调用的对话框的ID改为原先的对话框的ID,再次编译链接运行之后没有反应了。
解决方案:
经过多次摸索发现调用过来的对话框是关联了菜单了,而新建的工程里没有菜单,因此将调用的对话框取消与菜单的关联,再次再次编译链接运行之后一切正常。
6.设计问题的不足和改进方案
这个这个车辆保险计算器的设计缺陷和改进措施:
1、计算器的计算保险金额的保险项目不够完善,与保险公司的实际保险类别还相差一定项目的保险类别。
改进方案:
通过网络查询各个保险公司网站的保险率,并且通过对比,然后以唐山保险费额的计算,将保险率尽可能的符合实际。
2、计算器的界面设计不够漂亮,仅仅是单一色彩的框架结构。
改进方案:
深入学习MFC的教学内容,学习框架结构的颜色的运用,将计算器的可视化程度增强。
3、程序的选择结构上尚存在问题,车型若未选择,却可以默认计算出小客车的保险金额。
改进方案:
在程序结构上深入学习一下,在框架结构上作出错误信息提示的小窗口。
4、计算器的输入框和下拉窗口没有信息的错误提示。
改进方案:
在代码中,新增加一个信息错误提示的窗口。
7.课程设计心得
经过将近半个月的自学MFC内容,终于设计出符合题目要求的汽车保险计算器。
在这半个月的时间内,我在同学的帮助,并且自己看教学视频,模仿教学视频的内容来一遍遍的尝试,顺利完成该课程设计,这个设计过程当中我感觉自己收获很大。
现在终于明白“纸上谈兵终觉浅,觉知此事要躬行”这个道理。
所以,这学期的C++课程设计是锻炼我们的一次好机会,这次课程设计不仅能加深我们对MFC程序设计的掌握,而且为以后的自主学习打下了坚实的基础。
在此次的课程设计当中,我深深领悟到:
1、学会自主学习。
提高自己查询信息的能力,善于运用周围的资源,图书馆、网络来寻求帮助。
开始着手设计程序时,感觉自己无从下手。
但是,经过在图书馆计算机书架查询一番之后,发现关于MFC内容的资料还是很多的,所以,经过把图书馆的资料整合,教学视频的引导之后,终于自己头脑中有个清晰的脉络层次。
2、善于多询问问题。
开始做车辆保险计算器界面的时候,经过网络查询,感觉还是不能将计算器设计达到自己心中理想的程度,于是,经过打保险公司的客服电话,经过详细的了解,客服人员给予了我很大的帮助,对我完成这次课程设计起到了很大的帮助。
3、注重细节很关键。
这次课程设计,一个预编译的头文件的错误选择,影响了我开始课程设计的进程,仅仅这一个小小的问题,最后经过计算机专业同学的帮助下才得以解决,因此,我深深感悟到细节决定成败。
这次课程设计让我学到了很多,不仅自学了MFC程序设计知识,而且也培养了我的动手能力和独立思考的能力,更令我的创造性思维得到拓展。
这次课程设计让我体会到独立创造出成果的自豪感和喜悦感!
8.参考文献
[1]王育坚.VisualC++面向对象编程教程.清华大学出版社,2005
[2]罗丽琼.VisualC++6.0使用与开发.清华大学出版社,2006
[3]求是科技.C&C++实效编程百例.人民邮电出版社,2004
[4]吴金平.VisualC++6.0编程与实践,中国水利水电出版社,2005
[5]陈清华.VisualC++课程设计案例精选与编程指导.东南大学出版社,2004
[6]VisualC++6.0简易计算器编程的教学视频
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计基础C+ 软件设计 基础 课程设计 报告书