欢迎来到天天文库
浏览记录
ID:1754476
大小:370.13 KB
页数:17页
时间:2017-11-13
《c语言课程设计.简易计算器.报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言课程设计-简易计算器xxxx大学信息科学与工程学院课程设计报告班级:通信工程一班姓名(学号):xxx实验项目名称:简易计算器实验室(中心):信息科学与工程学院信息技术实验室指导教师:xxx实验完成时间:2012年6月19日通信工程11级一班16/17刘秀C语言课程设计-简易计算器目录一:课程设计题目3二:功能描述3三:概要设计4四:详细设计5五:测试结果及存在的问题9六:课程设计心得体会12七:附录12通信工程11级一班16/17刘秀C语言课程设计-简易计算器序号项目标准评分1系统演示(功能)(50%)按要求完成系统功能且界面友好容错能力强(45-50)按要求完成系统功
2、能界面一般有较好的容错能力(40-44)基本完成系统功能有一定的容错能力(35-39)基本完成系统功能(30-34分)未完成系统功能或他人代做或抄袭(15)2课程设计说明书(50%)课程设计书各项目认真填写,具有清晰的设计思路及软件测试结果分析(45-50)课程设计书各项目认真填写,具有较为清晰的设计思路并对软件测试结果进行了较为清晰的分析(40-44)课程设计书各项目认真填写,设计思路正确(35-39)课程设计书进行为较为认真的填写(30-34)课程设计书有未完成项或各项填写不属实或他人代做或抄袭(15)教师签字总分一、题目:简易计算器设计二、功能描述:此简易计算器根据算符
3、优先算法原则可以计算由“+,-,*,/,(,)”组成的任意算术表达式的值。其中此程序中包含对负数和字符数据转换功能。如:-9+((2+3)*9/8-5)/(-3);通信工程11级一班16/17刘秀C语言课程设计-简易计算器三、概要设计:根据算符优先算法设计将函数功能模块分布如下:利用结构体数组中脚码的变换达到符号和数据进栈和出栈的目的。算符优先算法计算表达式的值定义运算符栈和数据栈及各个函数的类型和数据的类型(自定义完成)功能:完成栈的定义和初始化及函数的类型定义及运算符集合定义.字符型数据表达式的输入并对负数处理以符合算法规则(Translate函数完成)功能:完成负数转换
4、成(0-负数)形N式以便数据读入(Translate).判断表达式是否正确(Can函数完成)功能:完成判断表达式是否符合一般计算表达式规则(Can).Y运算符和数据的进栈和出栈(自定义函数完成)功能:完成运算符和数据的进栈和出栈.功能:完成数据算符优先级比较(Precede函数完成)字符型数据转换成浮点型数据(Getdouble函数完成)转换和运算符比较.数据运算的过程及输出(Operate和EvaluateExpression函数完成)功能:完成函数调用以完成数值计算.通信工程11级一班16/17刘秀C语言课程设计-简易计算器四、详细设计:各功能模块的实现过程如下:1:栈的
5、应用:通过运用结构体数组中top值的改变来达到数据进栈和出栈的目的,而栈的初始化只需将top的初始值赋为-1即可;2:表达式负数的处理(由Translate函数完成):YNYNNY结束返回新的数组si>t?(t为数组长度)i+1之后元素向后移一位,s[i+1]=0s[i]=’(’且s[i+1]=’-’S数组首位加0S[0]=’-’?读入字符串数组(s)开始算法说明:函数中,先扫描数组,若s[0]=‘-’,则将数组的所有元素向后移一位且首位赋值为‘0’,若数组首位之后含有形如(-5)则将负号及其以后的元素全向后移一位且负号位置赋值为‘0’,然后返回新的数组;i=i+1,t=t+
6、1通信工程11级一班16/17刘秀C语言课程设计-简易计算器3:表达式正误的判断(由Can函数完成):函数说明:函数中将错误归为几类:括号的完整性、运算符后的数据类型、除号后的数据不能为0、小数点及运算符不能多个在一起、右括号后的数据必须为运算符或结束标志;函数通过p和s记录对这些错误的判断,并返回结果;4:进栈和出栈:说明:运算符和数据的进栈是通过给结构体数组赋值并增加top的值来记录栈的栈顶元素的位置以便取用;出栈是使top的减1后的那个数组中的数据作为新栈的栈顶元素,并返回栈顶元素.即实质上是通过改变数组的位置来达到进栈出栈;通信工程11级一班16/17刘秀C语言课程设
7、计-简易计算器5:字符串数据转换成浮点型数据(由Getdouble函数完成):函数说明:从字符数组的运算符开始扫描,直到遇到下一个运算符结束,然后将这两个运算符间的字符记录在数组S中,再用库函数atof将字符数据转换成浮点型数据并返回数据和数组a中新的元素的起点(即扫描到的第二个运算符);6:算符优先级的比较:函数说明:此函数是记录运算符栈的栈顶元素在运算符集合中的位置与读入运算符在运算符集合中的位置,将这两个值作为运算符优先级表数组的脚码,然后返回这个元素所代表的字符;7:算符优先算法求表达式的值的核
此文档下载收益归作者所有