算式计算的C语言程序,算式计算器C语言版.doc

算式计算器C语言版

课 程 设 计 说 明 书

课程名称: 数据结构

设计题目: 表达式计算程序设计

学 院: 计算机科学与信息工程学院

学生姓名:

学生学号:

专业班级:计算机科学与技术嵌入式(12-1)

指导教师: 冯 贺

2014年 6月 16 日课 程 设 计 任 务 书

设计题目

表达式算式程序设计

学生姓名

班级

计算机科学与技术嵌入式(12-1)

设计要求:

1.计算表达式手工录入,计算结果必须正确

2.支持两位以上的整数和浮点数的运算

3.运算符优先级表可在程序中直接通过代码初始化

4.能够检查表达式是否合法,对于错误的表达式要能够给出错误原因。

学生应完成的工作:

构建栈和运算符优先级表,程序能够计算加,减,乘,除和逻辑运算,并且能够运行成功。

参考文献阅读:

[1] 严蔚敏,吴伟民 编著.数据结构(c语言版).北京,清华大学出版社,2012

[2] 严蔚敏,吴伟民 编著 Data Structures,Algorithms,and Applications in C++.McGraw-Hill

工作计划:

1、第一周的第一天:小组布置设计题目;说明进度安排。

2、第一周的第二天:小组审题,查阅资料,进行设计前的必要资料准备。

3、第一周的第三天、第四天、第五天:程序编写、上机调试

4、第二周的第一天至第三天: 上机调试程序、结果分析。

5、第二周的第四天: 撰写设计报告。

6、第二周的第五天: 设计答辩及成绩评定。

任务下达日期: 2014 年 6 月 8 日

任务完成日期: 2014 年 6 月 17 日

学生(签名):

表达式计算程序设计

摘 要:

按照要求构造运算符优先级表,编写优先级比较算法。利用栈结构和优先级编写表达式计算方法。首先构建了一个数据栈,此栈用来储存浮点型数字;一个符号栈用来存储运算符号。然后借助于两个栈和一个结构体运算。

关键词:

优先级表 优先级比较算法 栈

目 录

1. 设计背景 ………………………………………………………………1

1.1数据结构算法设计…………………………………………………1

1.2知识运用 …………………………………………………………1

2. 设计方案 ………………………………………………………………1

2.2程序设计方案………………………………………………………1

2.2模块设计方案………………………………………………………1

3.方案实施 ………………………………………………………………2

3.1模块代码……………………………………………………………2

3.1流程图………………………………………………………………6

4.测试 ……………………………………………………………………8

5.总结……………………………………………………………………10

3.1总结………………………………………………………………10

3.1谢词………………………………………………………………10

6.参考文献………………………………………………………………10

7.附件……………………………………………………………………11

1. 设计背景

1.1数据结构算法设计

1、王亚洲完成了对符号栈的编写

2、王秀文完成了对数字栈的编写

3、李渊完成了对符号结构题的编写和对符号结构体数组的初始化

4、童世超完成了对字符数字转化为浮点型数字

5、曾冰寒完成对主函数的编写

1.2知识运用

学完数据结构,充分利用所学栈的知识,完成表达式程序设计

2.设计方案

2.1程序设计方案

先定义一个结构体,用来存放符号和优先级和定义两个栈,一个数字栈、一个符号栈。然后借助于符号结构体和两个栈通过逻辑算法设计一个表达式计算程序

2.2模块设计方案

该模块是表达式计算的核心模块即计算模块。先判断接收的是不是左括号,左括号的优先级最低,如果是左括号无条件入栈;如果不是左括号则判断是不是右括号,右括号的优先级最高,遇到右括号无条件出栈运算,然后循环知道遇见左括号把括号的全部运算完毕然后继续接收字符;如果既不是左括号也不是右括号则判断是不是运算符,如果是运算符则判断和运算符栈的栈顶元素的优先级,如果栈顶元素的优先级等于或高于接收元素则出栈运算否则入栈;最后判断是不是等号,如果是等好则出栈运算,一直到数字栈中就剩下最后一个元素结果这输出结果,运算结束。

3. 方案实施

3.1模块代码

if('('==c)/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值