1、 1 报告编号: 综合课程设计报告综合课程设计报告 栈类的设计与使用 2 目目 录录 摘摘 要要 . 1 第一章第一章 前言前言 . 2 第二章第二章 需求分析需求分析 . 3 第三章第三章 设计研究的主要工作设计研究的主要工作 4 3.1 总体设计总体设计 4 3.2 详细设计详细设计 6 3.2.1 用顺序链表实现用顺序链表实现 6 3.2.2 用单链表实现用单链表实现 7 3.2.3 用双向链表实现用双向链表实现 .10 第四章第四章 系统实现系统实现 13 第五章第五章 总结总结 .17 参考文献:参考文献: .17 1 栈类的设计与使用栈类的设计与使用 摘摘 要要 本小组在这次课程设
2、计中选择了“栈类的设计与运用”这个课题,主要目的是要利用 C+程序设计语言实现栈类的封装,使得整个程序可以完成出栈、进栈、获取栈顶元素、清 空栈等一系列基本操作,也可以通过此次实训巩固 C+和数据结构中的很多知识点。在实训 过程中,我们通过分工合作完成了一个个独立的模块,并将这些模块整合起来,完成了这次 设计。在设计中,我们考虑了封装栈的多种形式,采用了顺序链表、单链表、双向链表三种 方法实现了栈的封装,并运用了多层菜单的模式,利用类模板实现了对多种类型数据的进、 入栈,方便了用户的选择,实现了完全用户操作的目的,整个界面简洁却不失全面,层层递 进,可以返回,并在实现出栈、入栈功能的基础上,可
3、以按照用户的意愿来控制入栈、出栈 的元素个数,更体现出程序的人性化。通过此次实训,我们不仅巩固了专业课的知识点,而 且在平时查阅资料的过程中学到了很多新的知识,收获颇丰。 关键词:栈关键词:栈 类的封装类的封装 函数模板函数模板 2 第一章第一章 前言前言 我们这组所选的课题是“栈的设计与使用” ,也就是将栈封装成一个类,完成栈的一些 基本操作,例如入栈、出栈、获取栈顶元素、获取栈内元素个数等。 在本学期所学的数据结构课程里,我们已经学过了关于栈的一些基本知识,栈是限制 在表的一端进行插入和删除运算的线性表,通常称插入,删除的这一端为栈顶,另一端为栈 底。栈分为两种类型,顺序栈和链式栈。栈的顺
4、序存储结构简称为顺序栈,它是运算受限的 线性表。因此,可用数组来实现顺序栈。栈顶位置是随着进栈和退栈操作而变化的栈的链式 存储结构称为链栈,它的运算是受限的单链表,插入和删除操作仅限制在表头位置上进行。 所以为了能让用户可以使用多种方式封装的栈,我们准备在设计中,采用了三种实现方式: 顺序链表、单链表和双向链表,以满足各种不同的需求。 由于栈结构具有的后进先出的固有特性,使得栈在程序设计中得到广泛地运用。利用 栈可以进行数制转换、 文字编辑和表达式计算等很多应用。 由此可以看出栈在程序设计中的 重要地位, 所以我们这一组专门选择了这一课题, 为了让程序员在编程中多次使用栈且不必 考虑入栈、出栈等操作细节,减少程序员程序设计中的工作量。我们准备用类模板实现栈类 的封装, 程序员就在使用栈类新建栈对象时只要传入数据类型就可以方便地对各种类型的数 据进行入栈、出栈等操作,提高程序员程序设计的效率。 3 第二章第二章 需求分析需求分析 2.1 完成数据元素的入栈完成数据元素的入栈 在设计中, 我们可以让用户对四种类型的数据元素进行入栈操作, int double st