数据结构课程设计(简单计算器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 简单计算器课程设计一、课程目标知识目标: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. 实践操作:安排实践环节,让学生分组进行计数器设计与制作,培养动手能力,提高实际操作技能。
相关教材章节:第三章实验部分《计数器设计与制作》5. 调试与优化:教授学生如何对计数器电路进行调试与优化,确保计数器正常运行,提高计数器的稳定性。
数据结构课程设计-计算器

数据结构课程设计-计算器数据结构课程设计计算器在计算机科学的学习中,数据结构是一门重要的基础课程。
通过这门课程的学习,我们能够深入理解和掌握如何有效地组织和管理数据,以提高程序的运行效率和性能。
本次课程设计的任务是开发一个简单的计算器程序,通过运用所学的数据结构知识,实现基本的算术运算功能。
一、需求分析首先,我们需要明确计算器程序的功能需求。
这个计算器应该能够支持常见的四则运算,即加法、减法、乘法和除法。
用户可以通过输入表达式,例如“2 +3”、“5 2”、“3 4”、“8 /2”等,程序能够正确计算并输出结果。
此外,为了提高用户体验,计算器还应该能够处理错误输入,例如输入的表达式不符合语法规则或者除数为 0 等情况,并给出相应的错误提示信息。
二、数据结构选择为了实现上述功能,我们需要选择合适的数据结构来存储和处理输入的表达式。
在这个计算器程序中,我们可以使用栈这种数据结构。
栈是一种后进先出(Last In First Out,LIFO)的数据结构,非常适合处理表达式的计算。
我们可以创建两个栈,一个用于存储操作数,另一个用于存储操作符。
当用户输入一个表达式时,我们按照从左到右的顺序逐个字符进行处理。
如果是数字,则将其转换为整数并压入操作数栈;如果是操作符,则将其压入操作符栈。
在计算过程中,我们从操作符栈中取出操作符,从操作数栈中取出相应数量的操作数进行计算,将计算结果压回操作数栈。
三、算法设计1、表达式解析算法从左到右扫描表达式。
如果遇到数字,将其作为一个整数提取出来,并压入操作数栈。
如果遇到操作符(+、、、/),则将其压入操作符栈。
如果遇到左括号“(”,则将其压入操作符栈。
如果遇到右括号“)”,则从操作符栈中弹出操作符,从操作数栈中弹出操作数,进行计算,直到遇到左括号为止。
2、计算算法当操作符栈不为空时,从操作符栈中弹出一个操作符。
根据操作符的类型,从操作数栈中弹出相应数量的操作数。
进行计算,并将结果压回操作数栈。
C语言课程设计简单计算器程序文件

课程设计名称:C语言课程设计课程设计题目:简单计算器程序目录第1章需求分析 (1)1.1设计要求 (1)1.2任务 (1)第2章总体设计 (2)2.1设计简介及设计方案论述 (2)2.2功能模块层次图 (2)第3章详细设计 (3)3.3由(后缀)逆波兰表达式计算中缀表达式原理 (8)3.3.1算法描述 (9)第4章调试分析 (11)4.1程序设计中所遇到的错误及犯错的原因 (11)4.2错误的解决方法 (11)第5章用户手册 (12)总结 (16)参考文献 (17)附录(程序清单) (18)第1章需求分析1.1 设计要求(1)用 C 语言数据结构实现程序设计;(2)利用结构体、栈、进行相关信息处理;(2)系统的各个功能模块要求用函数的形式实现;(4)界面简单.可操作性高。
1.2 任务(1)定义一个结构体类型数组.输入 0~9 及+、--、*等符号的信息.将其信息存储起来;(2)输入简单的加减乘除算术计算式.并在屏幕上显示逆波兰(后缀式)表达式和计算结果;(3)编写代码;(4)程序分析与调试。
说明:本课程设计将实现一个简单计算器。
在功能上尽量模仿 windows 的计算器。
系统界面不做牵制要求。
该程序能实现标准型中+、-、*、/、(、)、.、的混合运算表达式(一般意义上的中缀表达式).将其转换成逆序波兰表达式(后缀表达式)并计算输出结果。
在进行运算后可以选择继续运算或者结束当前运算。
即时准确地获得需要的计算的结果.充分降低了数字计算的难度和节约了时间.对人们的生活有一定的帮助。
第2章 总体设计2.1设计简介及设计方案论述逆波兰表达式又叫做后缀表达式。
在通常的表达式中.二元运算符总是置于与之相 关的两个运算对象之间.所以.这种表示法也称为中缀表达式。
波兰逻辑学家 J.Lukasiewicz 于 1929 年提出了另一种表示表达式的方法。
按此方法.每一运算符都置 于其运算对象之后.故称为后缀表达式。
后缀表达式的优点是显而易见的. 编译器在处理时候按照从左至右的顺序读取逆波 兰表达式.遇到运算对象直接压入堆栈.遇到运算符就从堆栈提取后进的两个对象进行计算.这个过程正好符合了计算机计算的原理。
c简单计算器课程设计报告

c 简单计算器 课程设计报告一、课程目标知识目标:1. 让学生掌握简单计算器的基本功能,包括加、减、乘、除等四则运算。
2. 使学生理解计算器操作规则,如先算乘除后算加减、括号的作用等。
3. 帮助学生掌握计算器上的其他功能键,如清除、取反、百分比等。
技能目标:1. 培养学生运用计算器进行四则运算的能力,提高计算速度和准确性。
2. 培养学生运用计算器解决实际问题的能力,如购物找零、计算面积等。
3. 培养学生通过观察、思考、提问等方式,发现计算器使用过程中的问题,并尝试解决。
情感态度价值观目标:1. 培养学生对待计算器等电子设备的正确态度,爱护设备,遵守使用规范。
2. 培养学生在合作学习中互相帮助、共同进步的精神,增强团队意识。
3. 通过计算器教学,激发学生对数学学科的兴趣,提高学生的自信心和自主学习能力。
本课程针对年级学生的特点,注重培养学生的学习兴趣和实践能力。
课程性质为实践操作类,强调学生在动手实践中掌握知识。
在教学过程中,教师需关注学生的学习需求,及时调整教学策略,确保学生能够达到课程目标。
课程目标分解为具体学习成果,以便于后续教学设计和评估。
在教学结束后,学生应能独立使用计算器完成四则运算,解决实际问题,并在学习过程中培养良好的情感态度和价值观。
二、教学内容1. 计算器基本结构认知:让学生了解计算器各部分名称及其功能,如数字键、运算符号键、等于键、清除键等。
2. 四则运算操作方法:教学加、减、乘、除四则运算的计算器操作方法,以及运算顺序和括号的使用。
- 加法和减法运算- 乘法和除法运算- 混合运算及括号应用3. 计算器其他功能键使用:介绍取反、百分比、开方等特殊功能键的操作方法。
4. 实践应用:设计实际应用场景,让学生运用计算器解决购物找零、计算面积、计算速度等问题。
- 购物找零问题- 长度、面积、体积计算- 速度、时间、路程计算教学内容参考教材相关章节,结合课程目标进行整合。
教学大纲安排如下:第一课时:计算器基本结构认知、四则运算操作方法(加法和减法运算)第二课时:四则运算操作方法(乘法和除法运算)第三课时:四则运算操作方法(混合运算及括号应用)第四课时:计算器其他功能键使用第五课时:实践应用(购物找零问题)第六课时:实践应用(长度、面积、体积计算)第七课时:实践应用(速度、时间、路程计算)教学内容注重科学性和系统性,确保学生能够循序渐进地掌握计算器的使用方法,并在实际应用中巩固所学知识。
c语言程序设计-用c语言设计一个简单计算器课程设计

}
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];
{
循环语句;
}
}
二、数据结构:
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];
4 调试分析
开始菜单:
加法计算
减法计算乘法计算除法计算乘方计算开方计算
退出系统
5 设计心得
在为期不到两周的课程设计中,我体会颇多,学到很多东西。利用设计这次简单计算器的机会,我加强了对C++的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少。从而对Microsoft Visual C++ 6.0又有了更深入的认识!在这次课程设计中,我还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体设计、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等。总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我对编程更加热爱了。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。特别是学会了在Visual C++集成开发环境中如何调试程序的方法。
c简易计算器课程设计

