目 录
摘 要 1
前 言 2
正 文 3
1. 采用类C语言定义相关的数据类型 3
2. 各模块的伪码算法 5
3. 函数的调用关系图 9
4. 调试分析 10
5. 测试结果 11
6. 源程序(带注释) 14
总 结 22
参考文献 23
致 谢 24
摘 要
目前,计算器应用很广泛,本程序是关于这方面的,其主要功能是进行简单的四则运算 ,其特点之一是支持带括号的四则运算;二是用到栈的一些相关操作,不但对操作有提示,还对与异常输入信息报错。
通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
关键字:堆栈,初始化栈,入栈,出栈。
前 言
很多涉及计算器程序的的算法都是以栈的相关操作为基础,通过计算器的设计,有利于在学习中更好的理解栈及其相关的操作。
通过对计算器计算过程演示,看到了到它的一些性能及相关优势。
我们在写程序时,大框架已成的情况下,仍然发现有些错误很难找到,对于这样的问题,可以利用计算机纠错功能,先运行,再根据题提示修改和完善程序。
在计算器用到的算法中,c语言算法可读性很强,一方面,是因为c语言是高级语言,是面向程序员的语言,二是c语言的功能是很完备的,可以达到事半功倍的效果,和其他语言相比量是比较少。栈的应用使该程序更出色。
正 文
1. 采用类c语言定义相关的数据类型
计算器的演示功能如下:
A. 提示输入格式
B. 提示输入
C. 显示输入信息
D. 对有异常的输入报错并重新输入
E. 使用顺序栈实现数据的输入
(1)/*定义堆栈*/
typedef struct{
double data[M];
int top;
}Stack;
(2)/*初始化堆栈*/
InitStack(Stack *s)
{
s->top=0;
}
(3)/*判断栈是否为空*/
int StEmpty(Stack *s)
{
if(s->top==0)
{
return 1;
}
else
{
return 0;
}
}
(4)/*入栈操作*/
StPush(Stack *s,double x)
{
if(s->top==M)
{
printf("The stack is overflow!");
}
else
{
s->top=s->top+1;
s->data[s->top]=x;
}
}
1