以下为《课程设计指导书-数据结构-计算机级》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
《数据结构》课程设计指导书
适用专业:计算机2021级
2021年6月
《数据结构》课程设计指导书
一、设计目的
1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题;
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。
二、设计内容与任务
根据教材选择下列题目中任选一题作为课程设计题目,也可自拟题目。要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目如下:
课程设计题一:四则变量表达式计算
设计目的:
1.掌握结构体的用法以及采用结构体定义线性表。
2.学会利用线性表保存变量名及其代入值。
3.理解堆栈在四则运算中的应用价值。
4.自学第五章字符串的基本操作并用于子串分割,实现更复杂的四则运算。
设计内容:
输入一组单字符变量名及其对应数值存入线性表,再输入一个关于这些变量的四则运算表达式,代入其数值计算表达式的最终结果并显示。
设计要求:
1.单字符变量名与取值必须成对输入某结构体元素,再建立这些元素构成的线性表。
2.变量名与取值输入后立即显示变量信息,如“A=3,B=6,……”。
3.四则运算表达式必须以一个完整的字符串输入后,计算得出最终结果并显示。比如,运行阶段“(A+B)*3 回车”后,换行显示“=27”。
4.思考:若为四则运算增添函数计算功能,使其支持绝对值函数abs()、平方根函数sqr()、较大值函数max()、较小值函数min()等,表达式如A+abs(C+D)+max(E,F),应如何处理整个计算过程?
课程设计题二:哈夫曼树及其应用
设计目的:
1.熟悉树的各种存储结构及其特点。
2.掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。
3.深刻理解哈夫曼编码在数据压缩方面的应用价值。
设计内容:
发一封内容为“AABECAB …… DEFF”(共长 20 字符,字符集为:A、B、C、D、E、F)的电报报文,实现哈夫曼编码完成报文压缩节省带宽占用。
设计要求:
1.统计报文中各字符出现频次,并为字符集建立哈夫曼树。
2.构造哈夫曼树要求同层叶子结点权值从左到右、从小到大。
3.每个字符进行哈夫曼编码,并求出字符集平均编码长度。
4.建立两个文本文件hufcode.txt和compress.txt,分别用于存放字符的哈夫曼编码表和报文压缩内容,hufcode.txt中的每一行存放格式为“字符+空格+哈夫曼编码,最后一行存放报文长度值;compress.txt存储内容为电报报文中各字符哈夫曼编码按位拼接得到的字节码序列,举例:A、B的哈夫曼编码分别为110和1 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 集合、权集合构造带权无向图,如“{A,B,C,……}”、{(A,B),(B,C),……}、{2,3,……}。
2. 操作过程的界面交互简明便捷、提示信息明确。
三、设计要求
1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后续上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。
2、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。
3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释;
4、每位同学需提交可独立运行的程序,进行现场答辩;
5、每位同学需独立提交课程设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于8页(代码不算);
6、课程设计实践作为培养学生动手能力的一种手段,单独考核。
程序和课程设计报告电子版和打印稿统一提交。
四、设计的一般步骤与方法
1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?
2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;
3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作做出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;
4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;
5. 程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;
6. 结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析;
7. 编写课程设计报告。
五、设计报告
设计报告书封面和正文格式按说明书模板要包含:题目及任务分析、思路及算法设计、调试分析、测试结果、附录和设计心得体会等。
六、成绩考核
设计成绩是依据学生在设计中的表现和设计成果综合评定,包括:
1、平时表现:根据设计出勤情况、遵守纪律和服从管理情况、以及设计态度等因素评定;如有严重纪律问题,可按学校有关规定直接评为不及格;
2、设计报告:设计报告的完成情况(设计报告的具体要求参见模板);
3、程序的演示:根据设计实际完成的质量而考核评分。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《课程设计指导书-数据结构-计算机级》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。