c 简易计算器课程设计一、课程目标知识目标:1. 学生能理解简易计算器的基本原理,掌握加、减、乘、除四则运算的操作方法。
2. 学生能够运用所学知识,解决生活中简单的数学问题。
3. 学生了解计算器的发展历程,认识到科技对生活的影响。
技能目标:1. 学生能够熟练操作简易计算器,进行基本的四则运算。
2. 学生通过实际操作,培养动手能力和问题解决能力。
3. 学生能够运用计算器辅助学习,提高数学学习效率。
情感态度价值观目标:1. 学生培养对数学学习的兴趣,树立正确的数学观念。
2. 学生在合作交流中,培养团队意识和沟通能力。
3. 学生通过计算器的使用,认识到科技发展的成果,增强民族自豪感。
课程性质:本课程为信息技术与数学学科的整合课程,旨在通过简易计算器的学习,提高学生的数学素养和信息技术能力。
学生特点:四年级学生具备一定的数学基础和信息技术能力,好奇心强,善于合作交流。
教学要求:教师需结合学生的特点,采用启发式教学,引导学生主动探究,注重培养学生的动手能力和问题解决能力。
在教学过程中,关注学生的情感态度,激发学生的学习兴趣,使学生在轻松愉快的氛围中学习。
通过本课程的学习,使学生达到预期的学习成果。
二、教学内容1. 计算器的历史与原理:介绍计算器的发展简史,探讨计算器的工作原理,让学生了解计算器的演变过程,认识到科技对生活的改变。
2. 简易计算器操作方法:详细讲解加、减、乘、除四则运算的操作步骤,让学生熟练掌握计算器的使用方法。
3. 实践应用:结合数学课本中的实际例题,指导学生运用计算器进行计算,解决实际问题,提高计算速度和准确性。
4. 计算器在数学学习中的应用:探讨计算器在辅助数学学习中的作用,如:简化计算过程、提高解题效率等。
教学内容安排和进度:第一课时:计算器的历史与原理,计算器的简单操作。
第二课时:四则运算的操作方法,实践练习。
第三课时:计算器在数学学习中的应用,解决实际问题。
教材章节:《信息技术》第四章:计算器与计算机。
设计一个简单计算器的C语言课程设计报告

