- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MFC的面向对象多功能计算器设计
一、需求分析
1、设计背景
计算器是日常生活中十分便捷有效的工具,计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。但是目前很多计算器的功能过于简单化,精确度也不高。本次设计的基于MFC的VC++面向对象多功能计算器,实现了功能的多样化,使用非常简单和方便,增加了使用者的选择性,应用范围大为提高,更加符合现在社会使用者的要求。
2、计算器功能
系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作。即可单机按钮进行操作,也可直接通过键盘直接输入。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间.该计算器不但功能上比一般的计算器多很多,而且精度上也提高了不少。根据目前的背景分析所知道的社会需求以及本人平时在课堂上蒋老师所讲的知识,参考相关资料,本次设计所实现的功能:
一般计算机所具有的加、减、乘、除、开方、清零功能
进行二进制、八进制、十进制、十六进制之间的转换
有退格功能
进行度数和弧度的Sin 、arcSin 、Cos、 arcCos 、Cot 、arcCot 、Tan 、arcTan运算
进行x^y x^2 x^3运算
进行ln log运算
输出结果的精确度为小数点后六位
8) 程序可以能自动判断输入数据的正确性和操作数据的正确性,若有错去会提醒。
二、概要设计
设计基础
Microsoft Visual C++提供了利用MFC编写程序的方法,这大大提高了软件的开发,提高编程的效率。MFC提供了大量预定义的类和支持代码,可以处理许多标准Windows编程任务,如生成窗口和处理消息,加入各种复杂的特性,如工具栏、OLE支持、Active控件非常的方便和高效。本次软件即是基于MFC进行设计,基于MFC库类进行对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现计算功能。使用C++,在VC下进行编写。
软件主体框架
总体设计思路流程图如图1
图1 计算器总体设计思路流程图
详细设计
1、程序流程及解释
1.1
图2为主要关系图:
图2 主要关系图
1.2功能模块流程图举例
1)输入数字的流程图,以输入数字1为例(如图3):
图3 输入数字1流程图
2)四则运算、x^2、x^3、x^y、取模、log、ln和开方运算的流程图(以开方运算为例,如图4)
图4 开方运算流程图
3)三角函数运算流程图,以sin运算为例,如图5
图5 sin运算流程图
2、函数模块
#include stdafx.h
#include Calculator.h
#include CalculatorDlg.h
#include math.h
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define PI 3.1415926535897932384626433832795
// CAboutDlg dialog 应用程序
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CCalculatorDlg dialog
CCalculatorDlg::CCalculatorDlg(CWnd* pParent)
: CDialog(CCalculatorDlg::IDD, pParent)
{
m_EDIT = _T();
temp=_T();
op=#;
a=b=r=0;
first=second=result=0;
m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME)
文档评论(0)