数据结构顺序表课程设计_第1页
数据结构顺序表课程设计_第2页
数据结构顺序表课程设计_第3页
数据结构顺序表课程设计_第4页
数据结构顺序表课程设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告撰写要求课程设计报告撰写要求(一)纸张与页面要求 1采用国际标准 A4 型打印纸或复印纸,纵向打印。 2封页和页面按照下面模板书写(正文为:小四宋体 1.5 倍行距) 。3图表及图表标题按照模板中的表示书写。 (二) 课设报告书的内容应包括以下各个部分:(按照以下顺序装订)1.封页(见课设模版)2、学术诚信声明,所有学生必须本人签字,否则教师拒绝给予成绩。2.任务书(学生教师均要签字,信息填写完整)3.课程设计总结及体会4.目录5.正文一般应包括以下内容: (1)题目介绍和功能要求(或描述)课程设计任务的详细描述(注意不能直接抄任务书),将内容做更详细的具体的分析与描述;(2) 系

2、统功能模块结构图 绘制系统功能结构框图及主要模块的功能说明; (3) 使用的数据结构的描述: 数据结构设计及用法说明;(4) 涉及到的函数的描述 ; (5) 主要算法描述( 程序流程图)(6) 给出程序测试/运行的结果设计多组数据加以描述(包括输入数据和输出结果) (7) 参考文献 格式要求:1作者,等. 书名.出版地:出版社,出版年 6.附录:程序清单 (应带有必要的注释) 沈阳航空航天大学课课 程程 设设 计计 报报 告告课程设计名称:数据结构和算法课程设计数据结构和算法课程设计课程设计题目: 顺序表结构和算法顺序表结构和算法院(系):计算机学院专 业: 网络工程班 级: 14340104

3、01学 号: 143401040116姓 名: 汪敏新指导教师: 武卫东说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。不予通过。报告和电子数据必须作为实验现象重复的关键依据。沈阳航空航天大学课程设计报告 I 学术诚信声明 本人声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含

4、其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名: 日期: 年 月 日沈阳航空航天大学课程设计报告 II 沈阳航空航天大学沈阳航空航天大学课课程程设设计计任任务务书书课程设计名称XXXX 课课程程设设计计专业学生姓名班级学号题目名称起止日期年月日起至年月日止课设内容和要求:参考资料: 教教研研室室审审核核意意见见: 教教研研室室主主任任签签字字:指导教师(签名)指导教师(签名)

5、年月日沈阳航空航天大学课程设计报告 III 学学 生(签名)生(签名)年月日沈阳航空航天大学课程设计报告 IV 课程设计总结:课程设计总结:课程设计课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说受益良多。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程“千里之行始于足下” ,通过这次课程设计,我深深体会到这句千古名言的真正含

6、义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找,在用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。解决的这个问题的办法是调整。一个系统的菜单和提示信息非常重要。如果没有这些用户根本不知道怎么用你设计的这个系统。在设计的调试过程中也无法顺利的完成调试工作。有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,虽然只有几天,但可以学到很多的东

7、西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识都用上。本次课程设计结束了,对于我的影响很大。我通过这次实践学到了许多知识。学到了设计一个简单的系统。要注意哪些方面。也使我

8、知道自己哪些方面做得还不够。沈阳航空航天大学课程设计报告 V 目目 录录 目录学术诚信声明学术诚信声明.I1 问题分析和任务定义问题分析和任务定义.11.1 题目.11.2 内容.12 系统功能模块结构图系统功能模块结构图.23 数据结构设计及使用说明数据结构设计及使用说明.33.1 定义线性表抽象数据类型定义线性表抽象数据类型.33.1.1 基本操作基本操作:.33.2 详细设计和编码.43.2.1 类型定义.43.2. .2 顺序表初始化顺序表初始化.43.2.3 子函数输出函数.44 相关函数的描述相关函数的描述.64.1 本函数包含的十个函数本函数包含的十个函数.64.1.1 各函数之

9、间的调用关系.64.2 主函数的代码.74.3 用法说明.7沈阳航空航天大学课程设计报告 VI 5 算法的程序流程图算法的程序流程图.86 程序测试结果程序测试结果.97 参考文献参考文献.118 附录(程序清单)附录(程序清单).12.2沈阳航空航天大学课程设计报告 1 1 问题分析和任务定义1.1 题目题目顺序表结构和算法。1.2 内容内容1、设计出顺序表结构的相关函数库,以便在程序设计中调用。2、实现顺序表的各种基本函数以及常用函数。3、给出 1-2 个例子,通过调用自己的库函数来实现问题的求解。4、设计顺序表的相关函数,以便在程序调用中调用,进行顺序表中元素的插入、查找、取出、删除等操