C语言课程设计报告题目:设计一个简单计算器目录1.设计目的2.内容3.总体设计(有流程图)4.源程序编写(附上了运行图)5.执行结果6.心得体会一、设计目的设计一个简单计算器,在功能上功能尽量模拟windows 操作系统中的计算器,系统界面不做强制要求。
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数、指针和文件的操作,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,规范编程思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、内容1、程序设计的一般步骤a、确定数据结构b、确定算法c、编程d、调试e、总结资料2、基本要求a.设计正确,方案合理,能实现相应功能。
b.界面友好,使用方便。
c.程序精炼,结构清晰。
d.设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。
e.上机演示。
三、总体设计(程序设计组成框图、流程图)四、源程序编写#include<>#include<>#include<>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;=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,l);x=x+n*(a[k]-'0'); }i=j+1;}else i=j;[++].d1=x;[].d2=++cnt;nibo[++t1]='0'+[].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';}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<=;i++){if(nibo[t1]-'0'==[i].d2){m=i;break;}}zhan3[++t3]=[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. 让学生掌握简易计算器的基本功能与操作,包括加、减、乘、除等四则运算。
2. 使学生理解计算器的工作原理,了解显示屏、键盘等组成部分及其作用。
3. 帮助学生掌握计算器的使用规范,如开关机、输入输出等基本操作。
技能目标:1. 培养学生运用计算器解决实际问题的能力,提高计算速度和准确性。
2. 培养学生通过观察、尝试、探索等方法,自主发现计算器操作技巧和功能特点。
3. 培养学生合作交流的能力,学会在小组讨论中分享观点,共同解决问题。
情感态度价值观目标:1. 激发学生对计算器的学习兴趣,培养良好的学习习惯和探究精神。
2. 培养学生尊重科学、严谨求实的态度,树立正确的价值观。
3. 培养学生团队协作意识,增强合作解决问题的能力。
本课程针对小学四年级学生,结合教材内容,以实用性为导向,注重培养学生的动手操作能力和实际问题解决能力。
课程目标明确,易于衡量,为后续教学设计和评估提供依据。
在教学过程中,教师应关注学生个体差异,因材施教,确保每位学生都能在课程中收获知识和技能。
二、教学内容本章节教学内容主要包括以下几部分:1. 计算器的基本结构:介绍计算器的显示屏、键盘、电池等组成部分及其功能。
2. 四则运算操作:详细讲解加、减、乘、除四则运算在计算器上的操作步骤。
3. 计算器操作规范:教授计算器的开关机、清屏、输入输出等基本操作规范。
4. 实际问题解决:结合教材实例,引导学生运用计算器解决生活中的实际问题。
5. 操作技巧与功能探索:指导学生探索计算器的其他功能,如百分比、乘方等,并分享操作技巧。
教学内容安排如下:第一课时:计算器的基本结构及操作规范介绍。
第二课时:四则运算操作教学,以教材为例题进行讲解和实操。
第三课时:实际问题解决,分组讨论并运用计算器解决生活中的数学问题。
第四课时:操作技巧与功能探索,学生自主探究计算器其他功能并分享。
教学内容与教材紧密关联,确保科学性和系统性。
c课程设计简单计算器

