1、目 录 前言 1 正文 1 2.1 课程设计的教学目的和任务 1 2.2 课程设计的主要内容 2 2.3 课程设计报告的要求 2 2.4 算法设计基本要求 3 2.4.1 算法设计主要内容. 3 2.4.2 算法设计的思想. 3 2.5 算法描述. 3 2.6 设计方案. 3 2.7 设计内容. 4 2.7.1 需求分析. 4 2.7.2 概要设计. 4 2.7.3 详细设计 5 2.7.4 调试分析与结果 8 2.7.5 算法分析 . 10 课程总结. 11 参考文献. 12 附录. 13 第 1 页 共 20 页 前前 言言 简单的四则运算对我们来说很简单, 但是当你一直都在重复这个简单的
2、脑力操作时, 也 许你会疏忽,会不小心搞错,从而影响工作,比如说会计等职业,所以我们就在考虑,当今 社会是信息时代, 能否用计算机代替人类做这份工作呢?在数据结构中, 则能用栈实现简单 四则运算,为我们进行计算,避免不必要的错误。 栈(stack,又称为堆栈)是一种特殊的线性表。栈(stack)是限定仅在表尾进行插入 或删除操作的线性表,允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底 (bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。栈中的元素的进出是按 照“后进先出”的原则进行,根据栈的这种特征,因此栈又称为后进先出表(LIFO 表Last In First
3、Out) 。 由于栈的结构具有后进先出的固有特性, 致使栈成为程序设计中的有用工具。 运用栈来 实现表达式求值问题也是程序设计语言编译中的一个最基本的问题。 正正 文文 2.1 课程设计的教学目的和任务 本学期我们对 数据结构 这门课程进行了学习。 这门课程是一门实践性非常强的课程, 为了让大家更好地理解与运用所学知识, 提高动手能力, 我们进行了此次课程设计实习。数 据结构课程设计是计算机专业集中实践性环节之一,是学习完数据结构课程后进行的 一次全面的综合练习。这次课程设计不但要求学生掌握数据结构中的各方面知识,还要 求学生具备一定的 C 语言基础和编程能力。 其目的是: (1) 使学生进一
4、步理解和掌握所学的各种数据类型的结构和操作实现算法, 以及它们在 程序中的使用方法。 (2) 使学生初步掌握软件开发过程的问题分析、设计、编码、测试等基本方法和基本技 能。 (3) 使学生掌握使用各种计算机资料和有关参考资料, 提高学生进行程序设计的基本能 力。 (4) 使学生能用系统的观点和软件开发一般规范进行软件开发, 培养软件工作者所应具 备的科学的工作方法和作风。 (5)要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方 法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。 第 2 页 共 20 页 (6)在实践中认识为什么要学习数据结构
5、,掌握数据结构、程序设计语言、程序设计 技术之间的关系,是前面所学知识的综合和回顾。 2.2 课程设计的主要内容 (1) 问题分析和任务定义。 根据题目的要求,充分地分析问题,明确要求。 (2)在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试, 基本操作的规格说明尽可能明确具体。 (3)程序编码。 把详细设计的结果进一步求精为程序设计语言程序。 同时加入一些注解和断言, 使程序 中逻辑概念清楚。 (4) 程序调试与测试。 能够熟练掌握调试工具的各种功能, 设计测试数据确定疑点, 通过修改程序来证实它或 绕过它。 调试正确后, 认真整理源程序及其注释, 形成格式和风格良好
6、的源程序清单和结果。 (5) 结果分析。 程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。 (6) 撰写课程设计报告。 2.3 课程设计报告的要求 课程设计报告要求规范书写。应当包括如下内容: (1)问题描述:描述要求编程解决的问题。 (2)基本要求:给出程序要达到的具体的要求。 (5) 算法思想:描述解决相应问题算法的设计思想。 (4)源程序:给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数 参数的含义和函数返回值的含义。 (5)测试情况:给出程序的测试情况,并分析运行结果。 (6)参考文献:列出参考的相关资料和书籍。 本课程设计以字符序列的形式从键盘输入语法正确的、不含变量的整数(或实数)表 达式,实现对算术四则混合运算表达式的求值。当用户输入一个合法的算术表达式后,能够 返回正确的结果。能够计算的运算符包括:加、减、乘、除、括号,对于异常表达式能给出 错误提示。 第 3 页 共 20 页 2.4 算法设计基本要求 (1) 掌握栈和队列的定义、特性; (2) 熟练掌握栈的顺序表示、链表表示以及相应操作的实现; (3) 掌握栈