迷你计算器说明书.doc

迷你计算器说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年春季学期 算法与数据结构 课程设计 题 目: 迷你计算器设计 专业班级:计算机科学与技术(一) 姓 名: 黄立新 学 号: 指导教师: 张 永 成 绩: 目 录 摘 要 3 前 言 4 正 文 5 1. 采用类c语言定义相关的数据类型 5 2. 各模块的伪码算法 7 3. 函数的调用关系图 11 4. 调试分析 12 5. 测试结果 13 6. 源程序(带注释 17 总 结 25 参考文献 26 致 谢 27 附录(可视化代码): 28 摘 要 目前,计算器应用很广泛,本程序是关于这方面的,其主要功能是进行简单的四则运算 ,其特点之一是支持带括号的四则运算;二是用到栈的一些相关操作,不但对操作有提示,还对与异常输入信息报错。 通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。 关键字:迷你计算器,堆栈,初始化栈,入栈,出栈。 前 言 很多涉及计算器程序的的算法都是以栈的相关操作为基础,通过计算器的设计,有利于在学习中更好的理解栈及其相关的操作。 通过对计算器计算过程演示,看到了到它的一些性能及相关优势。 我们在时,发现有些很难找到,对于这样的问题,可以利用计算机,先,再根据题。在中, 正 文 1. 采用类c语言定义相关的数据类型 计算器的演示功能如下: 提示输入格式 提示输入 显示输入信息 对有异常的输入报错并重新输入 使用顺序栈实现数据的输入 (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; } } (5)/*出栈操作*/ double StPop(Stack *s) { double t; if(!StEmpty(s)) { t=s-data[s-top]; s-top=s-top-1; } else { printf(StPop:The stack is empty!); t=NULL; } return t; } 2. 各模块的伪码算法 (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; } } (5)/*出栈操作*/ double StPop(Stack *s) { double t; if(!StEmpty(s)) { t=s-data[s-top]; s-top=s-top-1; } else { printf(StPop:The stack is empty!); t=NULL; } return t; } (6)/*获取栈顶元素*/ double StGetTop(Stack *s) { double

文档评论(0)

1亿VIP精品文档

相关文档