c计算器实验报告
C课程设计简易计算器实验报告
《程序设计基础》(C++)课程设计报告计算器姓名:班级:学号:指导教师:成绩:完成时间:完成地点:计算器1 基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。
可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。
同时包含清除功能。
2 设计思路如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit 传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。
若点击的是单目运算符,则直接对其处理得出结果。
若点击清零,则m_edit等于0。
设计思路流程图如下(见下页)。
图1 计算器设计思路总流程图3 软件设计创建步骤打开Microsoft Visual C++ ,选择新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名Calculator及其所在位置。
将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成。
MFC AppWizard建立基于对话窗口的程序框架。
界面设计1、创建控件在对话框上的合适的位置画出编辑框和下压式按钮。
如图2所示。
图2 绘制编辑框在按钮和编辑框属性对话框中输入控件的ID值和标题属性。
如图3所示。
图3 Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。
表1 各对象属性对象ID 标题或说明编辑框IDC_EDIT1 结果显示按钮IDC_BUTTON0 0按钮IDC_BUTTON1 1按钮IDC_BUTTON2 2按钮IDC_BUTTON3 3按钮IDC_BUTTON4 4按钮IDC_BUTTON5 5按钮IDC_BUTTON6 6按钮IDC_BUTTON7 7按钮IDC_BUTTON8 8按钮IDC_BUTTON9 9按钮IDC_ BUTTONneg +/-按钮IDC_ BUTTONpot .按钮IDC_ BUTTONadd +按钮IDC_BUTTONsub -按钮IDC_BUTTONmul *按钮IDC_BUTTONdiv /按钮IDC_BUTTONsqrt sqrt按钮IDC_BUTTONCE CE完成后界面如图4所示。
c课程设计计算器报告
c 课程设计计算器报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,熟练使用C语言进行程序设计。
具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法,包括数据类型、运算符、控制结构、函数等。
2.技能目标:学生能够使用C语言编写简单的程序,解决实际问题。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力。
二、教学内容教学内容主要包括C语言的基本语法和程序设计的基本方法。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点。
2.第二章:数据类型和运算符,学习C语言的基本数据类型和运算符。
3.第三章:控制结构,学习C语言的条件语句和循环语句。
4.第四章:函数,学习C语言的函数定义和调用。
5.第五章:数组和字符串,学习C语言的数组和字符串操作。
6.第六章:指针,学习C语言的指针概念和应用。
7.第七章:结构体和文件,学习C语言的结构体和文件操作。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解C语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生理解C语言的应用。
3.实验法:安排实验课程,让学生动手编写C语言程序。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。
具体安排如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程任务等。
3.考试:占课程总评的40%,包括期中考试和期末考试。
评估方式要求客观、公正,能够全面反映学生的学习成果。
我们将根据学生的实际情况,及时给予反馈,帮助学生提高。
六、教学安排本课程的教学进度安排如下:1.每周一次课,每次课2小时。
c实验报告
c实验报告实验报告:基于C语言的简易计算器设计一、设计目的:本实验旨在通过使用C语言进行编程,设计一个简易计算器,能够完成基本的四则运算。
二、设计要求:1. 实现加、减、乘、除四种基本运算的功能;2. 能够连续计算,并显示计算结果;3. 能够进行多层嵌套运算。
三、设计原理:1. 首先通过输入函数获取用户输入的数字和运算符;2. 然后通过switch语句判断用户选择的运算符,并执行相应的运算;3. 最后将计算结果输出。
四、设计步骤:1. 首先定义变量,包括两个操作数和一个运算符的字符型变量;2. 利用scanf函数分别获取用户输入的两个操作数和运算符,并进行赋值;3. 利用switch语句判断运算符,执行相应的运算,并将结果保存在一个结果变量中;4. 利用printf函数将计算结果输出。
五、设计代码:```c#include <stdio.h>int main() {double num1, num2, result;char operator;printf("请输入第一个操作数:");scanf("%lf", &num1);getchar(); // 清除缓冲区中的换行符printf("请输入运算符:");scanf("%c", &operator);getchar(); // 清除缓冲区中的换行符printf("请输入第二个操作数:");scanf("%lf", &num2);switch(operator) {case '+':result = num1 + num2;printf("计算结果:%lf\n", result); break;case '-':result = num1 - num2;printf("计算结果:%lf\n", result); break;case '*':result = num1 * num2;printf("计算结果:%lf\n", result);break;case '/':result = num1 / num2;printf("计算结果:%lf\n", result);break;default:printf("错误的运算符\n");break;}return 0;}```六、实验结果:运行程序后,按照提示依次输入操作数和运算符,然后程序会自动计算并显示结果。
大数计算器c语言实训报告
大数计算器c语言实训报告一、实训目的本实训主要目的是通过编写大数计算器的程序,提高学生对于C语言中计算器程序的实现能力和大数计算的理解。
二、实训内容1.需求分析大数计算器是一种可以计算非常大的数字的计算器。
因为计算机对于整数数据的处理有固定长度限制,如果需要计算更大的数字,就需要使用特殊的算法。
由于人们生活和工作中经常碰到大数字的计算,因此大数计算器的开发具有非常大的应用价值。
2.程序设计在C语言中,可以使用数组存储大数,每一位数字使用数组的一个元素。
因为数组的长度也有限制,所以一般需要使用指针动态分配内存来存储大数。
C语言中提供了类似于Java中的BigInteger类的库,例如GMP库等。
使用这些库可以方便地进行大数计算。
本次实训要求学生编写一个自己的大数计算器程序,通过手动编写实现大数加、减和乘法运算。
3.测试编写完程序后,需要测试程序是否正确运行。
可以使用各种情况下的数据进行测试。
例如,测试小数点和整数的运算、测试负数的计算、测试多位和一位数字的计算、测试大数的计算等。
三、实训总结通过本次实训,我学习了C语言中大数计算的实现方法和相关的概念。
在实现大数计算器的过程中,我加深了对于C语言中数组和指针的理解和应用,同时也提高了编写C语言程序的能力。
在测试程序时,我发现了几个容易出错的地方,在修改后成功完成了大数计算器的编写。
通过本次实训,我掌握了C语言中大数计算的思路和方法,提高了编写C语言程序的能力。
我相信这些知识和经验在将来的工作和学习中都会派上用场。
c面向对象程序设计MFC简单计算器实验报告
c面向对象程序设计M F C简单计算器实验报告Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#计算机与信息工程学院《程序设计基础》课程设计报告题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东学生学号:专业班级:电子信息工程(1)班指导教师:高攀1 课程设计的题目编写一个能实现简单功能的计算器2 题目要求1. 有一个计算器图形。
2. 能实现加、减、乘、除及乘方的运算。
3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色例如:输入数字1 时,在计算器图形上的1键变为红色。
4. 屏幕、图形颜色、形状自定3 总体设计总体框架图1 系统框架系统功能说明在VC++中绘制计算器界面,各控件的设置对0~9控件设定相应的ID和其他属性:图2 “1”控件设置对“+、-、*、\”控件设定相应的ID和其他属性:图2 “+”控件设置对其它控件设定相应的ID和其他属性:图3 其它控件设置主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。
拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。
4 程序详细设计系统主调模块图5 程序流程图各模块详细设计建立的变量,控件的命名,对应的消息处理函数对应表double poz; 按钮的处理函数void CCalcDlg::OnPt(){point_flag=TRUE; && buffer[i+1]==0)之前那位}m_Dis=strtod(buffer,NULL);整个大的程序的实现分8个功能,每个功能都通过一个相应的函数来实现.在调试时分别进行调试,使得调试更方便些.在编写各个函数只是按着题目要求的去完成,后来经指导老师指导后,发现了很多自己欠缺的地方,又一次将程序整体进行调试.最后把程序完善了许多。
c简单计算器课程设计报告
c 简单计算器 课程设计报告一、课程目标知识目标:1. 让学生掌握简单计算器的基本功能,包括加、减、乘、除等四则运算。
2. 使学生理解计算器操作规则,如先算乘除后算加减、括号的作用等。
3. 帮助学生掌握计算器上的其他功能键,如清除、取反、百分比等。
技能目标:1. 培养学生运用计算器进行四则运算的能力,提高计算速度和准确性。
2. 培养学生运用计算器解决实际问题的能力,如购物找零、计算面积等。
3. 培养学生通过观察、思考、提问等方式,发现计算器使用过程中的问题,并尝试解决。
情感态度价值观目标:1. 培养学生对待计算器等电子设备的正确态度,爱护设备,遵守使用规范。
2. 培养学生在合作学习中互相帮助、共同进步的精神,增强团队意识。
3. 通过计算器教学,激发学生对数学学科的兴趣,提高学生的自信心和自主学习能力。
本课程针对年级学生的特点,注重培养学生的学习兴趣和实践能力。
课程性质为实践操作类,强调学生在动手实践中掌握知识。
在教学过程中,教师需关注学生的学习需求,及时调整教学策略,确保学生能够达到课程目标。
课程目标分解为具体学习成果,以便于后续教学设计和评估。
在教学结束后,学生应能独立使用计算器完成四则运算,解决实际问题,并在学习过程中培养良好的情感态度和价值观。
二、教学内容1. 计算器基本结构认知:让学生了解计算器各部分名称及其功能,如数字键、运算符号键、等于键、清除键等。
2. 四则运算操作方法:教学加、减、乘、除四则运算的计算器操作方法,以及运算顺序和括号的使用。
- 加法和减法运算- 乘法和除法运算- 混合运算及括号应用3. 计算器其他功能键使用:介绍取反、百分比、开方等特殊功能键的操作方法。
4. 实践应用:设计实际应用场景,让学生运用计算器解决购物找零、计算面积、计算速度等问题。
- 购物找零问题- 长度、面积、体积计算- 速度、时间、路程计算教学内容参考教材相关章节,结合课程目标进行整合。
教学大纲安排如下:第一课时:计算器基本结构认知、四则运算操作方法(加法和减法运算)第二课时:四则运算操作方法(乘法和除法运算)第三课时:四则运算操作方法(混合运算及括号应用)第四课时:计算器其他功能键使用第五课时:实践应用(购物找零问题)第六课时:实践应用(长度、面积、体积计算)第七课时:实践应用(速度、时间、路程计算)教学内容注重科学性和系统性,确保学生能够循序渐进地掌握计算器的使用方法,并在实际应用中巩固所学知识。
c语言实验报告计算器
c语言实验报告计算器C 语言实验报告计算器一、实验目的本次 C 语言实验的主要目的是通过编写程序实现一个简单的计算器功能,加深对 C 语言基本语法、数据类型、控制结构和函数的理解和运用,提高编程能力和解决实际问题的能力。
二、实验要求1、实现基本的四则运算(加、减、乘、除)功能。
2、能够处理用户输入的合法表达式,并输出计算结果。
3、具备错误处理能力,如除数为 0 、输入不合法等情况。
三、实验环境本次实验使用的编程环境是 Visual Studio Code,编译器为 GCC。
四、算法设计与思路(一)整体思路首先,需要从用户那里获取输入的表达式。
然后,对表达式进行解析和计算。
在计算过程中,需要根据运算符的优先级进行相应的运算。
为了实现这个过程,可以使用栈来存储运算符和操作数。
(二)具体算法1、定义一个栈来存储运算符,另一个栈来存储操作数。
2、逐字符读取输入的表达式。
如果是数字字符,则将其转换为数字并压入操作数栈。
如果是运算符,则根据运算符的优先级进行处理。
如果当前运算符的优先级高于栈顶运算符的优先级,则将其压入运算符栈。
否则,从操作数栈中弹出两个操作数,从运算符栈中弹出一个运算符,进行相应的运算,并将结果压入操作数栈。
3、当表达式读取完毕后,依次从运算符栈和操作数栈中弹出元素进行计算,直到运算符栈为空,此时操作数栈中的唯一元素即为表达式的计算结果。
五、代码实现```cinclude <stdioh>include <stdlibh>include <ctypeh>//定义栈的最大容量define MAX_SIZE 100//定义操作符栈typedef struct {char itemsMAX_SIZE;int top;} OperatorStack;//定义操作数栈typedef struct {double itemsMAX_SIZE;int top;} OperandStack;//初始化操作符栈void initOperatorStack(OperatorStack stack) {stack>top =-1;}//初始化操作数栈void initOperandStack(OperandStack stack) {stack>top =-1;}//判断操作符栈是否为空int isOperatorStackEmpty(OperatorStack stack) {return stack>top ==-1;}//判断操作数栈是否为空int isOperandStackEmpty(OperandStack stack) {return stack>top ==-1;}//操作符入栈void pushOperator(OperatorStack stack, char op) {if (stack>top < MAX_SIZE 1) {stack>items++stack>top = op;} else {printf("Operator stack overflow!\n");exit(1);}}//操作数入栈void pushOperand(OperandStack stack, double num) {if (stack>top < MAX_SIZE 1) {stack>items++stack>top = num;} else {printf("Operand stack overflow!\n");exit(1);}}//操作符出栈char popOperator(OperatorStack stack) {if (!isOperatorStackEmpty(stack)){return stack>itemsstack>top;} else {printf("Operator stack underflow!\n");exit(1);}}//操作数出栈double popOperand(OperandStack stack) {if (!isOperandStackEmpty(stack)){return stack>itemsstack>top;} else {printf("Operand stack underflow!\n");exit(1);}}//获取操作符的优先级int getPriority(char op) {switch (op) {case '+':case '':return 1;case '':case '/':return 2;default:return -1;}}//计算表达式double calculate(char expression) {OperatorStack opStack;OperandStack numStack; initOperatorStack(&opStack);initOperandStack(&numStack);int i = 0;while (expressioni!='\0'){if (isdigit(expressioni)){double num = 0;while (isdigit(expressioni)){num = num 10 +(expressioni '0');i++;}if (expressioni ==''){double fraction = 01;i++;while (isdigit(expressioni)){num +=(expressioni '0') fraction; fraction /= 10;i++;}}pushOperand(&numStack, num);} else if (expressioni =='('){pushOperator(&opStack, expressioni);i++;} else if (expressioni ==')'){while (opStackitemsopStacktop!='('){double num2 = popOperand(&numStack);double num1 = popOperand(&numStack);char op = popOperator(&opStack);if (op =='+'){pushOperand(&numStack, num1 + num2);} else if (op ==''){pushOperand(&numStack, num1 num2);} else if (op ==''){pushOperand(&numStack, num1 num2);} else if (op =='/'){if (num2 == 0) {printf("Division by zero!\n");exit(1);}pushOperand(&numStack, num1 / num2);}}popOperator(&opStack);i++;} else {while (!isOperatorStackEmpty(&opStack) &&getPriority(opStackitemsopStacktop) >= getPriority(expressioni)){double num2 = popOperand(&numStack);double num1 = popOperand(&numStack);char op = popOperator(&opStack);if (op =='+'){pushOperand(&numStack, num1 + num2);} else if (op ==''){pushOperand(&numStack, num1 num2);} else if (op ==''){pushOperand(&numStack, num1 num2);} else if (op =='/'){if (num2 == 0) {printf("Division by zero!\n");exit(1);}pushOperand(&numStack, num1 / num2);}}pushOperator(&opStack, expressioni);i++;}}while (!isOperatorStackEmpty(&opStack)){double num2 = popOperand(&numStack);double num1 = popOperand(&numStack);char op = popOperator(&opStack);if (op =='+'){pushOperand(&numStack, num1 + num2);} else if (op ==''){pushOperand(&numStack, num1 num2);} else if (op ==''){pushOperand(&numStack, num1 num2);} else if (op =='/'){if (num2 == 0) {printf("Division by zero!\n");exit(1);}pushOperand(&numStack, num1 / num2);}}return popOperand(&numStack);}int main(){char expression100;printf("Enter an expression: ");scanf("%s", expression);double result = calculate(expression);printf("Result: %f\n", result);return 0;}```六、实验结果与分析(一)测试用例及结果以下是一些测试用例及其对应的结果:1、输入:"2 + 3",输出:50000002、输入:"5 2",输出:30000003、输入:"3 4",输出:120000004、输入:"6 / 2",输出:30000005、输入:"2 + 3 4",输出:140000006、输入:"(2 + 3) 4",输出:200000007、输入:"5 / 0",输出:Division by zero!(二)结果分析从测试结果来看,程序能够正确计算基本的四则运算表达式,包括有括号的情况。
C#计算器
C#计算器实验报告班级:2010134学号:201013424姓名:夏慷一实验目的:构造一个类似Windows自带的计算器一样的简易计算器,能够连续进行加、减、乘、除四则整数运算,并能随时清除计算结果进行下一次计算。
二设计思路1.创建主体框架:建立程序的主要界面后,系统自动生成界面的主要窗口生成代码。
对于每个按钮的的代码段中,分别添加事件触发的处理代码。
设置一个textBox,显示运算结果。
2.数字1-9,小数点,运算符号的按键的事件处理都是在textBox1中分别添加相对应的数字字符,把数字当成是字符串处理。
用赋值语句进行添加。
每次点击后textBox1的显示内容变为一个新的表达式。
3.四则运算时采用compute方法直接计算表达式。
该方法功能强大,优先级和运算规则皆宜考虑在内。
但是上次计算的结果不能直接运算,利用括号的作用排除了这一问题。
三设计界面四详细代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace计算器{public partial class Form1 : Form{public Form1(){InitializeComponent();}double num1, num2, result;bool decimalFlag = false;string myOperator;public void NumClick(int myNumber){if (decimalFlag){txtReadout.Text = txtReadout.Text+myNumber;}else{if (txtReadout.Text == "0."){txtReadout.Text = myNumber + ".";}else{txtReadout.Text = txtReadout.Text.Substring(0, txtReadout.Text.Length - 1) + myNumber + ".";}}}private void Form1_Load(object sender, EventArgs e) {txtReadout.Text = "0.";txtReadout.TextAlign = HorizontalAlignment.Right; }private void btnNum0_Click(object sender, EventArgs e) {NumClick(0);}private void btnNum1_Click(object sender, EventArgs e) {NumClick(1);}private void btnNum2_Click(object sender, EventArgs e) {NumClick(2);}private void btnNum3_Click(object sender, EventArgs e) {NumClick(3);}private void btnNum4_Click(object sender, EventArgs e) {NumClick(4);}private void btnNum5_Click(object sender, EventArgs e) {NumClick(5);}private void btnNum6_Click(object sender, EventArgs e) {NumClick(6);}private void btnNum7_Click(object sender, EventArgs e) {NumClick(7);}private void btnNum8_Click(object sender, EventArgs e) {NumClick(8);}private void btnNum9_Click(object sender, EventArgs e) {NumClick(9);}private void btnDot_Click(object sender, EventArgs e) {decimalFlag = true;}private void btnC_Click(object sender, EventArgs e) {num1 = 0;num2 = 0;txtReadout.Text = "0.";decimalFlag = false;}private void btnAdd_Click(object sender, EventArgs e) {myOperator = "add";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnSub_Click(object sender, EventArgs e) {myOperator = "Sub";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnMul_Click(object sender, EventArgs e) {myOperator = "Mul";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnDiv_Click(object sender, EventArgs e) {myOperator = "Div";num1 = double.Parse(txtReadout.Text);txtReadout.Text = "0.";decimalFlag = false;}private void btnAmount_Click(object sender, EventArgs e) {num2 = double.Parse(txtReadout.Text);switch (myOperator){case"add":result = num1 + num2;txtReadout.Text = result.ToString();break;case"Sub":result = num1 - num2;txtReadout.Text = result.ToString();break;case"Mul":result = num1 * num2;txtReadout.Text = result.ToString();break;case"Div":if (num2 == 0){txtReadout.Text = "除数不能为0!";}else{result = num1 / num2;txtReadout.Text = result.ToString();}break;}}}}五实验感想首次亲自做出一个计算器,感觉颇有成就感。
计算器c语言报告
题目一:计算器1.实验目的和意义:利用c语言编写简易计算器,使我们更加熟练的掌握c语言及软件开发的基本步骤。
该课题设计对学生来说 是对这一学期有关c语言学习的一个评估 是将c语言应用于生活中 提高学生的动手能力。
该课题有利于让学生将课本上学习的零散的知识融会贯通、综合运用、强化知识体2.实验内容:了解用户需求,小组讨论算法,编写程序,调试程序,漏洞修复及报告设计3.小组成员分工:小组讨论算法:全体成员编写程序:樊义,高杰林调试程序:曹仲生漏洞修复及报告设计:陈伟杰4.设计要点:字符串内提取数字,加减乘除优先级,能够识别简单的错误算式5.源程序://不包含括号,纠错能力不够,#include "stdio.h"double z(char c[100],int *i){int w=0,d=0;double s=0;while(c[*i]>='0'&&c[*i]<='9') {w++;*i=*i+1;}if(c[*i]=='.'){*i=*i+1;while(c[*i]>='0'&&c[*i]<='9'){w++;d++;*i=*i+1;}}while(w>0){int t=1;for(int tem=w;tem>1;tem--)t=t*10;if(w>d&&d>0)s=s+t*(c[*i-w-1]-'0');elses=s+t*(c[*i-w]-'0');w--;}//printf("整数型num=%3.5f\t",s);if(d>0)for(int temp=0;temp<d;temp++){s=s/10.0;printf("小数型num=%3.5f\t",s);} //printf("函数内%d\t",*i);//printf("小数型num=%3.5f\t",s);return s;}void main(){start:char c[100],a[100];double s[100],num;int i=0,j=0,k=0;printf("输入需要运算的式子(仅加减乘除,且不包含括号,负数,不需输入等号):");reput: scanf("%s",c);i=0,j=0,k=0;int *p=&i;done: switch(c[i]){case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':{num=z(c,p);goto done;}case '*':{i++;num=num*z(c,p);goto done;}case '/':{i++;num=num/z(c,p);goto done;}case'+':{s[j]=num;a[k]=c[i];j++;i++,k++;if(c[i]>='0'&&c[i]<='9')goto done;else {printf("输入错误!请重输:");num=0;goto reput;}} case'-':{s[j]=num;a[k]=c[i];j++;i++,k++;if(c[i]>='0'&&c[i]<='9')goto done;else {printf("输入错误!请重输:");num=0;goto reput;}} case '\0':if(i!=0){s[j]=num;a[k]=c[i];break;}else printf("输入错误!请重输:");num=0;goto reput;default:printf("输入错误!请重输:");num=0;goto reput;}//for(int n=0;n<j;n++)// printf("%f%c",s[n],a[n]);//printf("%f\n",s[j]);if(a[k]=='\0'){j=0;k=0;num=s[0];//printf("已执行!");add: switch(a[k]){case '+':{num=num+s[++j];k++;goto add;}case '-':{num=num-s[++j];k++;goto add;}default:break;}}printf("式子的结果为:%f\n",num);printf("是否继续计算<y/n>.......");char tmp;scanf("%s",&tmp);if(tmp=='y')goto start;}6.小结:。
c计算器实验报告
c计算器实验报告C计算器实验报告引言:计算器是我们日常生活中常见的工具之一。
无论是在学习、工作还是生活中,我们都会频繁地使用计算器来进行各种数学运算。
而随着科技的不断发展,计算器也在不断地演化和改进。
本实验旨在通过对C计算器的研究和实验,深入了解计算器的原理和功能,并对其进行性能测试和评估。
一、背景介绍计算器是一种用于进行数学运算的设备或工具。
它可以进行基本的四则运算,如加减乘除,以及更复杂的科学运算,如三角函数、指数和对数等。
计算器的发展历史可以追溯到早期的机械计算器,如阿贝尔计算器和帕斯卡计算器。
而现代计算器则采用电子技术,通过电子元件和芯片来实现计算功能。
二、C计算器的原理和功能C计算器是一种基于C语言开发的计算器软件。
它通过编写程序来实现各种数学运算和功能。
C语言是一种通用的高级编程语言,具有强大的计算能力和灵活的语法结构。
C计算器利用C语言的特性,可以实现复杂的数学运算和逻辑判断。
C计算器具有以下主要功能:1.基本运算:C计算器可以进行加减乘除等基本的四则运算。
用户只需输入相应的表达式,C计算器会自动计算并给出结果。
2.科学运算:C计算器支持各种科学运算,如三角函数、指数和对数等。
用户可以通过特定的函数调用来实现这些功能。
3.变量和常量:C计算器可以定义和使用变量和常量。
用户可以将某个数值赋给一个变量,并在后续的计算中使用这个变量。
4.条件判断:C计算器支持条件判断语句,用户可以根据不同的条件执行不同的操作。
这使得C计算器具有一定的逻辑判断能力。
5.循环结构:C计算器可以实现循环结构,用户可以通过循环语句重复执行某个操作,从而简化计算过程。
三、C计算器的性能测试和评估为了评估C计算器的性能,我们进行了一系列的测试。
首先,我们测试了C计算器进行基本运算的速度。
通过输入大量的基本运算表达式,我们测量了C计算器的响应时间和计算速度。
结果显示,C计算器的运算速度非常快,几乎可以瞬间完成复杂的运算。
VC版科学计算器程序实验报告
西安科技大学《程序设计方法与优化》实验报告题目科学计算器院、系(部)计算机科学与技术学院专业及班级软件工程1101班姓名张XX 日期 2013/04/24一.功能需求:1.能进行加、减、乘、除运算:这时最基本的计算器功能。
2.还能进行以下的数值计算:函数名:ln在数学中ln(x)是以e为底的x的对数。
e是一个常数函数名: exp功能: 指数函数exp就是以e为底的指数,exp(0)=1, exp(1)=e, exp(2)=en!代表一个数的阶乘,例如:5!就是5*4*3*2*1;sta代表统计算法;x^3代表x的3次方;x^y代表x的y次方。
sin正弦,cos余弦,tan正切,dms度分秒切换Lsh左移ln自然对数,F-E科学计数法开关,Xor异或,Int整数部分,Exp允许输入用科学计数法表示的数字1/x倒数,log常用倒数mod余数Pi是圆周率,Exp是科学计数法exp代表以e为幂指数函数例如:exp10就是e的10次方;ln是以e为底的对数函数例如:ln10就是以e为底10的对数;M+是计算结果并加上已经储存的数;M-是计算结果并用已储存的数字减去目前的结果;MR是读取储存的数据;MC是清除储存数据;AC,CE归零是有一个是清除现有数据重新输入,另一个是清除全部数据结果和运算符.数学计算度量衡换算百度计算器为用户提供常用的数学计算功能。
您可在任何地方的网页搜索栏内,输入需要计算的数学表达式(例如:3+2),点击搜索,即可获得结果。
百度计算器支持实数范围内的计算,支持的运算包括:加法(+或+),减法(-或-),乘法(*或×),除法(/),幂运算(^),阶乘(!或!)。
支持的函数包括:正弦,余弦,正切,对数。
支持上述运算的混合运算。
例:加法:3+2减法:3-2乘法:3*2除法:3/2阶乘:4! 4的阶乘电脑自带计算器开根号:1,调到科学型。
2,开方:(1)选一下INV这个。
(2)按一个数字。
c计算器实验报告
c计算器实验报告
《C计算器实验报告》
摘要:
本实验旨在通过使用C语言编写一个简单的计算器程序,以加深对C语言基本语法和数据类型的理解。
实验结果表明,通过合理的程序设计和编码,可以实现一个功能完善的计算器程序,为进一步学习和应用C语言打下良好的基础。
1. 实验目的
通过设计和编写一个简单的计算器程序,加深对C语言基本语法和数据类型的理解,提高编程能力和解决问题的能力。
2. 实验内容
(1)了解计算器的基本功能和运算规则;
(2)设计计算器程序的功能模块;
(3)使用C语言编写计算器程序;
(4)测试和调试计算器程序;
(5)分析程序运行结果。
3. 实验步骤
(1)确定计算器程序的基本功能,包括加、减、乘、除等运算;
(2)设计程序的基本结构,包括输入模块、运算模块和输出模块;
(3)使用C语言编写程序代码,包括变量定义、输入输出语句和运算逻辑;(4)测试程序,输入不同的数据进行计算,观察程序的运行结果;
(5)根据测试结果,对程序进行调试和优化。
4. 实验结果
通过实验,成功设计和编写了一个简单的计算器程序。
程序能够正确地进行加、减、乘、除等运算,并能够处理输入错误的情况,保证程序的稳定性和健壮性。
5. 实验总结
通过本次实验,深入理解了C语言的基本语法和数据类型,掌握了程序设计和
编码的基本技能。
同时,也体会到了程序设计的重要性和编程过程中的挑战与
乐趣。
希望通过不断的实践和学习,能够进一步提高编程能力,为今后的学习
和工作打下坚实的基础。
C语言计算器设计实验报告
C语言计算器设计实验报告班级:11661 姓名:学号:38号一、实验目的:利用C语言编写一个简单的计算器,并能正确运行+,-,*,/四则运算。
二、实验内容:1、编写前分析;(1)、根据实验目的,要求键盘录入表达式,并运行后输出结果;由于键盘录入的表达式含数字和运算符,所以要选择用字符串数据类型输入。
(2)、由于输入的是字符串,而只有数值类型的数据才能参与运算,所以得把字符(串)类型的数据转换为数值类型的数据。
(3)、四则运算时,括号优先级高于乘除,乘除优先级高于加减,程序必须能正确判断其优先级才能得出正确的结果。
(4)、为了保证运行结果的精确度需正确选择所用变量的数据类型。
2、利用所学知识进一步分析以上内容;(1)、利用gets函数输入表达式,例如:gets(calc);(2)、C语言中将字符类型数据转化成数值类型数据方法很多,该程序利用函数库stdlib.h中的atof函数来实现这一目的。
同时注意主函数前加上预处理指令:#include<stdlib.h>。
(3)、为了能正确判断优先级,该程序利用函数间的多层嵌套,循环调用来实现;从优先级最高的括号开始判断,若有括号,再判断括号内部,若无括号判断是否为乘除,最后判断加减;括号内内容法方类似。
具体判断方法在后面将以实例详细介绍。
(4)、为了保证输出数据的精确度,该程序中函数f1()-f4()返回值均用double 类型;用g格式符输出最终结果让输出结果简明而又能保证其精确度。
3、开始编程:首先编写必要的预处理指令,声明必要的函数,定义必要的变量。
#include<stdio.h> (输入,输出函数需要该指令);#include<stdlib.h> (atof函数需要该指令);全局声明:Double f1(); (用于存放最终输出结果);Char calc[n]; (用于存放输入的表达式);Int n; (用于标注clac中的各个元素);编写主函数:int main(void){printf("请输入表达式:\n");gets(calc);(输入表达式)printf("原式=%g\n",f1());(程序将调用f1(),并输出f1()的结果)return(0);}由于四则运算先算出优先级最高的结果,并对同一优先级采用从左到右的顺序计算,所以最终的运算是对表达式进行加减运算。
c语言版计算器实验报告
3、若某个数字是负数,如果直接输入,结果是错误的,但如果变为零减去该数字的绝对值的话或者把两数的顺序更改一下,显示的是正确的结果,如(6)、(7)、(9)、(10)、(11)做的结果。
4、有时候会出现一些不精确的显示结果,如(4)中显示多的是0.000002,这是由于在C语言的定义时,系统所产生的结果,与算法无关。
else if(b=='#') return('=');
else return('<');
}
}
}
float Operate(float a,char theta,float b)//计算两个数的结果的函数
{
float z;
switch(theta){
case '+':z=a+b;break;
case '-':z=a-b;break;
fe=float(e);
for(i=1;i<=j;i++)
fe=fe/10;
sum=sum+fe;
j--;
}
while(k!=0)
{
Pop1(OP,e);
for(i=0;i<n-k;i++)
e=e*10;
sum=sum+e;
k--;
}
return(sum);
}
void CMyDlg::OnButton12()
{
UpdateData(TRUE);
m_ss=m_ss+'#';
SqStack OPTR;//字符型栈的定义
c 计算器实践报告
c++计算器实践报告题目科学计算器应用程序系统学生姓名指导教师学院专业班级学生学号吴金星严晖材料科学与工程学院 1206 0607120610计算机基础教学实验中心XX年 7 月 3 日科学计算器管理信息系统摘要:本设计是简单计算器,日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。
它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。
使用人员能快捷简单地进行操作。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
关键词:程序设计;计算器;MFC;按钮控件1. 计算器系统开发设计思想⑴实验目的①通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。
②通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力。
③通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力。
为后续的相关课程的学习打下基础。
⑵实验要求①二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算②科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行③以角度、弧度两种方式实现上述部分函数④具备历史计算的记忆功能⑤对不正确的表达式能指出其错误原因⑥整理上机步骤,完成实验报告、提交可运行的程序,给出实验数据和实验结果2、计算器系统功能及系统设计介绍⑴功能说明它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。
使用人员能快捷简单地进行操作。
计算机c语言实训报告(通用3篇)
计算机c语言实训报告(通用3篇)计算机c语言实训报告篇1一、课题名称:简单计算器设计一个简单的程序来模拟计算器的功能。
二、设计目的:1、通过理论知识与实际需求相结合,编辑解决一些日常中的实际问题,培养初步的独立分析和设计能力。
2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。
输入一个算术计算式,就在屏幕上显示结果。
2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。
5、完成设计(A4)。
五、代码设计:#include "stdio.h" main { float x,y;char operator;printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator){case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0) printf("chushushilingwuyiyi"); elseprintf("%.2f/%.2f=%.2f",x,y,x/y); break;default: printf("yunsunfuwuxiao"); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。
c 计算器实验报告
c 计算器实验报告c 计算器实验报告一、引言计算器是一种广泛应用于各个领域的工具,它能够进行各种数学运算,简化了人们的计算工作。
在本次实验中,我们将使用C语言编写一个简单的计算器程序,通过实践来加深对C语言的理解,并且掌握计算器的基本原理和实现方法。
二、实验目的1. 掌握C语言的基本语法和编程技巧;2. 理解计算器的基本原理和实现方法;3. 实现基本的四则运算功能;4. 实现一些常用的数学函数。
三、实验步骤1. 设计计算器界面在这一步骤中,我们需要设计一个简洁明了的计算器界面,包括数字键、运算符键和等号键等。
我们可以使用C语言的图形库或者控制台窗口来实现界面的设计。
2. 实现基本的四则运算功能在这一步骤中,我们需要编写C语言代码,实现计算器的基本四则运算功能。
我们可以使用C语言提供的算术运算符来进行加减乘除的计算,并且通过用户输入来获取操作数和运算符。
3. 实现常用的数学函数在这一步骤中,我们可以使用C语言提供的数学库函数来实现一些常用的数学函数,比如求平方根、求幂等。
通过调用这些函数,我们可以使计算器具备更多的功能。
4. 进行测试和调试在这一步骤中,我们需要对编写的计算器程序进行测试和调试,确保其能够正常运行,并且能够正确地进行各种运算和计算。
四、实验结果经过测试和调试,我们的计算器程序能够正常运行,并且能够正确地进行各种运算和计算。
它具备基本的四则运算功能,并且支持一些常用的数学函数。
我们可以通过输入数字和运算符来进行计算,并且可以得到正确的结果。
五、实验总结通过这次实验,我们深入理解了C语言的基本语法和编程技巧,并且掌握了计算器的基本原理和实现方法。
我们通过编写代码实现了一个简单的计算器程序,并且通过测试和调试确保其能够正常运行。
这次实验不仅加深了我们对C语言的理解,还提高了我们的编程能力和问题解决能力。
六、实验感想通过这次实验,我对C语言的学习有了更深入的了解。
在编写计算器程序的过程中,我不仅学会了如何使用C语言的基本语法和编程技巧,还提高了自己的逻辑思维能力和问题解决能力。
C#计算器实验报告范文
C#计算器实验报告范文2.控件的焦点以及Tab 键的设置和使用3.4.二.设计思路1. 创建主体框架:建立程序的主要界面后,系统自动生成界面的主要窗口生成代码。
对于每个按钮的的代码段中,分别添加事件触发的处理代码。
对于inputbox ,显示输入的信息和显示处理后的结果。
2. 数字1-9的按键的事件处理都是在inputbox 中分别添加相对应的数字字符,把数字当成是字符串处理。
对于加减乘除四则运算按键,事件触发后的处理是在inputbox 中的字符串后加上相应的四则运算符,要说明的是计算器的显示是按了四则运算符后并不是清屏inputbox 的,而是把四则运算符一起显示出来直到输入完了运算式,按了“=”按键才开始运算并显示结果。
3. 程序使用时是先把整个运算的式子输入到inputbox 当中,程序把这一表达式转化成字符串,然后入栈,得到一个栈,运行四则运算函数,把字符从栈中读出,根据出栈的符号确定该进行那种运算处理。
4. 程序最主要的关键之处是在于以何种方式对inputbox 中的表达式进行入栈处理,本程序可以处理一些简单的数字表达式的简单的四则运算。
数字0-9的优先级同级,加减同级,乘除同级,但是它们相互之间的优先级有别,因此为了在运算处理当中能够处理表达式当中的不同的优先级的四则运算符时,就要采用数据结构当中处理表达式的方法,对inputbox 当中的信息进行处理变成后缀表达式入栈。
然后把栈返回到四则运算函数那里,对栈进行出栈处理分别对出栈的符号进行识别计算按优先级处理。
通常地,计算机组成原理当中介绍的四则运算算法一般如下,在计算器编程当中可以从中获取可行的思想。
四则运算算法的一般描述:1.加法算法首先假定两个操作数均为小数(其他情况可以看做这种情况的特殊情况)。
a)通过界面输入获得两个操作数的值;b)若两个数同号,则将两个操作数的整数部分和小数部分分别对应逐位相加,从最低位开始,若此位上的数字大于10,则向前位进1,此位减10;c)若两个数字异号,则将负数放在第二个操作数内,正数放在第一个操作数内,然后将两个操作数的整数部分和小数部分分别对应逐位相减,判断结果的正负,若是整数,则要完成进位操作,若是负数则要完成借位操作;d)将计算结果保存并输出。
C++实现计算器实验报告
实验报告完成日期:2014 年10 月27 日实验题目:完整计算器需求分析:请实现一个只包含加减乘除以及括号运算的简单计算器,输入格式是正确的,不需要判断。
注意式子中可能会出现负数以及多余的空格,操作数也可能是多位数和小数。
概要设计:设计方法:1、建立一个fuhao 栈存储符号,一个num 栈存储数字,并将输入存储到一个string 类型中。
2、依次读取,每次遇到符号,则将前面缓存的string 类型数字转化成double 类型,并且判断fuhao.top()是否为乘号或者除号,若是,则和num.top()进行运算,弹出fuhao 和num 的栈顶,将运算结果压入num 栈中。
保证fuhao 栈只有加号和减号。
3、在stringtodouble()函数中添加分辨是否有小数点以及负号的语句。
4、最后在用一个循环,从后往前依次读取fuhao 和num 栈的数据进行运算,得出结果。
调试分析:a、调试中遇到的问题以及解决方案:问题:测试样例比要求的少了一个,并且每次输入测试样例数量T 时,会输出‘0’。
原因:使用了getline()函数,T 后面的回车被当做了第一组样例的输入。
解决方案:在输入第一组测试数据前,用stdio.h 里面的getchar()函数,把‘\n’读取掉,避免影响后面的输入。
b 时间复杂度:该程序有两处简单的一重循环,因此每一次计算的时间复杂度为O(n)。
用户使用说明:暂不支持括号输入计算。
支持负数、浮点数的输入计算。
测试结果:测试样例数量:5实验心得:分步思想,要分步来完成一个看起来有点复杂的程序,本例中使用了先计算乘除,再计算加减的方法,使得程序简单可读。
附录:13331365_04.cpp#include <iostream>#include <stdio.h>#include <stack>#include <string>using namespace std;//定义一个“jisuan”函数,参数是两个double类型数据和一个char计算符号,返回double 类型的计算结果double jisuan(double a, double b, char c) {if (c == '+')return a + b;else if (c == '-')return a - b;else if (c == '/')return a / b;elsereturn a*b;//定义一个”stringtodouble“函数,把string转化为double类型数据double stringtodouble(string a) {bool isfushu = false; //判断temp第一位是否为负数bool isxiaoshu = false; //判断是否遇到小数点double xiaoshu = 0.1; //当前浮点数级数int theFirstNum = 0;if (a[0] == '-') {isfushu = true;theFirstNum = 1;}double num = 0;for (int i = theFirstNum ; i < a.size() ; i++) {if (a[i] == '.')isxiaoshu = true;else if (!isxiaoshu)num = num*10 + (a[i] - '0');else if (isxiaoshu)num = num + xiaoshu*(a[i] - '0'), xiaoshu = xiaoshu*0.1;}return isfushu == true ? -num : num;int main() {int T;cout << "请输入测试用例数量:" ;cin >> T;for (int j = 0 ; j < T ; j++) {string input;stack<char>fuhao; // 存放符号的栈stack<double>num; // 存放数字的栈string temp = "";double sum = 0;//当第一次输入时,用getchar()来去掉输入T后面的那个'\n'if (j == 0)char nothing = getchar();cout << "计算:" ;getline(cin, input);for (int i = 0 ; i < input.size() ; i++) {/*当读取到符号时,将string类的temp转化成double类型,再判断fuhao.front()是否为'*'或者'/',若是,则进行计算,保证fuhao栈里只有加号和减号*/if (input[i] == '+' || input[i] == '-'|| input[i] == '/' || input[i] == '*') {//当temp为空string时,说明input[i]是作为负数的符号,因此不压入fuhao栈,而是加到temp第一位if (temp == "") {temp += input[i];} else {num.push(stringtodouble(temp));temp = "";if (!fuhao.empty() && (fuhao.top() == '*' || fuhao.top() == '/')) {double a = num.top();num.pop();double b = num.top();num.pop();double c = jisuan(b, a, fuhao.top());fuhao.pop();num.push(c);}fuhao.push(input[i]);}}//如果读取到数字,则把它放到temp中else if ((input[i] >= '0' && input[i] <= '9') || input[i] == '.') { temp += input[i];}}//单独处理最后一个数字num.push(stringtodouble(temp));if (!fuhao.empty() && (fuhao.top() == '*' || fuhao.top() == '/')) { double a = num.top();num.pop();double b = num.top();num.pop();double c = jisuan(b, a, fuhao.top());fuhao.pop();num.push(c);}sum = num.top();num.pop();//进行最后的加减计算while (!num.empty()) {sum = jisuan(num.top(), sum, fuhao.top());num.pop();fuhao.pop();}cout << "结果:" ;printf("%.3lf\n", sum);}return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单计算器姓名: 周吉祥实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。
实验内容:(1)体系设计:程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。
(2)设计思路:1)先在Visual C++ 中建立一个MFC工程文件,名为calculator.2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框3)设计按钮,并修改其相应的ID与Caption.4)选择和设置各控件的单击鼠标事件。
5)为编辑框添加double类型的关联变量m_edit1.6)在中添加头文件,然后添加public成员。
7)打开文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。
(3)程序清单:添加的public成员:double tempvalue; 法 2.减法 3.乘法 4.除法int append; //判断后面是否添加数字成员初始化:CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/): CDialog(CCalculatorDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculatorDlg)m_edit1 = ;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);tempvalue=0;result=0;sort=0;append=0;}各控件响应函数代码:void CCalculatorDlg::OnButton1() //按钮“1”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+1;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton2() //按钮“2”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+2;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton3() //按钮“3”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+3;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton4() //按钮“4”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+4;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton5() //按钮“5”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+5;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton6() //按钮“6”// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+6;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton7() //按钮“7”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+7;m_edit1=result;append=0;UpdateData(FALSE);void CCalculatorDlg::OnButton8() //按钮“8”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+8;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton9() //按钮“9”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+9;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONzero() //按钮“0”{// TODO: Add your control notification handler code here if(append==1)result=0;result=result*10+0;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONequal() //按钮“=”{// TODO: Add your control notification handler code here switch(sort){case 1:result=result+tempvalue;break;case 2:result=tempvalue-result;break;case 3:result=result*tempvalue;break;case 4:result=tempvalue/result;break;}m_edit1=result;sort=0;append=1;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONclean() //按钮“退出”{// TODO: Add your control notification handler code here tempvalue=0;result=0;m_edit1=;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONplus() //按钮“+”{// TODO: Add your control notification handler code here sort=1;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONminus() //按钮“-”{// TODO: Add your control notification handler code here sort=2;tempvalue=result;append=1;}void CCalculatorDlg::OnBUTTONmulti() //按钮“*”{// TODO: Add your control notification handler code here sort=3;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONdiv() //按钮“/”{// TODO: Add your control notification handler code here sort=4;tempvalue=result;append=1;}(4)程序调试:简单计算器测试与思考:1.小结:A.在做上面那个简单计算器的时候,遇到的问题很少,而且差不多都是些很小的问题,很容易就解决了B.刚开始,在老师没讲课之前,不知道如何设置响应事件,经老师讲解后,很快就解决了C.在运行的调试的时候,发现计算器的减法与除法的功能出错,原来是减数与被减数、除数与被除数的位置互换了;还有,连续点击“=”时显示结果会不停变动,解决方法是:加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发现点击的相应数字会显示在原显示结果的后面,解决方法是:加“append=1;”语句。