1 / 10
文档名称:

计算器c语言课程设计.doc

格式:doc   大小:2,154KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算器c语言课程设计.doc

上传人:大鹏展翅 2022/8/1 文件大小:2.10 MB

下载得到文件列表

计算器c语言课程设计.doc

相关文档

文档介绍

文档介绍:The Standardization Office was revised on the afternoon of December 13, 2020
计算器c语言课程设计
设计分析:
我做的是一个计 }
首先要把程序改为可对实数进行操作,由于原程序中的操作数类型都是整形,因此我所采用的办法就是把“int”依次改成“float”。这是最简单的修改办法,也是最有效的修改办法。
在menu()函数中使用了 switch()语句来对功能进行选择,以便于操作。不同的数字则对应不同的功能。
下面所要进行的修改就是添加四则运算功能。
首先在switch()语句中添加一个新的选项,以用于作为进行四则运算的入口。然后设计一个简单的计算器类,增加四则运算功能。
简单的运算只要求有两个操作数,如原程序中的加、减、乘除。而所增加的四则运算则要求输入多个操作数,有计算机自己通过程序来解决多个数字的运算。这就要求设计的程序能够自动辨别“+”,“-”,“*”,“/”的优先级和结合性。在这里,我运用了栈的功能进行对程序的修改。
设有表达式:
a+b*c-d/e=
为实现运算符的优先级,采用两个栈:一个数栈,一个运算符栈。数栈暂时存放操作数,运算符栈暂时存放运算符。从左向右扫描算术表达式,遇到操作数,压入数栈;遇到运算符,则与运算符栈栈顶的运算符比较优先级。若新的运算符优先级高或运算符栈空,则压栈;否则,将栈顶运算符出栈,与数字栈出栈的两个数据进行运算,结果压入数栈,再将新运算符压栈。继续扫描,直到遇到=号,扫描结束。栈中数据继续按前面规则出栈。上面所列表达式运算过程如下图所示:
(A) (B) (C) (D) (E)
N O N O N O N O N O
- - - - - - - - - -
- - - - - - - - - -
- - —> e - --> - - --> - - --> - -
c - b*c->t1 d / d/e->t2 t2 - t1-t2->t3 - - a+t3->t4 - -
b * t1 _ t1 _ t3 - - -
a + a + a + a + - -
首先a入数栈,“+”入运算符栈,b入数栈,“*”入运算符栈,c入数栈,见图(A);再扫描到“-”号,则“*”和c、b出栈,b*c得t1压入数栈,“-”号压入运算符栈,“/’号压入运算符栈