c语言简易计算器设计报告

合集下载

C语言课程设计报告【简易计算器设计】

C语言课程设计报告【简易计算器设计】
附源程序清单:
1Calc.h(运算函数集头文件)
#include<stdio.h>
#include<string>
#include<string.h>
#define HIGH struct high
#define MAXN 5000
#define MAXSHOW 40
#define key_num 0
}
void initNum(HIGH *numb) //初始化
{
int i;
HIGH tmp;
memset(tmp.num, 0, sizeof(tmp.num));
*numb = tmp;
}
int absCmp(HIGH a, HIGH b) //比较绝对值大小
{
int i;
for(i = MAXN - 1; i > 0; i--)
5对于高精度,采用结构体struct high{int num[MAXN];};的形式,数组的一个元素存一位。个位为num[1],将符号存在num[0]之中。
1对于高精度加法,先判断两个数符号,如果为异号,则进行高精度减法,否则将各位逐个相加,然后逐位进位,返回答案即可。
2对于高精度减法,先判断两个数符号,如果为异号,则进行高精度加法,否则用大数减小数,逐个相减,然后逐位退位,判断符号、返回答案即可。
2输入数字,再输入运算符,输入等于号的结果为“当前输入的数字→运算符→当前输入的数字”。可以调节正负号。
3输入“数字,运算符,数字,运算符...数字,运算符”亦可。
七、心得体会
这次“简单计算器制作”的课程设计不仅让我对C语言的熟悉程度上升到了另一个高度,而且在一定意义上对面向对象设计的理解更加深刻了。是我在编程路途上的一次质的飞跃。而且在处理非常规数据类型的运算的锻炼下,使我对编程语言有了一个新的认识。当看着一个具有图形界面的计算器的模型成品出现在自己面前时,心中有着无限感慨,原来编程也不是非常遥不可及的,原来在编程的趣味性中能让我学到更多有意思的知识。

c语言程序设计课程计算器设计报告

c语言程序设计课程计算器设计报告

课程设计实验报告题目 C/C++语言程序设计所在院系信息学院专业计算机科学与技术班级 12级计科班学生指导教师2014年9月24 日程序设计流程图:源代码:#include <stdio.h>#include<math.h> #include <stdlib.h>void fun1(){printf("\t\t\t*****************************\n");printf("\t\t\t$ 欢迎使用计算器 $\n");printf("\t\t\t$ $\n");printf("\t\t\t$ 1.加法 $\n");printf("\t\t\t$ 2.减法 $\n");printf("\t\t\t$ 3.乘法 $\n");printf("\t\t\t$ 4.除法 $\n");printf("\t\t\t$ 5.乘方 $\n");printf("\t\t\t$ 6.开方 $\n");printf("\t\t\t$ 7.八进制转换 $\n");printf("\t\t\t$ 8.十六进制转换 $\n");printf("\t\t\t$ 9.退出 $\n");printf("\t\t\t$ $\n");printf("\t\t\t*****************************\n");}void fun2(float x,float y,int c){float z;int n,i;switch(c){case 1: z=x+y;printf("结果:%g+%g=%g\n",x,y,z);break; case 2: z=x-y;printf("结果:%g-%g=%g\n",x,y,z);break; case 3: z=x*y;printf("结果:%g*%g=%g\n",x,y,z);break; case 4: if(y==0)printf("错误!");else{z=x/y;printf("结果:%g/%g=%g\n",x,y,z);}break; case 5: n=x;for(i=1;i<y;i++){x=x*n;}printf("结果:%g\n",x);break;default:printf("请重新输入!");}}void fun3(float x,int c){float z;switch(c){case 6:if(x<0)printf("错误!");else{z=sqrt(x);printf("结果:%g\n",z);}break;default:printf("请重新输入!");}}void convert(int m,int c){char s[128];switch(c){case 7:printf("结果:%o\n",m);break;case 8:printf("结果:%x\n",m);break;default:printf("请重新输入!");}}void main(){for(;;){float x,y,z;int c,m;char h;fun1();printf("请选择运算:\n");printf("1\n2\n3\n4\n5\n6\n7\n8\n9\n"); printf("请输入运算方式前面的数字:\n");scanf("%d",&c);if(c==1||c==2||c==3||c==4||c==5){printf("输入两个数:");scanf("%f%f",&x,&y);fun2(x,y,c);}if(c==6){printf("输入一个数:");scanf("%f",&x);if(x<0)printf("错误!");elsefun3(x,c);}if(c==7||c==8){printf("输入一个数:");scanf("%d",&m);convert(m,c);}if(c==9){printf("<<<<<<<<<谢谢使用!>>>>>>>>>\n");} if(c>='a' && c<='z')printf("没有这个选择!\n");if(c>='A' && c<='Z')printf("没有这个选择!\n");}}。

C课程设计简易计算器实验报告

C课程设计简易计算器实验报告

《程序设计基础》(C++)课程设计报告计算器姓名:班级:学号:指导教师:成绩:完成时间:完成地点:计算器1 基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。

可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。

同时包含清除功能。

2 设计思路如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit 传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。

若点击的是单目运算符,则直接对其处理得出结果。

若点击清零,则m_edit等于0。

设计思路流程图如下(见下页)。

图1 计算器设计思路总流程图3 软件设计3.1 创建步骤打开Microsoft Visual C++ 6.0,选择新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名Calculator及其所在位置。

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成。

MFC AppWizard建立基于对话窗口的程序框架。

3.2 界面设计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面向对象程序设计MFC简单计算器实验报告

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简单计算器课程设计报告

c 简单计算器 课程设计报告一、课程目标知识目标:1. 让学生掌握简单计算器的基本功能,包括加、减、乘、除等四则运算。

2. 使学生理解计算器操作规则,如先算乘除后算加减、括号的作用等。

3. 帮助学生掌握计算器上的其他功能键,如清除、取反、百分比等。

技能目标:1. 培养学生运用计算器进行四则运算的能力,提高计算速度和准确性。

2. 培养学生运用计算器解决实际问题的能力,如购物找零、计算面积等。

3. 培养学生通过观察、思考、提问等方式,发现计算器使用过程中的问题,并尝试解决。

情感态度价值观目标:1. 培养学生对待计算器等电子设备的正确态度,爱护设备,遵守使用规范。

2. 培养学生在合作学习中互相帮助、共同进步的精神,增强团队意识。

3. 通过计算器教学,激发学生对数学学科的兴趣,提高学生的自信心和自主学习能力。

本课程针对年级学生的特点,注重培养学生的学习兴趣和实践能力。

课程性质为实践操作类,强调学生在动手实践中掌握知识。

在教学过程中,教师需关注学生的学习需求,及时调整教学策略,确保学生能够达到课程目标。

课程目标分解为具体学习成果,以便于后续教学设计和评估。

在教学结束后,学生应能独立使用计算器完成四则运算,解决实际问题,并在学习过程中培养良好的情感态度和价值观。

二、教学内容1. 计算器基本结构认知:让学生了解计算器各部分名称及其功能,如数字键、运算符号键、等于键、清除键等。

2. 四则运算操作方法:教学加、减、乘、除四则运算的计算器操作方法,以及运算顺序和括号的使用。

- 加法和减法运算- 乘法和除法运算- 混合运算及括号应用3. 计算器其他功能键使用:介绍取反、百分比、开方等特殊功能键的操作方法。

4. 实践应用:设计实际应用场景,让学生运用计算器解决购物找零、计算面积、计算速度等问题。

- 购物找零问题- 长度、面积、体积计算- 速度、时间、路程计算教学内容参考教材相关章节,结合课程目标进行整合。

教学大纲安排如下:第一课时:计算器基本结构认知、四则运算操作方法(加法和减法运算)第二课时:四则运算操作方法(乘法和除法运算)第三课时:四则运算操作方法(混合运算及括号应用)第四课时:计算器其他功能键使用第五课时:实践应用(购物找零问题)第六课时:实践应用(长度、面积、体积计算)第七课时:实践应用(速度、时间、路程计算)教学内容注重科学性和系统性,确保学生能够循序渐进地掌握计算器的使用方法,并在实际应用中巩固所学知识。

c语言实验报告计算器

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语言课程设计报告

. . . .C语言课程设计报告题目:设计一个简单计算器目录1.设计目的2.容3.总体设计(有流程图)4.源程序编写(附上了运行图)5.执行结果6.心得体会一、设计目的设计一个简单计算器,在功能上功能尽量模拟windows 操作系统中的计算器,系统界面不做强制要求。

全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数、指针和文件的操作,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,规编程思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、容1、程序设计的一般步骤a、确定数据结构b、确定算法c、编程d、调试e、总结资料2、基本要求a.设计正确,方案合理,能实现相应功能。

b.界面友好,使用方便。

c.程序精炼,结构清晰。

d.设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。

e.上机演示。

三、总体设计(程序设计组成框图、流程图)四、源程序编写#include<stdio.h>#include<math.h>#include<malloc.h>double jisuan(char a[]){int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;char nibo[50],zhan2[50]; double x,n,l,z=0,zhan3[20]; typedef struct{double d1;int d2;}dd;typedef struct{dd data[50];int top;}zhan1;zhan1 shu;shu.top=0;while(a[i]!='\0'){if(a[i]>='0'&&a[i]<='9'){z=0;j=i+1;while(a[j]>='0'&&a[j]<='9') {j++;}j--;for(k=i;k<=j;k++){z=z*10+a[k]-'0';}j=j+1;x=z;if(a[j]=='.'){l=1;i=j+1;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){n=pow(0.1,l);l=l+1;x=x+n*(a[k]-'0');}i=j+1;}else i=j;shu.data[++shu.top].d1=x;shu.data[shu.top].d2=++cnt;nibo[++t1]='0'+shu.data[shu.top].d2; nibo[t1+1]='\0';}else if(a[i]=='('){zhan2[++t2]=a[i];i++;}else if(a[i]==')'){j=t2;while(zhan2[j]!='('){nibo[++t1]=zhan2[j];nibo[t1+1]='\0';j--;}t2=j-1;i++;}else if(a[i]=='+'){while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='-'){if(a[i-1]=='$'){a[0]='0';i=0;}else if(a[i-1]=='('){a[i-1]='0';a[i-2]='(';i=i-2;\}else{while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}else if(a[i]=='*'||a[i]=='/'){while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='') {nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}else if(a[i]=='^'||a[i]==''){while(zhan2[t2]=='^'||zhan2[t2]==''){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}while(t2>0){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}t1=1;while(nibo[t1]!='\0'){if(nibo[t1]>='0'&&nibo[t1]<='9'){for(i=0;i<=shu.top;i++){if(nibo[t1]-'0'==shu.data[i].d2){m=i;break;}}zhan3[++t3]=shu.data[m].d1;}else if(nibo[t1]=='+'){zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];t3--;}else if(nibo[t1]=='-'){zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];t3--;}else if(nibo[t1]=='*'){zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];t3--;}else if(nibo[t1]=='/'){zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];t3--;}else if(nibo[t1]=='^'){zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);t3--;}else if(nibo[t1]==''){zhan3[t3]=sqrt(zhan3[t3]);}t1++;}return zhan3[1];}void main(){for(;;){char x,a[50];double jieguo;int i=0;a[0]='$';printf("表示开方,^表示乘方\n");printf("请输入表达式,退出请输入q:\n\n");scanf("%c",&x);if(x=='q') break;while(x!='\n'){a[++i]=x;scanf("%c",&x);}a[i+1]='\0';jieguo=jisuan(a);printf("\n");printf("结果为:%lf",jieguo);printf("\n\n");}}五、执行结果1、输入5 4结果92、输入5 4结果 13、输入5 4结果204、输入5 4结果 1图例:注:分别输入5、4,分别进行加减乘除。

计算器c语言报告

计算器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.小结:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档