陈文进面向对象程序设计.docx
《陈文进面向对象程序设计.docx》由会员分享,可在线阅读,更多相关《陈文进面向对象程序设计.docx(9页珍藏版)》请在冰豆网上搜索。
陈文进面向对象程序设计
《C++面向对象程序设计》
课程设计
专业:
数学与应用数学
学号:
0909402-27
姓名:
陈文进
指导教师:
向旭宇
成绩:
2018年1月4日
目录
1.实验报告目的…………………………………………………3
2.实验报告题目描述和要求……………………………………3
3.实验报告内容…………………………………………………4
3.1题目求解的理论依据……………………………………4
3.2操作流程图………………………………………………13
3.3程序调试出错信息及解决方法…………………………14
3.4要程序运行结果…………………………………………15
3.5心得体会…………………………………………………19
参考书目…………………………………………………………19
用VC++制作一个简易仿真计算器
1.课程设计目的
1.1掌握VC++利用MFC创建对话框和添加标准控件的方法
1.2熟悉应用程序框架的创建方法及应用
1.3理解VC++编程和系统开发应用
2.课程设计题目描述和要求
2.1课程设计题目描述
随着人类科技日新月异,科技计算量越来越大。
传统的手工计算已经完全不适应新时代的数字计算,手工计算不仅容易出错,而且耗时相当长。
所以我开发了一个简易仿真计算器的软件平台,用以方便学生在学习期间,提高学习效率,减轻学生负担。
用VC++制作一个仿真计算器系统,在系统的设计中主要实现以下一些功能:
加减乘除运算功能、小数点运算功能、sin运算功能、平方运算功能、和一键清除功能等等。
2.2课程设计要求
2.2.1该仿真计算器应通过点击VC++不同的button按键发送消息给对应的消息处理函数,实现各自按键不同的功能。
2.2.2该仿真计算器的功能包括加减乘除运算功能、小数点运算功能、三角运算功能、平方开方开n次方运算功能、各类对数运算功能,简单括号运算和一键清除功能。
2.2.3该仿真计算器的界面包括数值输入区,各类运算区,显示区。
2.3课程设计分组
2.3.1组长:
刘雷
组员:
陈文进
本人负责:
平方,开根号,开x次方功能的实现。
显示之前四则运算操作功能和求余运算功能的实现。
为对话框中编辑框控件添加对应的关联成员变量和各类对数运算功能。
全部三角运算功能和全部程序代码的调试。
3.实验报告内容
3.1题目求解的理论依据及算法
(1)在计算器界面上按下所输入的数值1,系统自动把数值1赋给编辑框关联成员变量doublem_s1,在输入数值1的过程中如果按下了小数点的键,则改变了inthuanxiaoshudian的值,并且多次数值键时通过doublexiaoshudian3可以使得系统接收多位小数。
然后按下所选运算符的按键,系统把doublem_s1的值赋给公有成员变量doublea1,并且把doublem_s1重新赋值为0,且改变intyunsuanfu的数值。
为后面通过选择语句执行对应运算。
继续按数值键,输入数值2,系统自动把数值2赋给编辑框关联成员变量doublem_s1,之后按下等于键,系统把doublem_s1赋值给doubles2,系统根据intyunsuanfu的值和对应的选择语句,执行对应的运算,并且将对应结果赋值给doublem_s1,编辑框显示运算结果。
(2)利用宏定义#definePI3.14159为后面的三角运算提供PI=3.14159。
(3)如果需要进行括号运算,系统初始化intkuohaobianliang为1,
按下左括号键后,变量值改为2,之后的运算进入括号运算,直到按下右括号键,算出括号内运算值,并将该值赋给doublem_s1。
(4)利用宏定义#definee2.705为后面的对数运算提供e值为2.705
主要数据结构
类公有成员变量说明
(1)inthuanxiaoshudian。
在按下小数点键之后通过对应的消息处理函数,改变该变量值使得继续按键输入的是小数。
(2)doublexiaoshudian3。
在按下小数点键之后通过对应的消息处理函数,改变该变量值使得继续按键,以后每一次按键输入的数是紧接着前面的数,实现正常的小数的输入。
(3)doubles2。
在按下等于键之后通过对应的消息处理函数,将m_s1的值赋给s2,从而s2保存了运算数2,为后面的运算做准备
(4)intyunsuanfu。
在按下某一运算符键之后通过对应的消息处理函数,改变该变量值为后面通过选择语句执行对应运算
(5)doublea1。
在按下运算键之后通过对应的消息处理函数,将m_s1的值赋给a1,从而a1保存了运算数1,为后面的运算做准备
(6)doublem_s1。
控件IDC_EDIT1的关联成员变量,储存数值和将数值显示在显示框。
(7)CStringm_xianshibuzhu。
控件IDC_EDIT2的关联成员变量,将之前的操作步骤显示在显示框IDC_EDIT2。
(8)#definePI3.14159为后面的三角运算提供PI=3.14159
(9)charcomputerchar。
在实现将操作步骤显示在显示框IDC_EDIT2中,在按下运算符键时,将对应运算符的字符存储于charcomputerchar中。
(10)intkuohaobianliang。
该变量初始值为1,按下左括号键后,变量值改为2,之后的运算进入括号运算,直到按下右括号键,算出括号内运算值,并将该值赋给doublem_s1。
本人负责内容:
[13]开平方,e的x次方,x的y次方,以e为底x的对数,以10为底x的对数的运算的类成员函数与平方运算的类成员函数
voidCJisuanqiDlg:
:
OnBUTTONpingfang()对应类似
开平方voidCJisuanqiDlg:
:
OnBUTTONgenhao()
e的x次方voidCJisuanqiDlg:
:
Onex()
x的y次方voidCJisuanqiDlg:
:
OnButton21()以e为底x的对数voidCJisuanqiDlg:
:
Onlnx()以10为底x的对数voidCJisuanqiDlg:
:
Onlog10()
[14voidCJisuanqiDlg:
:
OnBUTTONzuokuohao()
是类CJisuanqiDlg的共有成员函数kuohaobianliang的初始值为1,通过改变量值kuohaobianliang=9为后面voidCJisuanqiDlg:
:
OnBUTTONyoukuohao()函数通过选择语句执行对应括号内运算(执行括号内运算)。
voidCJisuanqiDlg:
:
OnBUTTONzuokuohao()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData()。
computerchar='('。
m_xianshibuzhu=m_xianshibuzhu+computerchar。
kuohaobianliang=2。
UpdateData(FALSE)。
}
[15]voidCJisuanqiDlg:
:
OnBUTTONyoukuohao()与
voidCJisuanqiDlg:
:
OnButton14()的功能类似,有一点不同在于该函数执行的是括号内运算。
[16]voidCJisuanqiDlg:
:
OnQiuyu()
类CJisuanqiDlg的共有成员函数,改变变量值yunsuanfu=15后面通过选择语句执行对应运算(执行求余运算)。
voidCJisuanqiDlg:
:
OnQiuyu()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData()。
yunsuanfu=15。
a1=m_s1。
m_s1=0。
UpdateData(FALSE)。
}
[17]voidCJisuanqiDlg:
:
Onezhi()
类CJisuanqiDlg的共有成员函数,通过语句进行e的运算
voidCJisuanqiDlg:
:
Onezhi()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData()。
m_s1=m_s1*e。
UpdateData(FALSE)。
}
3.2操作流程图
制作简单仿真计算器基本流程图
3.3程序调试出错信息及解决方法
3.3.2平方开方三角运算功能
3.3.2.1出错信息
D:
\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(425):
errorC2065:
'sin':
undeclaredidentifier
D:
\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(430):
errorC2065:
'sqrt':
undeclaredidentifier
D:
\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(435):
errorC2065:
'cos':
undeclaredidentifier
D:
\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(440):
errorC2065:
'tan':
undeclaredidentifier
3.3.2.2解决办法
没有为程序添加对应头文件#include“math.h”进而导致错误发生,应在对应头文件区域添加头文件#include“math.h”
3.4主要程序运行结果
3.4.2平方开方三角运算功能
通过验证sin(0.25PI)=cos(0.25PI)=0.7071063
tan(0.25PI)=0.99999992的平方为4和64的开方为8
lne=1log10^100=2actan1=PI/4。
acsin0=0accos0=1
说明平方开方对数三角运算功能达到预期目标,功能成功实现。
图3-24运算tan(0.25PI)的值
3.4.4显示之前四则运算的操作步骤如图3-27
3.4.5求余运算功能如图3-28
3.5心得体会
在这次课程设计中,首先对面向对象编程及MFC应用程序理论知识有了系统地学习。
在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我通过查找大量资料,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,实验报告,我学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
当然在实验报告的过程中也遇到了不少问题,经常程序运行错误,可经过细心检查,反复思考,加上老师和同学的帮助使问题得以解决。
通过这次实验报告,激励了我以后更好地学习,结合理论、善于实践,使自己有更好的提高!
最后感谢老师给予我们的帮助!
参考文献:
[1]王育坚VisualC++面向对象编程教程(第二版)北京:
清华大学出版社,2007