线性表课程设计.docx

上传人:b****8 文档编号:9389882 上传时间:2023-02-04 格式:DOCX 页数:11 大小:119.75KB
下载 相关 举报
线性表课程设计.docx_第1页
第1页 / 共11页
线性表课程设计.docx_第2页
第2页 / 共11页
线性表课程设计.docx_第3页
第3页 / 共11页
线性表课程设计.docx_第4页
第4页 / 共11页
线性表课程设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

线性表课程设计.docx

《线性表课程设计.docx》由会员分享,可在线阅读,更多相关《线性表课程设计.docx(11页珍藏版)》请在冰豆网上搜索。

线性表课程设计.docx

线性表课程设计

目录

目录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

答辩记录

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1