计算器程序
开发一个简单计算器程序-基于对话框
![开发一个简单计算器程序-基于对话框](https://img.taocdn.com/s3/m/4a905c0c910ef12d2bf9e700.png)
开发一个简单科学计算器(基于对话框模式的应用程序)一。
开发目标及软件功能开发一个科学计算器程序,要求采用基于对话框模式的应用程序,至少具有加、减、乘、除四个基本功能,并在此基础上扩展平方、开方、三角函数等功能。
(1)仔细阅读操作过程,学习如何根据编译信息,定位语法错误。
(2)将警告与错误一律看作是错误。
(3)学习并模仿书上的程序书写风格。
二. 编程步骤1. 启动Visual C++6。
0,选择File | new 菜单项,弹出New 对话框。
单击Projects 选项卡,项目类型选择MFC AppWizard(exe),在Project name中填入工程名,在Location中填用户子目录路径(设置用户程序子目录的目的是,将所有编程时产生的中间文件和最终执行程序文件全部放在自己的目录中,以便管理)。
2。
在程序向导的第1步选择建立一个基于对话框(Dialog based)的应用程序,点击“Finish”结束向导。
3。
在对话框上添加各类控件,设计对话框的界面如图所示.在对话框中右键点击,弹出属性设置对话框(Dialog Properties),标题(caption)中填入“迷你计算器”;其余各控件的参数设置如下表所示。
控件类型ID号Caption 其它Button IDC_ADD +Button IDC_SUB -Button IDC_MUL ×Button IDC_DIV /Button IDC_SIN sinButton IDC_COS cosButton IDC_SQU x^2Button IDC_REC 1/xButton IDC_EQUAL =Edit Box IDC_FIRSTEdit Box IDC_SECONDEdit Box IDC_RESULT4。
为对话框中的控件添加相应的成员变量:点击菜单“View →ClassWizard" ,点击“Member Variables”标签项,为对话框中的三个编辑框控件添加对应的成员变量如图所示。
c语言编写计算机加减乘除程序
![c语言编写计算机加减乘除程序](https://img.taocdn.com/s3/m/533c9c07657d27284b73f242336c1eb91a3733b4.png)
c语言编写计算机加减乘除程序对于初学者来说,编写一个计算机加减乘除程序是一个不错的练习。
本文将介绍如何使用C语言编写一个简单的计算器程序,让您在学习C语言的同时掌握基本的计算机编程技能。
首先,您需要了解C语言中基本的数学运算符,包括加 (+)、减(-)、乘 (*)、除 (/) 等等。
这些运算符可以用来执行基本的算术运算,例如:int a = 5;int b = 2;int c = a + b; // c 的值为 7int d = a - b; // d 的值为 3int e = a * b; // e 的值为 10int f = a / b; // f 的值为 2上面的代码演示了如何在C语言中使用基本的运算符进行加减乘除运算。
接下来,我们将介绍如何将这些运算符组合成一个计算机加减乘除程序。
程序的基本结构是从用户输入两个操作数和运算符,然后根据运算符执行相应的计算。
以下是一个简单的例子:#include <stdio.h>int main() {char operator;int num1, num2;printf('Enter operator (+, -, *, /): ');scanf('%c', &operator);printf('Enter two operands: ');scanf('%d %d', &num1, &num2);switch (operator) {case '+':printf('%d + %d = %d', num1, num2, num1 + num2); break;case '-':printf('%d - %d = %d', num1, num2, num1 - num2); break;case '*':printf('%d * %d = %d', num1, num2, num1 * num2); break;case '/':printf('%d / %d = %d', num1, num2, num1 / num2); break;default:printf('Error! Invalid operator.');}return 0;}上面的代码使用了一个switch语句来根据输入的运算符执行相应的计算。
C语言基础—计算器程序
![C语言基础—计算器程序](https://img.taocdn.com/s3/m/5a2d8b685a8102d276a22fa3.png)
2.1.3 整型数据
2.1 数据类型与表达式
清华大学出版社
2.1 数据类型与表达式
2.1.3 整型数据
说明: (1) 实际上,常用的整型变量类型是:int 或 short。 (2) 特别强调:short 所适用的数据范围为 -32768~32767。
例如:short x=32768; x的赋值超出了-32768~32767的范围,会出现数据溢出,程序运行结 果错误。为避免数据溢出,超出-32768~32767范围的数据,要定义为 int 或long。
清华大学出版社
2.1 数据类型与表达式
2.1.1 C语言数据类型
所谓数据类型,就是在存储数据时,编译系统根据数据的大小分配不同 大小的存储空间,即不同类型的数据分配不同长度的存储单元,采用不同的存 储形式。例如:基本整型(int),Visual C++6.0分配4字节存储空间,字符型
(char),Visual C++6.0分配1字节存储空间。
C语言程序设计
清华清大华学大出学出版版社社
项目2 计算器程序
学习目标
熟练掌握C语言的常量与变量 掌握C语言的数据类型分类 重点掌握C语言的整型和浮点型数据的表示方法、
分类、存储单元及取值范围 重点掌握算术运算符和算术表达式 掌握赋值运算符和赋值表达式 重点掌握整型、浮点型数据的格式化输入与输出 理解C语言程序设计的步骤
}
清华大学出版社
2.1 数据类型与表达式
2.1.5 基本算术运算符和算术表达式
1.基本的算术运算符
清华大学出版社
2.1 数据类型与表达式
2.1.5 基本算术运算符和算术表达式
说明:
简单计算器可视化程序编程
![简单计算器可视化程序编程](https://img.taocdn.com/s3/m/54d26993011ca300a7c390de.png)
简单计算器一、基本功能描绘二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算科学计算函数,包括( 反 ) 正弦、 ( 反) 余弦、 ( 反 ) 正切、 ( 反 ) 余切、开方、指数等函数运行以角度、弧度两种方式实现上述部分函数具备历史计算的记忆功能对不正确的表达式能指出其错误原因二、流程图输入数据子函数编写框关系变量m_num=0键入一个数N可否为正数?Ym_num m_num=10*m_num+i=10*m_num-i可否为小数?Y复原 m_numN依照小数点后位数将键入的数除以 n 次 10 累加到 m_numY连续键入数字?N用 UpdateData(FALSE) 刷新显示图 1 输入数据子函数流程图图 2三、设计步骤翻开 Microsoft Visual C++ 6.0 , 在文件中点击新建,在弹出框内选择MFC AppWizard[exe] 工程,输入工程名Calculter及其所在位置,点击确定,如图3所示。
将弹出这样,图 3 新建 MFC AppWizard[exe] 工程MFC AppWizard-step 1对话框,选择基本对话框,点击达成,如图图 4 基本对话框MFC AppWizard 就成立了一个鉴于对话窗口的程序框架,如图图 5 新建的对话框4 所示。
5 所示。
四、界面设计1、创立控件在图 5 所示的 Resoure View 选项卡中翻开Dialog 资源组,双击IDD_CALCULATOR_DIALOG,在右边的窗口中显示出待编写的对话框。
开始摆放控件,包括编写框和按钮的创立。
按钮的创立1)在图 5 中 Controls 的“编写框”按钮上单击鼠标左键,在对话框编写窗口上合适的地点按下鼠标左键并拖动鼠标画出一个大小合适的编写框。
在编写框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit 属性对话框,如图 6 所示,在该对话框中输入ID 属性。
用VB编写计算器程序
![用VB编写计算器程序](https://img.taocdn.com/s3/m/daaeae2a2f60ddccdb38a00c.png)
2、单击数组命令按钮Command1触发事件
Private Sub Command2_Click(Index As Integer)
Text1.Text = jsq.Eval(Tex事件,调用脚本控制器部件
脚本控制器部件Scriptcontrol改名为jsq,利用它的Eval值
Text1.Text = (Text1.Text) ^ 2
End Sub 进行平方的运算 (Text1.Text) ^ 2在Visual Basic中表示平方运算
Private Sub Command4_Click()
Text1.Text = “ " End Sub 文本框Text1.text为空表示计算器清除
用vb编写计算器程序用vb编写计算器用vb编写简单计算器用vb编写科学计算器用vb编写简易计算器vb编写计算器vb编写简易计算器vb简易计算器程序vb计算器程序如何用vb制作计算器
Private Sub Command1_Click(Index As Integer)
Text1.Text = Text1.Text + Command1(Index).Caption End Sub 解读程序: 1、数组命令按钮Command1(index)
进行加减乘除的运算,例如:jsq. Eval(8X9)=72
Private Sub Command3_Click()
Text1.Text = Sqr(Text1.Text) End Sub 进行开平方的运算 Sqr在Visual Basic中表示开平方运算
Private Sub Command5_Click()
Private Sub Command6_Click()
Unload Me End Sub
表示退出计算器
计算器测量程序
![计算器测量程序](https://img.taocdn.com/s3/m/2816f38ae53a580216fcfe12.png)
3570243.7743→E:379636.8205→F
84.9958→D:1→S:66.3108→W:66.3108→V
54°6′36.04″→I:116°28′3.63″→A
9026.5783→U:90→R:40→H:40→C
Goto 1:IfEnd
If K≤9406.5154:Then
程序:ZSSTART坐标正算开始程序
“XO=”?O:“YO=”?P输入置镜点坐标
Lbl 0:“K=”?K:Prog“QXYS”输入测设里程及偏距
“J=”?J:Prog“ZBJS”:Prog“ZBFS”
Goto 0
程序:FSSTART
“XP=”?B:”YP=”?T:“K=”?K输入需反算点坐标
Do及反算起始里程
3568697.8511→E:378419.0366→F
97.1306→D:1→S:70.2036→W:70.2036→V
50°35′32.89″→I:234°36′23.62″→A
oto 1:IfEnd
If K>11268.0654:Then
R(1-Cos(Q))+L2÷(24R)- L^(4)÷(2384R^(3))→Y
E+GCos(A)-SYSin(A)-JSin(A+SQ)→X
F+GSin(A)+SYCos(A)+JCos(A+SQ)→Y
A+SQ→W:Goto 1:IfEnd
If Z≤D+C:Then第2段缓和曲线坐标计算
D+C-Z→Z:C→L:Prog“I”
M-GCos(A+SI)-SYSin(A+SI)-JSin(A+SI-SQ)→X
FX5800计算器的积分程序
![FX5800计算器的积分程序](https://img.taocdn.com/s3/m/67e3e711b307e87100f69613.png)
FX5800计算器的积分程序(正反算、全线贯通、新线路)终极版ZHUCHENGXU 主程序“1.ZS,2.FS” ?→Q 输入1正算,输入2反算“NEW=0,OLD ≠0”?ZIf Z=0:Then “X0=”?A:“Y0=”?B:“C0=”?C:“1/R0=”?D:“1/RI=”?E:“SP=”?F:“EP=”?G:Ifend:Q=2=>Goto 2Lbl 1 :“KM=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PY=”?LLbl Z:Z=1=> Prog“01”:Z=2=> Prog“02”选择数据库文件,可增加H- F→X:0.5(E-D)÷(G-F)→NC+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→PA+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→UB+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→VQ=2=>Goto 4:Cls:Fix 3“Xn=”:Locate 4,1,U:”Yn=”: Locate 5,2,V:“FWJ=”:P▶DMS ◢Norm 2:Cls:Goto 1Lbl 2:“XD=,<0,STOP”?R:R<0=>Stop:“YD=”?S“KMDG=”?H :90→O:0→L:Goto Z (H 线路范围内的任意桩号)Lbl 4:Pol(R-U,S-V):J<0 => J+360→JWhile abs(Icos(J-P))≤0.001:P-J>180=> J+360→J: P-J<-180=> P+360→P:IF P-J>0:then -I→L:else I→L ifendGoto 3: Whileend:H+Icos(J-P)→H:Goto ZLbl 3:Cls:Fix 3“KM=”: Locate 4,1,H:“PY=”: Locate 4,2,L◢Norm 2:Cls:Goto 201(数据库子程序)If H<=第一曲线终点桩号:then 第一曲线起点X→A:第一曲线起点Y→B:第一曲线起点方位角→C:起点曲率→D:终点曲率→E:起点桩号→F:终点桩号→G:return:ifend……………程序说明:1、该程序可以计算任意线形(直线、圆曲线、缓和曲线、不完整曲线)任意桩号的坐标(正算,输入1),也可根据坐标计算该点到线路的距离及垂足桩号(反算,输入2);2、(NEW=0,OLD≠0)?如果要计算的点为数据库线路中的点,则输入数据库编号(以整数1、2、3…代替输入);如果在数据库中没有要计算线路的数据,则输入曲线要素X0:曲线起点X坐标;Y0:曲线起点Y坐标;C0:曲线起点方位角;R0-1、 RI-1:曲线起点、终点曲率,直线为0,曲线左偏输入负值,右偏输入正值;SP、 EP:曲线起点桩号,终点桩号;KM:待求点桩号;PJ:正斜交的设定;PY:偏中距离,线路上的点输入0,右偏输入+值,左偏输入-值;3、正算显示坐标及切线方位角;反算输入线路的任意桩号(此桩号越接近真实值计算速度越快)、待求点坐标,显示待求点桩号及偏中距离;4、正算子程序为积分公式编写而成;反算子程序为角度趋近的方法编写,计算速度有点慢。
步骤3:使用“计算器”程序[共2页]
![步骤3:使用“计算器”程序[共2页]](https://img.taocdn.com/s3/m/f37a772b700abb68a882fb55.png)
基本操作基础教程(Windows 7+Office 2010)65 图2-41 窗口搜索框(1)在“搜索”框中键入文件或文件名的一部分。
(2)键入时,将自动筛选文件夹或库的内容,以逐个反射键入的连续字符。
当看到需要的文件后,即可停止键入。
案例三 计算机的系统自带功能小红在使用计算机时发现Windows 7有些自带的娱乐功能。
步骤1:截取屏幕图片要想保存屏幕上显示的一些画面,可以采用截取屏幕或图片的方式,下面介绍3种常用方法。
(1)按住“Print Screen”键截取整个屏幕,并将全屏画面保存在剪贴板中。
可以将剪贴板的内容“粘贴”到文档中;也可以“粘贴”到一些图形处理软件中,对图片做进一步的编辑,如Windows 7自带的“画图”软件。
(2)按住“Alt”键的同时,再按“Print Screen”键,可以截取屏幕上的活动窗口,并将活动窗口画面保存在剪贴板中。
然后可以将剪贴板的内容“粘贴”到相应的位置。
(3)单击“开始”按钮,选择“截图工具”,移动鼠标可以看到截图标识“+”,按住鼠标左键将“+”从左上向右下拉动,即可选择要截取的图片,放开左键就把图片截取下来。
系统默认将图片保存在“图片库”文件夹里,也可以“粘贴”到其他位置。
步骤2:使用“画图”程序Windows 7自带的“画图”程序是一个编辑图形、图片的小工具。
使用它可以绘制各种规则或不规则的形状,例如椭圆、矩形和各种线条等。
1.启动“画图”程序单击“开始”按钮,打开“所有程序”→“附件”→“画图”,启动“画图”程序,如图2-42所示。
2.主界面介绍(1)标题栏:包括快速访问工具栏、文件名称和控制按钮。
(2)功能区:包括“剪贴板”“图像”“工具”“形状”“颜色”等功能区,每个功能区都包含多种工具和功能按钮。
(3)画布:即绘图区域,可以在此区域画各种图形或处理图片。
步骤3:使用“计算器”程序1.启动“计算器”程序单击“开始”按钮,打开“所有程序”→“附件”→“计算器”,启动“计算器”程序。
简单计算器程序操作步骤
![简单计算器程序操作步骤](https://img.taocdn.com/s3/m/86819b66011ca300a6c390c7.png)
简单计算器程序操作步骤一、建立”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。
C语言实现简单计算器程序
![C语言实现简单计算器程序](https://img.taocdn.com/s3/m/041aee9070fe910ef12d2af90242a8956becaad4.png)
C语⾔实现简单计算器程序这两天在看⼀个C语⾔写的计算器程序,做了不少的功夫,跟着作者⼀步步的进⾏完善,了解了许多细节性的东西,在此⾃⼰做个总结,加深⾃⼰对程序的印象,也算是梳理。
在该计算器程序,能进⾏加减乘除、sin、cos、exp等操作,同时能进⾏数值保存功能。
⽽该计算器使⽤逆波兰表⽰法。
即所有运算符都跟在操作数的后⾯,⽐如下列表达式:(1 - 2) * (4 + 5)采⽤逆波兰表⽰法表⽰为:1 2 - 4 5 + *逆波兰表达法中不需要圆括号,只要知道每个运算符需要⼏个操作数就不会引起歧义。
计算器程序实现很简单,具体原理如下:while(/* 下⼀个运算符或操作数不是⽂件结束指⽰符 */)if(/* 是数 */)/* 将该数压⼊到栈中 */else if (/* 是运算符 */)/* 弹出所需数⽬的操作数 *//* 执⾏运算 *//* 将结果压⼊到栈中 */else if (/* 是换⾏符 */)/* 弹出并打印栈顶的值 */else/* 出错 */在程序设计中,使⽤模块化思想,getop函数来进⾏读⼊,该函数返回⼀个标识,⽤来标识读⼊的是什么类型。
主循环体中根据该标识执⾏相应的动作。
以下是该程序:(我将所有函数和变量放在同⼀⽂件)#include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXOP 100#define NUMBER '0' //标识读⼊的是数字#define NAME 'n' //标识读⼊的是字符串(函数名或⾮法字符串)#define ALPHA 26int getop(char []);void push (double); //压栈double pop(void); //出栈void clear(void); //清空栈void mathfnc(char []); //执⾏相应的数学函数sin、cos、exp等int main(void){int type;int i, var = 0;double op1, op2,v;char s[MAXOP];double variable[ALPHA];for (i = 0; i < ALPHA; i++) //初始化⽤于保存数值的变量数组variable[i] = 0.0;while ((type = getop(s)) != EOF) //读取输⼊{switch (type){case NUMBER:push (atof(s));break;case NAME:mathfnc(s);break;case '+':push (pop() + pop());break;case '*':push (pop() * pop());break;case '-':op2 = pop();push (pop() - op2);break;case '/':op2 = pop();if (op2 != 0.0)push (pop() / op2);elseprintf ("error: zero divisor\n");break;case '%':op2 = pop();if (op2 != 0.0)push (fmod(pop(), op2));elseprintf ("error: zero divisor\n");break;case '?': //打印栈顶元素op2 = pop();printf ("\t%.8g\n", op2);push (op2);break;case '=': //保存数值pop();if (var >= 'A' && var <= 'Z')variable[var - 'A'] = pop();elseprintf ("error: no variable name\n");break;case 'c':clear();break;case 'd': //复制栈顶元素op2 = pop();push(op2);push(op2);break;case 's': //交换栈元素op1 = pop();op2 = pop();push(op1);push(op2);case '\n':v = pop(); //v保存最后的⼀次结果printf ("\t%.8g\n", v);break;default:if (type >= 'A' && type <= 'Z')push(variable[type - 'A']);else if (type == '@') //输⼊的字符@表⽰最近⼀次结果值 push(v);elseprintf ("error: unknown command %s\n", s);break;}var = type;}return 0;}/* ----------------------------------------------------------- */#define MAXVAL 100int sp = 0; //标识栈顶double val[MAXVAL];void push(double f){if (sp < MAXVAL)val[sp++] = f;elseprintf ("error: stack full, can't push %g\n", f);}double pop(void){if (sp > 0)return val[--sp];else{printf ("error: statck empty\n");return 0.0;}}void clear(void){sp = 0;}void mathfnc (char s[]){double op2;if (strcmp (s, "sin") == 0)push(sin(pop()));else if(strcmp (s, "cos") == 0)push(cos(pop()));else if(strcmp (s, "exp") == 0)push(exp(pop()));else if(strcmp (s, "pow") == 0){op2 = pop();push (pow(pop(), op2));}elseprintf ("error: %s not supported\n", s);}/* ----------------------------------------------------------- */#include <ctype.h>int getch(void);void ungetch(int);int getop(char s[]){int i, c;while ((s[0] = c = getch()) == ' ' || c == '\t') //过滤开头的空⽩字符;s[1] = '\0';i = 0;if (islower(c)) //判断是否为⼩写字母,也即读取由⼩写字母组成的字符串 {while (islower(s[++i] = c = getch()));s[i] = '\0';if (c != EOF)ungetch(c);if (strlen (s) > 1)return NAME;elsereturn c;}if (!isdigit(c) && c != '.' && c != '-')return c;if (c == '-') //⽤于判断是负数还是减操作{if (isdigit(c = getch()) || c == '.')s[++i] = c;else{if (c != EOF)ungetch(c);return '-';}}if (isdigit(c)) //收集整数部分while (isdigit(s[++i] = c = getch()));if (c == '.') //收集⼩数部分while (isdigit(s[++i] = c = getch()));s[i] = '\0';if (c != EOF)ungetch(c);return NUMBER;}/* ----------------------------------------------------------- *//** 引⽤以下两个函数是因为:程序不能确定它已经读⼊的输⼊是否⾜够 ** 除⾮超前多读⼊⼀些输⼊,在本程序中,读⼊⼀些字符合成⼀个数字 ** 所以在看到第⼀个⾮数字字符之前,已经读⼊的数的完整性是不能确定的* 由于程序要超前读⼊⼀个字符,这样就导致最后⼜⼀个字符不属于当前所要读⼊的数*/#define BUFSIZE 100char buf[BUFSIZE];int bufp = 0;int getch(void){return (bufp > 0) ? buf[--bufp] : getchar();}void ungetch (int c){if (bufp >= BUFSIZE)printf ("ungetch: too many characters\n");elsebuf[bufp++] = c;}该程序虽然简单,但是还是存在⼀些⼩⼩的问题,⽐如没有数据时进⾏pop的话,会打印栈中⽆数据同时返回数值0.0,在循环体中许多执⾏操作会将该数值保存到栈中,之后打印该值,⽤户体验度⽐较差。
计算器程序代码
![计算器程序代码](https://img.taocdn.com/s3/m/9caa6d3d91c69ec3d5bbfd0a79563c1ec5dad701.png)
计算器的程序,很简单,只弄了+-法,乘除没弄,只要把代码看懂照着+-法改一下就行了,不过涉及到多级运算只用一个LastClick是不行的程序的控件就两种CommandBotton和TextBox都是最基本的先创建十一个CommandBotton,Caption改为0-9以及一个"."(小数点)创建三个CommandBotton,Caption改为“-”,“+”“=”创建五个CommandBotton,Caption改为“CM”(clearmemory) “MR”(memoryrecall) “MS”(memorysave) “C”(clear) “AC”(allclear)再创建个TextBox下面的是对应代码,很清楚Dim Counter As Double ‘这个用来记录结果Dim Memory As Double ‘用来记录你保存的数,这个我们用的科学计算器里也有Dim Reg As Double ‘这个也是用来记录结果Dim CalcNumber As Long ‘这个是判断:1当之前点过一次+或-时再点一次运算结果,2如果前面没点过+或-则不进行运算Dim DisplayFromNew As Boolean ‘这个用来判断输入框状态:是接着输入还是从新输入新的数Dim AlreadyDecimalThere As Boolean ‘这个用来判断是否能用小数点Dim LastClick As String ‘这个用来记录最后一次选择的运算法则Private Sub Form_Load()Display.Text = "0"Reg = 0CalcNumber = 0DisplayFromNew = TrueAlreadyDecimalThere = FalseEnd SubPrivate Sub AllClear_Click() ‘这个不用说了,是全部清空DisplayFromNew = True ‘恢复到初始状态Counter = 0Display.Text = "0" ‘清空输入框CalcNumber = 0Reg = 0AlreadyDecimalThere = False ‘恢复到初始状态End SubPrivate Sub Clear_Click() ‘清空,但不清空纪录DisplayFromNew = TrueDisplay.Text = "0"End SubPrivate Sub ClearMemory_Click() ‘清空纪录Memory = 0End SubPrivate Sub Decimal_Click() ‘关于小数点的If AlreadyDecimalThere = False ThenAddDisplayDigit "."AlreadyDecimalThere = True ‘每次输入只能输一次小数点End IfEnd SubPrivate Sub Equals_Click() ‘等号时的If LastClick = "Minus" ThenIf CalcNumber = 0 ThenReg = CDbl(Display.Text) ‘记录DisplayFromNew = TrueCalcNumber = 1Else ‘这个的意思是,如果只点了法则(+或-)之后没点数,就加上前面输的数,但我觉得这样就等于前面输得数的2倍(+时)或0(-时),所以不用这么麻烦Counter = Reg - CDbl(Display.Text)Display.Text = CStr(Counter)DisplayFromNew = TrueAlreadyDecimalThere = FalseReg = CDbl(Display.Text)End IfElseIf LastClick = "Addition" Then ‘这是加法,和减法一样If CalcNumber = 0 ThenReg = CDbl(Display.Text)DisplayFromNew = TrueCalcNumber = 1ElseCounter = Reg + CDbl(Display.Text)Display.Text = CStr(Counter)DisplayFromNew = TrueAlreadyDecimalThere = FalseReg = CDbl(Display.Text)End IfEnd IfCalcNumber = 0End SubSub AddDisplayDigit(Additio n As String) ‘这一段十分重要,也是大家要学习的,就是自己创建一个函数,这样应用起来会十分方便If DisplayFromNew = True ThenDisplay.Text = Addition ‘当DisplayFromNew = True时(大家注意杂那几种情况下= True)输入栏从新显示刚输入的数DisplayFromNew = False ‘之后立即变为False,因为要接着这个数继续输入ElseDisplay.Text = Display.Text & Add ition ‘当DisplayFromNew = False 就是接着输入栏里已有的数字继续输入End IfEnd Sub注:为何要弄两种情况呢,因为当点击-或+时,要求输入栏从新记录Private Sub MemorySave_Click() ‘这是保存记录If DisplayFromNew = False ThenMemory = CDbl(Display.Text)End IfEnd SubPrivate Sub MemoryRecall_Click() ‘打开纪录Display = CStr(Memory)End SubPrivate Sub Minus_Click() ‘点击If CalcNumber = 0 ThenReg = CDbl(Display.Text)DisplayFromNew = TrueCalcNumber = 1Else ‘这个就是如果前面输过一次-号,再点-号就运算结果,这一点是很重要的,如果不加这个就无法进行连续运算Counter = Reg - CDbl(Display.Text)Display.Text = CStr(Counter)DisplayFromNew = TrueAlreadyDecimalThere = FalseReg = CDbl(Display.Text)End IfLastClick = "Minus"End SubPrivate Sub Plus_Click() ‘和减法一样If CalcNumber = 0 ThenReg = CDbl(Display.Text)DisplayFromNew = TrueCalcNumber = 1ElseCounter = Reg + CDbl(Display.Text)Display.Text = CStr(Counter)DisplayFromNew = TrueAlreadyDecimalThere = FalseReg = CDbl(Display.Text)End IfLastClick = "Addition"End Sub‘下面的就简单了0-9,不过用到了前面定义的函数AddDisplayDigit,大家看到这个自定义函数的作用了吧Private Sub Nine_Click()AddDisplayDigit "9"End SubPrivate Sub Eight_Click()AddDisplayDigit "8"End SubPrivate Sub Seven_Click()AddDisplayDigit "7"End SubPrivate Sub Six_Click()AddDisplayDigit "6"End SubPrivate Sub Five_Click()AddDisplayDigit "5"End SubPrivate Sub Four_Click() AddDisplayDigit "4"End SubPrivate Sub Three_Click() AddDisplayDigit "3"End SubPrivate Sub Two_Click() AddDisplayDigit "2"End SubPrivate Sub One_Click() AddDisplayDigit "1"End SubPrivate Sub Zero_Click() AddDisplayDigit "0"End Sub。
简单的四则运算计算器程序
![简单的四则运算计算器程序](https://img.taocdn.com/s3/m/1e6358d2aa00b52acfc7cac7.png)
简单的四则运算计算器程序
实验目的与要求: 目的: 1、掌握类、构造函数/析构函数、栈等概念,掌握字符串操作; 2、步了解类的设计方法,初步了解词法分析、表达式求值的算符优先算法等 内容。 要求:
cout<<"程序错误,0作为除数出现!";
} else
a=a/b; }break; case '+':a=a+b;break; case '-':a=a-b;break; default:{}break; } Operand oper(a); sOperand.push(oper);
//cout<<"计算,并将结果压:"<<sOperand.getTop().get()<<"入栈\n";
char ch=temp[0]; double a,b; if(ch=='(') {
Operator oper('('); sOperator.push(oper);
//cout<<"符号:"<<sOperator.getTop().get()<<"入栈\n";
} else if(ch==')') {
//cout<<"计算,并将结果压:"<<sOperand.getTop().get()<<"入栈\n";
使用计算器的流程
![使用计算器的流程](https://img.taocdn.com/s3/m/cdb73bb7d1d233d4b14e852458fb770bf78a3b32.png)
使用计算器的流程1. 熟悉计算器界面•开机启动计算器程序,进入计算器界面。
•界面通常由数字键盘、运算符、清除键和等于键等组成。
•留意界面上的特殊功能键,如开方、求平方等。
2. 输入数值•使用数字键盘输入第一个待计算的数值。
•可以通过字母键盘的“退格”或“删除”键进行修正。
•检查确认输入的数值正确无误。
3. 选择运算符•从界面上的运算符按钮中选择一个合适的运算符。
•常见的运算符有加法、减法、乘法、除法等。
•可以根据具体需要先选择特殊功能键,如开方、求平方等。
4. 输入第二个数值•与步骤2类似,使用数字键盘输入第二个待计算的数值。
•再次确认数值输入的准确性。
5. 进行计算•点击界面上的等于键,开始进行数值计算。
•计算器自动完成计算,并在显示屏上显示计算结果。
•等待计算结果的显示。
6. 检查结果•检查计算结果是否符合预期。
•确认结果的精确性和正确性。
•如有需要,可以通过按下特定功能键,如“清除”键或“重置”键来重新计算。
7. 持续计算•如需继续进行计算,可以重复步骤2至步骤6。
•输入新的数值和运算符,进行新的计算。
•可以连续计算多个数值,得到多个计算结果。
8. 关闭计算器•使用计算器结束后,点击界面上的关闭或退出按钮。
•计算器程序将退出,界面关闭。
9. 注意事项•在使用计算器时,注意数值的大小范围,避免超出计算器的承载能力。
•注意运算符的优先级和顺序,确保计算结果的准确性。
•使用计算器时要小心输入错误,确保数值的准确性。
•当有需要时可以参考计算器的用户手册,了解更多使用方法和功能。
以上是使用计算器的基本流程,希望能对您有所帮助。
计算器在日常生活和工作中扮演着重要的角色,了解如何正确使用计算器可以提高工作效率,减少错误率。
请根据实际情况,结合计算器的具体功能和特点,灵活应用。
4800计算器计算程序
![4800计算器计算程序](https://img.taocdn.com/s3/m/cda07875f46527d3240ce048.png)
主程序F3LbI 1:A“X1”:B“Y1”:C“X2”:D“Y2”N=0:E=C-A:F=D-B ↙ Prog“F1”↙{P}:P≥1 Prog“F2”△↙LbI 6:{XY}:E=X-A:F=Y-B:Prog“F1”:N≠1 L=G ↙Z≥L M=Z-L-180: M=Z-L+180: △↙M >0 M=180-M ▲M=180+Abs M▲△ Goto 6 ↙子程序F1E=0 Goto4 △ I=tan-1Abs(F÷E):S=√ (E2+F2) ▲F≥0 Goto2△E<0 G=180+I▲G = 360-I▲△Goto 5↙LbI 2:E<0 G=180-I ▲G = I ▲△ Goto 5 ↙LbI 4:F>0 G = 90 ▲G =270 ▲△ Goto 5 ↙LbI 5:N=N+1:N=1 Z= G △↙子程序F2LbI 9:{SI}:P=G+180-I:X=A+Scosp▲Y=B+SsinP ▲{o}:o≤0 Goto 9 △ o≤1 A=X:B=Y:G=P+180:G>360 G = G-360:Goto 9 △↙说明:1、主程序F3,已知座标放线;2、P<1主程序进入座标放样计算,P≥1时主程序进入座标计算;3、F3中的S是站点至待放点的距离,M是后视点至待放点的左角。
4、F2中的O表示站点,O>1迁站重新输入(X1,Y1)(X2,Y2)计算座标。
输入转角I时;转角左转I取“+”,右转I取“—”。
5、F2中的S,是表示站点至待求座标点的距离,用测距仪测定。
主程序:PQXLbI O:A“K0”:B“X0”:C“Y0”:D“L0”:E“A0”:F“B0”:G“K1”:N :R:T:Z:L=K-A:S=K-A-D:I=G-K ↙{K} ↙N<1 Prog “P1”:Goto O △↙N=1 Prog “P2”:Goto O △↙Prog “P3”↙Goto O ↙子程序:P1Z≤1 X=B+[L-L5÷(40R2D2)]CosE+[L3cos(E+90)]÷(6RD)▲Y=C+[L-L5÷(40R2D2)]sinE+[ L3sin(E+90)] ÷(6RD) ▲Y=C+[L-L5÷(40R2D2)]sinE+[ L3sin(E-90)] ÷(6RD)▲子程序:P2Z≤1 X=B+[D- D3÷(40R2)]cosE+[(D2÷(6R))]cos(E+90)+[S-S3÷(6 R2 )+ S5 /(120R4 )]Cos[E+(90D) ÷(πR )]+[ S2÷(2R)-S4÷(24R3)+S6÷(720R5)]cos[E+(90D)÷(πR)+90] ▲ Y=C+[D- D3÷(40R2)]sinE+[(D2÷(6R))]sin(E+90)+[S-S3÷(6R2)+S5÷(120R4)]sin[E+(90D)÷(πR)]+[S2÷(2R)-S4÷(24R3)+S6÷(720R5)]sin[E+(90D)÷(πR)+90] ▲X=B+[D-D3÷(40R2)]cosE+[(D2÷(6R)]cos(E-90)+[S-S3÷(6R2) +S5÷(120R4)]cos[E-(90D)÷(πR)]+[S2÷(2R)-S4÷(24R3)+S6÷(720R5)]cos[E-(90D)÷(πR)-90] ▲Y=C+[D-D3÷(40R2)]sinE+[(D2÷(6R)]sin(E-90)+[S-S3÷(6R2) +S5÷(120R4)]sin[E-(90D)÷(πR)]+[S2÷(2R)-S4÷(24R3)+S6÷(720R5)]sin[E-(90D)÷(πR)-90] ▲子程序:P3Z≤1 X=B+TcosE+Tcos(E+F)+[I-I5÷(40R2D2)]cos(E+F+180) +[I3÷(6RD)]cos(E+F+180-90)▲Y=C+TsinE+Tsin(E+F)+[I-I5÷(40R2D2)]sin(E+F+180) +[I3÷(6RD)]sin(E+F+180-90)▲X=B+TcosE+Tcos(E-F)+[I-I5÷(40R2D2)]cos(E-F+180) +[I3÷(6RD)]cos(E-F+180+90)▲Y=C+TsinE+Tsin(E-F)+[I-I5÷(40R2D2)]sin(E-F+180)+[I3÷(6RD)]sin(E-F+180+90)▲说明:1.K0为ZH点桩号;(X0,Y0)为ZH点座标;L0为缓和曲线段长度,A0为直线方位角;B0为转角;K1为HZ点桩号;N为条件参数;R为半径;T为切线长;Z为条件参数;K为待求点桩号。
实用计算器的程序设计及代码示例
![实用计算器的程序设计及代码示例](https://img.taocdn.com/s3/m/a4bd20bcc9d376eeaeaad1f34693daef5ef7139b.png)
实用计算器的程序设计及代码示例计算器是现代人经常使用的工具,它能够进行各种数学运算,如加减乘除、取余、开方等。
本文将介绍实用计算器的程序设计和提供代码示例,帮助读者了解计算器的原理和实现方式。
一、程序设计思路在设计实用计算器的程序时,首先需要确定计算器的功能和界面设计。
一般来说,一个基本的计算器应该具备以下功能:数字键、运算符键、等号键、清除键和显示屏。
程序的设计思路如下:1. 定义一个变量num,用于保存当前输入的数字。
2. 定义一个变量result,用于保存计算结果。
3. 通过按钮点击事件,获取用户输入的数字和运算符,并根据用户的选择进行相应的计算。
4. 将计算结果显示在显示屏上。
二、代码示例下面是一个简单的实用计算器程序的代码示例,采用Python语言编写:```from tkinter import *def clear():display.delete(0, END)def calculate():expression = display.get()result = eval(expression)display.delete(0, END)display.insert(0, result)def button_click(number):current = display.get()display.delete(0, END)display.insert(0, str(current) + str(number))root = Tk()root.title("实用计算器")display = Entry(root, width=25, borderwidth=5)display.grid(row=0, column=0, columnspan=4, padx=10, pady=10)button_1 = Button(root, text="1", padx=10, pady=10, command=lambda: button_click(1))button_2 = Button(root, text="2", padx=10, pady=10, command=lambda: button_click(2))button_3 = Button(root, text="3", padx=10, pady=10, command=lambda: button_click(3))button_4 = Button(root, text="4", padx=10, pady=10, command=lambda: button_click(4))button_5 = Button(root, text="5", padx=10, pady=10, command=lambda: button_click(5))button_6 = Button(root, text="6", padx=10, pady=10, command=lambda: button_click(6))button_7 = Button(root, text="7", padx=10, pady=10, command=lambda: button_click(7))button_8 = Button(root, text="8", padx=10, pady=10, command=lambda: button_click(8))button_9 = Button(root, text="9", padx=10, pady=10, command=lambda: button_click(9))button_0 = Button(root, text="0", padx=10, pady=10, command=lambda: button_click(0))button_add = Button(root, text="+", padx=10, pady=10,command=lambda: button_click("+"))button_subtract = Button(root, text="-", padx=10, pady=10,command=lambda: button_click("-"))button_multiply = Button(root, text="*", padx=10, pady=10, command=lambda: button_click("*"))button_divide = Button(root, text="/", padx=10, pady=10, command=lambda: button_click("/"))button_clear = Button(root, text="C", padx=10, pady=10, command=clear)button_equal = Button(root, text="=", padx=10, pady=10, command=calculate)button_1.grid(row=1, column=0)button_2.grid(row=1, column=1)button_3.grid(row=1, column=2)button_add.grid(row=1, column=3)button_4.grid(row=2, column=0)button_5.grid(row=2, column=1)button_6.grid(row=2, column=2)button_subtract.grid(row=2, column=3)button_7.grid(row=3, column=0)button_8.grid(row=3, column=1)button_9.grid(row=3, column=2)button_multiply.grid(row=3, column=3)button_0.grid(row=4, column=0)button_clear.grid(row=4, column=1)button_equal.grid(row=4, column=2)button_divide.grid(row=4, column=3)root.mainloop()```以上代码使用了`tkinter`库创建了一个简单的图形界面,包含数字按钮、运算符按钮、清除按钮和等于按钮。
5800P计算器)程序(附带高程)
![5800P计算器)程序(附带高程)](https://img.taocdn.com/s3/m/e7924e6ca45177232f60a2ba.png)
一、功能及原理说明1. 功能说明:本程序由一个主程序(1-MAIN)和七个子程序——正算子程序(1-SUB-ZS)、反算子程序(1-SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。
本程序在CASIO FX-5800P计算器运行。
2.计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即Dca×Dcb<=0=>该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出反算结果。
3. 程序输入计算器后,请根据统计串列List X,Y,freq[N]在程序中实际可能被使用的维数,将其统计矩阵串列改为包含相应维数的任意数据的矩阵,即在list列表中随机输入相应维数的数据,保证矩阵大小符合维数要求。
4. 本程序正算速度在1-2秒左右,反算比正算慢点,可根据需要调整精度加快速度。
本程序可建立曲线要素数据库及高程变坡点数据库,一次输入整条线路数据,计算时自动调用数据库,实现全线贯通,也可临时手动输入线元计算要素进行计算。
5. 本程序由小骆在前人的基础上改进而成,经个人测试可用。
学识浅薄,不足之处,在所难免,欢迎提出改进意见。
交流邮箱:716118673@二、源程序1.主程序(1-MAIN)Deg:fix 320→DimZLbl 0:cls:“INPUT(0),ZX(1),YX(2)”?I (选择手动输入计算参数0,还是调用线路数据1,2)If I=0:Then Prog “1-DAT1”:IfEnd“SZ=>XY(1),XY=>SZ(2)”?N(正算,反算)If N=1 :Then Goto 1Else If N=2 :Then Goto 2Else Goto 3IfEnd:IfEndLbl 1:“KP=”?S(输入待求桩号)If S<0:Then Goto 0:IfEnd“JL(m)=”?Z (输入偏距)If Z≠0:Then “ANGLE→R(Deg)=”?M:IfEnd (输入斜交右角)If I≠0:Then Prog “1-DAT2”:IfEndS-O→W:If W<0:Then Goto 0:Else If W>H:Then cls:locate 6,2,"KP OUT"◢Goto 0:IfEnd:IfEnd(前半条针对“DAT”情况,后半条针对“INPUT”情况。
C语言简单计算器程序源代码
![C语言简单计算器程序源代码](https://img.taocdn.com/s3/m/1ce7265ec4da50e2524de518964bcf84b9d52da0.png)
C语言简单计算器程序源代码以下是一个简单的C语言计算器程序的源代码:```c#include <stdio.h>int maichar operator;double num1, num2;printf("请输入运算符:");scanf("%c", &operator);printf("请输入两个数字:");scanf("%lf %lf", &num1, &num2);switch (operator)case '+':printf("%.2lf + %.2lf = %.2lf", num1, num2, num1 + num2); break;case '-':printf("%.2lf - %.2lf = %.2lf", num1, num2, num1 - num2); break;case '*':printf("%.2lf * %.2lf = %.2lf", num1, num2, num1 * num2);break;case '/':if (num2 != 0)printf("%.2lf / %.2lf = %.2lf", num1, num2, num1 / num2);elseprintf("除数不能为0");break;default:printf("无效的运算符");}return 0;```这个程序首先提示用户输入一个运算符,然后再提示输入两个数字。
接下来,程序会根据输入的运算符执行相应的计算,并打印结果。
在计算除法时,程序会检查除数是否为0,如果为0,则打印错误信息。
请注意,这只是一个非常简单的计算器程序,没有考虑很多错误处理情况。
windows计算器程序
![windows计算器程序](https://img.taocdn.com/s3/m/835a5fc04431b90d6d85c717.png)
一windows api风格的计算器程序:1 直接在主窗体上创建向导生成默认的窗口程序,将unicode支持改成不限,其它地方不动。
消息响应函数的内容为:LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;static HWND hEdit1,hEdit2,hResult,hButton1,hStatic1,hStatic2;switch (message){case WM_CREATE:hEdit1=::CreateWindowA("EDIT",NULL,WS_CHILD |WS_VISIBLE|WS_BORDER ,30,30,100,20,hWnd,(HMENU)IDC_EDIT1,hInst,NULL);hEdit2=::CreateWindowA("EDIT",NULL,WS_CHILD |WS_VISIBLE|WS_BORDER ,230,30,100,20,hWnd,(HMENU)IDC_EDIT2,hInst,NULL);hResult=::CreateWindowA("EDIT",NULL,WS_CHILD |WS_VISIBLE|WS_BORDER ,430,30,100,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);hButton1=::CreateWindowA("BUTTON",NULL,WS_CHILD |WS_VISIBLE|WS_BORDER ,130,130,100,20,hWnd,(HMENU)IDC_BUTTON1,hInst,NULL);::SetWindowText(hButton1,"执行加法");hStatic1=::CreateWindowA("STATIC",NULL,WS_CHILD |WS_VISIBLE ,150,30,20,20,hWnd,NULL,hInst,NULL);hStatic2=::CreateWindowA("STATIC",NULL,WS_CHILD |WS_VISIBLE ,350,30,20,20,hWnd,NULL,hInst,NULL);::SetWindowText(hStatic1,"+");::SetWindowText(hStatic2,"=");break;case WM_COMMAND:wmId = LOWORD(wParam);wmEvent = HIWORD(wParam);// Parse the menu selections:switch (wmId){case IDC_BUTTON1:char op1[11],op2[11],result[11];int n1,n2,nResult;::GetWindowText(hEdit1,op1,10);::GetWindowText(hEdit2,op2,10);n1=atoi(op1);n2=atoi(op2);nResult=n1+n2;::sprintf(result,"%d",nResult);::SetWindowText(hResult,result);break;case IDM_ABOUT:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}break;case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO: Add any drawing code here...EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}return 0;}变化的参见阴影部分,主要包括控件句柄变量的声明,响应WM_CREATE创建控件,以及在WM_COMMAND响应中添加BUTTON的响应函数三部分内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
制作简单计算器
要求和目的
●要求:
设计一个的计算器,具有简单的运算功能,能进行两个操作数的“+”、“-”、“*”、“/”
运算。
计算器的运行效果如图
●目的:
掌握Label控件的使用方法;
掌握ComboBox控件的使用方法;
掌握Button控件的使用方法;
掌握TextBox控件的使用方法。
●设计步骤
新建一个Visual C# Windows应用程序,依次在界面上拖入五个“Label控件”,分别用于“计算器”、“操作数1”、“操作数2”、“运算符”和“结果”,并设置合适的字体及位置。
拖入三个“TextBox控件”,分别用于“接收操作数”和“显示结果”,其中,显示结果的“TextBox控件”的“ReadOnly属性”设置为“True”,即该文本框为只读。
最后拖入一个“Button控件”,用于“计算”功能。
计算器界面设计好之后,如图所示。
相关背景知识:
ComboBox 控件
ComboBox 控件又称组合框,在工具箱中的图标为。
默认情况下,组合框分两个部分显示:顶部是一个允许输入文本的文本框,下面的列表框则显示列表项。
可以认为ComboBox就是文本框与列表框的组合,与文本框和列表框的功能基本一致。
dropdownstyle属性
●Simple 始终显示列表
●Dropdown 文本部分可编辑
●Dropdownlist 文本部分不可编辑
Items 属性
若要在combobox控件中添加或删除项,可以在设计器中使用Items属性向列表添加项。
SelectedIndex 属性
编辑框所选列表条目的索引号,列表条目索引号从0开始,如果编辑框未从列表中选择条目,该值为-1
SelectedItem 属性
所选择条目的内容,即下拉列表中选中的字符串,如一个也没选,该值为空。
获取或设置选定项。
它返回项本身,通常是一个字符串值。
编写代码
1.要求和目的
要求:
编写一段代码,用于实现计算器的功能。
在“操作数”填写上两个数字,并选择“运算符”,单击“计算”按钮之后,可以在“结果文本框”中显示计算结果。
目的:
掌握数据类型转换的方法;
掌握条件判断语句的编写方法;
掌握文本框控件属性的设置方法。
●2.设计步骤
(1)双击“计算(Button)”按钮,进入该按钮的单击事件,编写代码。
(2)在编写好代码之后,需要对代码进行测试,在Visual Studio 2010编程环境中,选择菜单“调试”的二级菜单项“启动调试”,将程序运行起来,并进行测试。
编写通用计算器
界面设计如下图:
通用计算器的设计界面如图所示。
通用计算器界面中有一个显示操作数和结果的文本框,数字键和操作符键。
编写通用计算器代码
1.首先定义窗体的公共变量。
代码:定义窗体的公共变量
string str, opp, opp1;
double num1, num2, result;
2.编写“数字键”的单击事件,数字键“0-9”的事件都是一个数字键0-9键:(以数字1键的click事件举例,代码如下)
{
if (textBox1.Text != "0")
textBox1.Text = textBox1.Text + "1";
else
textBox1.Text = "1";
}
加、减、乘、除
{
num1 =Convert.ToDouble(textBox1.Text);
textBox1.Text = "";
opp = "+";
}
等号键:
{
if (opp1 != "=")
{
num2 = double.Parse(textBox1.Text);
}
switch (opp)
{
case"+": num1 = num1 + num2;
textBox1.Text = "" + num1.ToString();
break;
case"-": num1 = num1 - num2;
textBox1.Text = "" + num1.ToString();
break;
case"*": num1 = num1 * num2;
textBox1.Text = "" + num1.ToString();
break;
case"/": if (num2 == 0)
{
textBox1.Text = "除数不能为零";
}
else
{
num1 = num1 / num2;
textBox1.Text = "" + num1.ToString();
}
break;
}
}
+/-键:
{
num1 = double.Parse(textBox1.Text);
result = num1 * (-1);
textBox1.Text = result.ToString();
}
小数点键:
{
str = textBox1.Text;
int index = str.IndexOf(".");
if (index == -1) //课本85
{
textBox1.Text = str + ".";
}
}
退格键:
{
if (textBox1.Text != "")
{
str = textBox1.Text;
str = str.Substring(0, str.Length - 1); //课本85 textBox1.Text = str;
}
}
CE键:
{
textBox1.Text = "0";
}
C键:
{
result = num1 = num2 = 0;
str = null;
opp = null;
textBox1.Text = "0";
}
Sqrt键:
{
num1 = double.Parse(textBox1.Text);
result = Math.Sqrt(num1);
textBox1.Text = result.ToString();
}
%键:
{
num1 = double.Parse(textBox1.Text);
result = num1 / 100;
textBox1.Text = result.ToString();
}
1/x键:
private void button18_Click(object sender, EventArgs e)
{
num1 = double.Parse(textBox1.Text);
result = 1 / num1;
textBox1.Text = result.ToString();
}
这样编程运行看看,有没有问题呀,(语法没问题了,两个数的运算也没有问题,但是3个数的运算行不行呢)。