欢迎来到天天文库
浏览记录
ID:1923273
大小:134.50 KB
页数:10页
时间:2017-11-13
《程序设计大作业——排序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《程序设计基础》大作业姓名:张彬学号:1001051135班级:信管10-01成绩:信息科学与工程学院20011年7月3日9程序设计基础大作业数字的排列以及其排序过程的演示1.1需求陈述:数字排列方法是多样的,如插入法,冒泡法,选择排序,shell排序等;而这些排序方法的思路大不相同。因此本程序是将数字的排序过程以图像的方式展示出来,以方便他人学习。1.2需求分析:1.2.1:功能需求:项目功能组成备注Order主函数不同系统的选择选择需要的排序方法在主函数每一次选择时都允许多次选择错误,只要没有输入正确的选项就会一直执行输
2、入操作数组的产生方式选择需要的排序方法选择错误的检测子函数的调用子函数(冒泡,选择)相邻的数字依次比较根据大小进行交换循环并记录交换结果交换过程用图形展示子函数(插入)数字比较数字移位数字插入图形展示子函数(shell)将数组元素多次分组每一次分组后都进行比较交换数字每次输出,并提示分组情况及比较情况1.3设计思想:1、函数库调用#include9程序内容的输入输出#include实现时间控制#include取得随机数#include实现清屏2、子函
3、数的设计A、冒泡排序子函数声明:intmaopao(int*a,intn)功能:用冒泡法对数组中的元素进行排列,并将其中的比较,以及交换的次数输出。最终完成比较,以递增的顺序将排列好的数组输出。实现思路:由第一个数开始,每个数依次同其下一个数字比较并根据大小进行交换。根据数组的大小确定循环次数。最终实现数组中的元素排序。其中,使数组中的元素以图像的形式展示出来。并对正在比较的元素用特殊符号标记。用+组成正在比较的数字,用-组成其他数字。B、选择法子函数声明:intxuanze(int*a,intn)功能:用选择排序法对数组中
4、的元素进行排列,并将其中的比较,以及交换的次数输出。最终完成比较,以递增的顺序将排列好的数组输出。实现思路:由第一个数开始,第一个数依次与所有数比较。找到最小数,放在第一位。再从第二个数开始进行比较找到剩下数中最小数。以此类推,从而实现对所有的数字排序。C、插入法子函数声明:intcharu(int*a,intn)功能:用插入排序法对数组中的元素进行排列,并将其中的比较,以及插入的次数输出。最终完成比较,以递增的顺序将排列好的数组输出。实现思路:每个数依次和后面的数比较,根据大小关系,决定所要插入的位置,要插入位置及以后的数
5、字分别后移一位,再用要插入的数进行赋值。D、shell排序子函数声明:voidshell(int*a,intn)功能:在本程序中,选用了元素的个数的一半作为分组的依据。首先将数组分组并用#显示出分组情况,再在每一组之间将相同位置的数字进行比较对换,显示出第几组与第几组的第几个元素在进行比较对换,以后进行多次分组,每一次都按照相同的方法进行比较对换,当每组中的元素成为壹时,进行最后一轮比较对换,再将最后的数组输出3、主函数的设计:主函数中运用switch语句使用户对不同情况做出选择,运用while语句作为错误检测,当选择错误时
6、可以再次选择,在屏幕菜单输出时运用空格是屏幕美观化。1.4系统测试显示及思想1.41、进入界面;9注释:在此完成对系统的选择(由于检测需求,需要在不同系统中运行。)注释:要求先输入要排序的数组中个数;此选项用简单的输出和输入完成。注释:输入数组是用一个for循环输入,而产生随机数则是用时间做种子,再对数字取余得到当选择自主输入数字时,所显示的为当前界面。9注释:简单的switch语句,中间没有加了default。Default只能提示一次,如果用循环提示出错则可以多次改正,并提示。如果输入有误;1.42、冒泡法运行时的界面;
7、注释:比较次数和交换次数,用两个变量就可以,只是比较次数放在双重循环之后,而交换次数放在if判断语句之后。冒泡结束时;91.43、选择排序运行;选择结束时;1.44、插入法运行9;不需要插入时当需要插入时(括号中为刚插入的数字);插入法运行结束时1.45、shell排序法运行时排序过程中输出每组的个数,正在比较的组数以及组中的第几个数正在比较当单个数字为一组时,表示函数即将运行完毕,1.5程序设计及部分说明1、主函数;srand(time(NULL));//时间种子for(i=0;i<10;i++)a[i]=rand()%1
8、0+1;循环赋值注释:运用时间取随机数while(q<1
9、
10、q>5){printf("请选择正确的选项数字:");scanf("%d",&q);9}注释:运用while语句实现输入错误的检查,及错误的再次输入更正。2、冒泡子函数;分析;1、其中bijiao,jiaohuanle两个变量
此文档下载收益归作者所有