课程设计名称:C语言课程设计

课程设计题目:

简单计算器程序

TOC \o "1-5" \h \z \o "Current Document" 第1章需求分析1

\o "Current Document" 1.1设计要求1

\o "Current Document" 1.2任务1

\o "Current Document" 第2章总体设计2

\o "Current Document" 2.1设计简介及设计方案论述2

\o "Current Document" 2.2功能模块层次图2

\o "Current Document" 第3章详细设计3

\o "Current Document" 3.3由(后缀)逆波兰表达式计算中缀表达式原理8

3.3.1算法描述8

\o "Current Document" 第4章调试分析10

\o "Current Document" 4.1程序设计中所遇到的错误及犯错的原因10

\o "Current Document" 4.2错误的解决方法10

\o "Current Document" 第5章用户手册11

总结15

\o "Current Document" 参考文献16

\o "Current Document" 附录(程序清单)17

第1章需求分析

1.1设计要求

(1)用C语言数据结构实现程序设计;

(2)利用结构体、栈、进行相关信息处理;

(2)系统的各个功能模块要求用函数的形式实现;

(4)界面简单,可操作性高。

1.2任务

(1)定义一个结构体类型数组,输入0?9及十、-、*等符号的信息,将其 信息存储起來;

(2)输入简单的加减乘除算术计算式,并在屏幕上显示逆波兰(后缀式)表 达式和计算结果;

(3)编写代码;

(4)程序分析与调试。

说明:

本课程设计将实现一个简单计算器。在功能上尽量模仿wmdows的 计算器。系统界面不做牵制要求。该程序能实现标准型中十、-、*、/、(、)、.、的 混 合运算表达式(一般意义上的中缀表达式),将其转换成逆序波兰表达式(后 缀表达式)并计算输出结果。在进行运算后可以选择继续运算或者结束当前运算。 即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间, 对人们的生活有一定的帮助。

第2章总体设计

2.1设计简介及设计方案论述

逆波兰表达式乂叫做后缀表达式。在通常的表达式中,二元运算符总是置于 与之相关的两个运算对象之间,所以,这种表示法也称为中缀表达式。波兰逻辑 学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法。按此方法,每 一运算符都置于其运算对象之后,故称为后缀表达式。

后缀表达式的优点是显而易见的,编译器在处理时候按照从左至右的顺序读 取逆波兰表达式,遇到运算对象直接压入堆栈,遇到运算符就从堆栈提取后进的 两个对象进行计算,这个过程正好符合了计算机计算的原理。后缀表达式比前缀 表达式更加易于转换,并且它的最左面一定为数字,这一点在实际编程的时候就 会体会到它的好处了。逆波兰表达式有一个更大的优点,就是拆括号,根据运算 符的级别将中缀表达式转换成逆波兰表达式后,运算顺序就己经替代了运算符的 级别,这样也避免了括号提高运算级别的特殊处理。

2.2功能模块层次图

简单计算器

表达式格式转换系统t

表达式格式转换系统t

求值计算系统

将算术表达式转化为逆波兰表达式计算逆波兰表达式的值

第3章详细设计

3.1栈的定义与使用

首先定义两个栈,一个字符型,一个双精度型,程序代码如下:

Stmct

char data[MaxSize];

//存放表达式的字符数组

mt top;

〃栈顶指针

}Svm;

/*符号*/〃作为存放运算表达式的栈

使用

stmct

double data[MaxSize];

〃存放运算结果的数组

mt top;

}Num;

//栈顶指针

严数*/存储逆波兰表达式(后缀式)计算器

的运算数〃作为存放运算结果的栈使用

void IiutStack()

{ Syin.top=Num.top=-1; }

〃栈的初始化

void SviiiPushO

〃压栈

