资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
《C++面向对象程序设计》
课程设计
专 业: 数学与应用数学
学 号: 0909402-27
姓 名: 陈文进
指导教师: 向旭宇
成 绩:
年 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赋给编辑框关联成员变量double m_s1, 在输入数值1的过程中如果按下了小数点的键, 则改变了int huanxiaoshudian的值, 而且多次数值键时经过double xiaoshudian3能够使得系统接收多位小数。然后按下所选运算符的按键, 系统把double m_s1的值赋给公有成员变量double a1, 而且把double m_s1重新赋值为0, 且改变int yunsuanfu的数值。为后面经过选择语句执行对应运算。继续按数值键, 输入数值2, 系统自动把数值2赋给编辑框关联成员变量double m_s1, 之后按下等于键, 系统把double m_s1赋值给double s2, 系统根据int yunsuanfu的值和对应的选择语句, 执行对应的运算, 而且将对应结果赋值给double m_s1, 编辑框显示运算结果。
( 2) 利用宏定义 #define PI 3.14159为后面的三角运算提供PI=3.14159。( 3) 如果需要进行括号运算, 系统初始化int kuohaobianliang为1,
按下左括号键后, 变量值改为2, 之后的运算进入括号运算, 直到按下右括号键, 算出括号内运算值, 并将该值赋给double m_s1。
( 4) 利用宏定义 #define e 2.705 为后面的对数运算提供e值为2.705
主要数据结构
类公有成员变量说明
( 1) int huanxiaoshudian; 在按下小数点键之后经过对应的消息处理函数, 改变该变量值使得继续按键输入的是小数。
( 2) double xiaoshudian3; 在按下小数点键之后经过对应的消息处理函数, 改变该变量值使得继续按键, 以后每一次按键输入的数是紧接着前面的数, 实现正常的小数的输入。
( 3) double s2; 在按下等于键之后经过对应的消息处理函数, 将m_s1的值赋给s2, 从而s2保存了运算数2, 为后面的运算做准备
( 4) int yunsuanfu; 在按下某一运算符键之后经过对应的消息处理函数, 改变该变量值 为后面经过选择语句执行对应运算
( 5) double a1; 在按下运算键之后经过对应的消息处理函数, 将m_s1的值赋给a1, 从而a1保存了运算数1, 为后面的运算做准备
( 6) double m_s1; 控件IDC_EDIT1 的关联成员变量, 储存数值和将数值显示在显示框。
( 7) CString m_xianshibuzhu; 控件IDC_EDIT2 的关联成员变量, 将之前的操作步骤显示在显示框IDC_EDIT2。
( 8) #define PI 3.14159 为后面的三角运算提供PI=3.14159
( 9) char computerchar; 在实现将操作步骤显示在显示框IDC_EDIT2中, 在按下运算符键时, 将对应运算符的字符存储于char computerchar 中。
( 10) int kuohaobianliang; 该变量初始值为1, 按下左括号键后, 变量值改为2, 之后的运算进入括号运算, 直到按下右括号键, 算出括号内运算值, 并将该值赋给double m_s1。
本人负责内容:
[13]开平方,e的x次方, x的y次方, 以e为底x的对数, 以10为底x的对数的运算的类成员函数与平方运算的类成员函数
void CJisuanqiDlg::OnBUTTONpingfang() 对应类似
开平方 void CJisuanqiDlg::OnBUTTONgenhao()
e的x次方 void CJisuanqiDlg::Onex()
x的y次方 void CJisuanqiDlg::OnButton21()
以e为底x的对数 void CJisuanqiDlg::Onlnx()
以10为底x的对数 void CJisuanqiDlg::Onlog10()
[14 void CJisuanqiDlg::OnBUTTONzuokuohao()
是类CJisuanqiDlg的共有成员函数kuohaobianliang的初始值为1, 经过改变量值kuohaobianliang=9 为后面void CJisuanqiDlg::OnBUTTONyoukuohao()函数经过选择语句执行对应括号内运算( 执行括号内运算) 。
void CJisuanqiDlg::OnBUTTONzuokuohao()
{
// TODO: Add your control notification handler code here
UpdateData();
computerchar='(';
m_xianshibuzhu=m_xianshibuzhu+computerchar;
kuohaobianliang=2;
UpdateData(FALSE);
}
[15]void CJisuanqiDlg::OnBUTTONyoukuohao()与
void CJisuanqiDlg::OnButton14()的功能类似, 有一点不同在于该函数执行的是括号内运算。
[16] void CJisuanqiDlg::OnQiuyu()
类CJisuanqiDlg的共有成员函数, 改变变量值yunsuanfu=15后面经过选择语句执行对应运算( 执行求余运算) 。
void CJisuanqiDlg::OnQiuyu()
{
// TODO: Add your control notification handler code here
UpdateData();
yunsuanfu=15;
a1=m_s1;
m_s1=0;
UpdateData(FALSE);
}
[17] void CJisuanqiDlg::Onezhi()
类CJisuanqiDlg的共有成员函数, 经过语句进行e的运算
void CJisuanqiDlg::Onezhi()
{
// TODO: Add your control notification handler code here
UpdateData();
m_s1=m_s1*e;
UpdateData(FALSE);
}
3.2操作流程图
制作简单仿真计算器基本流程图
利用MFC 创立一个标准对话框
为对话框添加所需的各种标准控件
为对话框中编辑框控件添加对应的关联成员变量
添加功能
加减乘除的四则运算
数的各类次方开方 三角运算 求余运算
简单括号运算
小数点运算
一键清除
显示之前四则运算操作
编制过程代码
运行结果
调
试
3.3程序调试出错信息及解决方法
3.3.2平方 开方 三角运算功能
3.3.2.1出错信息
D:\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(425) : error C2065: 'sin' : undeclared identifier
D:\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(430) : error C2065: 'sqrt' : undeclared identifier
D:\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(435) : error C2065: 'cos' : undeclared identifier
D:\我的C语言作业\实验报告和课程设计\课程设计\jisuanqi\jisuanqiDlg.cpp(440) : error C2065: 'tan' : undeclared identifier
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.9999999 2的平方为4 和64的开方为8
lne=1 log10^100=2 actan1=PI/4。acsin0=0 accos0=1
说明平方 开方 对数 三角运算功能达到预期目标, 功能成功实现。
图3-24运算 tan( 0.25PI) 的值
3.4.4显示之前四则运算的操作步骤 如图3-27
3.4.5求余运算功能 如图3-28
3.5心得体会
在这次课程设计中, 首先对面向对象编程及MFC应用程序理论知识有了系统地学习。在收获知识的同时, 还收获了阅历, 收获了成熟, 在此过程中, 我经过查找大量资料, 以及不懈的努力, 不但培养了独立思考、 动手操作的能力, 在各种其它能力上也都有了提高。更重要的是, 实验报告, 我学会了很多学习的方法。而这是日后最实用的, 真的是受益匪浅。要面对社会的挑战, 只有不断的学习、 实践, 再学习、 再实践。当然在实验报告的过程中也遇到了不少问题, 经常程序运行错误, 可经过细心检查, 重复思考, 加上老师和同学的帮助使问题得以解决。经过这次实验报告, 激励了我以后更好地学习, 结合理论、 善于实践, 使自己有更好的提高!
最后感谢老师给予我们的帮助!
参考文献:
[1]王育坚 Visual C++面向对象编程教程( 第二版) 北京: 清华大学出版社,
展开阅读全文