排序综合课程设计

  • 格式:doc
  • 大小:390.50 KB
  • 文档页数:28

下载文档原格式

  / 28
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连科技学院

数据结构课程设计

题目排序综合

学生专业班级

指导教师职称副教授

所在单位信息科学系软件教研室

教学部主任

完成日期2013年1月11日

课程设计报告单

综合评定:(优、良、中、及格、不及格)

指导教师签字:2013年1月11日

数据结构课程设计任务书

一、任务及要求:

1.设计(研究)任务和要求

研究容:排序综合

任务和要求:

(1)学习数据结构基础知识,掌握数据结构典型的算法的使用。

(2)对指导教师下达的题目进行系统分析。

(3)根据分析结果完成系统设计。

(4)编程:在计算机上实现题目的代码实现。

(5)完成对该系统的测试和调试。

(6)提交课程设计报告。

要求完成课程设计报告3000字以上(约二十页)。

完成若干综合性程序设计题目,综合设计题目的语句行数的和在100行语句以上。

2.原始依据

结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。3.参考题目:

二、工作量

2周(10个工作日)时间

三、计划安排

第1个工作日:查找相关资料、书籍,阅读示例文档,选择题目。

第2个工作日-第3个工作日:设计程序结构、模块图。

第4个工作日-第9个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。

第10个工作日:上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。

指导教师签字:

2012年12月24日

目录

排序综合 (1)

1.需求分析 (1)

1.1任务描述 (1)

1.2功能分析 (1)

2.概要设计 (1)

2.1主要全程变量和数据结构 (1)

2.2程序模块结构 (2)

3.详细设计 (3)

3.1程序的主要结构如下图所示。 (3)

3.3显示各排序算法排序后的的数据。 (4)

3.4函数实现(例如直接插入排序) (4)

4.调试分析 (5)

5.测试结果及运行效果 (7)

参考文献 (11)

附录全部代码 (12)

数据结构课程设计总结 (24)

排序综合

1.需求分析

1.1任务描述

至少采用3种方法实现上述问题求解,并把排序后的结果保存在不同的文件中。

1.2功能分析

显示随机数,是调用rand()函数输出数组a[]。数组a[]中保存有随机产生的随机数;直接选择排序,是通过n-1次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换之;起泡排序,是如果有n个数,则要进行n-1趟比较,在将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个排序中的记录“基本有序”时,在对全体记录进行一次直接插入排序;直接插入排序,是将一个记录插入到以排序好的有序表中,从而得到一个新的记录数增1的有序表。设整个排序有n个数,则进行n-1趟排序,即:先将序列中的第一个记录看成一个有序的子序列,然后第2个记录起逐个进行插入,直接整个序列变成按关键字非递减有序列为止;快速排序,是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列;堆排序,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的。

2.概要设计

2.1主要全程变量和数据结构

(1) 数据结构:

#include "stdlib.h"

#include

#define s 100

typedef struct record

{int key;};

static struct record a1[s],a2[s],a3[s],a4[s],a5[s],a6[s],rec;

int a[7],b[7];file()

(2) 算法的入口及其说明

#include

#define s 100 //宏定义命令

typedef struct record //记录声明的结构体

{int key;};//定义变量

static struct record a1[s],a2[s],a3[s],a4[s],a5[s],a6[s],rec;

int a[7],b[7]; //记录静态变量结构体

file() //系统定义

{

printf(" ********************************* \n");

printf(" *** *1. 直接插入排序*** \n");

printf(" *** *2. 希尔排序*** \n");

printf(" *** *3. 起泡排序*** \n");

printf(" *** *4. 快速排序*** \n");

printf(" *** *5. 简单选择排序*** \n");

printf(" *** *6. 堆排序*** \n");

printf(" *** *7. 总结*** \n");

printf(" *** *0. 退出*** \n");

printf(" ********************************* \n"); }

以上printf(" ********************************* \n");为系统主菜单输出

2.2程序模块结构

程序划分为以下几个模块(即实现程序功能所需的函数)

主控菜单项选择函数:menu_select()

插入排序函数:InsertSort()

选择排序函数:StlectSort()

起泡排序函数:BubbleSort()

堆排序函数:heapsort()

快速排序函数:Quicksort()

希尔排序:Shell Sort()

相关主题