c课程设计简单计算器一、教学目标本节课的学习目标包括:知识目标:学生需要掌握简单计算器的原理和基本操作,了解计算机内部是如何进行加减乘除等运算的。
技能目标:学生能够独立设计并实现一个简单计算器,提高逻辑思维能力和编程能力。
情感态度价值观目标:通过完成计算器设计,学生能够体会到编程的乐趣,增强对计算机科学的兴趣,培养创新精神和团队合作意识。
二、教学内容本节课的教学内容主要包括:1.简单计算器的原理介绍:讲解计算器的工作原理,让学生了解计算机是如何进行数学运算的。
2.编程语言的基本概念:介绍编程语言的基本语法和结构,为学生编写计算器程序打下基础。
3.计算器的设计与实现:引导学生通过编程实现一个简单计算器,培养学生的实际操作能力。
三、教学方法本节课采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解计算器的原理和编程语言的基本概念,为学生提供理论支持。
2.案例分析法:分析已有的计算器程序,让学生从中学习编程技巧和方法。
3.实验法:学生动手编写计算器程序,培养实际操作能力和创新能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:提供配套的教材,帮助学生学习计算器原理和编程语言。
2.多媒体资料:制作PPT等多媒体资料,生动形象地展示计算器原理和编程方法。
3.实验设备:准备计算机等实验设备,让学生能够顺利进行编程实践。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用以下评估方式:1.平时表现评估:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和积极性。
2.作业评估:通过学生提交的作业,评估学生的编程能力和对知识的理解程度。
3.考试评估:设置期末考试,测试学生对简单计算器原理和编程语言的掌握程度。
六、教学安排本节课的教学安排如下:1.教学进度:按照教材的章节安排,逐步讲解计算器原理和编程语言知识。
2.教学时间:安排在正常的上课时间,确保学生能够专心学习。
C语言课程设计报告【简易计算器设计】

C语言课程设计报告【简易计算器设计】1000字一、设计目的本设计旨在通过设计一个简易计算器,使初学者通过该计算器,了解C语言基本语法并且巩固数学运算知识。
二、设计内容(一)需求分析本计算器,要求能够完成一般的数学运算(加、减、乘、除),以及开平方、自然对数、正弦等常用函数的计算。
(二)功能设计1. 实现加、减、乘、除基本运算符的计算功能,实现数值运算。
2. 实现开平方、自然对数、正弦等常用函数的计算功能。
3. 提供菜单界面,使用户可以选择所需要的计算功能。
4. 能够对输入的数字进行异常处理,如输入非数字字符等。
(三)技术实现本计算器的实现基于C语言,主要涉及基本输入输出和函数的应用。
1. 输入输出功能:本计算器通过scanf函数实现用户输入,通过printf函数将结果输出。
2. 函数应用:本计算器通过调用数学库函数实现对开平方、自然对数、正弦等常用函数的计算。
(四)算法设计本计算器的算法主要基于基本的数学运算原理以及数学库函数的应用。
1. 加法运算:\t输入要加的两个数a和b\t输出a+b的结果2. 减法运算:\t输入要减的两个数a和b \t输出a-b的结果3. 乘法运算:\t输入要乘的两个数a和b \t输出a*b的结果4. 除法运算:\t输入要除的两个数a和b \t如果b=0,输出错误信息\t否则,输出a/b的结果\t5. 开平方:\t输入要开平方的数a\t如果a<0,输出错误信息\t否则,输出a的平方根\t6. 自然对数:\t输入要求自然对数的数a \t如果a≤0,输出错误信息\t否则,输出a的自然对数\t7. 正弦:\t输入要求正弦的角度a\t输出a的正弦值(五)程序设计以下是本计算器的主体代码:。
数据结构课程设计(简单计算器C语言)

