设计一个简单计算器的C语言课程设计报告
C语言课程设计报告书____简易计算器[1]
![C语言课程设计报告书____简易计算器[1]](https://img.taocdn.com/s3/m/3456b6ea6294dd88d0d26b83.png)
C语言课程设计报告书课程名称:C语言课程设计课题名称:简易计算器班级:学号:姓名:指导老师:成绩:2008年6月欢迎老师指导一、课程设计目的1.通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。
特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。
通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算﹑三角函数等经典算法。
2.通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜色填充函数等。
3.通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。
提高程序开发能力。
二、设计内容我设计的是一款简易计算器,界面清楚,操作方便,它能实现以下功能:1.以界面形式给出计算器功能2.简单的四则混合运算(支持小括号、优先级)3.弦、余弦函数计算4.指数、对数的运算三、总体设计简单计算器由五大模块组成,模块设计如下:图1 模块调用图1.主函数 void main()功能:调用各个主要模块,实现简单计算器的整体功能。
2.主界面函数void JieMian()功能:使用有关图形函数模拟出可视化的计算器外观界面,并提供用户输入窗口。
3.四则混合运算函数void SiZeHunHeYunSuan()功能:实现简单的加减乘除混合运算,并支持优先级和带括号的运算。
4.三角运算函数void SanJiaoYunSuan()功能:实现基本的三角函数运算:sin(x)和cos(x)。
5.指对数函数void ZhiDuiShuYunSuan()功能:实现基本的指数和对数运算。
四、详细设计(一)数据结构设计1.用initgraph函数初始化图形界面,用outtextxy函数在图形模式下显示需输出内容,用setcolor和setbkcolor函数设置边框颜色和填充颜色,用circle 和rectangle函数来画计算器界面的按键,用gotoxy将数字送入显示区。
简易计算器c课程设计

简易计算器c 课程设计一、课程目标知识目标:1. 让学生掌握简易计算器C的基本结构,包括算术表达式、运算符和操作数。
2. 使学生了解计算器C中的数据类型及其在内存中的存储方式。
3. 让学生理解顺序结构程序设计的原理,并能够运用到简易计算器C的开发中。
技能目标:1. 培养学生运用计算器C编写简单程序的能力,如加减乘除运算。
2. 培养学生分析问题、解决问题的能力,能够针对特定需求设计相应的计算器功能。
3. 提高学生的编程实践能力,通过动手编写代码,实现简易计算器的功能。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发他们主动探索新知识的欲望。
2. 培养学生团队协作意识,学会与他人共同分析问题、解决问题,共同进步。
3. 培养学生严谨、细致的学习态度,养成良好的编程习惯,为今后的学习打下基础。
课程性质:本课程属于编程启蒙课程,以实践操作为主,结合理论讲解,让学生在动手实践中掌握编程基础。
学生特点:本课程面向的学生为具有一定计算机操作基础,对编程感兴趣的年级学生。
教学要求:教师需结合学生特点,以实例为主线,引导学生主动参与课堂,注重培养学生的动手实践能力和团队协作精神。
通过本课程的学习,使学生在掌握计算器C基本知识的同时,提高编程技能和综合素质。
二、教学内容1. 计算器C基本语法:介绍计算器C的数据类型、变量、常量的定义及使用,让学生掌握基本语法规则。
- 教材章节:第一章 计算器C概述- 内容列举:数据类型、变量定义、常量定义、运算符、表达式。
2. 算术表达式:讲解算术表达式的构成,以及加减乘除运算符的使用方法。
- 教材章节:第二章 算术表达式- 内容列举:算术表达式构成、运算符优先级、括号的使用。
3. 顺序结构程序设计:引导学生学习顺序结构程序设计,掌握程序的基本执行流程。
- 教材章节:第三章 程序结构与控制流程- 内容列举:顺序结构、程序执行流程、输入输出语句。
4. 简易计算器C程序设计:结合前面的知识,设计一个简易计算器C程序,实现加减乘除运算。
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. 计算器的基本结构:引导学生认识计算器的外观、各部分名称及其功能。
- 教材章节:第三章第1节《认识计算器》- 内容列举:计算器按键布局、显示屏、开机与关机、清除键等。
2. 四则运算操作:讲解加、减、乘、除四则运算在计算器上的操作方法。
- 教材章节:第三章第2节《计算器的四则运算》- 内容列举:按键输入、运算顺序、连续运算、计算结果读取等。
3. 计算器使用技巧:教授计算器的高级使用技巧,提高计算效率。
- 教材章节:第三章第3节《计算器使用技巧》- 内容列举:百分比计算、乘方运算、记忆功能等。
4. 实践应用:结合实际生活场景,让学生运用计算器解决实际问题。
- 教材章节:第三章第4节《计算器在实际生活中的应用》- 内容列举:购物找零、计算面积、体积、速度等。
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语言课程设计》报告For personal use only in study and research; not for commercial useFor personal use only in study and research; not for commercial use For personal use only in study and research; not for commercial use 设计题目:______________ 简单计算器设计____________For personal use only in study and research; not for commercial use学院名称:电子与信息工程学院专业:计算机科学与技术班级:计科姓名:学号指导教师:定稿日期:2013-5-28、设计题目简单计算器设计、设计要求在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。
二、设计目的①通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!②通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力, 具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
四、设计思想及过程①由于需要使功能尽量模仿Windows下的计算器,而很多功能要以图形界面实现,故用Borland C++ Builder编写。
所以用的是面向对象程序设计。
但因为这是C语言的课程设计,所以除了面向对象的使用以外,所有语法都是按照C语言的格式编写。
计算机c语言实训报告

计算机c语言实训报告计算机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语言来编写,通过一个学期的学习,使我初步把握了一些关于这门课的学问这次的课程设计是对我们一个学期来所学的学问的综合考察,里面涉及到了我们大多数所学学问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告题目:设计一个简单计算器目录1. 设计目的2. 内容3. 总体设计(有流程图)4. 源程序编写(附上了运行图)5. 执行结果6. 心得体会一、设计目的设计一个简单计算器,在功能上功能尽量模拟windows 操作系统中的计算器,系统界面不做强制要求。
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数、指针和文件的操作,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,规范编程思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、内容1、程序设计的一般步骤a、确定数据结构b、确定算法C、编程d、调试e、总结资料2、基本要求a .设计正确,方案合理,能实现相应功能。
b .界面友好,使用方便。
c .程序精炼,结构清晰。
d .设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。
e .上机演示。
三、总体设计(程序设计组成框图、流程图)四、源程序编与#in clude<stdio.h>#in clude<math.h>#in clude<malloc.h>double jisua n( char a[]){int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0; char nibo[50],zha n2[50];double x,n, l,z=0,zha n3[20];typedef struct{double d1;int d2;}dd;typedef struct{dd data[50]; int top;}zhan1; {zha n1 shu;shu.top=0;while(a[i]!='\O'){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*1O+a[k]-'O:}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]-'O');}i=j+1;}else i=j;shu.data[++shu.top].d1=x;shu.data[shu.top].d2=++c nt;n ibo[++t1]='0'+shu.data[shu.top].d2; nibo[t1+1]='\0';}else if(a[i]=='('){zha n2[++t2]=a[i];i++;}else if(a[i]==')'){j=t2;while(zha n2[j]!='('){n ibo[++t1]=zha n2[j];nibo[t1+1]='\0:j--;}t2=j-1;i++;}else if(a[i]=='+'){while(t2>0&&zha n2[t2]!='(') { nibo[++t1]=zha n2[t2]; nibo[t1+1]='\0:t2--;}zha n2[++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]='O:a[i-2]='(';i=i-2;\}else{while(t2>0&&zha n2[t2]!='('){nibo[++t1]=zha n2[t2];nibo[t1+1]='\0:t2--;}zha n2[++t2]=a[i];i++;}}else if(a[i]=='*'||a[i]=='/'){while(zha n2[t2]=='*'||zha n2[t2]=='/'||zha n2[t2]=='"||zha n2[t2]=='@'){nibo[++t1]=zha n2[t2];nibo[t1+1]='\0:t2--;}zha n2[++t2]=a[i];i++;}else if(a[i]=='A'||a[i]=='@'){while(zha n2[t2]=='“||zha n2[t2]=='@'){nibo[++t1]=zha n2[t2];nibo[t1+1]='\0:t2--;}zha n2[++t2]=a[i];i++;}}while(t2>0){nibo[++t1]=zha n2[t2];nibo[t1+1]='\0:t2--;}t1=1;while( nibo[t1]!='\0')if(n ibo[t1]>='0'&&n ibo[t1]<='9'){for(i=0;i<=shu.top;i++){if(n ibo[t1]-'0'==shu.data[i].d2){m=i;break;}}zha n3[++t3]=shu.data[m].d1;}else if(n ibo[t1]=='+'){zha n3[t3-1]=zha n3[t3-1]+zha n3[t3];t3--;}else if(n ibo[t1]=='-'){zha n3[t3-1]=zha n3[t3-1]-zha n3[t3];t3--;}else if(n ibo[t1]=='*'){zha n3[t3-1]=zha n3[t3-1]*zha n3[t3];t3--;}else if(n ibo[t1]=='/'){zha n3[t3-1]=zha n3[t3-1]/zha n3[t3];t3--;}else if(n ibo[t1]=='“){zha n3[t3-1]=pow(zha n3[t3-1],zha n3[t3]); t3--;}else if(n ibo[t1]=='@'){zha n3[t3]=sqrt(zha n3[t3]);}t1++;}return zhan 3[1];}void mai n(){for(;;){char x,a[50];double jieguo;int i=0;a[0]='$:printf("@ 表示开方,A表示乘方\n");printf("请输入表达式,退出请输入q: \n\n"); scan f("%c", &x); if(x=='q') break;while(x!='\n'){a[++i]=x;scan f("%c", &x);}a[i+1]='\0';jieguo=jisua n( a);prin tf("\n");printf("结果为:%lf',jieguo);prin tf("\n\n ”);}}五、执行结果1、输入5 4结果92、输入5 4结果13、输入5 4结果204、输入5 4结果1 图例:注:分别输入5、4,分别进行加减乘除。
结果运行成功。
此图为证明此程序运行0 error ,没错误。
六、心得体会计算机知识博大精深,很奥妙,学过c语言之后我知道我们平时用的那些应用程序都是用各种计算机语言编写的。
这次通过老师布置的课程设计,我学会了更多的计算机知识,觉得编程是一件很费脑细胞同时很有意思的一件事。
我在编写这次简单计算器的程序过程中遇到很多困难,犯了很多错,(例如:执行结果部分没有运算符)这也让我意识到编写c 语言是需要耐心、细心和热心去做的一件事情!最关键的是,这个程序是我们经过一个暑假后的过程来编写的,我发现很多知识都忘了,所以最关键的是我觉得编程就该持之以恒!这次的报告前前后后改了很多遍,我觉得无论是做程序还是报告都应该按照要求的格式来,严谨规范的要求自己才能事半功倍!。