大二第一学期期末课程设计 2015.12.28

《数据结构与算法》课程设计教学任务书

--2015-2016(一)

 

课程设计周数:2周                                                             

 

一、课程设计的目的

数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。

学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:

n  了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

n  初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

n  提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

n  训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

二、课程设计的基本要求

1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。

2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。

3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;

其中包括:

  a)需求分析:

  在该部分中叙述,每个模块的功能要求

  b)概要设计

  在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。

  c)详细设计

  各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)

  源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

  d)调试分析

测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。

课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容;

4、每组实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一部分;(上交时每人交一份,文件夹的取名规则为:“学号 姓名”,如“200413498  高魁”。该文件夹下至少包括:“源代码”、“课程设计报告”、“可执行文件”。由学习委员收集刻盘按规定时间统一上交)。

5、课程设计报告不要附原代码,可以对重点函数及结构进行说明。报告格式见要求。

6、报告提交

时间:第18周最后一次课检查,第19周星期一上午11:30之前由学习委员收集上交,迟交无成绩。

形式:课程设计报告纸质和电子文档(按班级统一刻盘)。

三、课程设计内容:

1内部排序演示

【问题描述】
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。
【基本要求】
(1) 对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;
(2) 待排序的元素的关键字为整数。其中的数据要用伪随机产生程序产生(如10000个),至少用5组不同的输入数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较。
(3) 演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,用饼图或条形图进行表示,以便比较各种排序的优劣。
(4) 界面友好,易与操作。采用菜单方式进行选择。
【选做内容】
(1) 对不同表长进行比较;
(2) 验证各算法的稳定性;
(3) 输出界面的优化。
(4) 使用汉字显示。

 

2、校园导游咨询

【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1) 设计长春理工大学的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2) 为来访客人提供图中任意景点相关信息的查询。
(3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
【选做内容】
(1) 系统功能的完善;
(2) 提供求任意两个景点之间的所有路径的功能;
(3) 提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短)路径。
(4) 使用汉字显示。

 

3、建通讯录

【问题描述】

设计散列表实现通讯录查找系统。

【基本要求】
(1) 设每个记录有下列数据项:电话号码、用户名、地址;
(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;
(3) 采用二次探测再散列法解决冲突;
(4) 查找并显示给定电话号码的记录;

(5) 通讯录信息文件保存;

(6) 要求人机界面友好,使用图形化界面;
【选做内容】
(1) 系统功能的完善;
(2) 设计不同的散列函数,比较冲突率;
(3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
(4) 使用汉字显示。

【实现提示】

主函数:根据选单的选项调用各函数,并完成相应的功能。

Menu()的功能:显示英文提示选单。

Quit()的功能:退出选单。

Create()的功能:创建新的通讯录。

Append()的功能:在通讯录的末尾写入新的信息,并返回选单。

Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。

Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。

Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。

List()的功能:显示通讯录中的所有记录。

Save()的功能:保存通讯录中的所有记录到指定文件中。

Load()的功能:从指定文件中读取通讯录中的记录。

 

4、哈夫曼编码/译码器

【问题描述】

设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件(压缩文件,后缀名.cod);反过来,可将一个压缩文件译码还原为一个文本文件(.txt)。

【基本要求】

(1) 输入一个待压缩的文本文件名, 统计文本文件中各字符的个数作为权值,生成哈夫曼树;

(2) 将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod),

(3) 输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码;

(4) 显示指定的压缩文件和文本文件;

(5) 界面友好,易与操作。采用菜单方式进行选择。

【选做内容】

(1) 把哈夫曼编码用二进制位紧缩到一个变量中,利用位运算进行真正的数据压缩,并求压缩比。
(2) 显示哈夫曼树;
(3) 使用汉字显示。

 

5、运动会分数统计

【问题描述】

参加运动会有n个学校,学校编号为1……n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1......m,女子m+1......m+w.不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)

【功能要求】:

1)        可以输入各个项目的前三名或前五名的成绩;

2)        能统计各学校总分;

3)        可以按学校编号、学校总分、男女团体总分排序输出;

4)        可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

【基本要求】

1)        输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

2)        输出形式:有中文提示,各学校分数为整形

3)        界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

4)        存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

6、文章编辑

【问题描述】

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

【基本要求】

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

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

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

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

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

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:

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

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

【选做内容】

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

7、学生成绩管理系统

【问题描述】

用c语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
【具体要求】

建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。
 程序运行时显示一个简单的菜单,例如:
   (1):信息输入(INPUT)

   (2):总分统计(COUNT)

   (3):总分排序(SORT)

   (4):查询(QUERY)

     其中:

     (1):对4个学生的信息进行输入;
     (2):对每个学生的3门课程统计总分;
      (3):对4个学生的总分按降序排序并显示出来;
      (4):查询输入一个学号后,显示出该学生的有关信息;

8、自选题

   允许有能力的同学自选题目,但题目必须按上面的格式写出“问题描述”和“具体要求”,且题目的工作量要达到或超过已给题目,并经指导教师审核同意才可以进行自选题目的课程设计。

四、上交作业及成绩评定

1、上交要求

上交设计报告和相关光盘。其中设计报告要以打印稿的形式上交。光盘内容包括程序源码设计报告的电子文档。整个班级的设计均刻在一张光盘上,可按姓名或分组建立相关文件夹进行存储。

2、评分标准

根据完成任务的情况(必须进行系统演示)、课程设计报告书的质量和课程设计过程中的工作态度等按照30%、50%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。上机程序检查未通过者、无设计报告者以及严重抄袭他人设计者,成绩为不及格。

缺席次数

最终成绩

1次

中及以下

2次及以上

不及格

 

 

 

 

注:

每班分为7-8个小组,每组4-5人。                                                                                                                                                                                                                                      

设计题目:(选题:学号%7,余数为1234560分别做第1234567、题)

每小组各同学之间设计内容和报告文档不得雷同,否则成绩不及格。

转载于:https://www.cnblogs.com/helloaworld/p/5081616.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值