- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(C语言)科学计算器设计指导书
科学计算器设计(C语言版)
学校:
学院:计算机信息工程学院
语言
平台:
作者:
日期:
背景和目的
计算器是现代日常生活中使用较为频繁的工具之一,常用的计算器有简易版和科学计算器两种模式。简易版的计算器不支持表达式运算,每次只能输入一个数据或者运算符来计算,而科学计算器除了容纳简易版计算器的功能外,还支持表达式运算,用户可以输入一个合法的算术表达式来得到所需的结果。
常用的算术表达式有三种,前缀表达式,中缀表达式和后缀表达式。
中缀表达式:我们平时书写的表达式就是中缀表达式,形如(a+b)*(c+d),事实上是运算表达式形成的树的中序遍历,特点是用括号来描述优先级。
后缀表达式:也叫逆波兰表达式,事实上是算数表达式形成的树的后序遍历。中缀表达式(a+b)*(c+d)的后缀表达式是ab+cd+*,它的特点就是遇到运算符就立刻进行运算。
前缀表达式:算数表达式形成的树的前序遍历。
日常所书写的是中缀表达式,但是计算机内部是用后缀表达式计算,所以此程序的用户使用中缀表达式作为输入,程序将中缀表达式转化为后缀表达式后再进行运算并输出结果。
由于今后工作将使用C语言进行开发,而C语言是一个功能强大并且很灵活的语言,为复习和巩固C编程,故决定用C语言编写一个科学计算器。
本次开发采用C语言,以面对过程思想进行开发,使用的数据结构有队列和栈。
模块设计
本次开发,使用的控制台输入,并直接在控制台输出。
科学计算器的功能组件如下:
详细设计
宏:
#define TEST //表示测试阶段
#define MAX_SIZE 100 //表达式长度
#define LBRACKET 0 //左括号
#define RBRACKET 1 //右括号
#define ADD 2 //加
#define SUB 3 //减
#define MUL 4 //乘
#define DIV 5 //乘
#define INT 6 //整数
#define DOUBLE 7 //浮点数
数据结构:
表达式节点
struct ExprNode{
int n; //表达式节点类型
double p; //表达式节点数据
};
中缀表达式:
struct ExprNode infixExpr[MAX_SIZE];
int infixLen;
后缀表达式:
struct ExprNode suffixExpr[MAX_SIZE];
int suffixLen;
后缀转换栈:
int transStack[MAX_SIZE];
int transTop;
后缀表达式运算栈:
struct ExprNode calcuStack[MAX_SIZE];
int calcuTop;
函数过程:
__inline int get_char( char *c )
缓冲变量无字符则读入字符
读入成功返回0,否者返回-1
int input_expr( void )
读入表达式
若输入非法字符则返回-1,否则返回0
int pri( int a, int b )
优先级计算
若a优先于b则返回-1,否则返回0
int trans_expr( void )
中缀表达式转换为后缀表达式
括号不匹配返回-1,否则返回0
__inline int maxn( int a, int b )
求最大值
struct ExprNode calcu( struct ExprNode *a, struct ExprNode *b, int c )
计算a和b做c运算的结果
int calcu_expr( void )
计算后缀表达式
表达式计算失败返回-1,否则为0
void show( void )
输出运算结果
代码:
#includestdio.h
//#define TEST //表示测试阶段
#define MAX_SIZE 100 //表达式长度
#define LBRACKET 0 //左括号
#define RBRACKET 1 //右括号
#define ADD 2 //加
#define SUB 3 //减
#define MUL 4 //乘
#define DIV 5 //乘
#define INT 6 //整数
#define DOUBLE 7 //浮点数
struct ExprNode{
int n; //表达式节点类型
double p; //表达式节点数据
};
struct ExprNode infixExpr[MAX_SIZE]; //中缀表达式
int infixLen;
struct ExprNode suffixExpr
您可能关注的文档
- 概率论与数理统计学经典.ppt
- 概率论与数理统计维离散随机变量及其分布.ppt
- 概率论六参数估计.ppt
- 概率论周次.ppt
- 概率论和数理统计随机变量及其分布.ppt
- 概率论六数理统计的.ppt
- 概率论数理统计习题课.ppt
- 概率论数理统计假设检验讲.ppt
- 概率论学习资料学习.ppt
- 概率论数理统计讲(房).ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
最近下载
- 闽教版4年级上册英语全册教学课件.pptx
- 浅谈当前我国建筑企业人力资源管理论文.docx VIP
- 浅谈建筑企业人力资源管理论文.docx VIP
- 广东省惠州市高2024届高三上学期第三次调研考试数学试题.pdf
- 病毒性肺炎影像.pptx VIP
- 新教材牛津译林版选择性必修第二册Unit1 The mass media 教学设计.pdf VIP
- (完整版)职业卫生培训试题含答案.pdf
- 初一第一学期第一次家长会课件.ppt VIP
- 惠州市2024届高三第三次调研考试(三调)思想政治试卷(含答案).pdf
- 2024-2025学年上海交通大学附属中高三上学期阶段测试3英语试卷含详解.pdf VIP
文档评论(0)