10、作。1.3 要求要求1、设计软件的系统功能模块及各模块的程序流程图。2、采用模块化编程,系统中的各项功能分别用函数编写。3、学生独立完成系统的设计,编码和调试工作并通过指导老师的检查。4、按课程设计规范撰写课程设计报告。 沈阳航空航天大学课程设计报告 2 2 系统功能模块结构图系统功能模块结构图顺序表定义线性表main函数部分申请空间访问所有节点插入规律删除显示选项插入函数更改函数搜索函数 图图 1-顺序表结构功能模块图顺序表结构功能模块图 课程设计报告 3 3 数据结构设计及使用说明数据结构设计及使用说明3.1 定义线性表抽象数据类型定义线性表抽象数据类型3.1.1 基本操作基本操作: Sq

11、Lsetnull (L) 操作前提:L 是一个未初始化的线性表 操作结果:将 L 初始化为一个空的线性表 操作前提:L 是一个已初始化的空表 操作结果:建立一个非空的线性表 L SqLinsert (L,s,i) 操作前提:线性表 L 已存在 操作结果:将元素 s 插入到线性表 L 的 i 位置 SqLdelete (L,i) 操作前提:线性表 L 已存在 操作结果:将线性表 L 中 i 位置的元素删除, SqLlocate (L,x) 操作前提:线性表 L 已存在 操作结果:在线性表 L 中查找元素 x,若存在,返回元素在表中的序号位置;若不存在,返回-1 SqLlength_L(L) 初始

12、条件:线性表 L 已存在 操作结果:返回 L 中数据元素个数 课程设计报告 4 SqLget (L,i) 初始条件:线性表 L 已存在 操作结果:判断第 i 个数据元素值是否存在,存在则返回 1;否则,返回 0; 3.2 详细设计和编码详细设计和编码3.2.1 类型定义类型定义typedef struct Datatype datamaxlen; int last;Sequenlist; /*将 data 和 len 封装成一个结构体*/3.2. .2 顺序表初始化顺序表初始化Sequenlist *SqLsetnull()Sequenlist *L;L=(Sequenlist*)malloc

