线性表课程设计.docx
- 文档编号:9389882
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:11
- 大小:119.75KB
线性表课程设计.docx
《线性表课程设计.docx》由会员分享,可在线阅读,更多相关《线性表课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
线性表课程设计
目录
目录I
第1章课题介绍I
1.1课程设计的目的I
1.2概要课程设计I
第2章总体设计2
2.1程序功能模块说明2
2.2程序流程图2
第3章详细设计及程序实现3
3.1本程序的主要类模板3
3.2程序中各功能模块的实现3
3.2.1构造函数3
3.2.2查找函数3
3.2.3删除元素4
3.2.4插入元素4
第4章问题与解决方法6
4.1问题6
4.2解决方法6
第5章程序测试7
第6章总结9
参考文献10
答辩记录11
第1章课题介绍
1.1课程设计的目的
1.了解并掌握中小型综合应用程序的一般设计方法,具备初步的独立分析和设计能力;
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;
5.认识容器类数据结构。
了解线性数据结构,掌握顺序存储线性表的建立和使用方法。
1.2概要课程设计
设计一个简单的类模板,定义一个顺序存储的线性表类SeqList,数据成员包括表的存储数组,表的最大允许长度,计算表的长度,定义常用的基本操作。
能对元素进行插入、删除、查找和显示等操作。
程序要求:
(1)生成线性表。
(2)做元素的插入、删除操作。
(3)元素的查找。
(4)线性表输出。
(5)二个多项式合并一个多项式。
第2章总体设计
2.1程序功能模块说明
1、创建一个类模板SqList,其包含本次课设所需的各个成员函数。
2、Find(Ta)函数查找元素。
3、Insert(Ta,inti)用来插入元素。
4、Delete(Ta)用来删除元素。
5、GetLength(){returnlength;}用来返回表长度。
6、GetOneElement(inti){returnelement[i];}用来获取元素。
7、ShowTheList(){returnelement;}用来显示当前表的元素。
2.2程序流程图
整个程序的流程如图2-1所示。
图2-1程序流程图
第3章详细设计及程序实现
3.1本程序的主要类模板
template
classSqList{
private:
T*element;//顺序表的存储数组
intlength;//计算顺序表的长度(元素个数)
intMaxSize;//表的最大允许长度
public:
SqList(intsize=20);//构造函数声明
~SqList(){delete[]element;}//析构函数
intGetLength(){returnlength;}//返回长度
intFind(Ta);//查找元素
boolInsert(Ta,inti);//插入元素
boolDelete(Ta);//删除元素
TGetOneElement(inti){returnelement[i];}//获取元素
T*ShowTheList(){returnelement;}//显示表当前元素
};
3.2程序中各功能模块的实现
3.2.1构造函数
template
SqList
:
SqList(intsize)
{
MaxSize=size;
length=10;
element=(T*)malloc(sizeof(T)*MaxSize);
}
3.2.2查找函数
若找到则返回元素位置,若未找到则返回-1
template
intSqList
:
Find(Ta)
{
for(inttmp=0;tmp { if(element[tmp]==a) { returntmp; } } cout<<"未找到该元素"< return-1; } 3.2.3删除元素 template boolSqList : Delete(Ta) { inti=Find(a); if(a==-1) return0; else { for(inttmp=i;tmp { element[tmp]=element[tmp+1]; } length--; } return1; } 3.2.4插入元素 若插入的元素大于表长则输出插入有误返回0,若表的长度超出表长输出表已满,返回1. template boolSqList : Insert(Ta,inti) { if(i>length||i>MaxSize) { cout<<"插入位置有误,请检查"< return0; } else { for(inttmp=length;tmp>=i;tmp--) { if(tmp==i) { element[tmp]=a; length++; if(length==MaxSize) { cout<<"表已经满了"< } return1; } element[tmp]=element[tmp-1]; } } 第4章问题与解决方法 4.1问题 1、要完成整个程序,需要操作的步骤有些多,程序看起来会很乱。 2. 4.2解决方法 1、将所需操作的函数全部封装到SeqList这个类模板中,实现程序的模板化,这样看起来就会很清楚。 第5章程序测试 1、添加一个元素: 图5-1添加一个元素 2、删除一个元素: 图5-2删除一个元素 3、查找一个元素: 图5-3查找一个元素 4、显示表的当前元素: 图5-4显示表的当前元素 5合并两个多项式: 图5-5显示合并后的多项式 第6章总结 这次的课程设计虽然只有短短的一个星期,但是学到的东西远远不止平时一个星期所学的。 主要运用了c++中类模板这块知识内容,还有就是上学期数据结构里面的知识。 在编写程序时遇到了很多问题,有些解决了,但有些由于知识水平的局限性没有很好地解决,特别是老师说应该将数据写入文件中,这个功能没有实现,自己也尝试过仿照老师给的例子进行模仿,但是由于结构体和类在引用,定义等方面存在着很大的区别,在编译时总是报错,上网也搜寻了相关资料,也问了同学,但由于时间有限,最后还是没用到文件。 通过这次的课程设计,让我更深入的理解类模板是对不同类的公共性质的抽象,使得类中的某些数据成员,某些函数成员中的参数或返回值的类型可以进行灵活的选择。 在编写程序时感到平时遍写程序的练习很不足,自己对编写程序不是很熟练,总是会出现各种不同的错误,平时老师给的一些学习资源没用很好的利用,通过这次课设认识到自己很多地方的不足,但又告诉我只要你有耐心和态度,不管问题有多难,最终都会被解决。 虽然课设结束了,但对于编程的学习还有很长的路,在今后的学习中,一定会多培养自己的编程能力,多利用老师给我们的资源,努力学好这门课程。 参考文献 [1]严蔚敏、陈文博.数据结构及应用算法教程.北京: 清华大学出版社,2013.4. []沈学东、C++面向对象程序设计实用教程.上海: 上海交通大学出版社,2012 答辩记录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 课程设计