if(Svm.top

{ Syin.data[-H-Sym.top]=calc[i++]; } else

{ piintf("Sym 栈满\n”); return; }

}

if(Svm.top>=0)

{ expi[-H-t]=Syin.data[Sym.top-];}

else

{ prmtf("Sym 栈空\nH); return; }

}

void NuniPu sli()〃压栈

{

If(Num. top

c语言课程设计计算器程序分析,c语言课程设计简单计算器程序..docx相关推荐

  1. c语言程序女设计教学效果分析,C语言程序设计的教学论文

    C语言程序设计的教学论文 1C语言程序设计教学方法研究 1.1理论教学 对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容.作为教材讲解C语言程序 ...

  2. 计算器android studio代码,Android studio实现简单计算器

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析 在Android studio中设计并实现一个简单的计算器,实现连续的加减乘除运算. 界面 ...

  3. python简单计算器综合实验报告_Python实现的简单计算器功能详解

    本文实例讲述了Python实现的简单计算器功能.分享给大家供大家参考,具体如下: 使用python编写一款简易的计算器 计算器效果图 首先搭建计算器的面板: 计算器面板结构 建造一个继承于wx.Fra ...

  4. C语言杨辉三角的程序分析,C语言:打印杨辉三角

    打印出以下的杨辉三角(要求打印出十行) 1 1  1 1  2  1 1  3  3  1 1  4  6  4  1 1  5  10  10  5  1 ...... 一.分析规律: 1.每一行的 ...

  5. 51单片机简易计算器C语言程序,用51单片机制作的简单计算器程序

    三.程序源代码 #include <reg51.h>#include <intrins.h> #include <ctype.h> #include <std ...

  6. c语言马踏棋盘编程分析,C语言马踏棋盘实现

    原标题:C语言马踏棋盘实现 问题描述 国际象棋的棋盘为8×8的方格棋盘.现将"马"放在任意指定的方格中,按照"马"走棋的规则将"马"进行移动 ...

  7. bim 二次开发c语言,BIM百科 | Revit二次开发入门--创建一个简单的程序①

    获取<每日一技,我的成长轨迹>汇总 · 请访问柏慕联创官方网站: www.lcbim.com · Revit插件制作实例步骤: 1.创建你的第一步骤插件 启动 Visual C# 速成版开 ...

  8. python的小程序分析_Python学习:JData入门小程序解析(续)

    接着上一篇文章: 第二个.py文件是explore_data.py 它实现的功能很简单,就是简单的处理NEW_USER_FILE,他的内容如下: user_id 用户ID 脱敏 age 年龄段 -1表 ...

  9. python编写一个简单计算器_如何用Tkinter写个简单计算器

    上机实践课程开始了,嗯,老师来了之后念了下PPT,然后说:开始做吧......... 然后就开始了Python的GUI之路,以前没接触过PYthon的可视化界面(虽然这样很不明智) 但是现在做起来感觉 ...

最新文章

  1. mysql userstat_mysql 中记录用户登录错误日志方法小结
  2. 一个python网上文档
  3. 第一次spring,第三天。
  4. AI基础:数据可视化简易入门(Matplotlib 和 Seaborn)
  5. 树莓派1 安装使用 ZeroTier
  6. 【ECharts系列|01入门】 从入门到天黑【入门级教程实战】
  7. DockerFile构建
  8. Python print和pprint两者的区别
  9. SpringCloud - 2. 服务注册 和 发现
  10. centos,apache运维经验
  11. Linux C++开发小结
  12. Gut Microbes:南医大刘星吟组-孤独症的基因变异与肠道微生物群、代谢物和细胞因子的改变有关...
  13. 下载 Flash Player 强制跳转至 flash.cn,无法下载国际版 Flash 解决方法
  14. 华山行-西安生活的小记录
  15. 搜索引擎的爬虫技术研究
  16. .net简单web开发
  17. 阿里云服务器入门教程 (图文教程)
  18. ftp服务器软件下载,几种流行的ftp服务器软件下载
  19. Android的焦点(Focus)问题 focusable
  20. SOA和微服务的各自特点是什么?

热门文章

  1. 软件工程—统一建模语言UML
  2. 优思学院|我应该选择六西格玛绿带还是黑带的认证课程?
  3. iOS开发-提交应用时,评级的翻译
  4. android 界面设计简书,APP界面主要设计规范
  5. Creator2D横版游戏(3)完结篇:敌人追着主角打的AI
  6. mini game游戏像素画绘画课-1
  7. 全球与中国电气用有机硅弹性体市场深度研究分析报告
  8. 跟着Nat Commun学作图 | 4.配对箱线图+差异分析
  9. python写迷你小游戏下载_狼人杀?用Python自己写个迷你版狼人杀游戏,自己的游戏自己做主...
  10. JavaScript中如何保留一位小数