任务1——开发一个简单计算器程序-基于对话框
利用对话框实现简单的计算的实验演示
利用对话框实现简单的计算的实验演示一、创建工程1、按照下图的设置来新建一个新的工程,工程名(Project Name)为“Demo”。
2、选择创建的应用程序类型为“Dialog based”(基于对话框的)然后按照缺省的方式进行设置,直到生成源程序(如下图所示)。
注意其中CDemoDlg中的成员变量,同后面相比较。
二、添加对话框控件1、按照下图,拖放三个静态控件、编辑控件和按钮控件到对话框中2、修改静态控件属性选中一个控件,单击鼠标右键,可以弹出一个右键菜单,选择其中的“Propertis”,可以弹出相应的控件的属性设置对话框。
例如选中第一个静态控件,属性修改的对话框如下图所示:修改其Caption为A。
同样的方法,修改另外两个静态控件的Caption分别为“B”、“Result”。
3、修改编辑控件的属性选中一个静态控件,点击右键,选择属性菜单,可以弹出编辑控件的设置对话框,如下图:修改他的ID为IDC_EDIT_A。
用同样的方法设置另外两个编辑控件的ID分别为“IDC_EDIT_B”和“IDC_EDIT_RESULT”。
4、修改按钮控件的属性选中一个按钮控件,点击右键,选择属性菜单,可以弹出按钮控件的设置对话框,如下图:修改他的ID为IDC_BTN_SUM,Caption为+用同样的方法设置另外两个按钮控件的ID分别为“IDC_BTN_MUL”和“IDC_BTN_MIN”;Caption 分别为“*”和“-”最后对话框显示为:三、添加对话框变量选中对话框,单击右键,探出右键菜单,选择其中的“ClassWizard…”弹出“MFC ClassWizard”窗口,选择上部的“Member Variables”,得到如下对话框:选择“IDC_EDIT_A”,点击“Add Variables”按钮,弹出“Add Member Variables”对话框。
按照上图所示,填写成员变量名为“m_nA”,选择Category为“Value”,Variable type为“int”,然后点击“OK”按钮。
基于对话框的程序设计——计算器编程PPT课件
CRect StandardRc;
//StandardRc表示标准型的范围
Operator m_operator;
//运算符标志
Func m_func;
//函数标志
CalcError m_errorState; //错误标志
BOOL m_bOperandAvail; //输入标志,输入为真
void ExpandToSentific(); //扩展成科学性计算器
i-=1;
}
}
UpdateData(FALSE);
}
.
7
4.在头文件Ccalc.h中添加消息响应代码:afx_msg
void OnOperandInput(UINT nID);
• 在实现文件Ccalc.cpp中添 加如下代码:
• ON_COMMAND_RANGE(ID C_0,IDC_9,OnOperandInput )
else m_accum /= m_operand; OpAdd) m_accum += m_operand;
else if(m_operator ==
else if(m_operator == OpSubtract) m_accum -= m_operand;
else if(m_operator == OpCm) m_accum=pow(m_accum,m_operand);
比如本程序中在定义枚举类型后在四则运算等号小数点开方去反倒数清零按钮的消息映射函数使用了定义的枚举类型中的常数在指数科学计数余弦函数正弦函数自然对数底数为10的对数正切函数阶乘的函数实现中也用到了枚举类型定义的变量的值而相关变量也只能使用所定义的常数
基于对话框的程序设计
——计算器编程
基于对话框的程序设计案例(计算器)
JZ_P 8
三、设计步骤-3
3.
菜单编辑窗口
鼠标右键 添加菜单资源
编辑菜单资源
在资源视图中添加新 菜单(ID_MENU) 在菜单编辑窗口,编 辑菜单项(扩展, ID_Extend)(如 右图)。 控件资源设计清单如 附表1。 利用控件工具箱,在 对话框编辑窗口设计 控件,并修改控件的 相关属性(属性窗口)
附加图
图1:添加类
图2:MFC类向导
JZ_P 11
三、设计步骤-4
4.
鼠标双击此处: AdvButton.h
编辑高级按钮控件类
新类CAdvButton的头 文件AdvButton.h中预 定义的几种颜色如右图。
需 要 添 加 的 代 码
//预定义高级按钮控件的颜色 #define DisableColor RGB(128,128,128)//灰色,按钮不可用 #define FocusColor RGB(255,0,0)//红色,按钮焦点 #define SelectColor RGB(0,255,0)//绿色,按钮被按下 #define DefaultColor RGB(0,0,255)//兰色,默认 #define MAXCAPTIONLEN 8//最大的按钮显示的字符数目
添加消息映射函数,如下表
消息码
WM_PAINT
函数名
OnPain()
功能 响应窗口重绘的消息
代码 附录9
附录9
JZ_P 18
三、设计步骤-6
6.
为主对话框类 功能
CCalculatorDlg设置界面
添加成员变量,如下: (方法同 上)
public: // 对话框菜单按钮 CMenu *m_Menu; //"扩展"菜单项标志位 bool m_IsExtend;
编写一个简单的计算器程序
编写一个简单的计算器程序计算器程序是一种非常实用的工具,它可以帮助我们进行数学计算,并简化复杂的运算过程。
本文将介绍如何编写一个简单的计算器程序,实现基本的加减乘除运算。
首先,我们需要确定计算器程序的功能和界面设计。
在本文中,我们将使用Python编程语言来编写计算器程序,并使用命令行界面(CLI)进行交互。
这意味着我们将在终端窗口中输入表达式,并显示结果。
接下来,我们需要考虑计算器程序的基本运算功能。
一个简单的计算器需要实现四个基本的运算:加法、减法、乘法和除法。
我们将使用函数来实现每个运算功能。
以下是一个示例代码:```pythondef add(x, y):return x + ydef subtract(x, y):return x - ydef multiply(x, y):return x * ydef divide(x, y):return x / y```在这个示例代码中,我们定义了四个函数,每个函数接受两个参数,并返回计算结果。
接下来,我们需要处理输入表达式并调用相应的运算函数。
我们将使用一个循环来持续接收用户输入,并在用户输入“exit”时退出程序。
以下是一个示例代码:```pythonwhile True:expression = input("请输入一个表达式:")if expression == "exit":break#解析表达式,提取运算符和操作数operator = Nonefor op in ["+", "-", "*", "/"]:if op in expression:operator = opbreakif not operator:print("表达式错误,请重新输入!") continueoperands = expression.split(operator) x = float(operands[0])y = float(operands[1])if operator == "+":result = add(x, y)elif operator == "-":result = subtract(x, y)elif operator == "*":result = multiply(x, y)elif operator == "/":result = divide(x, y)print("运算结果:", result)print("谢谢使用,再见!")```在这个示例代码中,我们使用了一个无限循环来持续接收用户输入。
创建简单计算器程序
实验一创建简单计算器程序实验目标本试验介绍如何创建一个简单的计算器应用程序。
技术要点创建windows窗体应用程序的基本步骤。
实验步骤1.首先,运行visual studio2005,新建一个Windows应用程序命名为calculate2.向窗体中添加【Button】按钮控件,数字0-9,并设置控件的ForeColor 属性为Blue.布局如下:3. 向窗体添加【Button】按钮控件,运行符“+”“-”“*”“/”“.”“-/+”“C”“=”。
并设置控件的ForeColor属性为Red。
4.向窗体添加【TextBox】空间用于显示数据,并将其TextAlign属性设置为“Right”。
5.在Form1类中对下列数据进行定义和初始化:6. 在类中增加如下方法:7. 双击【Button】空间0-9,分别在每个按钮的Click事件处理程序中添加如下代码:setText("0");setText("1");setText("2");setText("3");setText("4");setText("5");setText("6");setText("7");setText("8");setText("9");8.双击“+”号按钮,添加如下事件处理代码:setOperator(1);9.双击“-”号按钮,添加如下事件处理代码:setOperator(2);10.双击“*”号按钮,添加如下事件处理代码:setOperator(3);11.双击“/”号按钮,添加如下事件处理代码:setOperator(4);12.双击“=”号按钮,添加如下事件处理代码:doEquals();13.双击“.”号按钮,添加如下事件处理代码:setDecimal();14.双击“C”号按钮,添加如下事件处理代码:isSecond = false;setText("clear");15.程序运行结果如图:实验二使用菜单实验目标本实验介绍如何在应用程序中加入菜单,并通过菜单响应用户的请求技术要点创建窗体应用程序菜单的简单步骤,时间响应方法。
MFC入门教程之简易计算器制作
MFC入门之简易计算器制作最近自学MFC,入门的时候走了不少弯路,所以特做此教程,希望能帮助一些人能够快速入门,少走一些弯路。
这个教程就是通过一个简易计算器的制作让大家了解MFC界面编程的基本步骤和几个常用控件的使用方法。
使用软件Visual C++ 6.0.首先,新建一个MFC基于对话框的工程。
点击文件-新建,在工程选项卡里选择MFC AppWizard[exe],给工程命名Jisuan。
点击确定。
在接下来的向导里选择基于对话框,其他选项使用默认即可,之间点击完成。
先给大家介绍一下Visual C++ 6.0的界面。
左边框起来的是文件资源控制区,默认有三个选项卡,分别是ClassView、ResourceView和FileView。
分别用来显示类、资源和文件。
中间这个主要操作区呢,就是我们用来设计界面和编程的窗口了。
现在这个是IDD_JISUAN_DIALOG资源,如图所示。
右边那个是控件工具箱,如果没有显示的话可以右击菜单栏空白区域,把控件前打上对号即可。
然后给大家介绍一下今天需要用到的控件。
如左图所示,今天主要需要用到四个控件。
第一个是静态文本控件,就是可以往对话框上放一些静态的文字。
第二个是编辑框,它是可以往里面输入文字的。
第三个是组合框,它是把用来给对话框分区,使界面更加美观明了。
第四个是按钮控件,是用来点一下产生某个操作的。
上面那个是编辑框,下面这个是按钮控件。
点一下控件,拖到对话框上,即可使用。
下面我们可以这样布局:上面两个编辑框里输入数字,中间四个按钮分别是+ - * /,然后下面编辑框里显示数字。
下面开始给大家介绍第一个最重要的操作,就是属性操作。
我们想让这些控件的显示文字改变,就需要修改它的属性。
选定某个控件,右击,选择属性,即可来改变它们的属性了。
我们挨个控件介绍。
首先是组合框。
组合框的属性,我们看到有一个ID,一个标题。
首先说明一点,每个控件都必须有一个ID值,而且一般每个控件的ID值不能相同。
简单计算器程序操作步骤
简单计算器程序操作步骤一、建立”D\ajsq”文件夹二、用VC6编写“简单计算器程序”1、启动VC6,创建“简单计算器程序”工程。
选择D:\asjq,工程名:jsq,选择基于对话框,下一步,完成。
(介绍:类卡、文件卡、资源卡,代码提示工具卡两个,安装visual assist X)2、设计主界面对话框:IDD_JSQ_DIALOG,删除自生成的控件,添加三个Edit Box文本编辑框控件、一个Button按钮控件。
(1)对EDIT查看属性、增加、关联变量:右击EDIT1,选属性,查看ID号为:IDC_EDIT1。
增加、关联变量,右击EDIT1,建立类向导,选成员变量,选中IDC_EDIT1,单击增加变量,名称:m_a,value:float,单击OK。
右击EDIT2,选属性,查看ID号为:IDC_EDIT2。
增加、关联变量,右击EDIT2,建立类向导,选成员变量,选中IDC_EDIT2,单击增加变量,名称:m_b,value:float,单击OK。
右击EDIT3,选属性,查看ID号为:IDC_EDIT3。
增加、关联变量,右击EDIT3,建立类向导,选成员变量,选中IDC_EDIT3,单击增加变量,名称:m_c,value:float,单击OK。
(2)对BUTTON1修改属性和增加消息映射响应函数:右击BUTTON1,选属性,查看ID号为:IDC_BUTTON1,修改标题为:add;增加消息映射响应函数,右击,建立类向导,选中Message Maps,选中IDC_BUTTON1,选中BN_CLICKED,单击Add Function,名称:OnButton1,单击OK。
单击edit code,编写代码:BUTTON1的OnButton1的代码.txt。
UpdateData(true); //从控件得到值赋给变量,给m_a=5;m_b=8;m_c=0;m_c=m_a+m_b; // m_c=13;UpdateData(false); //从变量值给控件显示,文本框分别显示:5,8,13;三、操作使用所编写的“简单计算器程序”F7,Ctrl+F51。
如何创建一个简单的计算器程序
如何创建一个简单的计算器程序计算器程序是计算机编程中的基本项目之一。
无论是日常的数学运算还是简单的计算任务,计算器程序能够提供方便和效率。
在本文中,我们将探讨如何创建一个简单的计算器程序。
1. 设计界面首先,我们需要设计一个用户界面,使用户能够输入运算表达式并获取计算结果。
一个简单的设计方法是使用文本框和按钮。
文本框用于接收用户输入的表达式,按钮用于触发计算并显示结果。
2. 获取用户输入在程序中,我们需要获取用户在文本框中输入的运算表达式。
为了实现这一点,我们可以使用编程语言提供的输入函数或方法。
例如,Python中的`input()`函数可以用于获取用户输入。
3. 解析表达式一旦获取到用户输入的运算表达式,我们需要解析它以便进行计算。
通常,我们可以使用栈这种数据结构来解析表达式。
栈能够方便地处理运算符的优先级和顺序。
4. 执行计算通过解析表达式,我们可以得到一个数字列表和一个操作符列表。
接下来,我们需要按照运算的顺序执行计算。
对于每个操作符,我们从数字列表中取出相应数量的数字进行计算,并将计算结果放回数字列表。
5. 显示结果计算完成后,我们将结果显示在用户界面中的某个区域中。
可以使用文本框或标签等控件来显示计算结果。
6. 处理错误在设计计算器程序时,我们还需要考虑错误处理。
例如,当用户输入的表达式不符合语法规则或包含除数为零的除法运算时,我们需要给出相应的错误提示。
7. 添加额外功能除了基本的四则运算,我们还可以给计算器程序添加其他功能,如求平方、开方、求正弦等。
这些功能可以根据用户的需求进行扩展。
通过以上步骤,我们可以创建一个简单的计算器程序。
该程序能够接收用户输入的数学表达式,解析并执行计算,并将结果显示在界面中。
这个计算器程序可以帮助用户快速进行基本的数学运算。
当然,如果需要更高级的功能和更复杂的计算,可能需要使用更专业的计算器软件或编程技术。
总结:本文介绍了创建一个简单的计算器程序的基本步骤。
实现一个简单的计算器程序
实现一个简单的计算器程序计算器是我们日常生活中不可或缺的工具,方便快捷。
而如今,多种多样的计算器软件层出不穷,但是否可以自己动手制作一个基础的计算器程序呢?实际上,这并不难以实现。
一、确定计算器功能想要实现一个简单的计算器程序,首先需要确定计算器应有的基础功能。
一般来说,计算器至少应该具备加、减、乘、除这几种基本运算功能,以及清空、删除、等于等辅助操作功能。
二、选择合适的编程语言每一种编程语言都有自己的特点和适用场景,我们需要根据自己的需求来选择一种合适的编程语言。
比较常用的编程语言有C++、Java、Python等,在这里我们以Python为例进行讲解。
三、使用Tkinter库创建界面Tkinter是Python自带的一个GUI库,可以用来创建应用程序的图形用户界面,也是实现计算器界面的一种常用方式。
首先我们需要导入Tkinter库:```from tkinter import *```接着,我们可以创建一个窗口并设置相关属性:```window = Tk()window.title("计算器")```设置窗口标题为“计算器”。
四、实现计算器功能在创建好界面之后,我们需要实现计算器的具体功能。
首先,我们需要定义一些基本的操作函数,如加、减、乘、除等操作函数:```# 加法函数def add(num1, num2):return num1 + num2# 减法函数def subtract(num1, num2):return num1 - num2# 乘法函数def multiply(num1, num2):return num1 * num2# 除法函数def divide(num1, num2):if num2 == 0:return "错误!除数不能为0!" else:return num1 / num2```接着,我们可以定义一些辅助函数,如清空、删除等操作函数:```# 清空函数def clear():entry.delete(0, END)# 删除函数def delete():entry.delete(len(entry.get())-1, END)```在设置好函数之后,我们可以将其与具体的界面元素进行关联,实现计算器的完整功能:```# 数字按钮button_1 = Button(window, text="1", padx=20, pady=10, command=lambda: entry.insert(END, "1"))button_2 = Button(window, text="2", padx=20, pady=10, command=lambda: entry.insert(END, "2"))...button_9 = Button(window, text="9", padx=20, pady=10, command=lambda: entry.insert(END, "9"))button_0 = Button(window, text="0", padx=20, pady=10, command=lambda: entry.insert(END, "0"))# 运算符按钮button_add = Button(window, text="+", padx=19, pady=10, command=lambda: operation("+"))button_subtract = Button(window, text="-", padx=20, pady=10, command=lambda: operation("-"))button_multiply = Button(window, text="*", padx=20, pady=10, command=lambda: operation("*"))button_divide = Button(window, text="/", padx=20, pady=10, command=lambda: operation("/"))# 其他辅助按钮button_clear = Button(window, text="清空", padx=60, pady=10, command=clear)button_delete = Button(window, text="删除", padx=60, pady=10, command=delete)button_equal = Button(window, text="=", padx=20, pady=10, command=equal)# 文本框entry = Entry(window, width=40, borderwidth=5)# 布局entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)button_7.grid(row=1, column=0, padx=5, pady=5)button_8.grid(row=1, column=1, padx=5, pady=5)button_9.grid(row=1, column=2, padx=5, pady=5)button_add.grid(row=1, column=3, padx=5, pady=5)...button_clear.grid(row=4, column=0, columnspan=2, padx=5,pady=5)button_0.grid(row=4, column=2, padx=5, pady=5)button_equal.grid(row=4, column=3, padx=5, pady=5)```最后,运行程序,就可以看到一个简单的计算器窗口了。
C语言程序设计编程任务书
开发一个计算器程序-.软件目标所开发软件的目标是开发一个基于对话框的计算器应用程序。
其所能实现的具体功能有加、减、乘、除、平方、开方,以及各种函数变换,并且能够将输入错误的数值清除后再进行重新输入。
-.软件设计基本操作流程1.在VC6.0中新建一个MFC应用程序,以xxx」命名,选择基于对话框形式,点击确定。
2.在程序的主界面上设计计算器的操作界面,如添加数字按钮和功能按钮以及编辑框和相应框。
3.为按钮、编辑框、相应框添加相应函数,并且在DLG文件中加入变量和函数。
4•设计对话框的内容,如个人信息等。
界面风格界面主要以计算机的操作界面为主,整个界面均布有数字键,功能键和清除按键.而没有添加其他的按键和文字,整体设计十分简单。
软件功能模块整个界面的正上方是计算器的输入和输出界面,左侧为数字按键,而右侧则为功能按键。
三•软件实现过程1.用MFC AppWizard(exe)创建一个基于对话框应用程序(1)打开VC6.0,选择文件〉新建〉工程〉MFCAppWizard(exe)。
(2)输入自己的工程名称为xxxJL,点击确认。
(3)在接下来的应用向导中选择基本对话框选项,点击完成后进入主界面。
2.主界面(1)在dialog ±右键选择插入一个Dialog,在弹出的对话框中录入开发者的相关信;-■wangyulresources& 巳Dialogg⑵ 点击IDD_XXX_1_DIALOG,布置计算器主界面,如图三・添加MFC ClassWizardMessageMaps Member Variables | Automation | ActiveX Events Class Info | Project Add Cjass...AddFunctionObject IDs : Delete FunctionIDC^BUT TO_CAL CULATE IDC IDC IDC IDC DUTTO BUTTO DUTTOBUTTONUMONUM1NUM2NUM3 CalcV/indow DefV/indnwP DcstroyWindDoDataExchDoModalGetScrollBa Edit CodeMemberfunctions VDuDataExchangcWON 」DC_BUTTO_CALCULATE :BN_CLICKED ONJDC_BinTO_CLEAR :BN_CLICKED UN_IDC_BUrrO_NUk4U :Description:确定取消I编写程序的头文件,加入程序运行必要的头文件,包括#inelude “string.h” #inelude n math.h n #include !stdlib.h nClass name : C^...\wangyu 1 \wangyu 1 Dlg.h, C^...\wangyu 1 Dlg.cpp Messages :在类向导中关联各个按钮,并一一对应BEGIMJdESSflGEJ-IAPtCWangyu^lDlg, CDialog)//{{fiFX MSGJ1AP(CWangyu_1Dlg)ONWH SVSCOMMfiND()OH Z WM Z PAIHTC)ON_WM_QUERVDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButtonl)ON_BN_CLICKED(IDC_BUTTO_MUM1 , OnButtoNuiml)编辑数字键所对应的函数代码,其他数字也按如下方式编写void CXxx_lDlg::OnButtoNuml{) // 数字键1 的响应事件{ UpdateData(l); //MFC的窗口函数,刷新编辑框的数据if(m_str= =■•")//如果之前没有进行输入,则1为第一个输入的数字m_str 二T:elsem_str+=Ii r1;//如果之前有输入,则1及之前输入的数字一起组成新的数字UpdateData(O);}清除按钮的函数代码void CXxx_lDlg::OnButtoClear() // 清除按键的响应事件{ UpdateData(l);m_str=""; //将编辑框的内容清除UpdateData(O);}各个符号运算{ UpdateData(l);if(m_str二二"”)〃判断前面是否有数字输入m_str=""; 〃若前面无数字输入,则点击"+"无效,将显示框还原elsem_str+二“+“;//若前面有数字输入,则将”+“连接到数字的后面UpdateData(O);}void CXxx_lDlg::OnButtonOperation2() 按键的响应事件{ //原理及”+”的代码相同UpdateData(l);if(m_str 二二")m_str='u,;elsem_str+=n-n;UpdateData(O);}void CXxx_lDlg::OnButtonOperation3() // 键的响应事件{ //原理及的代码相同UpdateData(l);m_str=,u,;elsem_str+=n*";UpdateData (0);)void CXxx_lDlg::OnButtonOperation4() /厂7”按键的响应事件{ //原理及”+”的代码相同UpdateData(l);if(m_str= =m,)elsem_str+=,7H;UpdateData(O);}以及高级运算的计算void CXxx_lDlg::OnButtonOperation5() // ■平方•按键的响应事件{ UpdateData(l);if(m_str==,,H)//前面没有数字输入,则点击无效elseint i=atoi(m_str); //利用cstnng中的atoi函数将字符串转换成整型类型的数字平方运算m_str.Format(H«d-,i); //利用format函数将整数转换为字符串类型}UpdateData(O);)void CXxx_lDlg::OnButtonOperation6() // ■开方•按键的响应事件{ UpdateData(l);if(rn_st r==-)//前面没有数字输入,则点击无效m_str=-;else{float f; //定义float类型的变量f,用来存储开方的结果int num=atoi(m_str); //利用cstring中的atoi函数将字符串转换成整型类型的数字f=sqrt(num); //开方的函数m_str.Format(^.2f:f);〃利用format函数将浮点数类型转换为字符串类型}UpdateData(O);)void CXxx_lDlg::OnButtonOperation7() // "sin"按键的响应事件{ UpdateData(l);if(m_str==,H,)//前面没有数字输入,则点击无效m_str="";else{float仁atof(m_str); //利用cstnng中的atof函数将字符串类型转换成float类型,方便操作float y=sin(f);//三角函数运算m_str.Format(%2f“,y); //利用format函数将浮点数类型转换为字符串类型}UpdateData(O);)void CXxx_lDlg::OnButtonOperation8() //M cos M按键的响应爭件{ UpdateData(l);if(m_str==,H,)//前面没有数字输入,则点击无效m_str 二";else{float仁atof(m_str); //利用cstnng中的atof函数将字符串类型转换成float类型,方便操作float y=cos(f);H三角函数运算m_str.Format(%2f“,y); //利用format函数将浮点数类型转换为字符串类型}UpdateData(O);}void CXxx_lDlg::OnButtonOperation90//"tan"按键的响应爭件{ UpdateData(l);if(m_str==,,H)//前面没有数字输入,则点击无效m_str=-;elsefloat仁atof(m_str); //利用cstnng中的atof函数将字符串类型转换成float类型,方便操作float y=tan(f);//三角函数运算m_str.Fomnatni2f“,y); //利用format函数将浮点数类型转换为字符串类型}UpdateData(O);}相应的运算关系为for(int j=i+l,m=O;j<len;j++){ latter*=m_str.GetAt(j);}float sl=atof(former);//定义float类型的变量si,用来存储将former字符串转换为float型数字的结果。
开发一个简单计算器程序-基于对话框
void CCalculatorDlg::OnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);//得到用户输入的数据
控件类型
ID号
Caption
其它
Button
IDC_ADD
+
Button
IDC_SUB
-
Button
IDC_MUL
×
Button
IDC_DIV
/
Button
IDC_SIN
sin
Button
IDC_COS
cos
Button
IDC_SQU
x^2
Button
IDC_REC
1/x
Button
IDC_EQUAL
5.为运算符按钮添加相应的消息映射函数:点击菜单“View→ClassWizard”,选中“Message Maps”标签,目标ID号中选择“IDC_ADD”,在“Messages”中选择“BN_CLICKED”,双击,弹出“添加成员函数”对话框,默认函数名为“OnAdd”,点击“OK”。同理,为其它各运算对应的ID号添加成员函数。
其中UpdateData( )是MFC的窗口函数,用来刷新数据。当括号内的变量为TRUE时,用窗体上控件中的内容来更新和控件相关联的成员变量值;当括号内的变量为FALSE时,正好相反,将控件的关联成员变量的值传给控件并在控件中显示出来。
同理,在其它运算按钮的消息影射函数中添加相应的计算代码如下:
void CCalculatorDlg::OnCos()
VC++6.0 MFC基于对话框简单计算器设计
VC++MFC基于对话框简单计算器设计1 实现计算器功能如图:用VC++建立MFC基于对话框的简单计算器。
简易计算器设计说明:1.三个编辑窗口:(1)其中两个为输入操作窗口:数1、数2,一个结果输出窗口。
(2)只有一个操作数时在第一操作窗口输入。
(3)键盘输入数据,运算符按钮输出结果。
2.多个运算操作按钮:(1)实现加减乘除的基本计算器功能。
(2)实现三角函数、对数、阶乘等的数值函数运算。
3.计算器设计过程:(1)首先建立MFC的基于对话框程序,命名为“TEST1”然后在对话框中加入三个编辑框,并用快捷键CTRL+W组合键打开MFC ClassWizard 切换到Member Variables中其中找到IDC_EDIT1、IDC_EDIT2、IDC_EDIT3分别添加对应的3个double型关联变量m_EDIT1_NUM、m_EDIT2_NUM、m_EDIT3_NUM。
关联变量:在后双击编辑框改变编辑框函数名并添加函数:UpdateData(TRUE);其他两个编辑框均进行此操作。
(2)在对话框中的适当位置添加20个按钮控件实现运算操作:a.操作说明按钮:鼠标放在按钮控件上,右击鼠标点击属性,改变按钮属性标题为“操作说明”,然后双击控件改变函数名并点击“确定”添加函数代码:void CTEST1Dlg::OnINTR() //计算器操作说明{// TODO: Add your control notification handler code hereMessageBox("例如M+N=?,在第一个编辑框输入M,第二个编辑框输入N,然后再点击运算符输出结果,减法、乘法、除法、取余等两个数运算的同理。
只有一个数进行运算的时候,在第一个编辑框输入数,然后点击运算符输出结果!");}b.两个数运算的按钮:与添加“操作说明”按钮类似,比如加法,改变按钮属性标题为“+”,然后双击控件添加函数代码:void CTEST1Dlg::OnADD() //加法运算:m+n{// TODO: Add your control notification handler code herem_EDIT3_NUM=m_EDIT1_NUM+m_EDIT2_NUM; //m_EDIT3_NUM、m_EDIT1_NUM、m_EDIT2_NUM为三个编辑框的对应关联变量GetDlgItem(IDC_EDIT2)->ShowWindow(SW_SHOW); //当执行双数运算时,重新显示第二个编辑框UpdateData(FALSE);}其他的两个数运算的同理。
用基于MFC对话框编写的计算器
用基于MFC对话框编写的计算器1.用MFC建立一个基于对话框的应用程序;2.程序主代码:// CalculatorDlg.h : 头文件#pragma once#include"afxwin.h"// CCalculatorDlg 对话框class CCalculatorDlg : public CDialog{// 构造public:CCalculatorDlg(CWnd* pParent = NULL);// 标准构造函数// 对话框数据enum { IDD = IDD_CALCULATOR_DIALOG };int sign, decimal;double m_Num;double num1, num2; //操作数char cal; //运算符号BYTE dotflag; //小数点标志BYTE dotflag1;BYTE numflag; //键入数字标志long quan2; //小数部分权值char cnum[20];CString csnum;protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedButton1Num0();afx_msg void OnBnClickedButton2Num1();afx_msg void OnBnClickedButton3Num2();afx_msg void OnBnClickedButton4Num3();afx_msg void OnBnClickedButton5Num4();afx_msg void OnBnClickedButton6Num5();afx_msg void OnBnClickedButton7Num6();afx_msg void OnBnClickedButton8Num7();afx_msg void OnBnClickedButton9Num8();afx_msg void OnBnClickedButton10Num9();afx_msg void OnBnClickedPoint();afx_msg void OnBnClickedEqual();afx_msg void OnBnClickedAdd();afx_msg void OnBnClickedSub();afx_msg void OnBnClickedMul();afx_msg void OnBnClickedDiv();afx_msg void OnBnClickedButtonEmpty();afx_msg void OnEnChangeEdit1();CEdit m_CResult;};// CalculatorDlg.cpp : 实现文件//#include"stdafx.h"#include"Calculator.h"#include"CalculatorDlg.h"//#include "math.h"#ifdef_DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的CAboutDlg 对话框class CAboutDlg : public CDialog{public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现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 对话框CCalculatorDlg::CCalculatorDlg(CWnd* pParent/*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }void CCalculatorDlg::DoDataExchange(CDataExchange* pDX) {CDialog::DoDataExchange(pDX);DDX_Control(pDX, IDC_EDIT1, m_CResult);}BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialog) ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAPON_BN_CLICKED(IDC_BUTTON1_NUM0,&CCalculatorDlg::OnBnClickedButton1Num0) ON_BN_CLICKED(IDC_BUTTON2_NUM1,&CCalculatorDlg::OnBnClickedButton2Num1) ON_BN_CLICKED(IDC_BUTTON3_NUM2,&CCalculatorDlg::OnBnClickedButton3Num2) ON_BN_CLICKED(IDC_BUTTON4_NUM3,&CCalculatorDlg::OnBnClickedButton4Num3) ON_BN_CLICKED(IDC_BUTTON5_NUM4,&CCalculatorDlg::OnBnClickedButton5Num4) ON_BN_CLICKED(IDC_BUTTON6_NUM5,&CCalculatorDlg::OnBnClickedButton6Num5) ON_BN_CLICKED(IDC_BUTTON7_NUM6,&CCalculatorDlg::OnBnClickedButton7Num6)ON_BN_CLICKED(IDC_BUTTON8_NUM7, &CCalculatorDlg::OnBnClickedButton8Num7) ON_BN_CLICKED(IDC_BUTTON9_NUM8, &CCalculatorDlg::OnBnClickedButton9Num8) ON_BN_CLICKED(IDC_BUTTON10_NUM9, &CCalculatorDlg::OnBnClickedButton10Num9) ON_BN_CLICKED(IDC_POINT,&CCalculatorDlg::OnBnClickedPoint)ON_BN_CLICKED(IDC_EQUAL,&CCalculatorDlg::OnBnClickedEqual)ON_BN_CLICKED(IDC_ADD,&CCalculatorDlg::OnBnClickedAdd)ON_BN_CLICKED(IDC_SUB,&CCalculatorDlg::OnBnClickedSub)ON_BN_CLICKED(IDC_MUL,&CCalculatorDlg::OnBnClickedMul)ON_BN_CLICKED(IDC_DIV,&CCalculatorDlg::OnBnClickedDiv)ON_BN_CLICKED(IDC_BUTTON_EMPTY, &CCalculatorDlg::OnBnClickedButtonEmpty) ON_EN_CHANGE(IDC_EDIT1,&CCalculatorDlg::OnEnChangeEdit1)END_MESSAGE_MAP()// CCalculatorDlg 消息处理程序BOOL CCalculatorDlg::OnInitDialog(){CDialog::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。
Android开发实战:创建一个简单的计算器应用(一)
Android开发实战:创建一个简单的计算器应用在当今的移动应用开发领域,Android平台凭借其广泛的用户群体和开放的生态系统成为了最受关注和热门的开发平台之一。
本文将引导读者通过实际案例,学习如何使用Android Studio和Java语言开发一个简单的计算器应用。
第一步:创建项目打开Android Studio并选择“创建新项目”,然后填写应用的名称和包名等信息。
选择适当的最低API级别和目标API级别,这取决于您所需的最低兼容版本和目标用户群。
第二步:设计界面在项目结构中打开“res”文件夹,然后右击“layout”文件夹并选择“新建布局资源文件”。
在弹出的对话框中输入布局文件的名称,并选择“约束布局”作为根布局。
通过拖拽和调整视图的位置和大小,设计一个简洁明了的计算器界面,包括数字按钮、运算符按钮和显示结果的文本框。
第三步:编写代码在“java”文件夹下的包名文件夹中,找到并打开“”文件。
在类的内部,创建必要的成员变量和UI元素的引用,如按钮和文本框。
然后,在“onCreate”方法中使用“findViewById”方法将UI元素与代码中的实例进行关联。
接下来,编写计算逻辑的代码。
您可以使用Java语言提供的数学运算方法,例如“add”、“subtract”、“multiply”和“divide”等。
在用户点击等号按钮时,获取用户输入的数字和运算符,并将其传递给计算方法进行计算。
最后,将计算结果显示在文本框中。
第四步:测试和调试使用模拟器或真实设备运行应用,并在计算器界面上测试各种场景和功能。
确保计算逻辑和用户交互的一致性,并处理各种可能的异常情况。
如果发现问题或错误,使用调试工具和日志输出来跟踪和修复错误。
第五步:发布应用一旦您对应用的功能和用户体验感到满意,您可以将其准备以APK文件的形式发布到Google Play商店或其他应用市场。
在发布前,确保应用的版本号、应用图标、应用截图和应用描述等信息准备完备。
基于对话框的程序设计_计算器编程
基于对话框的程序设计——计算器编程一.总体介绍:(1)本计算器可以设置计算器的类型,通过单选按钮来实现在标准型计算器和科学型计算器之间的切换,在标准型计算器界面,可以实现一些基本功能,比如:加、减、乘、除、取负、平方、开方、取倒的八种基本运算;另外,还可以进行退格和清零的运算。
在科学型计算器界面,还可以实现一些高级功能,比如:取以e为底的指数、取自然对数、以10为底的指数、以10为底的对数、取正弦、取余弦、取正切、取立方、计算x的y次方、取n的阶乘的九种运算;而且还可以实现以角度或弧度的数据输入方式。
(2)本计算器包含菜单,一级菜单包括计算、文件,在一级菜单“计算”下设有标准型、科学型、工具的二级菜单,在一级菜单“文件”下设有关于、退出的二级菜单:在二级菜单“标准型”下设有三级菜单:加、减、乘、除、开方、取倒数,在二级菜单“科学型”下设有三级菜单:角度、弧度,在二级菜单“工具”下设有三级菜单:等于、退格、清零;最后,在三级菜单“角度”和三级菜单“弧度”下设有同样的四级菜单:取以e为底的指数、取自然对数、以10为底的指数、以10为底的对数、取正弦、取余弦、取正切、取立方、计算x的y次方、取n的阶乘。
二.使用方法:1.用户通过从计算器的0至9的按钮输入数据,可以通过Backspace(退格)按钮来清除最后输入的一位数字,可以通过C(清零)按钮来使计算器屏幕上的所有数字清零。
2.在标准型界面时,使用说明:用户先通过按钮输入数字,然后按下所需运算符号,再按下第二个数据,最后按下等于号,即可显示最终计算结果。
比如:计算4*15 的值,先按“4”,再按“*”,再按“5”,最后按“=”。
多个数字的运算方法通两个数字的运算。
3.在科学型计算器界面时,界面上还可以实现一些高级功能,比如:Exp(取以e为底的指数)、ln(取自然对数)、10^x(以10为底的指数)、log(以10为底的对数)、sin (取正弦)、cos(取余弦)、tan(取正切)、x^3(取立方)、x^y(计算x的y次方)、n!(取n的阶乘);另外,用户还可以在角度和弧度之间的切换,通过选择单选按钮来实现;数据输入具体操作方法同2。
windows编程大作业_简单计算器
实验报告(2013 / 2014 学年第一学期)课程名称windows 编程实验名称简单计算器实验时间2023 年12 月20 日指导单位计算机、软件学院指导教师王子元学生姓名班级学号学院(系) 计算机学院、软件学院专业计算机软件与服务外包实验报告三、实验原理及内容[实验内容]1. 工程的创建。
使用MFC 创建一个基于对话框的工程;2. 界面设计。
使用控件工具栏为对话框添加所需控件,并设置控件属性;使用界面布局工具栏调整控件布局,完成应用程序界面设计。
3. 创建对话框成员变量和成员函数。
使用ClassWizard为控件添加相关联的对话框成员变量和消息相应函数;在Workspace窗口的ClassView页中,根据需要为对话框添加其他成员变量和成员函数。
4.编写代码。
5.编译、调试程序;运行程序,并对程序功能进行测试功能设计(1)支持加减乘除运算(2+3=5)(2)支持输入正确的乘方运算(如2^3=8)(3)支持混合四则运算(如2+3*2=8)(4)支持正确的表达式运算(如2+3*(2-4/2)=2)(5)计算器的输入方式:支持鼠标点击输入和键盘输入本计算器支持鼠标点击操作和键盘输入。
(鼠标输入是点击按钮,编辑框即显示点击的结果和计算结果,键盘输入是点击编辑框锁定光标后从键盘输入的)。
(6)使用图形界面中的事件委托机制来处理事件响应计算器计算结果的输出方式:在计算器窗口的显示。
(7)本计算器应该要支持退格和清零。
点击C按钮将编辑框清零,点击backspace按钮,退格,清除编辑框中最后一个输入字符。
(8)算术运算的数据类型:整数和浮点数本计算器支持的精度是6位小数,支持的运算是32位,超出即位溢出,同时显示的结果仅保留6位小数。
本计算器默认诸如“(8)=”的表达式有效,不设置错误提示。
出现运算异常的情况为:①.被除数为0的情况,提示用户被除数不能为零!②.输入的表达式不正确时,提示出错。
(9)点击等号按钮,或者键盘输入等号时,计算器在编辑框显示计算结果。
C程序项目一制作简单计算器
C程序项目一制作简单计算器项目一—简单计算器制作项目演示课程项目展示目标理解和掌握项目所涉及的知识点掌握C语言的基本编程方法学会使用菜单解决日常生活中的小问题相关知识点序号123知识点说明常用数据类型:整型、浮点型、字符型定义符号:int、float、double、char常量、变量(1)双目算术运算符及其表达式:运算符:+、-、*、/、%(2)强制类型转换:(类型)表达式数据的输入输出:变量名命名、变量类型的选择%:整数取余/、%:除数不为0控制符的使用:%d、%f、%c4scanf()、printf()getchar()、putchar()567多分支选择语句:函数原型:stdio.h注意函数的返回值switch表达式的类型:整型、字符型无限循环的设定函数原型:stdlib.hif-elseif、switch循环语句:while、do-while、for清屏函数:system(“cls”)结束程序函数:exit(0)功能描述功能:实现一个简易计算器,能够完成数值型数据的加、减、乘、除、求余运算。
要求:采用人机对话形式:使用菜单通过多分支选择语句实现加、减、乘、除、求余运算添加必要的提示信息能够实现菜单的循环显示实现步骤实现步骤定义变量设计菜单实现菜单项变量的个数变量名变量的类型清屏显示菜单项显示提示信息选择菜单项实现多分支结构实现菜单项功能实现程序退出项目实现一完成任务单中所需内容要求:以电子文档方式提交文件以组名.doc方式命名,如:一组.doc完成时间:15分钟阶段小结定义变量变量名num1num2choose数据类型floatfloatint功能存放第一个运算数定义floatnum1,num2;存放第二个运算数存放用户输入的菜单选项intchoose;阶段小结设计菜单任务名称主菜单设计接收键盘数据任务实现使用printf()函数及转义字符’\n’、’\t’和制表符完成(1)使用printf()函数显示提示信息(2)使用scanf()函数实现数据的接收阶段小结实现菜单项任务名称任务实现(1)使用switch语句实现多个分支的控制(2)使用scanf()函数输入运算数(3)判别算术运算符:+、-、*、/、%,执行相应运算(4)使用printf()函数输出运算结果使用exit(0)函数运算处理程序结束项目实现二修改任务单布置编写任务,完成项目功能要求:以电子文档方式提交文件以“组名.c”方式命名,如:一组.c完成时间:20分钟阶段小结循环菜单的实现数据有效性的判别菜单项数据的有效性判断参与除法和求余数中除数为0的判断强制类型转换屏幕信息暂停的处理项目实现三优化项目要求:以电子文档方式提交文件以“组名.c”方式命名,如:一组.c完成时间:10分钟项目总结-菜单编写步骤项目总结菜单编写步骤:4程序优化:321实现菜单项:设计菜单:定义变量:确定项目中需要的变量个数及其类型为变量定义合理的名称使用if-elseif或switch语句进行使用菜单各选项的处system(“cls”)理清屏使用printf输出使用exit(0)函数结束程序菜单内容使用printf输出提示信息使用scanf输入菜单选项使用while实现循环菜单显示使用getchar()或scanf()实现屏幕信息的暂停显示使用if语句对数据进行有效性处理作业【项目名称】银行存款【功能描述】1、计算到期存款金额2、已知工商银行整存整取存款不同期限的年利率分别为:3.1%期限三个月3.3%期限六个月3.5%期限一年4.4%期限两年5.0%期限三年5.5%期限五年3、选择存款期限,并输入存钱的本金,求到期时,能从银行得到的利息与本金的合计。
教学设计-程序设计实例 第四节 设计“简易计算器”
教学设计:程序设计实例第四节设计“简易计算器”教材:广东教育出版社高中《信息技术》第四册课时:1教学目标:1、知识目标:认识文本框控件,掌握文本框建立及其Text属性设置,认识常用函数Sqr、Abs等的使用,进一步理解VB程序设计的方法和步骤。
2、能力目标:提高学生观察、思维、探索、实践、总结能力。
3、情感目标:培养学生自主学习,协作学习,勇于实践,大胆探索的学习品质。
教学重点:文本框控件的建立及其Text属性的设置,文本框控件的使用,常用函数Sqr、Abs等的使用,VB程序设计的步骤。
解决措施:在教师讲解演示的基础上,充分发挥学生的主体作用,让学生自主实践、探索、总结。
教学重点:程序设计的方法、步骤。
解决措施:学生思考、总结实践过程,教师点拨、提示并总结。
学生特征分析:我校是市重点中学,高二(5)班学生对信息技术课程兴趣比较浓,思维活跃,独立思考、分析能力较强。
在过去一年的学习过程中打下比较坚实的基础,有一定的实践能力、探索能力和自主学习能力,具有协作学习的良好习惯。
在学习VB程序设计之前已经初步了解Pascal程序设计的基础知识,初步了解顺序结构、分支结构、循环结构程序。
本节课是在刚刚学完窗体、标签控件、命令按钮控件等知识以及初步了解VB 程序设计的基本步骤的基础上展开学习的。
教学方法:1、任务驱动法2、讲练结合法3、自学探究法教学过程设计教学过程设计意图教学环节一:引入新课[教师活动]呈现windows的计算器[引入]如果拥有一个计算器多方便!这节课我们将一起设计一个“简易计算器”。
[投影]2.4设计“简易计算器”一、任务一:创建一个“简易计算器”,程序运行时,在文本框中输入数据后,单击某个命令按钮,文本框中显示相应的计算结果。
如下图:教学环节二:认识文本框[教师活动][投影并讲解]二、认识文本框1、文本框主要是用于可编辑文本的输入、修改、显示。
[演示]建立一个文本框的步骤。
通过呈现一个现有的计算器,从而激发学生的兴趣,自然地引入课题。
最新《C++程序设计案例教程》习题答案窗口程序设计:简单计算器实验
窗口程序设计:简单计算器实验一、实验目的与要求模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,要求能实现简单的计算功能:拥护单击界面上的按钮,输入数据和运算符等,在窗口中显示运算结果。
设计的基本要求是,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算,运算结果能正确显示,可以清除数据等。
程序运行效果如图1_1所示。
图1_1 简单计算器二、分析这是一个简单的对话框窗体设计,涉及Button,EditBox,Static Text, Radio Button,Group Box等控件,主要响应事件为BN_CLICKED(鼠标单击响应)。
三、实现步骤1.在Visual C++6.0中,选择Projects|MFC AppWizard(exe)命令,建立一个工程文件,文件名calculator.在step1中选择“Dialog based”(基于对话框),如图1_2所示。
其余步骤采用,默认项。
图1_2 选择应用程序类型2.在对话框中添加1个编辑框(Edit Box)、16个按钮(button)、1个静态文本(Static Text)、1个复选框(Group Box)、在Group Box中添加4个单选框(Radio Button).3.在设计按钮时,选择button单击右键,在它的属性()中修改其相应ID与Caption。
在添加4个单选框前,先添加组框,使4个单选框包围其中,并且选择第一个单选框设置它的属性(右键中的Properites),选中“group”复选框,此时表示被组框包围的单选框为同一组。
添加结果如图1_3所示。
注意:设计对话框时,ID的命名必须用合法的标识符,一般以ID开头,并且是大写,添加各种控件时用工具栏,工具栏的调出方法,Tools|customize|Toobars|Controls命令。
控件ID是重要的事件响应所需的唯一标识,命名应有一定规律。
4.分别修改各控件的显示属性与ID,并选择各控件的单击鼠标事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 在对话框上添加各类控件,设计对话框的界面如图所示。在对话框中右键点击,弹出属 性设置对话框(Dialog Properties),标题(caption)中填入“迷你计算器”;其余各控件的参 数设置如下表所示。
void CCalculatorDlg::OnAdd() {
// TODO: Add your control notification handler code here UpdateData(TRUE); //得到用户输入的数据 m_result=m_first+m_second; } void CCalculatorDlg::OnEqual() { // TODO: Add your control notification handler code here UpdateData(FALSE); //将计算结果在编辑框中显示出来 } 其中 UpdateData( )是 MFC 的窗口函数,用来刷新数据。当括号内的变量为 TRUE 时, 用窗体上控件中的内容来更新和控件相关连的成员变量值;当括号内的变量为 FALSE 时, 正好相反,将控件的关联成员变量的值传给控件并在控件中显示出来。 同理,在其它运算按钮的消息影射函数中添加相应的计算代码如下: void CCalculatorDlg::OnCos() { UpdateData(TRUE); //得到用户输入的数据 m_result=cos(3.1415926*m_first/180); }
添加成员变量的步骤为:选中“IDC_FIRST”,点击“Add Viarable”,在弹出的对话框 中,指定成员变量名为“m_first”,分类为“Value”,变量类型为“double”,点击“OK”确
定。其余依此类推。
5. 为运算符按钮添加相应的消息映射函数:点击菜单“View →ClassWizard”,选中“Message Maps”标签,目标 ID 号中选择“IDC_ADD”,在“Messages”中选择“BN_CLICKED”, 双击,弹出“添加成员函数”对话框,默认函数名为“OnAdd”,点击“OK”。同理,为其 它各运算对应的 ID 号添加成员函数。 6. 在加法计算按钮的消息影射函数 OnAdd 和得到计算结果的消息影射函数 OnEqual 中分别 输入下列代码:
二. 编程步骤
1. 启动 Visual C++6.0,选择 File | new 菜单项,弹出 New 对话框。单击 Projects 选项卡, 项目类型选择 MFC AppWizard(exe),在 Project name 中填入工程名,在 Location 中填用户子 目录路径(设置用户程序子目录的目的是,将所有编程时产生的中间文件和最终执行程序文 件全部放在自己的目录中,以便管理)。
编译若不产生错误,系统将生成.obj 文件,细心的读者,查阅自己子目录时会看到。 (2)连接
在连接之前,请先行存盘。因为个别错误会导致死机。如这时机器重新启动,程序会丢 失。
Visual C++ 6.0 环境下,选择 Build|Build All。连接产生的错误信息形式与编译时相仿, 但查错可能更间接一些。连接若不产生错误,系统将生成执行文件.exe。 (3)运行
开发一个简单科学计算器 (基于对话框模式的应用程序)
一. 开发目标及软件功能
开发一个科学计算器程序,要求采用基于对话框模式的应用程序,至少具有加、减、乘、 除四个基本功能,并在此基础上扩展平方、开方、三角函数等功能。
(1)仔细阅读操作过程,学习如何根据编译信息,定位语法错误。 (2)将警告与错误一律看作是错误。 (3)学习并模仿书上的程序书写风格。
7. 在 CalculatorDlg.cpp 前面加上用于科学计算的头文件: #include "stdafx.h" #include "Calculator.h" #include "CalculatorDlg.h" #include "math.h" // 科学计算的头文件
8. 编译连接运行。 (1)编译
控件类型 Button Button
ID 号 IDC_ADD IDC_SUB
Caption + -
其它
Button
IDC_MUL
×
Button
IDC_DIV
/
Button
IDC_SIN
sin
Button
IDC_COS
cos
Button
IDC_SQU
x^2
Button
IDC_REC
1/x
ButtonIDC_EQ源自ALvoid CCalculatorDlg::OnDiv() {
UpdateData(TRUE); //得到用户输入的数据 m_result=m_first/m_second;
} void CCalculatorDlg::OnMul() {
UpdateData(TRUE); //得到用户输入的数据 m_result=m_first*m_second; } void CCalculatorDlg::OnRec() { UpdateData(TRUE); //得到用户输入的数据 m_result=1/m_first; } void CCalculatorDlg::OnSin() { UpdateData(TRUE); //得到用户输入的数据 m_result=sin(3.1415926*m_first/180); }
=
Edit Box IDC_FIRST
Edit Box IDC_SECOND
Edit Box IDC_RESULT 4. 为对话框中的控件添加相应的成员变量:点击菜单“View →ClassWizard”,点击“Member Variables”标签项,为对话框中的三个编辑框控件添加对应的成员变量如图所示。
Visual C++ 6.0 中的运行方式:直接选择 Build|execute 或按“Crtl+F5”,就可在 IDE 下 运行程序。打开写有运行结果的用户窗口,观察运行情况,按任意键,可返回到编辑窗口。
大多数情况用这种方式,它又是调试程序的主选方式。
三. 运行界面
四. 思考
1. 参考 Windows 操作系统自带的计算器,增加其它计算功能,使这个计算器的功能更完整。 2. 增加一个版权信息的按钮,点击后显示开发者的班级、姓名和学号。
errors 的信息,它用英文显示,可以查本实验指导书中的错误信息表。 按回车键或双击鼠标左键,即光标转向编辑窗口,编辑窗口同时出现一个蓝色箭头,这
时要注意光标位置,仔细查看程序中的语法。相当多的情况是,程序中只有很少的几个语法 错误,但是编译时,却告诉你查到了很多错误。原因是,由于这一个小错误,比如变量定义 错,使得编译没有接受该变量定义,继续编译下去,凡涉及这一变量引用的,都被编译认为 是变量未定义错。所以,初学者一定要了解这一点,或许某个出错行其实没有语法错误。而 是由其他错误所引起。真正的语法错误,一般总是只有很少的几个,不要被编译错误的数量 所吓倒。
Visual C++ 6.0 中选择 Build|Rebuild All 选项,Visual C++ 6.0 将在 output 窗口中显示 编译结果。
如果没有错误,则在窗口下面显示 0 error(s), 0 warning(s)。 如果有错误,则 output 窗口中会告诉你 Warnings 警告有几个,errors 错误有几个。 通过移动 output 窗口的垂直滚动条,在 output 窗口的中会列出警告和编译错误、原因 和具体行号位置。 初学者从一开始就要学会如何定位错误。在 output 窗口有一个亮条,指出 Warning 或
void CCalculatorDlg::OnSqu() {
UpdateData(TRUE); //得到用户输入的数据 m_result=pow(m_first,2); }
void CCalculatorDlg::OnSub() {
UpdateData(TRUE); //得到用户输入的数据 m_result=m_first-m_second; }