C语言_算数表达式求值_课程设计的报告报告

C语言_算数表达式求值_课程设计的报告报告

ID:45741678

大小:114.50 KB

页数:17页

时间:2019-11-17

C语言_算数表达式求值_课程设计的报告报告_第1页
C语言_算数表达式求值_课程设计的报告报告_第2页
C语言_算数表达式求值_课程设计的报告报告_第3页
C语言_算数表达式求值_课程设计的报告报告_第4页
C语言_算数表达式求值_课程设计的报告报告_第5页
资源描述:

《C语言_算数表达式求值_课程设计的报告报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、......word......专业资料、精品文档目录一.概述2二.总体方案设计3三.详细设计4四.程序的调试与运行结果说明5五.课程设计总结6参考文献7附录.................................................................................................................................................8......供学习、参考、下载、分享......word......专业资料、精品文档一概述一、课程

2、设计的目的与要求本课程设计是为了配合《数据结构》课程的开设,通过设计一个完整的程序,使学生掌握数据结构的应用,算法的编写,类C语言的算法转换成C程序并用TurboC2.0或VisualC++6.0上机调试的基本方法。要求如下:1.要充分认识课程设计对自己的重要性,认真做好课程设计前的各项准备工作。2.既要虚心接受老师的指导,又要充分发挥主观能动性.结合课题,独立思考,努力钻研,勤于实践,勇于创新。3.独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。4.课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其

3、成绩按不及格处理。5.在设计过程中,要严格要求自己,树立严肃,严密,严谨的科学态度,必须按时,按质,按量完成课程设计。6.小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。二、需求分析本课程设计的课题为表达式求值,要求:1.用户将表达式原样输入(在表达式结尾加上#),能得出结果(为减小难度,运算结果的10进制形式的值,不超过longdouble的存储范围);2.输入的数可以为小数(为减小难度,小数的整数与小数部分均不超过10位),负数(如果负数前有运算符,则应将负数括起来),以及2进制,8进制,10进制,16

4、进制的数(为减小难度,数出的结果都以10进制形式表示);3.运算符号包括()、+、—、*、/;括号可以多重;......供学习、参考、下载、分享......word......专业资料、精品文档二总体方案设计1.使用双链表的数据结构表示数据的存储,将用户输入的表达式以字符形式存入双链表中。2.对以负数开头、以括号开头、左括号后紧跟负数的特殊情况作处理。3.将数与运算符分开;4.依次找到表达式最内层括号,次内层括号..................每次找到括号内的表达式,便将其进行只有加减乘除运算的计算。结构体类型://用来存储字符的结点类型t

5、ypedefstructCharNode{charc;structCharNode*next;}CharNode;//用来存储数的结点类型typedefstructIntNode{longdoublei;structIntNode*next;}IntNode;//用来存储数的结点类型typedefstructNode{longdoublen;structNode_ys_char*next;}Node;//用来存储运算符的结点类型typedefstructNode_ys_char{charc;structNode_ys_char*next_c;s

6、tructNode*next;}Node_ys_char;......供学习、参考、下载、分享......word......专业资料、精品文档三详细设计我任务是整个程序的算法设计,以及部分子函数的编写,经过其他组员编写的子函数的处理,将表达式变为一个普通的表达式,其中数与运算符已经分开,将这个表达式的头指针传递到我所编写函数中,运算思想为:找到最内层的一对括号,计算括号间的表达式的值,得到值之后,用这个值替换掉原始位置上的一对括号,以及其中的表达式。例如(((6.5-2*2.25)*2-6)/2+1.5)+3#,第一次替换后为((2*2-6)

7、/2+1.5)+3#,第二次替换后为(-2/2+1.5)+3#,第三次替换后为0.5+3#,当没有括号时调用四则运算函数直接计算。如果一开始输入的表达式中没有括号,则直接调用四则运算函数进行计算。整个程序的算法思想见流程图。函数的功能如下:charPrecede(charx,chary)运算符优先级判断CharNode*CreatRegister()输入表达式,并对特殊情况做处理Node*StackChange(CharNode*top,intm)将数与运算符分开,并将其他进制转化为10进制Node*Compute(Node*p)作只有加减乘除

8、运算的表达式求值Node*GetOutcome(Node*head)求用户输入表达式的值main()主函数......供学习、参考、下载、分享....

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。