- 17
- 0
- 约4.48千字
- 约 10页
- 2017-06-02 发布于河南
- 举报
程序设计大作业——排序
《程序设计基础》大作业
姓 名: 张彬 学 号: 1001051135 班 级: 信管10-01 成 绩:
信息科学与工程学院
20011年月日
程序设计基础大作业
数字的排列以及其排序过程的演示
1.1 需求陈述:
数字排列方法是多样的,如插入法,冒泡法,选择排序,shell排序等;而这些排序方法的思路大不相同。因此本程序是将数字的排序过程以图像的方式展示出来,以方便他人学习。
1.2 需求分析 :
1.2.1:功能需求:
项目 功能 组成 备注 Order 主函数 不同系统的选择选择需要的排序方法 在主函数每一次选择时都允许多次选择错误,只要没有输入正确的选项就会一直执行输入操作 数组的产生方式 选择需要的排序方法 选择错误的检测 子函数的调用 子函数(冒泡
,选择) 相邻的数字依次比较 根据大小进行交换 循环并记录交换结果 交换过程用图形展示 子函数(插入) 数字比较 数字移位 数字插入 图形展示 子函数
(shell) 将数组元素多次分组 每一次分组后都进行比较交换 数字每次输出,并提示分组情况及比较情况 1.3 设计思想:
1 、函数库调用
#includestdio.h
程序内容的输入输出
#includetime.h
实现时间控制
#includestdlib.h
取得随机数
#includewindows.h
实现清屏
2、子函数的设计
A、冒泡排序子函数
声明:int maopao( int *a,int n)
功能:用冒泡法对数组中的元素进行排列,并将其中的比较,以及交换的次数输出。最终完成比较,以递增的顺序将排列好的数组输出。
实现思路:由第一个数开始,每个数依次同其下一个数字比较并根据大小进行交换。根据数组的大小确定循环次数。最终实现数组中的元素排序。其中,使数组中的元素以图像的形式展示出来。并对正在比较的元素用特殊符号标记。用+组成正在比较的数字,用-组成其他数字。
B、选择法子函数
声明:int xuanze(int *a,int n)
功能:用选择排序法对数组中的元素进行排列,并将其中的比较,以及交换的次数输出。最终完成比较,以递增的顺序将排列好的数组输出。
实现思路:由第一个数开始,第一个数依次与所有数比较。找到最小数,放在第一位。再从第二个数开始进行比较找到剩下数中最小数。以此类推,从而实现对所有的数字排序。
C、插入法子函数
声明:int charu(int *a,int n)
功能:用插入排序法对数组中的元素进行排列,并将其中的比较,以及插入的次数输出。最终完成比较,以递增的顺序将排列好的数组输出。
实现思路:每个数依次和后面的数比较,根据大小关系,决定所要插入的位置,要插入位置及以后的数字分别后移一位,再用要插入的数进行赋值。
D、shell排序子函数
声明:void shell(int *a,int n)
功能:在本程序中,选用了元素的个数的一半作为分组的依据。首先将数组分组并用#显示出分组情况,再在每一组之间将相同位置的数字进行比较对换,显示出第几组与第几组的第几个元素在进行比较对换,以后进行多次分组,每一次都按照相同的方法进行比较对换,当每组中的元素成为壹时,进行最后一轮比较对换,再将最后的数组输出
3、主函数的设计:
主函数中运用switch语句使用户对不同情况做出选择,运用while语句作为错误检测,当选择错误时可以再次选择,在屏幕菜单输出时运用空格是屏幕美观化。
1.4系统测试显示及思想
1.41、进入界面;
注释:在此完成对系统的选择(由于检测需求,需要在不同系统中运行。)
注释:要求先输入要排序的数组中个数;此选项用简单的输出和输入完成。
注释:输入数组是用一个for循环输入,而产生随机数则是用时间做种子,再对数字取余得到
当选择自主输入数字时,所显示的为当前界面。
注释:简单的switch语句,中间没有加了default。
Default只能提示一次,如果用循环提示出错则可以多次改正,并提示。
如果输入有误;
1.42、冒泡法运行时的界面;
注释:比较次数和交换次数,用两个变量就可以,只是比较次数放在双重循环之后,而交换次数放在if判断语句之后。
冒泡结束时;
1.43、选择排序运行;
选择结束时;
1.44、插入法运行
;不需要插入时
当需要插入时(括号中为刚插入的数字);
插入法运行结束时
1.45、shell排序法运行时
排序过程中输出每组的个数,正在比较的组数以及组中的第几个数正在比较
当单个数字为一组时,表示函数即将运行完
您可能关注的文档
最近下载
- 胜达克(Adaptstar)ATE工程模式使用说明.pptx
- 【电脑小知识】:如何使用注册表来恢复误删的Win7便签?.docx VIP
- 项目经理年终个人总结报告.docx VIP
- 选择性必修2湘教地理教材习题答案.docx VIP
- 高考语文十年(2016-2025)真题《字音字形》专项汇编(答案解析版).docx VIP
- 超大规模集成电路2017秋段成华老师第四次作业.doc VIP
- 十字相乘法因式分解练习100题及答案.docx VIP
- 2025造价师工程师(一级)-造价管理专题讲义总版-在线版.pdf VIP
- 十年(2016-2025)高考语文真题分类汇编:专题15 图文转换(全国通用)(解析版).docx VIP
- 700t/d浮法玻璃退火窑安装和调试中的几点注意事项.pdf VIP
原创力文档

文档评论(0)