郑州师范学院信息科学与技术学院《简单计算器》课程设计报告设计题目:简单计算器班级: B15计科二班组长:组员:指导教师:完成日期: 2016 年 12 月 23 日成绩:摘要本次选做的课程设计是实现简单计算器的问题。
计算器是一个常用的运算工具,本次课题要求用程序语言的方式解决问题。
此问题仅使用数据结构中的栈操作就可以解决此问题。
而在为了方便使用,添加了easyx图形库实现了UI设计。
为了接近平常使用的计算器,特地创建死循环而且添加了“CE”清空输入和“<-”删除键来控制输入错误或者循环使用的问题。
在UI方面主要是实现按键和点击响应等交互,方便输入和修改,在程序框上面有输入和显示结果的文本框。
在计算过程中,以栈出栈进站的特性把中缀形式的算数表达式转化为计算机方便计算的后缀表达式,最后计算出结果以文本方式显示在结果输出框内。
目录摘要 (I)目录 (II)1需求分析 (3)1.1功能简介及分析 (3)1.2设计平台 (3)2概要设计 (3)2.1 Trans函数 (3)2.2 Compvalue 函数 (4)2.3 GetKey函数 (4)3详细设计和实现 (4)3.1转化为逆波兰式 (4)3.2计算逆波兰式 (6)3.3实现流程图 (7)3.3部分具体程序 (8)4调试与操作说明 (14)4.1调试情况 (14)4.2操作说明 (14)5设计总结 (15)参考文献 (17)1需求分析1.1功能简介及分析本次选做的课程设计是实现简单的计算器并且添加UI的交互。
此计算器是以软件的形式实现的计算器,运行在windows系统。
计算器在功能上分为三类,分别是:常见计算器,专用计算器,综合功能计算器。
常见的计算器又分为四种:①简单型计算器:只实现基本的加减乘除和括号运算。
②科学型计算器:可以进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。
③程序员计算器:专门为程序员设计的计算器, 主要特点是支持And, Or, Not, Xor:最基本的与或非和异或操作, 移位操作 Lsh, Rsh:全称是Left Shift和Right Shift,也就是左移和右移操作,你需要输入你要移动的位数(不能大于最大位数) RoL, RoR:全称是Rotate Left和Rotate Right,对于RoL来讲,就是向左移动一位,并将移出的那位补到最右边那位上,RoR类似。
C语言课程设计报告【简易计算器设计】

med = i;
break;
}
if(i == 0) med = 1;
return med;
}
void turnSym(HIGH *a) //变号
{
a -> num[0] = a -> num[0] == 0 ? -1 : 0;
}
void decMed(HIGH *a) //减去一位
{
int i, med = getMed(*a);
附源程序清单:
1Calc.h(运算函数集头文件)
#include<stdio.h>
#include<string>
#include<string.h>
#define HIGH struct high
#define MAXN 5000
#define MAXSHOW 40
#define key_num 0
10~9的数字输入功能(小数点除外)
2实现加、减、乘、整除、取模、阶乘、位运算左移、x的y次方、与、异或、x立方、x平方运算功能,二进制、八进制、十进制、十六进制转换功能,正负转换功能,退格、归零等功能。
3数字显示最多为40位,超过即用科学表示法表示(例如1E50)。
4运算时因最高能对5000位的数字进行运算,故所有功能建立在自行编写代码的高精度运算基础上。
}
void initNum(HIGH *numb) //初始化
{
int i;
HIGH tmp;
memset(tmp.num, 0, sizeof(tmp.num));
*numb = tmp;
}
int absCmp(HIGH a, HIGH b) //比较绝对值大小
简单计算器C语言课程设计报告书

C 语言课程设计报告
系:
级:
号:
名:
院 班 学 姓
、课程设计目的
、课程设计的基本过程
课程设计的基本过程包括 5 个步骤,即功能需求,总体
设计,详细设计,程序测试,结论。
每个步骤都有其特定的 任务。
2.1 【功能需求】
功能概述:该软件为用户提供一个在 windows 系统上
运 行的简单计算器,能进行简单的加、减、乘、除四则运算和
些常用特殊运算,包括余弦运算、正弦运算、正切运算、 绝对值、平方根运算、以 e 为底的指数运算、以 10 为底的 对数运算。
2.2 【总体设计】
1. 巩固和加深 C 语言课程的基本知识的理解和掌握
2. 掌握 C 语言编程和程序调试的基本技能
3. 利用 C 语言进行基本的软件设计
4. 掌握书写程序设计说明文档的能力
5. 提高运用 C 语言解决实际问题的能力。
c简单计数器课程设计

c 简单计数器课程设计一、教学目标本课程旨在让学生了解和掌握C语言简单的计数器编程,通过学习,学生能够:1.知识目标:理解C语言的基本语法和结构;掌握使用C语言进行简单的计数器编程。
2.技能目标:能够独立编写并运行一个简单的计数器程序;能够根据需要修改和优化程序。
3.情感态度价值观目标:培养学生对编程的兴趣和热情,提高学生解决问题的能力。
二、教学内容本课程的教学内容主要包括:1.C语言的基本语法和结构;2.简单的计数器编程方法;3.程序的调试和优化。
教学大纲如下:1.第一课时:C语言的基本语法和结构;2.第二课时:简单的计数器编程方法;3.第三课时:程序的调试和优化。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括:1.讲授法:讲解C语言的基本语法和结构,计数器编程的原理和方法;2.讨论法:引导学生进行编程实践,讨论和解决问题;3.实验法:让学生动手编写和调试程序,增强实践操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计基础》;2.参考书:《C语言编程实例解析》;3.多媒体资料:教学PPT、视频教程;4.实验设备:计算机、编程环境。
以上教学资源将有助于丰富学生的学习体验,提高学习效果。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性;2.作业:布置相关的编程作业,评估学生的理解和掌握程度;3.考试:进行期中和期末考试,全面评估学生的知识掌握和应用能力。
评估方式将力求客观、公正,全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:1.教学进度:按照教学大纲进行,确保每个知识点得到充分讲解和实践;2.教学时间:每课时为45分钟,共12课时;3.教学地点:计算机实验室。
教学安排将考虑学生的实际情况和需要,尽量合理、紧凑,确保在有限的时间内完成教学任务。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,我们将设计以下差异化教学活动和评估方式:1.教学活动:提供课后辅导、编程竞赛等不同形式的学习活动;2.评估方式:根据学生的学习需求,调整作业和考试的难度和内容。
C语言课程设计(计算器)

