1、线性表课程设计目 录目 录 I第1章 课题介绍 I1.1 课程设计的目的 I1.2 概要课程设计 I第2章 总体设计 22.1 程序功能模块说明 22.2程序流程图 2第3章 详细设计及程序实现 33.1本程序的主要类模板 33.2 程序中各功能模块的实现 33.2.1构造函数 33.2.2查找函数 33.2.3删除元素 43.2.4插入元素 4第4章 问题与解决方法 64.1 问题 64.2 解决方法 6第5章 程序测试 7第6章 总 结 9参考文献 10答辩记录 11第1章 课题介绍1.1 课程设计的目的1. 了解并掌握中小型综合应用程序的一般设计方法,具备初步的独立分析和设计能力;2.
2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;5. 认识容器类数据结构。了解线性数据结构,掌握顺序存储线性表的建立和使用方法。1.2 概要课程设计设计一个简单的类模板,定义一个顺序存储的线性表类SeqList,数据成员包括表的存储数组,表的最大允许长度,计算表的长度,定义常用的基本操作。能对元素进行插入、删除、查找和显示等操作。程序要求:(1) 生成线性表。(2) 做元素的插入、删除操作。(3) 元素的查
3、找。(4) 线性表输出。(5) 二个多项式合并一个多项式。第2章 总体设计2.1 程序功能模块说明1、创建一个类模板SqList,其包含本次课设所需的各个成员函数。2、Find(T a)函数查找元素。3、Insert(T a , int i)用来插入元素。 4、Delete(T a)用来删除元素。5、GetLength()return length;用来返回表长度。 6、GetOneElement(int i) return elementi;用来获取元素。7、ShowTheList()return element;用来显示当前表的元素。2.2程序流程图整个程序的流程如图2-1所示。图2-1
4、程序流程图第3章 详细设计及程序实现3.1本程序的主要类模板templateclass SqListprivate: T* element;/顺序表的存储数组 int length;/计算顺序表的长度(元素个数) int MaxSize;/表的最大允许长度public: SqList(int size = 20);/构造函数声明 SqList()delete element;/析构函数 int GetLength()return length;/返回长度 int Find(T a);/查找元素 bool Insert(T a , int i);/插入元素 bool Delete(T a);/删
5、除元素 T GetOneElement(int i) return elementi;/获取元素 T* ShowTheList()return element;/显示表当前元素;3.2 程序中各功能模块的实现3.2.1构造函数template SqList:SqList(int size)MaxSize = size;length = 10;element = (T*)malloc(sizeof(T)*MaxSize);3.2.2查找函数若找到则返回元素位置,若未找到则返回-1templateint SqList:Find(T a)for (int tmp = 0; tmp length ;
6、tmp+) if (elementtmp = a) return tmp; cout未找到该元素endl;return -1;3.2.3删除元素template/删除元素bool SqList:Delete(T a)int i = Find(a);if(a = -1) return 0;else for (int tmp = i;tmp length ;tmp+) elementtmp = elementtmp + 1; length-;return 1;3.2.4插入元素若插入的元素大于表长则输出插入有误返回0,若表的长度超出表长输出表已满,返回1.templatebool SqList:I
7、nsert(T a , int i) if(i length | i MaxSize) cout插入位置有误,请检查 = i;tmp-) if (tmp = i) elementtmp = a; length+; if (length = MaxSize) cout表已经满了endl; return 1; elementtmp = elementtmp - 1; 第4章 问题与解决方法4.1 问题1、要完成整个程序,需要操作的步骤有些多,程序看起来会很乱。24.2 解决方法1、将所需操作的函数全部封装到SeqList这个类模板中,实现程序的模板化,这样看起来就会很清楚。第5章 程序测试1、添加
8、一个元素:图5-1添加一个元素2、删除一个元素:图5-2删除一个元素3、查找一个元素: 图5-3查找一个元素4、显示表的当前元素: 图5-4显示表的当前元素5合并两个多项式:图5-5显示合并后的多项式第6章 总 结这次的课程设计虽然只有短短的一个星期,但是学到的东西远远不止平时一个星期所学的。主要运用了c+中类模板这块知识内容,还有就是上学期数据结构里面的知识。在编写程序时遇到了很多问题,有些解决了,但有些由于知识水平的局限性没有很好地解决,特别是老师说应该将数据写入文件中,这个功能没有实现,自己也尝试过仿照老师给的例子进行模仿,但是由于结构体和类在引用,定义等方面存在着很大的区别,在编译时总
9、是报错,上网也搜寻了相关资料,也问了同学,但由于时间有限,最后还是没用到文件。通过这次的课程设计,让我更深入的理解类模板是对不同类的公共性质的抽象,使得类中的某些数据成员,某些函数成员中的参数或返回值的类型可以进行灵活的选择。在编写程序时感到平时遍写程序的练习很不足,自己对编写程序不是很熟练,总是会出现各种不同的错误,平时老师给的一些学习资源没用很好的利用,通过这次课设认识到自己很多地方的不足,但又告诉我只要你有耐心和态度,不管问题有多难,最终都会被解决。虽然课设结束了,但对于编程的学习还有很长的路,在今后的学习中,一定会多培养自己的编程能力,多利用老师给我们的资源,努力学好这门课程。参考文献1 严蔚敏、陈文博.数据结构及应用算法教程.北京:清华大学出版社,2013.4.沈学东、C+面向对象程序设计实用教程.上海:上海交通大学出版社,2012答辩记录
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1