C++课程设计简单计算器设计报告书.docx
- 文档编号:26611219
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:13
- 大小:112.16KB
C++课程设计简单计算器设计报告书.docx
《C++课程设计简单计算器设计报告书.docx》由会员分享,可在线阅读,更多相关《C++课程设计简单计算器设计报告书.docx(13页珍藏版)》请在冰豆网上搜索。
C++课程设计简单计算器设计报告书
湖北第二师范学院
《面向对象程序设计》
课程设计报告书
题目:
设计一个简单的计算器
系部:
计算机学院
专业:
班级:
姓名:
学号:
同组人员:
指导老师:
设计时间:
2014年05月24日~2014年06月14日
目录
1.课程设计计划3
2.前言3
3.需求分析4
4.概要设计5
5.详细设计6
6.技术难点与分析7
7.心得体会8
8.致谢9
9.参考文献9
1.课程设计计划
(根据自己的实际情况来写)
序号
起始日期
工作内容
01
2014-05-25——2014-05-26
选取题目,构造基本类图
02
2014-05-28——2014-05-29
构造函数,了解如何连接到数据库
03
2014-06-07——2014-06-08
上网查找代码,观看视频了解MFC
04
2014-06-12——2014-06-13
了解各个函数和大部分代码的含义
05
2014-06-14——2014-06-15
加深对代码的理解,整理设计报告
2.前言
(主要叙述本课题的意义、研究范围及要求达到的技术参数;简述本课题应解决的主要问题。
)
计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、
平方等简单运算的工具。
要实现计算功能,可以用VC++的知识编写程序来解决
此问题。
该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。
该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有很大的帮助作用。
3.需求分析
(主要内容包括本课程设计题目、课程设计任务、课程设计思想、软硬件运行环境及开发工具。
)
系统目标:
设计的计算器至少能够进行简单的四则运算和求倒数求反以及开方运算。
主体功能:
程序能实现:
加,减,乘,除,开方,平方等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。
4.概要设计
(主要叙述本课题设计的流程图(各功能模块)、主要的数据结构、主要函数功能介绍、函数间的调用关系等,附main()函数源代码或伪代码。
)
该程序源代码来自CSDN,由于涉及到MFC,下载该代码后,阅读相关资料,基本了解了该程序的设计过程。
(1)流程图
(2)编辑资源
5.详细设计
(主要内容:
自己所负责的模块数据流程图、主要技术源代码以及注释、用户界面及用户使用手册等)
计算器主要功能的实现
1)0~9数字的代码(如下)
voidCCalculatorDlg:
:
OnButton1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"1";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton2()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"2";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton3()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"3";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton4()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"4";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton5()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"5";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton6()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"6";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton7()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"7";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton8()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"8";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton9()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"9";
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton0()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_str=m_str+"0";
UpdateData(FALSE);
}
2)加减乘除法的实现:
voidCCalculatorDlg:
:
OnButtonJia()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
SaveValue1();
m_iSign=0;
}
voidCCalculatorDlg:
:
OnButtonJian()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
SaveValue1();
m_iSign=1;
}
voidCCalculatorDlg:
:
OnButtonCheng()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
SaveValue1();
m_iSign=2;
}
voidCCalculatorDlg:
:
OnButtonChu()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
SaveValue1();
m_iSign=3;
}
3)平方、开方的实现
voidCCalculatorDlg:
:
OnButtonPingFang()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_fNumber1=atof(m_str);
doublef=m_fNumber1*m_fNumber1;
//如果浮点数其实是个整数
if(f-int(f)<=1e-5)
{
m_str.Format("%d",(int)f);
}
else
{
m_str.Format("%f",f);
}
UpdateData(FALSE);
m_fNumber1=f;
m_fNumber2=0.0f;
m_iSign=4;
}
voidCCalculatorDlg:
:
OnButtonKaiFang()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
m_fNumber1=atof(m_str);
doublef=sqrt(m_fNumber1);
//如果浮点数其实是个整数
if(f-int(f)<=1e-5)
{
m_str.Format("%d",(int)f);
}
else
{
m_str.Format("%f",f);
}
UpdateData(FALSE);
m_fNumber1=f;
m_fNumber2=0.0f;
m_iSign=5;
}
4)用户界面
6.技术难点与分析
(主要内容:
本课题在设计过程中所遇到的技术难点及解决方法。
)
在设计该课程的时候,原本自己写这个代码,后发现计算器的核心其实并不难以实现,用C语言足以解决,看到论坛上的大神都说C++写计算器,最好用MFC,可惜未学过MFC,于是便查阅相关书籍,在此过程中,遇到并基本解决了以下问题:
1)关于MFC,自己通过阅读相关书籍,观看孙鑫老师的视频,基本了解MFC,并对整个程序的构造有了基本的了解
2)关于每一个按钮功能的实现,设置了一个触发事件,这个多看了一段时间的例题才解决
3)关于后退的功能,这个是计算器必须带有的,后退是这一段代码的实现
voidCCalculatorDlg:
:
OnButtonBack()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
//移除最右边一个字符
if(!
m_str.IsEmpty())
{
m_str=m_str.Left(m_str.GetLength()-1);
}
UpdateData(FALSE);
}
查阅资料和XX后基本理解了
4)代码里还有部分函数当时未能看懂,经过老师的指导后,加上自己XX,基本弄懂了。
7.心得体会
(主要对本课题开发过程进行归纳和总结,还应包括所得结果与已有结果的比较和本课题尚存在的问题,以及进一步开发的见解与建议。
感谢对本课程设计完成过程中曾直接给予帮助的人员)
通过本次程序设计,使我认识到,自己目前掌握的知识还比较浅薄,需要更加努力学习才能掌握更多的知识,才能用自己的代码实现自己想要的函数;代码自己不会写,其实网上有很多优秀的代码,可以借鉴,只要加深理解,能够将他们掌握,也能变成自己的知识;遇到问题后,自己不能解决的,需要借助其他的方法来解决,比如说是搜索,或是请教他人,与他人的交流,能够是自己举一反三,想到更多的问题;程序设计看似一个解决问题的过程,实际上是一次实现自己想法的过程,只要用心,才能产生兴趣,才能继续有探索的念头,问题才能得以解决。
8.致谢
(以简短的文字对在设计研究和设计报告撰写过程中曾直接给予帮助的人员表示自己的谢意)
9.参考文献
(在课程设计过程中曾参考或引用过的书籍、文献以及网络资源列表)
1)面对对象程序设计教程(C++语言描述)
2)数据库系统概论
3)CSDN论坛
4)孙鑫老师教学视频
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 简单 计算器 设计 报告书