下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、下载可编辑题目基于 MFC 的多功能计算器设计一、设计目标编写一个计算器 。二、语言环境编程语言 :C+开发环境 :VS2017目标软件运行平台 :Windows 64位机三、软件功能 :1. 图形化界面 。2. 实现计算器的功能 。3. 输入加减乘除表达式 ,可以计算其结果 。4. 基本功能 :计算表达式 ,计算阶乘 ,计算组合数 ,次幂,求次幂后取余 ,简单的分数加减乘除计算 。5. 扩展功能 :在以上功能完成的基础上 ,可完成更高精度的计算 ,实现简单高精度的加减乘除阶乘运算 。.专业 .整理 .下载可编辑基于 MFC 的多功能计算器设计摘要计算器是人们日常生活中常见的电子产品之一,在人
2、们的生活中有着非常广泛的应用 ,随着科学的进步,计算器的种类和功能也更加丰富。本次课程设计旨在基于MFC 框架设计一个多功能计算器,能够实现含括号的表达式计算,三角函数 、开方、阶乘、排列组合等数学计算 ,进制转换 ,超过 long long范围的整数运算以及简单的分数四则运算 。此次设计的多功能计算器是基于MFC 的框架,以 C+ 编程语言完成的 ,计算器使用中缀表达式求值的算法计算含括号的表达式,使用C+ 标准库函数进行相应的数学计算 ,利用 Boost 库实现高精度的整数运算。本计算器不仅功能丰富,而且具有美观 、功能清晰且操作方便的界面。经多次测试 ,本计算器能即时准确地获得所需的计算
3、结果 ,并且能在输入错误时进行相应处理,充分降低了计算时的难度,节约了时间 。 通过本次课程设计,掌握了MFC 基本框架 ,对基本算法有了更加深入的了解。关键词:多功能计算器 ;MFC;C+ 编程语言 ;表达式计算 ;高精度.专业 .整理 .下载可编辑目录课题分析4总体设计5详细设计63.1 普通计算与科学计算63.2 高精度计算103.3 其他计算113.3.1 分数计算113.3.2 组合数计算113.3.3 进制转换11程序调试与问题解决114.1 输入表达式错误引发程序异常124.2 输入表达式格式有误134.3 计算排列组合溢出13运行结果14总结16.专业 .整理 .下载可编辑课题
4、分析本次设计为多功能计算器,需要实现多种功能 ,为了使界面更加美观 ,功能更加清晰明了,也为了让使用者便于操作,因此本计算器使用MFC 中的 Tab Control 控件对计算器进行分页 1 ,将计算器分为了四个板块,分别为 :普通计算 、科学计算 、高精度计算和其他计算 。普通计算板块不仅可以实现普通四则运算、次幂及取模的运算,还可以通过使用中缀表达式求值的算法计算表达式的值2 ;科学计算板块不仅包含普通计算板块中的功能,还可以进行三角函数、阶乘、根号以及对数的运算;高精度板块可以实现大整数的加减乘除次幂与取模计算;其他板块中含有分数的四则运算、组合数计算以及进制转换功能。程序总体功能框图如
5、图1。图 1 程序功能框图.专业 .整理 .下载可编辑总体设计图 2 所示为整体设计流程框图。由于本次课程设计要实现的功能较多,如果放到一个页面上 ,既不美观 ,功能也不清晰 ,于是本计算器使用了MFC 中的 Tab Control控件,将计算器分为四个部分,每个部分拥有不同的功能。打开本计算器后 ,计算器的变量自动初始化 ,接着用户选择自己所需要的功能模块进行操作。选择普通计算或者科学计算页面后,用户需要点击计算器上的按钮来输入所需计算的表达式 ,用户所输入的表达式会在编辑框中显示出来,当用户按下等于后,计算器会执行操作 ,计算当前编辑框中的值,并将结果返回到结果框中进行显示;否则,计算器会
6、继续等待用户输入。选择高精度计算的页面后,用户可以进行超过64 位整数的加减乘除 、次幂以及取模的连续运算 。 用户通过按钮输入两个变量以及运算符,按下等号即可得到答案,接着用户可以选择继续按下运算符,使用本次得到的答案作为变量继续运算,也可以重新输入进行运算 。.专业 .整理 .下载可编辑选择其他计算的页面之后,可以看到该页面分为三个部分,分别是分数计算 、组合数计算和进制转换。在分数计算部分 ,用户通过键盘输入分数的分子和分母,可以进行两个分数之间的加减乘除运算;在组合数计算部分 ,用户输入两个整数n 和 m ,点击计算后可以得到A(n,m) 与 C(n,m) 的值;在进制转换部分 ,用户
7、输入一个数字 ,选择当前数字的进制后 ,再点击需要转换的进制即可得到转换后的结果。图 2 整体设计流程图详细设计3.1 普通计算与科学计算科学计算板块与普通计算板块相比,新增了圆周率的按钮与三角函数、阶乘、根.专业 .整理 .下载可编辑号与对数的计算 ,其他功能与普通计算板块一致,因此一起说明 。首先,给编辑框添加类型为Value 的控件变量 ,变量类型为CString ,变量名为result 。 接下来为每个按键添加事件处理程序,并且给清空键C 添加bool型变量Restarted ,初始化为 true ;给等号添加 bool 型变量 OperatorPressed ,初始化为 true ;
8、给小数点添加 bool 型变量 pt ,初始化为 false ;给左括号和右括号分别添加int 型变量cntleft 和 cntright ,初始化为 0。每个按键的事件处理程序如下所述:( 1)按下 0 到 9 的数字按钮 。 先将编辑框中的内容更新到编辑框所对应的变量result中,判断上一次的按键是否为等于,或者上一次操作是否将编辑框清空,或者当前result 的末尾字符是否为 ” ) ”若,满足三个中任意一个 ,那么 result 等于现在所按下的字符,否则,在 result 末尾追加当前所按下的字符。更新当前编辑框关联变量result 的值到编辑框内 。具体流程如图 3a 所示 。图
9、 3a 按下数字按钮图 3b按下小数点按钮.专业 .整理 .下载可编辑(2)按下小数点按钮 。 如果当前数字中没有出现过小数点(pt 为 false)并且最后一位为运算符 ,则在 result 末尾追加 “0. ”否,则判断上一次按键是否为等于或上一次操作是否将编辑框清空或者result 的末尾是否为右括号 ,如果满足 ,那么也在末尾追加“0.”,否则在末尾追加 “.”。更新变量到编辑框 。过程如图 3b 所示 。图 3c 按下双目运算符按钮图 3d按下单目运算符按钮(3)按下运算符 。在本计算器中 ,有双目运算符和单目运算符两种。如图 3c 所示,按下双目运算符按钮后,首先需要判断当前已输入
10、字符串的末尾是否也是一个运算符,如果是则将之前的运算符替换为现在所按下的运算符,如果末尾是左括号,那么在末尾追加0 和当前的运算符 ;若前一位不是运算符且当前不是第一次按键,就在.专业 .整理 .下载可编辑字符串末尾追加该运算符,否则字符串等于该运算符。这样做就避免了输入错误而导致计算错误甚至程序崩溃。如图 3d 所示,按下单目运算符之后 ,将编辑中的字符转换为数字后进行计算,将结果转化为字符串显示出来即可。如果编辑框中还存在运算符,那么会取第一个运算符之前的数字进行运算。图 3e 按下左括号按钮图 3f按下右括号按钮(4)按下括号 。 如图 3e 所示,按下左括号后 ,先判断编辑框是否已经清
11、空,若是,则 result 等于左括号 ,否则,找到从右往左的第一个运算符,在该运算符后面加上一个左括号 ,左括号个数 cntleft 加一,更新 result 的值到编辑框 。 如图 3f 所示,按下右括号后 ,首先要判断右括号的个数是否少于左括号的个数,如果满足才能添加右括号,否则忽略该次添加操作 ;左括号个数大于右括号个数时,若 result 的最后一位就是左括号,那么在其后面添加0 和右括号 ,如果是其他运算符 ,那么去掉该运算符再添加右括号 ,如果是数字 ,则直接添加右括号 。右括号个数 cntright 加一,更新 result 的值到编辑框 。(5)退格按钮与清空按钮 。 按下退
12、格按钮时 ,若当前编辑框尚未清空,就将该字符串末尾一位删去,此时需要判断是否删除了左括号、右括号或者是小数点,删除左右括号时 ,对应的 cntleft 和 cntright 需要减一 ,删除小数点时 ,小数点的标志pt 要变为 false 。按下清空按钮时 ,编辑框内容显示0,所有变量重新初始化 。(6)按下等于按钮 。该处为本计算器的核心,使用了中缀表达式求值的算法,如图 3g 所示 。 由于输入的表达式是一个字符串 ,因此首先需要通过循环将其中的数字与字符提取出来 。 使用两个栈分别存放数字与运算符 3 ,如果当前运算符优先级比栈顶元素优先级高 ,则入栈 ,否则从数字栈中弹出两个元素 ,从
13、符号栈中弹出一个符号 ,计算其结果 ,再将结果压入数字栈 。 最后表达式的结果即为数字栈的栈顶元素 ,将该数字转化为字符串后更新到编辑框即可 。.专业 .整理 .下载可编辑图 3g 按下等于按钮3.2 高精度计算高精度计算部分可以进行连续的四则运算与取模、次幂的操作,每次两个变量参与运算,得到的结果可以继续作为一个变量参与下一次的运算 。在高精度计算当中,按钮的事件响应与普通计算和科学计算中的按键的事件响应是相似的,编辑框关联 CString 类型的变量 result ,给清空键添加 bool 类型变量 Restarted ,给等号添加bool 类型变量 OperatorPressed 。实现
14、高精度的方法有很多,此处选用了一种较为便捷又准确的操作,使用C+ 的Boost 库中的 multipleprecision工具。 输入需要计算的式子 ,按下等于即可进行计算,如果式子中包含两个及其以上的双目运算图 4 高精度计算符,只计算第一次出现的运算符和其前后的数字所得值,具体流程图如 4 所示。.专业 .整理 .下载可编辑3.3 其他计算3.3.1 分数计算分数计算中 ,用户输入待计算的两个分数,点击所需要进行的运算类型,再按下等号即可进行计算 。计算过程模拟手动计算过程,a/b+c/d= (a*d+b*c)/(b*d),a/b-c/d= (a*d-b*c)/(b*d),a/b*c/d=
15、ac/bd,a/b / c/d = a*d / b*c,最后再将得到的结果化简。将结果的分子与分母的GCD(最大公约数 )求出,分子与分母同时除以GCD 即可得到答案。3.3.2 组合数计算组合数计算中 ,用户输入整数 n 和 m ,点击计算按钮 ,即可求出 A(n,m) 与 C(n,m)的值 。 计算 过程 与手动计算过 程一 致,求得 n!,(n-m)!,A(n,m)=n!/(n-m)!, 求得m!,C(n,m)=A(n,m)/m!。3.3.3 进制转换进制转换中 ,用户在转换数字框中输入需要转换的数字,选择该数字当前进制,点击需要转换的进制即可在下方得到转换后的结果。由于输入的N 进制的
16、数字是字符串,因此计算器会先将输入的字符串转化为十进制的整数,接着调用 _itoa_s 函数将该十进制数进行进制转换 。程序调试与问题解决.专业 .整理 .下载可编辑4.1 输入表达式错误引发程序异常图 5 输入错误引发异常将基本功能编写完成开始测试程序时,发现,如果输入的表达式不规范,程序将会出现异常,如图5 所示 。引发该异常的错误输入有很多情况,经过多次反复测试 ,发现了以下几种会引发该异常的情况:( 1)连续输入运算符 。( 2)右括号个数多于左括号个数 。( 3)运算符后直接加上右括号 。( 4)以运算符开头或者左括号后直接加上运算符 。经过断点调试发现,计算器每次运算时,数字栈每次
17、弹出两个元素,符号栈弹出一个元素,但是进行以上不规范的操作,导致数字栈中元素只剩下一个时,符号栈中元素的个数仍然大于等于一 ,因此数字栈空时仍进行弹栈操作,出现错误 。做出以下处理 :( 1)在计算部分 ,每次判断数字栈或者符号栈是否为空 ,并且在输入时判断是否连续点击了运算符 ,如果是,只保留最后一次的运算符 。.专业 .整理 .下载可编辑( 2)保证右括号的个数恒小于等于左括号个数 。( 3)如果运算符后直接点击右括号按钮 ,则去掉该运算符后加上右括号 。( 4)若表达式以非 */% 运算符开头 ,则在前方补 0,若左括号为运算符 ,则在左括号与运算符之间补 0。4.2 输入表达式格式有误
18、除引发异常的错误输入外,还有多种错误的输入格式,有以下处理 :( 1)以小数点或运算符开头 。如表达式 “*3+5 ”“(.3+5) ”,在这种情况下 ,在小数点或者运算符前自动补零 ,使显示正确 。( 2)数字后加左括号 。如输入 “3+5( ”,根据 Windows 自带计算器的处理 ,该括号应该放在从右往左的第一个运算符之后 ,应显示为 “3+(5 ”。( 3)左括号后加右括号 。错误显示为 “()”,同样按照 Windows 自带计算器的处理 ,在两个括号中间补零 。( 4)一个数字中出现多个小数点 。 最初能够输入 “3.14159.2 ”这种不正确的数字 ,因此添加一个叫做 pt
19、的 bool 型变量,来判断该数字中是否已经出现过小数点 。4.3 计算排列组合溢出计算 A(100,50) 时,是将 100 的阶乘除以 50 的阶乘,这个数字显然超过了longlong的范围,因此此处选用 cpp_int 进行计算 。.专业 .整理 .下载可编辑运行结果图 6 普通计算板块( 1)选择普通计算板块 ,输入一个包含加减乘除 、次幂和取模的表达式 ,按下等于后 ,得到计算结果 ,与实际结果一致 。图 7 科学计算板块.专业 .整理 .下载可编辑( 2)选择科学计算板块 ,计算 sin( 98),计算结果与 Windows 自带计算器结果一致。图 8 高精度计算板块( 3)选择高
20、精度计算板块 ,计算 100!,计算结果与 Windows 自带计算器结果一致 。图 9a 分数计算板块 (一)图 9b 分数计算板块 (二)( 4)选择分数计算板块 ,计算 2/5 * 4/6 得到结果 4/15 ,与实际结果一致 ,如图 9a 所.专业 .整理下载可编辑示 。当输入的分数分母为0 时,分母显示 input error ,如图 9b 所示 。图 10a排列组合板块 (一)图 10b 排列组合板块 (二)( 5)选择计算排列组合板块 ,如图 10a 所示,计算 A(100,20) 与 C(100,20),结果与实际计算结果一致 。 如图 10b 所示,当输入的 n 小于 m 、
21、 n 小于零、m 小于零时 ,提示error 。图 11a进制转换板块 (一)图 11b 进制转换板块 (二)( 6)选择进制转换板块 ,如图 11a 所示,将十进制数 45487 转化为 16 进制数,得到结果 b1af ,与实际结果一致 ;如图 11b 所示,当输入的待转换数字的进制有误时 ,显示 input error 。总结本次课程设计 ,不仅可以让我们学习到新的知识,同时也能反应我们对所学知识的掌.专业 .整理 .下载可编辑握程度 。从最开始的茫然 ,不知道如何去 ,做到逐步掌握MFC 框架的基本应用 ,这段过程中 ,我的基础知识和技能,以及自己的自学能力都得到了很大的提高。此次课程
22、设计是用 C+ 语言编写的 ,并且使用了 MFC 框架 。在这个过程中 ,最明显的收获就是理解和较为熟练地掌握并利用了VS2017 开放工具来设计界面并编写程序。这个过程中最困难的不是做完一个简单的计算器,而是在初步完成之后不停地测试以及调试,发现程序中所存在的问题,并一一解决 。 这个过程毫无疑问是非常漫长的,但是我的收获却是非常丰富的。我懂得了在今后的工作发展和学习实践的过程中,要有细心与耐心,要肯付出努力 ,知难而上 。通过本次的课程设计,我的专业知识以及能力都得到了很大的提升 ,并且还让我了解到了自己可以提升的空间还有很大。在今后的学习生活和工作当中 ,都要独立思考 ,自己动手操作 ,
23、接受挑战 ,迎难而上 。.专业 .整理 .下载可编辑参考文献 :1 侯俊杰 .深入浅出 MFCM. 湖北 : 华中理工大学出版社 ,20012 王迤冉 ,王华东 .表达式求值的一种实现方法 J.周口师范学院学报 ,2001,18(2):31-333 李橙 ,丁 国栋 .栈 在表达式求 值中的应 用 J.电脑知识 与技 术, 2014 ( 34 ):8156-5157.专业 .整理 .下载可编辑/ CalculatorDlg.cpp:实现文件void CAboutDlg:DoDataExchange(CDataExchange*/pDX)#include stdafx.hCDialogEx:Do
24、DataExchange(pDX);#include Calculator.h#include CalculatorDlg.h#include afxdialogex.hBEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)#include mapEND_MESSAGE_MAP()#include stack#include Page1.h#include Page2.h/ CCalculatorDlg对话框using namespace std;#ifdef _DEBUG#define new DEBUG_NEWCCalculatorDlg:CCalculatorDl
25、g(CWnd* pParent#endif/*=NULL*/): CDialog(IDD_CALCULATOR_DIALOG, pParent)/ 用于应用程序 “关于 ”菜单项的 CAboutDlg对话框m_hIcon =class CAboutDlg : public CDialogExAfxGetApp()-LoadIcon(IDR_MAINFRAME);public:CAboutDlg();voidCCalculatorDlg:DoDataExchange(CDataExchange*/ 对话框数据pDX)#ifdef AFX_DESIGN_TIMEenum IDD = IDD_ABO
26、UTBOX ;CDialog:DoDataExchange(pDX);#endifDDX_Control(pDX, IDC_TAB1, m_tab);protected:virtual void DoDataExchange(CDataExchange*BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialog)pDX);/ DDX/DDV 支持ON_WM_SYSCOMMAND()ON_WM_PAINT()/ 实现ON_WM_QUERYDRAGICON()protected:ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1,DECLARE_MESSAG
27、E_MAP()&CCalculatorDlg:OnTcnSelchangeTab1);END_MESSAGE_MAP()CAboutDlg:CAboutDlg() :CDialogEx(IDD_ABOUTBOX)/ CCalculatorDlg消息处理程序BOOL CCalculatorDlg:OnInitDialog().专业 .整理 .下载可编辑CDialog:OnInitDialog();m_tab.InsertItem(2, _T(高精度 );m_tab.InsertItem(3, _T(其他 );/将“关于 .”菜单项添加到系统菜单中 。m_page1.Create(IDD_DIAL
28、OG1,GetDlgItem(IDC_TAB1);/ IDM_ABOUTBOX 必须在系统命令范围内 。m_page2.Create(IDD_DIALOG2,ASSERT(IDM_ABOUTBOX & 0xFFF0) =GetDlgItem(IDC_TAB1);IDM_ABOUTBOX);m_page3.Create(IDD_DIALOG3,ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);m_page3.MoveWindow(&rc);m_page4.MoveWindow(&rc);pSysMenu-AppendMenu(MF_STRING,IDM_A
29、BOUTBOX, strAboutMenu);/ 分别设置隐藏和显示m_page1.ShowWindow(true);m_page2.ShowWindow(false);m_page3.ShowWindow(false);/设置此对话框的图标 。 当应用程序主窗口不m_page4.ShowWindow(false);是对话框时 ,框架将自动/执行此操作m_tab.SetCurSel(0);SetIcon(m_hIcon, TRUE);/ 设置大图标/ 保存当前选择SetIcon(m_hIcon, FALSE);/ 设置小图标return TRUE; / 除非将焦点设置到控件,否则返回 TRUE
30、/ TODO:在此添加额外的初始化代码/SetWindowText(_T(Calculator);void CCalculatorDlg:OnSysCommand(UINT nID,LPARAM lParam)CRecttemprect(0, 0, 670, 450);CWnd:SetWindowPos(NULL, 0, 0,if (nID & 0xFFF0) = IDM_ABOUTBOX)temprect.Width(), temprect.Height(),SWP_NOZORDER | SWP_NOMOVE);CAboutDlg dlgAbout;/ 为 Tab Control 增加两个页
31、面dlgAbout.DoModal();m_tab.InsertItem(0, _T(普通 );m_tab.InsertItem(1, _T(科学 );else.专业 .整理 .下载可编辑CDialog:OnSysCommand(nID, lParam);void CCalculatorDlg:OnTcnSelchangeTab1(NMHDR*pNMHDR, LRESULT *pResult)/如果向对话框添加最小化按钮,则需要下面的代码/来绘制该图标 。 对于使用文档 / 视图模型的 MFC/ TODO: 在此添加控件通知处理程序代码应用程序 ,/这将由框架自动完成 。int CurSel
32、= m_tab.GetCurSel();void CCalculatorDlg:OnPaint()switch (CurSel)if (IsIconic()case 0:m_page1.ShowWindow(true);CPaintDC dc(this); /用于绘制的设备上下m_page2.ShowWindow(false);文m_page3.ShowWindow(false);m_page4.ShowWindow(false);SendMessage(WM_ICONERASEBKGND,break;reinterpret_cast(dc.GetSafeHdc(), 0);case 1:m_
33、page1.ShowWindow(false);/ 使图标在工作区矩形中居中m_page2.ShowWindow(true);int cxIcon =m_page3.ShowWindow(false);GetSystemMetrics(SM_CXICON);m_page4.ShowWindow(false);int cyIcon =break;GetSystemMetrics(SM_CYICON);case 2:CRect rect;m_page1.ShowWindow(false);GetClientRect(&rect);m_page2.ShowWindow(false);int x =
34、(rect.Width() - cxIcon + 1) / 2;m_page3.ShowWindow(false);int y = (rect.Height() - cyIcon + 1) / 2;m_page4.ShowWindow(true);break;/ 绘制图标case 3:dc.DrawIcon(x, y, m_hIcon);m_page1.ShowWindow(false);m_page2.ShowWindow(false);elsem_page3.ShowWindow(true);m_page4.ShowWindow(false);CDialog:OnPaint();break
35、;*pResult = 0;/ 当用户拖动最小化窗口时系统调用此函数取得光标/ 显示。HCURSOR CCalculatorDlg:OnQueryDragIcon()return static_cast(m_hIcon);.专业 .整理 .下载可编辑/ Page1.cpp :实现文件&CPage1:OnBnClickedButton0)/ON_BN_CLICKED(IDC_BUTTON1,&CPage1:OnBnClickedButton1)#include stdafx.hON_BN_CLICKED(IDC_BUTTON2,#include CalculatorDlg.h&CPage1:On
36、BnClickedButton2)#include Calculator.hON_BN_CLICKED(IDC_BUTTON3,#include Page1.h&CPage1:OnBnClickedButton3)#include afxdialogex.hON_BN_CLICKED(IDC_BUTTON4,#include map&CPage1:OnBnClickedButton4)using namespace std;ON_BN_CLICKED(IDC_BUTTON5,&CPage1:OnBnClickedButton5)/ CPage1对话框ON_BN_CLICKED(IDC_BUTT
37、ON6,&CPage1:OnBnClickedButton6)IMPLEMENT_DYNAMIC(CPage1, CDialogEx)ON_BN_CLICKED(IDC_BUTTON8,&CPage1:OnBnClickedButton8)CPage1:CPage1(CWnd* pParent /*=NULL*/)ON_BN_CLICKED(IDC_BUTTON9,: CDialogEx(IDD_DIALOG1, pParent)&CPage1:OnBnClickedButton9), OperatorPressed(true)ON_BN_CLICKED(IDC_BUTTON_plus, Re
38、started(true)&CPage1:OnBnClickedButtonplus), result(_T(0)ON_BN_CLICKED(IDC_BUTTON_sub, cntleft(0)&CPage1:OnBnClickedButtonsub), cntright(0)ON_BN_CLICKED(IDC_BUTTON_multi, pt(false)&CPage1:OnBnClickedButtonmulti), realans(_T()ON_BN_CLICKED(IDC_BUTTON_div,&CPage1:OnBnClickedButtondiv)ON_BN_CLICKED(IDC
39、_BUTTON_back,&CPage1:OnBnClickedButtonback)ON_BN_CLICKED(IDC_BUTTON_left,CPage1:CPage1()&CPage1:OnBnClickedButtonleft)ON_BN_CLICKED(IDC_BUTTON_right,&CPage1:OnBnClickedButtonright)ON_BN_CLICKED(IDC_BUTTON_mod,void CPage1:DoDataExchange(CDataExchange* pDX)&CPage1:OnBnClickedButtonmod)ON_BN_CLICKED(ID
40、C_BUTTON_clear,CDialogEx:DoDataExchange(pDX);&CPage1:OnBnClickedButtonclear)DDX_Text(pDX, IDC_EDIT1, result);ON_BN_CLICKED(IDC_BUTTON_power,DDX_Text(pDX, IDC_ans, realans);&CPage1:OnBnClickedButtonpower)ON_BN_CLICKED(IDC_BUTTON_equal,&CPage1:OnBnClickedButtonequal)ON_BN_CLICKED(IDC_BUTTON_point,BEGI
41、N_MESSAGE_MAP(CPage1, CDialogEx)&CPage1:OnBnClickedButtonpoint)END_MESSAGE_MAP()ON_BN_CLICKED(IDC_BUTTON7,&CPage1:OnBnClickedButton7)ON_BN_CLICKED(IDC_BUTTON0,/ CPage1消息处理程序.专业 .整理 .下载可编辑void CPage1:OnBnClickedButton0()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);int pos = result.GetLength() - 1;if (OperatorPressed = true | Restarted = true | result.GetAt(pos) = )result = 0;else result += 0;OperatorPresse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026版中西医结合风湿关节炎诊断治疗继续教育考试及答案
- 2026年中车北京二七车辆有限公司人员招聘笔试备考题库及详细答案解析
- 初一心理健康《心有千千结》教学设计
- 2026年5月医院感染预防与控制知识培训考试题有答案
- 2026年1+X失智老年人照护职业技能等级考试模拟试题及答案
- 初三科学物质分类与转化规律专题复习教学设计
- 2026年联通时科(北京)信息技术有限公司人员招聘考试参考题库及详细答案解析
- 2026年山东省财金投资集团有限公司人员招聘考试模拟试题及详细答案解析
- 2026年中石油新疆销售有限公司人员招聘笔试备考试题及详细答案解析
- 2026年中国邮政集团有限公司河北省分公司人员招聘考试备考试题及详细答案解析
- 2026交管12123学法减分题库500题(含标准答案+详细解析)
- 数字人才驱动新质生产力
- 2026版高考英语一轮总复习素养提升必修第二册Unit4HistoryandTraditions新人教版
- 氧舱年度检查报告
- 项目经费包干制管理制度
- 岩溶区人类活动与溶洞生态系统影响评估-洞察阐释
- “职”引未来(云南师范大学)知道智慧树章节答案
- 《新编大学生军事理论与技能(第2版)》全套教学课件
- 中建水厂建设工程施工组织设计编制指南
- 1+X网关用户手册 V100
- 装修工人合作协议
评论
0/150
提交评论