目录1 前言 (2)2 需求分析 (2)2.1要求 (2)2.2任务 (2)2.3运行环境 (2)2.4开发工具 (2)3 概要设计 (2)3.1系统流程图 (3)3.2查询函数流程图 (4)4 详细设计 (8)4.1分析和设计 (8)4.2具体代码实现 (9)5 课程设计总结 (25)参考文献 (25)致谢 (26)1 前言编写一个程序来实现算术计算器。
通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1.2.3等数字, +、--、*、等运算符号), 然后将其信息存入文件中。
输入一个算术计算式, 就在屏幕上显示结果。
2 需求分析2.1要求(1)用C语言实现程序设计;(2)利用结构体、共用体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交), 程序要有注释。
2.2任务(1)定义一个结构体类型数组, 输入0~9及+、--、*等符号的信息, 将其信息存入文件中;(2)输入简单的加减乘除算术计算式, 并在屏幕上显示计算结果;(3)画出部分模块的流程图;(4)编写代码;(5)程序分析与调试。
2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C语言3 概要设计3.1系统流程图如图3.1所示。
图3.1系统流程图3.2查询函数流程图4 详细设计4.1分析和设计在程序的开头部分定义了结构替类型, 用来存放按钮信息struct s_button /*按键的结构体*/{int sx,sy,ex,ey;char *head;int press;}button[17]; /*图表按键数*/char far *vid_mem;static int tx=32,ty=3; /*静态变量*/float v1=0.0,v2=0.0;用输入函数input()来输入按键放在s_button数组中。
C语言简易计算器课程设计