13、(sizeof(Sequenlist); L-last=-1; return(L);3.2.3 子函数输出函数子函数输出函数void print(Sequenlist *L) int h; 课程设计报告 5 printf(显示结果为: ); for(h=0;hlast+1;h+) printf(%d ,L-datah); /*输出顺序表中所有元素*/ printf(n); 判表满 int SqLempty(Sequenlist *L)if(L-last+1=50)return(1);elsereturn(0);插入函数int SqLinsert(Sequenlist *L,Datatype s

14、,int i)int j;if(SqLempty(L)=1)printf(表满溢出n);return(0);else if(iL-last+2)printf(位置出错n);return(0); 课程设计报告 6 elsefor(j=L-last;j=i-1;j-) L-dataj+1=L-dataj;/*节点往后移动一个位置*/ L-datai-1=s; /*插入新元素 s*/ L-last+; /*last 仍指向最后一个元素*/ return (1); 取数函数int SqLget(Sequenlist *L, int i)int x;if(iL-last+1)printf(取数出错!);

15、 return (0);elsex=L-datai-1;return (1) ;更新函数 int SqLupdate(Sequenlist *L,int i,int s) if(iL-last+2)printf(位置出错n); 课程设计报告 7 return(0);else L-datai-1=s; return (1); 其中用 switch 来做选择操作,从而实现个子函数对应的功能。4 相关函数的描述相关函数的描述4.1 本函数包含的十个函数本函数包含的十个函数主函数 main()初始化顺序表函数 SqLsetnull ()显示顺序表内容函数 print()插入元素函数 SqLinsert

16、 ()删除元素函数 SqLdelete ()查找元素函数 SqLlocate ()取值函数 SqLget ()判表满mainSqLsetnull printSqLinsertSqLupdateSqLdeleteDelete_xSqLlocateSqLgetUpdate_xSqLempty 课程设计报告 8 4.1.1 各函数之间的调用关系各函数之间的调用关系4.2 主函数的代码主函数的代码main() 说明一个单链表 L ;初始化 L ; 建立 L ; 显示 L ; 课程设计报告 9 4.3 用法说明用法说明程序执行后,首先输出:“请输入表长:”n输入表长后,输出:“请输入 n 个元素值:”输

17、入 n 个元素值后,输出:“请选择:”任意选择指定操作的某一操作序号:如 3“输入需要删除的元素”然后程序自动执行结果并显示出来 课程设计报告 10 5 算法的程序流程图算法的程序流程图 开始顺序表输入一组数据增加数删除数插入数搜索数结束输入数字是否满足条件图二图二-顺序表的程序流程图顺序表的程序流程图 课程设计报告 11 6 程序测试结果程序测试结果执行情况如下:请正确输入 4 个元素:1 2 3 4 请选择: 1:显示所有元素 2:增加一个元素 3:按数值删除某个元素 4:按位置删除某个元素 5:按位置更新 6:按数值更新 7:按位置查找某元素 8:按值查找某元素 9:退出程序 3 需要删

18、除的元素:4 显示结果为:1 2 3 测试结果如下图所示: 课程设计报告 12 图三 插入一个数字 图四 删除一个数字 图五 更改一个数字 课程设计报告 13 7 参考文献参考文献【1】严蔚敏、陈文博,数据结构应用算法教程【M】.北京:清华大学出版社,2011.5【2】张小莉、王淼、罗文劼,数据结构与算法【M】.北京:机械工业出版社,2014.4 课程设计报告 14 课程设计报告 15 8 附录(程序清单)附录(程序清单)#include#includetypedef int Datatype;typedef struct SequenlistDatatype data50;int last;

19、Sequenlist;Sequenlist *SqLsetnull()Sequenlist *L;L = (Sequenlist*)malloc(sizeof(Sequenlist);L-last = -1;return(L);void print(Sequenlist *L) 课程设计报告 16 int h;printf(显示结果为: );for (h = 0; hlast + 1; h+)printf(%d , L-datah);/*输出顺序表中所有元素*/printf(n);int SqLempty(Sequenlist *L)if (L-last + 1 = 50)return(1);

20、elsereturn(0);int SqLinsert(Sequenlist *L, Datatype s, int i)int j;if (SqLempty(L) = 1)printf(表满溢出n);return(0);else if (iL-last + 2)printf(位置出错n);return(0); 课程设计报告 17 elsefor (j = L-last; j = i - 1; j-)L-dataj + 1 = L-dataj;/*节点往后移动一个位置*/L-datai - 1 = s; /*插入新元素 s*/L-last+; /*last 仍指向最后一个元素*/return

21、(1); int SqLdelete(Sequenlist *L, int i)int j;if (L-last0)printf(顺序表空!);return(0);else if (iL-last + 1) /*检查空表及删除位置的合法性*/printf(参数出错!);return(0);elsefor (j = i; j last + 1; j+) 课程设计报告 18 L-dataj - 1 = L-dataj;L-last-;return(1);int SqLupdate(Sequenlist *L, int i, int s)if (iL-last + 2)printf(位置出错n);r

22、eturn(0);elseL-datai - 1 = s;return (1);int SqLget(Sequenlist *L, int i)int x;if (iL-last + 1)printf(取数出错!);return (0);else 课程设计报告 19 x = L-datai - 1;return (1);void SqLlocate(Sequenlist *L, int x)int i, z = 0;for (i = 0; ilast + 1; i+)if (L-datai = x)printf(该元素的位置为:%d, i + 1);z = 1;if (z = 0)printf

23、(不存在此元素!);void Delete_x(Sequenlist *L, int x)int j, k, z = 0;for (j = 0; jlast + 1; j+)if (L-dataj = x) for (k = j; klast + 1; k+)L-datak = L-datak + 1; /*向前移动一个位置*/L-last-;j-; /*返回到删除的位置*/ 课程设计报告 20 z = 1;if (z = 0)printf(不存在此元素!);void Update_x(Sequenlist *L, int x)int j, k, z = 0, t = 1;for (j = 0

24、; jlast + 1; j+)if (L-dataj = x)printf(将第%d 次出现的数%d 更改为:, t, x);scanf(%d, &k);L-dataj = k;z = 1;t+;if (z = 0)printf(不存在此元素!);int main()Sequenlist *L; 课程设计报告 21 int i, j, t, s, h, m, n, flag = 1;L = SqLsetnull();printf(请输入表长:);scanf(%d, &i); L-last = i - 1;printf(请输入%d 个元素值:, i); /*确定表长*/for

25、(t = 0; tdatat); /*输入表中元素*/while (flag) /*使用标识 flag*/printf(请选择:n);printf(1:显示所有元素n);printf(2:增加一个元素n);printf(3:按数值删除某个元素n);printf(4:按位置删除某元素n);printf(5:按位置更改n);printf(6:按数值更改n);printf(7:按位置查找(取)元素n);printf(8:按值查找一个元素n);printf(9:退出程序n); /*输入顺序表元素之后显示选项*/scanf(%d, &j);switch (j) /*当输入数字 j 时自动调用函数库中的函数实现功能*/case 1:print(L); break; case 2:printf(输入需要插入的数值和位置:); 课程设计报告 22 scanf(%d %d, &s, &i);h = SqLinsert(L, s,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论