数据结构课程设计指导书.docx

上传人:b****5 文档编号:6473662 上传时间:2023-01-06 格式:DOCX 页数:9 大小:20.06KB
下载 相关 举报
数据结构课程设计指导书.docx_第1页
第1页 / 共9页
数据结构课程设计指导书.docx_第2页
第2页 / 共9页
数据结构课程设计指导书.docx_第3页
第3页 / 共9页
数据结构课程设计指导书.docx_第4页
第4页 / 共9页
数据结构课程设计指导书.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数据结构课程设计指导书.docx

《数据结构课程设计指导书.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计指导书.docx(9页珍藏版)》请在冰豆网上搜索。

数据结构课程设计指导书.docx

数据结构课程设计指导书

数据结构

 

目录

一、课程设计的基本任务…………………………………………………3

二、课程设计的基本要求…………………………………………………3

三、课程设计的基本步骤和方法…………………………………………4

四、课程设计说明书(含报告的书写规范)……………………………5

五、附录(课程设计大纲等内容)…………………………………………13

 

一、课程设计的基本任务

数据结构是一门涉及多门课程的课程,难度较大,需要较好的C语言的程序设计和调试能力,如果学生能够按照要求,从时间和精力上保证完全的投入,相信能够有很大的收获,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。

《数据结构》课程设计是计算机科学与技术专业的主要实践性教学环节。

在进行了专业基础课和《数据结构》课程的基础上,设计一个实际的应用软件,初步软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为毕业设计和以后的工程实践打下良好的基础。

二、课程设计的基本要求

课程设计按照教学要求需要一周时间完成,总共至少要上机调试程序10小时。

对每个题目要有需求分析, 在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。

给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。

  对有些题目提出算法改进方案,比较不同算法的优缺点。

  如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法;2对每个题目要有相应的源程序(可以是一组源程序,即详细设计部分):

  源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

  程序能够运行,要有基本的容错功能。

尽量避免出现操作错误时出现死循环;3最后提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。

1、能力培养要求

①巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力。

②培养学生选用参考书,查阅手册及文献资料的能力。

培养独立思考,深入研究,分析问题、解决问题的能力。

③过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

④够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。

⑤通过课程设计,培养学生严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

2、学生提交课程设计报告要求

1)设计题目

2)设计目的

3)设计内容

4)程序流程图

5)源程序

6)软件测试报告(包括所用到的数据及结果)

三、课程设计的基本步骤和方法

1、学生以自学为主,独立完成设计任务,注重学生能力的培养。

2、教师要注意按学生基础和能力提出要求,辅导时要有侧重,做到因材施教。

对基础差的学生要勤检查多指导,对能力强的学生应提出更高的要求,增加些选作内容,充分发挥其潜力。

3、教师要教书育人。

要求学生从点滴开始,每步操作都要按规定去做,以培养严肃认真的科学态度。

选定方案要考虑经济效益,坚持勤俭节约的原则。

要教育学生团结协作,遵守纪律,爱护公物。

通过设计提高业务能力,提高思想觉悟。

4、课程设计安排

①教师下达设计任务书

任务书内容包括题目、主要技术指标和要求、给定条件及原始数据、所用仪器设备和参考资料及文献等。

教师讲授必要的设计思路和设计方法。

②学生完成预设计

本阶段学生应明确任务,查阅资料及文献(主要自学),掌握工程设计基本方法,确定设计方案,进行设计分析,完成预设计。

③实验阶段

经教师审查通过预设计方案后,即可进行编程调试。

实验由学生独立完成,教师定时指导。

④设计总结阶段

本阶段学生要认真完成课程设计报告书,整理技术资料,如有需要还应写出课程设计的心得体会和改进意见。

课程设计报告书包括:

设计任务及主要技术指标、设计方案及论证结果、系统的原理框图、设计程序、实验结果、实验中主要问题及故障现象的分析及设计结论等。

报告书中还应附实验数据、系统软硬件环境、使用说明及参考资料等。

 

四、课程设计说明书(含报告的书写规范)

课程设计要求学生在以下模块中选作一个

1、建立二叉树,层序、先序遍历(用递归或非递归的方法都可以)**

任务:

要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数并能统计各种结点的个数及树的深度等;

数据结构描述:

#include

#defineNUM10

structnode{

intdata;

structnode*lchild;

structnode*rchild;

};

voidmake(structnode**boot,inta[]);

voidmiddle(structnode*boot);

voidleft(structnode*boot);

2、赫夫曼树的建立

任务:

建立建立最优二叉树函数

要求:

可以建立函数输入二叉树,并输出其赫夫曼树(编码)

在上交资料中请写明:

存储结构、基本算法(可以使用程序流程图)、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

数据结构描述:

typedefstruct

 {intweight;

  intparent;

  intlchild;

  intrchild;

 }HTNode;

typedefstruct

 {chared[M];

  intstart;

 }HTcode;

操作步骤:

定义赫夫曼树和编码的存储结构――输入赫夫曼编码的个数和权值――生成赫夫曼树――编码――输出编码。

3、图的建立及输出

任务:

建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选一种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。

要求:

按某种遍历输出所有顶点。

数据结构描述:

typedefstructArcNode

{

intadjvex;

intweight;

structArcNode*nextarc;

}ArcNode,*AdjList;

