C语言课程设计说明书-排序算法系统设计

上传人:飞*** 文档编号:35859051 上传时间:2018-03-21 格式:DOC 页数:18 大小:488.50KB
返回 下载 相关 举报
C语言课程设计说明书-排序算法系统设计_第1页
第1页 / 共18页
C语言课程设计说明书-排序算法系统设计_第2页
第2页 / 共18页
C语言课程设计说明书-排序算法系统设计_第3页
第3页 / 共18页
C语言课程设计说明书-排序算法系统设计_第4页
第4页 / 共18页
C语言课程设计说明书-排序算法系统设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言课程设计说明书-排序算法系统设计》由会员分享,可在线阅读,更多相关《C语言课程设计说明书-排序算法系统设计(18页珍藏版)》请在金锄头文库上搜索。

1、课程设计说明书第 1 页 共 18 页摘摘 要要C 是一种通用的程序设计语言,C 语言在很多方面继承和发展了以往许多高级程序设计语言的成功经验和特色,具有书写格式自由、数据类型丰富、语句功能强大、执行速度快和存储控制能力强等优点。排序算法系统设计是关于顺序表排序算法来设计的一个系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成顺序表排序算法的全过程,包括直接插入排序、二分法插入排序、直接选择排序、冒泡排序、两路冒泡排序、分块归并排序、归并排序以及重新生成随机数组。本课程主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路、总体设计、各个功能模块

2、的设计与实现方法。关键词:关键词:排序算法系统,C 语言,数据结构,CFreeV5.0课程设计说明书第 2 页 共 18 页目录1课题背景的介绍 .11.1 课题背景.11.2 目的.12需求分析 .22.1 数据需求分析.22.2 功能需求分析.23系统总体设计 .33.1 系统模块划分.33.2 系统模块结构图.34系统详细设计 .44.1 系统主界面设计.44.2 初始化学生信息.44.3 查找学生信息.44.4 删除学生信息.54.5 更新学生信息.54.6 排序.74.7 统计学生信息.114.8 插入学生信息.115系统连编与运行 .126总 结 .13参考文献.14课程设计说明书

3、第 1 页 共 18 页1课题背景的介绍1.1 课题背景算法是程序的核心,对数据进行排序是各种管理系统中不可缺少的一部分,大量的数据进行排序处理,算法的好坏决定着程序的执行效率以及用户的使用感受,而作为最为常用的顺序表存储结构排序,我们针对其设计了一个排序算法系统,并将归并排序和冒泡排序进行优化设计,这也是我们研究这个课程的目的。为了能够更好的来实现对顺序表结构的数据排序,通过对日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今排序算法需求的计算机排序算法系统,具有一定的实际开发价值和使用价值。1.2 目的目的本课

4、题运用 C 语言进行开发,C 语言能够简单的进行编译一些程序,来实现对一些问题的解决。它虽然比较简单的处理一些问题,但却有更高的效率。它能够被大多数用户所接受,因为它能够呈现出清晰的界面,是人们能够很好的理解。能在一些方面给人们更好的服务,成为人们的好帮手。经过这一个学期对数据结构的学习,我们都学到了不少东西,可能有些学的还不够理想,但无论如何这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为了检查我们一个学期以来的学习成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。课程设计说明书第 2 页 共 18 页2需

5、求分析随着日常处理数据规模的不断扩大,程序向着大型化,规模化发展,而对于数据排序效率的要求不断提高。在这种情况下单靠人工来处理信息不但显得大不从心,而且极容易出错。因此,需要开发排序算法系统,该系统可以实现由计算机代替人工执行一系列复杂而繁琐的排序操作,使得程序设计人员可以轻松快捷的完成对各种数据的排序管理的任务。2.1 数据需求分析数据需求分析本系统的主要数据是顺序表数组。为了有更好的排序算法展示效果,数组的数据由单独的随机数组生成函数创建。2.2 功能需求分析功能需求分析本系统主要实现对数据的各种排序算法,需要实现以下几个方面的功能:(1)直接插入排序(2)二分法插入排序(3)直接选择排序

6、(4)冒泡排序(5)两路冒泡排序(6)分块归并排序(7)归并排序(8)重新生成随机数组课程设计说明书第 3 页 共 18 页3系统总体设计3.1 系统模块划分系统模块划分本系统主要是对数据的排序算法,包括了排序算法有:直接插入排序,二分法插入排序,直接选择排序,冒泡排序,两路冒泡排序,分块归并排序,归并排序。整个系统分为以下几个模块。1、菜单模块 本模块实现菜单列表,通过用户选择列表调用相关函数实现功能。2、排序算法模块本模块用于实现对数据的各种排序算法。其中包括:1、直接插入排序 2、二分法插入排序 3、直接选择排序 4、冒泡排序排序 5、两路冒泡排序 6、分块归并排序 7、归并排序3.2

7、系统模块结构图根据排序算法系统功能设计,对应的系统模块结构图如图 3.2.1 所示:图 3.2.1 系统模块结构图程序菜单各种排序算法重新生成数组退出直 接 插 入 法二 分 法 排 序直 接 选 择 法冒 泡 排 序两 路 冒 泡 排 序 两 路 冒 泡 排 序分 块 归 并 排 序归 并 排 序 法课程设计说明书第 4 页 共 18 页4系统详细设计系统详细设计4.1 系统主界面设计系统主界面设计统过对该系统设计的了解与讨论,同时也为了广大使用者的方便与快捷。我们最后设计了这样的一个界面。首先要让使用者明白怎样使用此系统。这就需要通过界面来给他们一个清晰而明白的空间。而我们设计的这个界面恰

8、好符合了这一要求。通过调用界面函数来使使用者能够很方便的进行各种排序算法的操作。do putLOGO(); 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“); printf(“n 请用键盘选择:“); Key=UserChoice(“123456789“); /提高运行效率 确保每

9、一次循环都有效 if(Key != 9)CLS; switch(Key) case 1:/直接插入排序 tmp = straitsort(L);OutputSqList(tmp);break; case 2:/二分法插入排序tmp = bisort(L);OutputSqList(tmp);break; case 3:/直接选择排序tmp = directbisort(L);OutputSqList(tmp);break;case 4:/冒泡排序tmp = maopaobisort(L);OutputSqList(tmp);break;课程设计说明书第 5 页 共 18 页case 5:/两路冒泡排序tmp = TwinBubbleSort(L);OutputSqList(tmp);break;case 6:/分块归并排序tmp = L;ShowMergerListPlus(L, S); break;case 7:/归并排序 tmp = L;MergeSort(tmp);OutputSqList(tmp);break;case 8:/重新生成随机数组CreateSqList(L)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号