需求分析报告课程设计题目:排序算法实现与演示系统专业:计算机科学与技术班级:姓名:一.问题的提出1.1编写目的排序在人们的日常生活和学习、科研、生产等各个方面有着重要的应用。因此掌握常用的排序算法是很必要的。此次设计拟开发一个排序算法演示系统,以提高对排序算法的掌握程度。本系统实现各种内部排序:直接插入排序、冒泡排序、直接选择排序、希尔排序、快速排序、堆排序、归并排序演。用户可以选择排序算法以演示输入数据在该排序算法下的排序过程。1.2项目背景课程设计题目:排序算法实现与演示系统本课题的指导老师:本课题的任务开发者:该设计系统与其他系统的关系:相辅相成,紧密相关1.3定义文档中所用到的专业术语:1.4参考资料冒泡排序相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其他的数进行类似操作快速排序使用分治法策略来把一个序列分为两个子序列,从数列中挑出一个元素,称为基准,重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边),递归地把小于基准值元素的子数列和大于基准值元素的子序列排序直接插入排序将一个记录插入到已排好序的有序表(有可能是空表)中,从而得到一个新的记录数增1的有序表直接选择排序每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完希尔排序将待排序的元素分为多个子序列,使得每个子序列的元素个数相对较少,对各个子序列分别进行直接插入排序,待整个待排序序列“基本有序”后,再对所有元素进行一次直接插入堆排序在直接选择排序的基础上借助于完全二叉树结构二形成的一种排序方法。归并排序一种常用的排序方法,最经常使用二路归并排序,二路归并的含义是把两个有序的序列合并为一个有序的序列。[1]李云清,杨庆红.数据结构(C语言版).北京:人民邮电出版社,2004.[2]严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版.1997.[3]苏光奎,李春葆.数据结构导学.北京:清华大学出版.2002.[4]周海英,马巧梅,靳雁霞.数据结构与算法设计.北京:国防工业出版社,2007.[5]张海藩.软件工程导论.北京:清华大学出版社.2003.随着计算机的普及,数据结构的应用与开发也深入我们的生活学习当中,其中排序算法也影响极深,通过这次排序算法的实现,希望更多人可以学会并运用排序算法。二.任务概述2.1目标了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。2.2运行环境MicrosoftVisualC++20082.3用户的特点排序算法实现与演示系统使用者:具有一定的计算机操作能力和知识。系统调用人员:具有很高的专业知识水平,理解排序算法实现与演示系统的运行机制,可以对开放代码进行阅读和分析,以完成其系统独特的需求。2.4条件与限制课程设计代码编写测试时间短、技术力量弱,设备具有约束性。三.数据描述3.1静态数据输入的数据3.2动态数据输入(scanf)数据:输入所需排序方式的序号;输入排序数据的个数;输入具体的数据元素。输出(printf)数据:输出排序每一趟的结果,及最后排序结果。四、操作流程图五.系统用例图5.1构建用例图要求演示用户启动系统统选择算法排序演示结束显示排序算法代码输入数据5.2细化用例图将用例细化可得到分解的用例:将“排序演示”用例分解为:A:选择排序算法从界面上选择要进行排序的排序算法B:确定数据移动顺序根据选择的排序算法确定数据移动顺序C:演示排序过程显示选择的排序算法对输入数据的排序过程和排序算法代码用户界面排序算法演示提供提供显示排序算法代码排序演示选择排序算法输入数据提供用户排序算法演示用户输入数据显示结果处理数据六、需求规定6.1基本要求通过用户键入的数据,经过程序进行排序,最后给予数据由小到大的输出。排序的方式包含教材中所介绍的几种常用的排序方式:直接插入排序、折半插入排序、冒泡排序、快速排序、选择排序、堆排序、归并排序。每种排序过程中均显示每一趟排序的细节。6.2设计工作任务及工作量要求1)选择合适的数据结构,并定义数据结构的结构体;2)根据程序所要完成的基本要求和程序实现提示,设计出完整的算法;3)按组讨论、确定设计方案,确定程序模块,并进行明确分工;4)写出课程设计说明书6.3运行要求用户界面:系统采用对话框方式,多功能窗口运行。硬件接口:支持各种X86系列的PC机。软件接口:运行于Windows2000及更高版本的具有WIN32API的操作系统之上。故障处理:正常使用时不出错,对于用户的输入错误给出适当的改正提示信息,遇不可恢复的系统错误时,保证数据库的完好无损。6.4功能需求开始判断数据类型判断算法种类正确的输入值输入数据正确的输入值结束选择输入的数据类型错误的输入值选择排序算法错误的输入值排序运算非法的数据判断数据是否合法合法的数据6.5其他需求能快速恢复系统和故障处理,方便系统升级和扩充,故障恢复时间不超过5小时。系统在用户不合理的操作或输入情况下,必须能够继续正常运行,并给出错误信息。系统周期进行数据库文件的信息备份,同时要对数据库文件的意外损害进行一定的检测。由于系统支持多用户使用,所以系统将提供用户权限管理和信息保密功能。