typedefstructGraph

{

AdjListelem[MAX+1];

intvexnum;

intarcnum;

intGraphKind;

}Graph;

4、拓扑排序

任务:

编写函数实现图的拓扑排序。

算法思想:

首先选择一个无前驱的顶点(即入度为0的顶点,图中至少应有一个这样的顶点,否则肯定存在回路),然后从图中移去该顶点以及由他发出的所有有向边,如果图中还存在无前驱的顶点,则重复上述操作,直到操作无法进行。

如果图不为空,说明图中存在回路,无法进行拓扑排序;否则移出的顶点的顺序就是对该图的一个拓扑排序。

其抽象算法可描述为:

   NonPreFirstTopSort(G){//优先输出无前趋的顶点

     while(G中有人度为0的顶点)do{

      从G中选择一个人度为0的顶点v且输出之;

      从G中删去v及其所有出边;

      }

     if(输出的顶点数目<|V(G)|)

       //若此条件不成立,则表示所有顶点均已输出,排序成功。

       Error("G中存在有向环,排序失败!

");

    }

 

5、各种排序

任务:

实现各种排序并分别时行分析

要求:

用随机数生成100个整数存入文本文件中,并对这些数进行多种方法进行排序。

至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)并将结果存入另外的文本文件中。

6、文章编辑

任务:

输入一页文字,程序可以统计出文字、数字、空格的个数。

要求:

静态存储一页文章,每行最多不超过80个字符,共N行;

1)分别统计出其中英文字母数和空格数及整篇文章总字数;

2)统计某一字符串在文章中出现的次数,并输出该次数;

3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:

可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

1)分行输出用户输入的各行字符;

2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"

3)输出删除某一字符串后的文章;

文章编辑系统功能模块:

typedefstruct_DOC_CONTEXT

{

unsignedcharContext[MAX_COL+1][MAX_LINES];

intTotalLines;/*当前文档行数*/

}DOC_CONTEXT,*PDOC_CONTEXT;

intPrintfContext(PDOC_CONTEXTpContext);

intAddLine(PDOC_CONTEXTpContext,char*szNewStr);

intInsertLine(PDOC_CONTEXTpContext,char*szNewStr,intPos);

intModifyLine(PDOC_CONTEXTpContext,char*szNewStr,intPos);

intDeleteLine(PDOC_CONTEXTpContext,intPos);

intGetStringCount(PDOC_CONTEXTpContext,char*szDemo);

intGetLetterCount(PDOC_CONTEXTpContext);

intGetDigCount(PDOC_CONTEXTpContext);

intGetSpaceCount(PDOC_CONTEXTpContext);

intGetCharCount(PDOC_CONTEXTpContext);

intSaveDocToFile(PDOC_CONTEXTpContext,char*szFileName);

intLoadDocFromFile(PDOC_CONTEXTpContext,char*szFileName);

要求完成:

输出整篇文章内容;在文章尾部追加一行;在文章指定行插入新行;修改文章指定行;删除文章指定行;统计某一字符串在文章中出现的次数;统计文章的全部字母数;统计文章的数字个数;保存文章到磁盘指定文件;加载磁盘文章文件。

7、作双链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。

链表节点的数据结构定义:

structnode

{

intnum;

structnode*pre;

Structnode*next;

};

要求:

单链表的创建过程有以下几步

1)定义链表的数据结构。

2)创建一个空表。

3)利用malloc()函数向系统申请分配一个节点。

4)将新节点的指针成员赋值为空。

若是空表,将新节点连接到表头;若是非空表,将新节点接到表尾。

5)判断一下是否有后续节点要接入链表,若有转到3),否则结束。

8.一元稀疏多项式相加

要求:

设计一个一元多项式加法器。

数据结构自行设定,实现如下操作:

1)输入并建立多项式;

2)两个多项式相加;

3)输出多项式:

n,c1,e1,c2,e2,…cn,en,其中,n是多项式项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列。

9.简易学生管理系统设计

要求:

选择一种数据结构实现对每个学生信息的存储,并实现如下功能

1)插入一个学生信息

2)删除一个学生信息

3)修改学生信息

4)查找学生信息

实现时要求做一个简单的界面,能让程序反复的执行不同功能。

10.哈希表设计

为班级的52个人的姓名设计一个哈希表,假设姓名用汉语拼音表示。

要求用除留余数法构造哈希函数,用平线性探测再散列法处理冲突,平均查找长度上限定为2(即小于等于2)。

附录1课程设计任务书模板

三峡大学信息与计算机学院

课程设计任务书

题目

专业、班级学号姓名

主要内容、基本要求、主要参考资料等:

 

完成期限:

指导教师签名:

课程负责人签名:

年月日

附录2课程设计总结报告模板

三峡大学信息与计算机学院

数据结构课程设计总结报告

 

设计题目:

学生姓名:

系别:

计算机软件工程

专业:

计算机软件工程

班级:

学号:

指导教师:

 

年月日

 

一、设计题目(任选其一)

二、运行环境(软、硬件环境)

三、算法设计的思想

四、算法的流程图

五、算法设计分析

六、源代码

七、运行结果分析

八、收获及体会

 

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

当前位置:首页 > 工程科技 > 能源化工

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

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