C语⾔简易计算器课程设计C语⾔课程设计报告书题⽬:简易计算器院系:班级:学号:姓名:摘要该软件为⽤户提供在windows系统上的简易计算器,能进⾏简单的加、减、乘、除四则运算与混合运算。
⽬的是为了巩固和加深C语⾔课程的基本知识的理解和掌握,利⽤C语⾔进⾏基本的软件设计,掌握C语⾔的编程和程序调试的基本技能,掌握书写程序设计说明⽂档的能⼒,提⾼运⽤C语⾔解决实际问题的能⼒。
关键词:C;简易计算器;程序;基本算法;混合运算SUMMARYthe software provides a simple calculator in Windows system for users ,can be a simple add,subtract,multiply,divide.The purpose is to consolidate and deepen the basic knowledge of C language courses to understand and master, The use of C language for software design basic, To master the basic skills of C language programming and program debugging, Master the writing program design documentation ability,improve the ability to use C language to solve practical problems.⽬录1、概述 (1)1.1.简单计算器设计的意义 (1)1.2.系统的基本要求 (1)1.3.功能设计 (1)2、总体设计 (2)2.1系统模块机构框图 (2)2.2.功能模块框图 (2)2.3.系统流程图 (3)2.4.界⾯设计 (4)3、详细设计 (5)3.1.模块描述 (5)3.2.系统头⽂件 (5)3.3.函数声明 (5)4、调试分析 (8)5、总结 (8)6、参考⽂献 (10)7、致谢 (11)1、概述1.1.简单计算器设计的意义本课题的内容是设计⼀个简单的计算器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
郑州师范学院信息科学与技术学院《简单计算器》课程设计报告设计题目:简单计算器班级:B15计科二班组长:组员:指导教师:完成日期:2016 年12 月23 日成绩:摘要本次选做的课程设计是实现简单计算器的问题。
计算器是一个常用的运算工具,本次课题要求用程序语言的方式解决问题。
此问题仅使用数据结构中的栈操作就可以解决此问题。
而在为了方便使用,添加了easyx图形库实现了UI设计。
为了接近平常使用的计算器,特地创建死循环而且添加了“CE”清空输入和“<-”删除键来控制输入错误或者循环使用的问题。
在UI方面主要是实现按键和点击响应等交互,方便输入和修改,在程序框上面有输入和显示结果的文本框。
在计算过程中,以栈出栈进站的特性把中缀形式的算数表达式转化为计算机方便计算的后缀表达式,最后计算出结果以文本方式显示在结果输出框内。
目录摘要 (I)目录 (II)1需求分析 (3)1.1功能简介及分析 (3)1.2设计平台 (3)2概要设计 (3)2.1 Trans函数 (3)2.2 Compvalue 函数 (4)2.3 GetKey函数 (4)3详细设计和实现 (4)3.1转化为逆波兰式 (4)3.2计算逆波兰式 (6)3.3实现流程图 (7)3.3部分具体程序 (8)4调试与操作说明 (13)4.1调试情况 (13)4.2操作说明 (14)5设计总结 (15)参考文献 (16)1需求分析1.1功能简介及分析本次选做的课程设计是实现简单的计算器并且添加UI的交互。
此计算器是以软件的形式实现的计算器,运行在windows系统。
计算器在功能上分为三类,分别是:常见计算器,专用计算器,综合功能计算器。
常见的计算器又分为四种:①简单型计算器:只实现基本的加减乘除和括号运算。
②科学型计算器:可以进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。
③程序员计算器:专门为程序员设计的计算器, 主要特点是支持And, Or, Not, Xor:最基本的与或非和异或操作, 移位操作Lsh, Rsh:全称是Left Shift和Right Shift,也就是左移和右移操作,你需要输入你要移动的位数(不能大于最大位数)RoL, RoR:全称是Rotate Left和Rotate Right,对于RoL来讲,就是向左移动一位,并将移出的那位补到最右边那位上,RoR类似。
④统计型计算器:为有统计要求的人员设计的设计的计算器。
本次课程设计只是实现了常见的简单计算器:在界面上:简单的计算器需要有简单的按键和按键响应,有输入和结果的显示。
在功能上:能进行加减乘除混合运算,可以使用括号,有“M”键可以存储结果,以便下次计算使用,可以对输入的文本删除和重置。
并且可以在重置后继续使用。
1.2设计平台Windows7操作系统;Visual Studio 20152概要设计2.1 Trans函数主要功能中缀算术表达式转化成后缀表达式,然后存到栈里,以便计算时使用,转化时包括对小括号的匹配。
2.2 Compvalue 函数主要功能是对栈中的后缀表达式进行计算,然后返回float类型的结果。
2.3 GetKey函数GetKey主要是在UI界面中获取按键然后保存成字符数组或者对字符数组的增减操作的函数。
此函数为内置死循环,可以重复使用。
3详细设计和实现实现软件形式的常用简单计算机,主要用到栈的特点,把平常使用的表达式,转化为能够让计算机计算的逆波兰表达式。
中缀表达式(或中缀记法)是一个通用的算术或逻辑公式表示方法,操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。
与前缀表达式(例:+ 3 4)或后缀表达式(例:3 4 +)相比,中缀表达式不容易被计算机解析,但仍被许多程序语言使用,因为它符合人们的普遍用法。
与前缀或后缀记法不同的是,中缀记法中括号是必需的。
计算过程中必须用括号将操作符和对应的操作数括起来,用于指示运算的次序。
例:(1)8+4-6*2用后缀表达式表示为:62*84+-(2)2*(3+5)-4+7/1用后缀表达式表示为:35+2*71/4-+3.1转化为逆波兰式首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入逆波兰式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。
可指定其他字符,不一定非#不可。
从中缀式的左端开始取字符,逐序进行如下步骤:(1)若取出的字符是操作数,则分析出完整的运算数,该操作数直接送入S2栈(2)若取出的字符是运算符,则将该运算符与S1栈栈顶元素比较,如果该运算符优先级大于S1栈栈顶运算符优先级,则将该运算符进S1栈,否则,将S1栈的栈顶运算符弹出,送入S2栈中,直至S1栈栈顶运算符低于(不包括等于)该运算符优先级,则将该运算符送入S1栈。
(3)若取出的字符是“(”,则直接送入S1栈底。
(4)若取出的字符是“)”,则将距离S1栈栈底最近的“(”之间的运算符,逐个出栈,依次送入S2栈,此时抛弃“(”。
(5)重复上面的1~4步,直至处理完所有的输入字符。
(6)若取出的字符是“#”,则将S1栈内所有运算符(不包括“#”),逐个出栈,依次送入S2栈。
完成以上步骤,S2栈便为逆波兰式输出结果。
不过S2应做一下逆序处理。
便可以按照逆波兰式的计算方法计算了!例如转换:2-(1+2)*3+4转换后的逆波兰表达式是:2 1 2 + 3 * - 4 +3.2计算逆波兰式逆波兰式的计算同样用到了栈的特点,首先需要建立一个空栈T,然后从头遍历逆波兰式,如果是数字则直接放到栈顶,如果遇到操作符则连续取出两个栈顶数据,分别赋值给n1,n2,再根据操作符计算n1和n2,把得到的结果放到T 栈栈顶,继续操作,直到遍历完毕。
以上面的例子计算过程如图:最后得出的结果是-3,即2-(1+2)*3+4=-3;所以计算的具体过程是先转化中缀表达式为逆波兰表达式,然后由逆波兰表达式计算出结果,在转化的过程和最后的计算过程都用到了栈的思想,利用栈的进栈和出栈的特点实现转换。
3.3部分具体程序//界面显示文字,”$”表示结束位置char KeyStr[][4] = { { "CE"} ,{ "<-"} ,{ "M" } ,{ "/" },{ "(" } ,{ ")" } ,{ "^" } ,{ "^" },{ "7" } ,{ "8" } ,{ "9" } ,{ "*" },{ "4" } ,{ "5" } ,{ "6" } ,{ "+" },{ "1" } ,{ "2" } ,{ "3" } ,{ "-" },{ "00"} ,{ "0" } ,{ "." } ,{ "=" },{ "$" } };void Trans(STR *InStr , char Lasts[]){/*将算术表达式转化为后缀表达式*/int i = 1;char Stack[MAX];/*作为栈使用*/char ChStr = InStr->Str[i]; //用于保存数组里的临时元素i++;int LastStrPos = 1, StackTop = 0; //StackTop用于表示栈顶while (ChStr != '#'){switch (ChStr){case'(': /*判定为左括号*/StackTop++;Stack[StackTop] = ChStr;break;case')': /*判定为右括号*/while (Stack[StackTop] != '('){Lasts[LastStrPos] = Stack[StackTop];StackTop--;LastStrPos++;}StackTop--; //扔掉(break;case'+': /*判定为加减号*/case'-':while (StackTop != 0 && Stack[StackTop] != '('){Lasts[LastStrPos] = Stack[StackTop];StackTop--;LastStrPos++;}StackTop++; //保留(Stack[StackTop] = ChStr;break;case'*': /*判定为乘除号*/case'/':while (Stack[StackTop] == '*' || Stack[StackTop] == '/'){ Lasts[LastStrPos] = Stack[StackTop]; //如果栈顶是*或者/弹出,放到后缀数组里StackTop--;LastStrPos++;}StackTop++;Stack[StackTop] = ChStr;break;case' ':break; //忽略空格default:while (ChStr >= '0' && ChStr <= '9' || ChStr == '.'){ /*判定为数字*/Lasts[LastStrPos] = ChStr;LastStrPos++;ChStr = InStr->Str[i];i++;}i--;Lasts[LastStrPos] = ' '; //输出的时候隔开元素LastStrPos++;}ChStr = InStr->Str[i]; i++;}while (StackTop != 0){Lasts[LastStrPos] = Stack[StackTop];LastStrPos++;StackTop--;}Lasts[LastStrPos] = ' ';LastStrPosT = LastStrPos;}float Compvalue(char LastStrTemp[]){ /*计算后缀表达式的值*/float Stack[MAX]; /*作为栈使用*/char ChStr; //临时栈元素int StackTop = 0; /*LastStrPos为Lasts下标,StackTop为Stack下标*/int LastStrPos = 1;ChStr = LastStrTemp[LastStrPos];LastStrPos++;while (ChStr != ' '){switch (ChStr){case'+':Stack[StackTop - 1] = Stack[StackTop - 1] + Stack[StackTop];StackTop--;break;case'-':Stack[StackTop - 1] = Stack[StackTop - 1] - Stack[StackTop];StackTop--;break;case'*':Stack[StackTop - 1] = Stack[StackTop - 1] * Stack[StackTop];StackTop--;break;case'/':if (Stack[StackTop] != 0)Stack[StackTop - 1] = Stack[StackTop - 1] /Stack[StackTop];else{exit(0);/*异常退出*/}StackTop--;break;default:float NumStr = 0; //把数字字符转化为数字bool FlNum = 0;while (ChStr >= '0' && ChStr <= '9' || ChStr == '.'){if (ChStr == '.') {FlNum = 1;}else if (!FlNum) {NumStr = 10 * NumStr + ChStr - '0';/*将数字字符转化为对应的数值*/}else if (FlNum) {NumStr += 0.1 * (ChStr - '0'); /*计算小数*/}ChStr = LastStrTemp[LastStrPos];LastStrPos++;}StackTop++;Stack[StackTop] = NumStr;}ChStr = LastStrTemp[LastStrPos];LastStrPos++;}return Stack[StackTop];}void GetKey() {/*FlushMouseMsgBuffer 清空鼠标消息缓冲区。