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所示。
VC++计算器实验报告
三宁夏师范学院数学与计算机科学学院
《Visual C++程序设计》实验报告
实验序号:8实验项目名称:对话框(计算器)
五、分析与讨论
本次实验在做的过程中并没有出现任何问题,原以为是很顺利的一次上机实验,可结果在运行的时候就出现了问题,比如+、
同时通过这次实验我更加深入的了解了按钮控件的应用,学会了简单的改变按钮的客户区形状和编辑控件的应用,以及对话框的扩展。
在遇到问题的时候,找问题出现的根源并且一步一步的尝试觉得问题,虽然经历了比较长的一个过程,但是从中受益不。
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 简单计算器 课程设计报告一、课程目标知识目标: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 计算器实践报告
c++计算器实践报告题目科学计算器应用程序系统学生姓名指导教师学院专业班级学生学号吴金星严晖材料科学与工程学院 1206 0607120610计算机基础教学实验中心XX年 7 月 3 日科学计算器管理信息系统摘要:本设计是简单计算器,日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。
它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。
使用人员能快捷简单地进行操作。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
关键词:程序设计;计算器;MFC;按钮控件1. 计算器系统开发设计思想⑴实验目的①通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。
②通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力。
③通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力。
为后续的相关课程的学习打下基础。
⑵实验要求①二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算②科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行③以角度、弧度两种方式实现上述部分函数④具备历史计算的记忆功能⑤对不正确的表达式能指出其错误原因⑥整理上机步骤,完成实验报告、提交可运行的程序,给出实验数据和实验结果2、计算器系统功能及系统设计介绍⑴功能说明它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。
使用人员能快捷简单地进行操作。
计算器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.小结:。
VC计算器实现实验报告
VC课程设计实验报告课题名称:计算器实现姓名:陈锋学号:05110010…提交报告时间: 2010年 11 月 22日课程设计目标实验设计一个计算器,要求可通过按钮输入数字、运算符,能通过按钮实现退格、清除功能,实现整数的加、减、乘、除、取余、开方、平方等运算功能,必要的错误处理,如除零;可以通过键盘输入数字、退格、运算符(+、-、*、/、%、=),实现括号运算;实现不同进制(二进制、十进制、八进制、十六进制)下的加、减、乘、除、取余、开方、平方等运算功能。
1. 分析与设计(1)实现方法:#编程语言为C++语言。
编程方法:通过一个文本框接收所输入的运算表达式,然后将其转换成后缀表达式并将各个数字先转换成十进制数值进行计算,最后再转换成相应进制的字符串。
(2)代码设计说明:文件和类的设计说明:创建一个头文件:内容如下:#include""const int MaxSize=30;const int MaxPri=8;BOOL decimal_2; h==op):return lpri[i].pri;}int rightpri(char op) h==op)return rpri[i].pri;}int InOp(char ch) ||*exp>='a'&&*exp<='f'){postexp[i++]=*exp;exp++;}postexp[i++]='#';,}else{switch(Precede[],*exp)){case -1:++;[]=*exp;exp++;break;case 0:…;exp++;break;case 1:postexp[i++]=[];;break;}}}while[]!='=')。
{postexp[i++]=[];;}postexp[i]='\0';}float compvalue(char *postexp){postexp++;int n=0;{if(decimal_2){while(*postexp>='0'&&*postexp<='1'){n++;d=d*2+*postexp-'0';postexp++;}while(n){d=d/2;$n--;}}else if(decimal_8){while(*postexp>='0'&&*postexp<='9'){n++;d=d*8+*postexp-'0';postexp++;}?while(n){d=d/8;}}else if(decimal_10){while(*postexp>='0'&&*postexp<='9'){n++;`d=d*10+*postexp-'0';postexp++;}while(n){d=d/10;n--;}}else if(decimal_16){|while(*postexp>='0'&&*postexp<='9'||*postexp>='a'&&*postexp<='f'){n++;if(*postexp>='a'&&*postexp<='f')d=d*16+*postexp-'a'+10;elsed=d*16+*postexp-'0';postexp++;}while(n){{n--;}}}++;[]=d;break;}postexp++;}/return[]);}(3)各控件变量:(如图);(4)界面图示:\《—、?2.程序代码实现BOOL CMyDlg::OnInitDialog(){CDialog::OnInitDialog();." menu item to system menu.`ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;(IDS_ABOUTBOX);if (!()){@pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}The framework does this automatically{;UpdateData(FALSE);}^void CMyDlg::OnBtnEqual(){length--;int n=0;while(length&&()-length)>='0'&&()-length)<='9'||()-length)>='a'&&()-length)<='f')){n++;if()-length)>='0'&&()-length)<='9')d=d*10+()-length)-'0';]elsed=d*10+()-length)-'a'+10;length--;}while(n){d=d/10;n--;}}float a=sqrt(d);】{length--;int n=0;while(length&&()-length)>='0'&&()-length)<='9' ||()-length)>='a'&&()-length)<='f')){n++;if()-length)>='0'&&()-length)<='9')d=d*10+()-length)-'0';elsed=d*10+()-length)-'a'+10;:length--;}while(n){d=d/10;n--;}}float a=1/d;{if(m_show[()-1]>='0'&&m_show[()-1]<='9');m_show+='.';}else if(pMsg->wParam==187) ;for(i=0;i<10&&k2>;i++){decimal*=2;int k=(int)(k2*2);str=m_show;("%s%c",str,k+'0');k2=k2-(float)k/2;k2*=2;&}}void CMyDlg::Trans_Ten_to_Eight(float a) ;for(i=0;i<10&&k2>0;i++){decimal*=16;int k=(int)(k2*16);if(0<=k&&k<=9){str=m_show;·("%s%c",str,k+'0');}else{CString str=m_show;("%s%c",str,k+'a');}k2=k2-(float)k/16;k2*=16;}})float CMyDlg::Trans_char_to_IntTen() //将10进制字符串转换成10进制数值并返回{int length=();int i=0;float d=0;while(i<length&&(i)>='0'&&(i)<='9'){d=d*10+(i)-'0';i++;}i++;int decimal=1;while(i<length&&(i)>='0'&&(i)<='9'){decimal*=10;d=d+(float)(i)-'0')/decimal;i++;}return d;}实验结果(如界面图示)实验总结:本实验对算法的考查主要就是对表达式通过后缀表达式求值,以及各进制之间的转换,不能说难,只是有点冗长,特别是两者统一在一起时变来变去容易混淆,特别是浮点数的消暑部分的处理,稍微不小心就会出现错误,因此做这个程序主要考查大家对控件使用的熟悉与细心了。
c语言简易计算器报告
C语言简易计算器报告介绍本文将介绍如何使用C语言编写一个简易的计算器。
计算器可以进行基本的四则运算,包括加法、减法、乘法和除法。
设计思路1.首先,我们需要定义计算器的操作符和操作数。
操作符可以是+, -, *,/,操作数是两个整数或浮点数。
2.接下来,我们需要编写一个函数来接收用户输入的操作符和操作数,并进行相应的计算。
我们可以将这个函数命名为calculate。
3.在calculate函数中,我们根据用户输入的操作符,执行相应的计算操作,并返回计算结果。
如果用户输入的操作符不合法,我们将返回一个错误提示。
4.最后,我们在主函数中调用calculate函数,并显示计算结果。
代码实现下面是实现一个简易计算器的C语言代码:#include <stdio.h>float calculate(char operator, float operand1, float operand2) { float result;switch (operator) {case'+':result = operand1 + operand2;break;case'-':result = operand1 - operand2;break;case'*':result = operand1 * operand2;break;case'/':if (operand2 != 0) {result = operand1 / operand2;}else {printf("错误:除数不能为0\n");return-1; // 返回错误代码}break;default:printf("错误:无效的操作符\n");return-1; // 返回错误代码}return result;}int main() {char operator;float operand1, operand2;float result;printf("请输入操作符和操作数(格式为:操作数1 操作符操作数2):");scanf("%f %c %f", &operand1, &operator, &operand2);result = calculate(operator, operand1, operand2);if (result != -1) {printf("计算结果为:%f\n", result);}return0;}使用说明1.用户需要按照指定格式输入操作数和操作符,例如:2 + 3。
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 实验报告C实验报告一、实验目的通过本次实验,我将学会使用C语言编写一个简单的计算器程序,进一步掌握C语言的变量和运算符的使用方法,提高自己的编程能力。
二、实验内容本次实验要求编写一个计算器程序,具有以下功能:1. 实现基本的加、减、乘、除四则运算;2. 可以进行整数和浮点数运算;3. 用户输入数字和运算符后,计算并显示结果。
三、实验步骤1. 首先,声明并定义一个函数,用于进行四则运算。
函数的参数有两个数和一个运算符,返回值为计算的结果。
2. 在主函数中,通过用户输入实现接收数字和运算符的功能,并将其赋值给变量num1、num2和op。
3. 调用之前定义的函数,将num1、num2和op作为参数传递给该函数,获得计算结果并赋值给变量result。
4. 输出计算结果。
四、实验源代码及结果```c#include <stdio.h>float calculate(float num1, float num2, char op) {float result;switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 == 0) {printf("Error: Dividing by zero is not allowed.\n"); return 0;}result = num1 / num2;break;default:printf("Error: Invalid operator.\n");return 0;}return result;}int main() {float num1, num2, result;char op;printf("Please enter the first number: ");scanf("%f", &num1);printf("Please enter the operator (+, -, *, /): ");scanf(" %c", &op);printf("Please enter the second number: ");scanf("%f", &num2);result = calculate(num1, num2, op);printf("The result is: %.2f\n", result);return 0;}```运行结果:Please enter the first number: 5.5Please enter the operator (+, -, *, /): *Please enter the second number: 2.0The result is: 11.00五、实验总结通过本次实验,我学会了使用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语言实训报告(精选5篇)
计算机c语言实训报告(精选5篇)计算机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语言的基本语法和编程技巧,还提高了自己的逻辑思维能力和问题解决能力。
vc计算器实验报告
VC计算器实验报告1. 引言计算器是我们日常生活中经常使用的工具之一。
它可以帮助我们进行简单的数学运算,如加减乘除,以及更复杂的科学计算。
然而,传统的计算器通常功能有限,无法满足我们日益增长的计算需求。
为了解决这个问题,我们设计并实现了一款名为VC计算器的应用程序。
本文将详细介绍VC计算器的设计思路、功能特点以及实现过程。
2. 设计思路VC计算器的设计思路基于“step by step thinking”的理念,即通过逐步思考和分解问题来实现复杂的功能。
我们希望用户能够通过简单的步骤,逐渐构建出复杂的计算式,并获得准确的计算结果。
3. 功能特点3.1 基本计算功能VC计算器支持基本的四则运算,包括加法、减法、乘法和除法。
用户可以通过逐步输入数字和运算符,构建出复杂的计算式,并得到准确的计算结果。
3.2 科学计算功能除了基本的四则运算,VC计算器还提供了一些常用的科学计算功能,如三角函数、对数函数、指数函数等。
用户可以通过简单的步骤,构建出复杂的科学计算式,并得到准确的计算结果。
3.3 变量和函数支持为了进一步增强计算器的功能,我们在VC计算器中添加了变量和函数的支持。
用户可以定义和使用变量,以及定义和调用函数。
这样,用户可以根据自己的需求,自定义复杂的计算式,并得到准确的计算结果。
4. 实现过程4.1 界面设计我们通过使用Markdown文本格式来展示VC计算器的界面设计。
下面是一个示例界面:==========================================VC计算器==========================================[1] 2 + 3 = 5[2] sin(45) = 0.707[3] x = 10[4] y = 5[5] x + y = 15[6] f(x) = 2x + 1[7] f(5) = 114.2 代码实现VC计算器的代码实现主要分为以下几个步骤:1.解析用户输入,获取操作符和操作数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c计算器实验报告集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#简单计算器姓名: 周吉祥实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。
实验内容:(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 Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);tempvalue=0;result=0;sort=0;append=0;}●各控件响应函数代码:void CCalculatorDlg::OnButton1() //按钮“1”{// TODO: Add your control notification handler code hereif(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 here if(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 hereif(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;m_edit1=0;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 heresort=4;tempvalue=result;m_edit1=0;append=1;}(4)程序调试:简单计算器测试与思考:1.小结:A.在做上面那个简单计算器的时候,遇到的问题很少,而且差不多都是些很小的问题,很容易就解决了B.刚开始,在老师没讲课之前,不知道如何设置响应事件,经老师讲解后,很快就解决了C.在运行的调试的时候,发现计算器的减法与除法的功能出错,原来是减数与被减数、除数与被除数的位置互换了;还有,连续点击“=”时显示结果会不停变动,解决方法是:加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发现点击的相应数字会显示在原显示结果的后面,解决方法是:加“append=1;”语句。