c语言计算器小程序,C语言计算器小程序(源代码+实习报告).doc
. . . .
PAGE 5
.下载可编辑.
. . . .
.下载可编辑.
程序实习报告书
起止日期: 2014 年 6月 23 日 至 2014 年 7月 4日
学 号:
班 级:
姓 名:
指导教师:
通信与电子工程学院
2014年 7月 4日
.下载可编辑.
.下载可编辑.
目 录
1. 需求分析……………………………………………2
1.1 程序的功能…………………………………………2
1.2 输入输出的要求……………………………………2
1.3 测试数据……………………………………………2
2. 概要设计……………………………………………3
3. 详细设计……………………………………………4
3.1 模块功能说明………………………………………4
4. 调试分析……………………………………………6
5. 核心源程序清单和执行结果………………………6
1.需求分析
1.1 程序的功能
本程序是一个计算器小程序,利用算符优先关系,实现对算术四则混合运算表达式的求值并输出结果。
1.2 输入输出的要求
输入的形式:算术表达式,以井号“#”结束。例如2*(3+4)#;
包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';
输出的形式:运算结果,例如Answer is:14;
1.3 测试数据
第一组: 输入 3*(9-4)# 输出 Answer is:15
第二组: 输入140/(57+13)# 输出 Answer is:2
第三组: 输入 56*(12-10)# 输出 Answer is:112
概要设计
向SIGN中压入
向SIGN中压入“#”
用c=getchar()读字符
c!=’#’||SIGNgettop!=’#’
N
c是否为操作符
Y
N
将字符数转换成整形数
将c压入DATE
用c=getchar()读字符c
Y
结束运算
比较SIGNgettop和c的优先级
‘
‘=’
‘>’
将c压入到SIGN栈
用c=getchar()读字符
弹出SIGNgettop和c
用c=getchar()读字符c
弹出DATE栈顶元素a
弹出栈顶元素吧b
弹出SIGN栈顶元素d
运算a d b
将a d b压入DATE栈
初始化DATE、SIGN栈
3.详细设计
主要部分详细流程:
(1)设置两个工作栈,分别存放操作数和运算结果
(2)判断字符的优先级
调试分析
错误提示1:
错误原因 :在中文输入法下输入的“;”,导致程序不能识别。
调试方法 :调到英文输入法下输入即可。
错误提示2:
错误原因: 在Init_OPND,Init_OPTR后边都忘加了“&”符号, 导致程序不识别。
调试方法:在 Init_OPND,Init_OPTR后边加上“&”即可。
核心源程序清单和执行结果
全部源代码如下:
#include
#include
#define MAX 100
typedef struct /*定义一个栈存放运算数*/
{
int a[MAX];
int top;
}OPND;
typedef struct /*定义一个栈存放运算符*/
{
char a[MAX];
int top;
}OPTR;
void Init_OPND(OPND *s) /*初始化运算数栈*/
{
s->top =0;
}
void Init_OPTR(OPTR *s) /*初始化运算符栈*/
{
s->top =0;
}
void Push_OPND(OPND *s,int x) /*压入一个运算数*/
{
s->top ++;
s->a [s->top ]=x;
}
void Push_OPTR(OPTR *s,char x) /*压入一个运算符*/
c语言计算器小程序,C语言计算器小程序(源代码+实习报告).doc相关推荐
- 大学生c语言程序设计具体干什么,大学生c语言程序设计实习报告.doc
大学生c语言程序设计实习报告 实习是我们的必经之路,很多时候我们都不知道自己为什么要去实习,但就是遵从我们心里的想法-去实习.实习给予我们的不仅仅是专业上的技巧,还有社会的经验,也许这个对我们才是最重 ...
- c语言程序设计添加修改删除,C语言程序设计实习报告,DOC
<C语言程序设计实习报告,DOC>由会员分享,可在线阅读,更多相关<C语言程序设计实习报告,DOC(15页珍藏版)>请在人人文库网上搜索. 1.手机通讯录管理系统一.设计题目的 ...
- c语言在测绘工程中的作用,测绘C程序设计实习报告
<测绘C程序设计实习报告>由会员分享,可在线阅读,更多相关<测绘C程序设计实习报告(28页珍藏版)>请在人人文库网上搜索. 1.测绘工程(c版)实习报告学位:名字:班级:专业: ...
- c语言词法分析器实验原理,词法分析器的设计与实现 编译原理实验报告.doc
词法分析器的设计与实现 编译原理实验报告 中北大学软件学院 实 验 报 告 专 业 软件工程 课程名称 编译原理 学 号 姓 名 辅导教师 张静 成绩 实验日期2015.5.19实验时间14:00~1 ...
- c语言认知报告,C语言认识实习报告.doc
PAGE 中南大学 认识实习报告 题 目: 小型学生信息管理系统 学生姓名: 指导教师: 学 院: 信息科学与工程学院 专业班级: 完成时间: 2008年7月17日 目 录 1.系统功能介绍 3 2. ...
- 对c语言的认知报告怎么写,对C语言指针的认识的认知实习报告.doc
对C语言指针的认识的认知实习报告 认知实习报告 题目:对C语言指针的认识 学生姓名: 学号: 班级: 所属学院: 指导教师: 2013年7月 对C语言指针的认识 学生姓名: 学号: 班级: 指导教师: ...
- java坦克大战 实训报告_坦克大战系统《Java程序开发实训》综合实训报告.doc
坦克大战系统<Java程序开发实训>综合实训报告 <Java程序开发实训>综合实训报告 题目: 坦克大战系统 姓名: 方庆 学号: 2010203206 班级: 10软件(2) ...
- p1口输入输出实验c语言程序,51单片机P1口输入输出实验实验报告.doc
51单片机P1口输入输出实验实验报告 实验一 P1口输入输出实验一 实验目的 1 掌握P1口作为I/O口时的使用方法. 2 理解读引脚和读锁存器的区别. 实验原理 由 AT89C51 组成的单片机系统 ...
- c语言五子棋设计报告及源代码,c语言五子棋源代码设计报告.doc
C语言程序设计综合实验 设计报告 题目: 五子棋 班级; 07电气(1)班 人数: 4人 小组成员: 时间: 08.9.19 目录 1 课程设计报告 1.1课题描述 1.2需求分析 1.3概要设计 2 ...
- 上海工程技术大学c语言,上海工程技术大学 C语言实习报告.doc
实 习 报 告 <高级语言程序设计> 2012-2013学年第 一 学期 学院(部) 管理学院指导教师 李旭芳班级代号 0315121姓名/学号 张何兵/031512130同组人 无 实验 ...
最新文章
- 公众号滑动图代码_脱离模板!教你自己动手制作公众号封面图
- PHP几个防SQL注入攻击自带函数区别
- .NET Core 中如何在运行中加载 Controller ?
- 参数NLS_LENGTH_SEMANTICS的设置问题
- 使用Scrapy框架发送POST请求
- 小小算法题(CCF)
- 超详细前端开发案例:品优购商场项目(二)
- C语言编译器不检查数组下标越界
- scala java 区别_Scala(和Java)中的类和类型之间有什么区别?
- mysql keepalive_mysql主从之keepalive+MySQL高可用
- krpano漫游加方向性3D声音(这篇文章已被移到krpano中国网站 krpano360.com)
- 关于面试总结6-SQL经典面试题
- 表达式类型错误oracle,这个语句报pls_00382 表达式类型错误 求问为什么。
- 配流07—基于BPR函数的Frank Wolfe算法
- open-能连接,但无法访问内网的问题
- 如何活跃社群,提高转化
- Matlab中的persistent变量
- 篮球图片html页面代码,教你用PS制作一个非常逼真的篮球图片
- 用什么办法可以解决失眠?
- 我的专业计算机作文说明文,我的电脑作文说明文
热门文章
- PPTP拨号后无法打开网页处理
- 请不要再说NIO和多路复用IO是同一个东西了(内含BIO、NIO、多路复用、Netty、AIO案例测试代码)
- 拉格朗日插值法_Lagrange、Newton、分段插值法及Python实现
- python实现自动登录网页用户名密码_Python使用selenium实现网页用户名 密码 验证码自动登录功能...
- C/C++操作注册表键值添加/查询/删除详解
- 友元(友元函数、友元类和友元成员函数) C++
- 修改SAP下载文件路径
- 如何获取华为网络安全考试题库?
- zsh fg: no job control in this shell.
- delphi xe5 android,android – 发送电子邮件Delphi XE5