ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:66.22KB ,
资源ID:2857701      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2857701.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(选择法与插入法排序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

选择法与插入法排序.docx

1、选择法与插入法排序河北联合大学 软件设计基础(C+)课程设计报告设计名称:选择法与插入法排序 姓 名: 学 号:专业班级: 学 院: 设计时间: 设计地点: 计算机中心 成绩:指导教师评语: 指导教师签字: 年 月 日1.课程设计目的 32.课程设计任务与要求 33.课程设计说明书 44.课程设计成果 65.程序调试过程 96.设计问题的不足和改进方案 107.课程设计心得 108.参考文献 101课程设计目的培养学生综合利用C+语言进行程序设计的能力,并培养学生利用MFC在Visual C+中进行可视化编程的能力。加强学生对面向对象程序设计方法的初步认识,提高软件系统分析能力和程序文档建立、

2、归纳总结的能力,主要是培养学生利用MFC和Visual C+中的可视化编程工具进行Windows程序设计和开发的能力。2课程设计任务与要求:要求:本次课程设计利用软件设计基础(C+)课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、编程简练,程序功能齐全,能正确运行4、说明书、流程图要清楚5、课题完成后必须按要求提交课程设计报告3课程设计说明书(1)选择法 算法要求:用选择法对10个整数按降序排序。 算法分析:每趟选出一个最值和无序序列的第一个数交

3、换,n个数共选n-1趟。第i趟假设i为最值下标,然后将最值和i+1至最后一个数比较,找出最值的下标,若最值下标不为初设值,则将最值元素和下标为i的元素交换。算法特点:每趟是选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序或升序排序。(2)插入法 算法要求:用插入排序法对10个整数进行降序排序。 算法分析:将序列分为有序序列和无序列,依次从无序序列中取出元素值插入到有序序列的合适位置。初始是有序序列中只有第一个数,其余n-1个数组成无序序列,则n个数需进n-1次插入。寻找在有序序列中插入位置可以从有序序列的最后一个数往

4、前找,在未找到插入点之前可以同时向后移动元素,为插入元素准备空间。算法特点:每趟从无序序列中取出第一个数插入到有序序列的合适位置,元素的最终位置在最后一趟插入后才能确定位置。也可是先用循环查找插入位置(可从前往后或从后往前),再将插入位置之后的元素(有序列中)逐个后移一个位置,最后完成插入。该算法的特点是在寻找插入位置的同时完成元素的移动。因为元素的移动必须从后往前,则可将两个操作结合在一起完成,提高算法效率。仍可进行升序或降序排序。Main主函数和未排序的第一个数交换将待插入数暂存于变量t中, 在有序序列中寻找插入位置若未找到插入位置,则当前元素后移一个位置; 找到插入位置,完成插入外循环控

5、制趟数,n个数从第2个数开始到最后共进行n-1次插入10个整数插入法排序完成,输出否找出未排序的数种最小的一个10个整数选择法4课程设计成果选择法:#includeusing namespace std;void select_sort(int array,int n)/ n 为数组元素个数int i,j,k,temp; / i 为基准位置,j 为当前被扫描元素位置,k 用于暂存出现的较小的元素的位置for(i=0;in;i+)k=i;/初始化为基准位置for(j=i+1;jarrayk)k=j;/ k 始终指示出现的较小的元素的位置/forif(k!=i)temp=arrayi;arrayi

6、=arrayk;arrayk=temp;/ 将此趟扫描得到的最小元素与基准互换位置coutarrayi;coutn; int cin_array(int a,int num)coutnum;for(int i=0;inum;i+)coutai;return num;void main()int *a=new int ;int n;n=cin_array(a,n);/n=sizeof(a)/sizeof(*a);求变长数组元素的个数,在本程序中,这个函数没用select_sort(a,n); 插入法:#includeusing namespace std;/输出数组中的每个元素void cout

7、_array(int a,int num)for(int i=0;inum;i+)coutai ;/定义随即数组int cin_array(int a,int num)coutnum;for(int i=0;inum;i+)coutai;return num;void insert_sort(int a,int num)/需要选择n-1次int i,j,temp;for(i=1;i=0 & tempaj;j-)/如果后面的数比前面的大,就将前面的数移到后面,后面的数移到前面aj+1=aj;aj+1=temp;/找到下标为i的数的位置void main()int *a=new int;int n

8、um;num=cin_array(a,num);insert_sort(a,num);cout_array(a,num);coutendl; 6.设计问题的不足和改进方案不足:首先,此次课程设计要求用c+进行设计,但是整个过程却更偏重于c语言,对于c+中的特有继承等并无涉及,如果将几个函数类似的地方使用集成的方法设计,可以提高程序的性能。对于各种排序法时间复杂度的统计,输出的是所有排序的元素的比较 移动次数,而如果用户只需要 看到其中两种或三种排序方法的比较结果,就不能确切的达到用户的要求了。 还有,变量的定义有些乱,有些甚至是赘余的,可以删去。7.课程设计心得1.做这次课程设计明显的看出自己

9、的不足,以及自己所学知识的有限,遇到的最大问题就是拿到这个题目无从下手,后来经过老师的教导和自己查找有关资料得以解决。问题一:对课程设计的题目的题意不是很清楚。后来通过和伙伴共同探讨,知道了题目大概要用到什么知识点2.我觉得可以用类中的派生类做比较好,那样的话,程序的条理比较清晰,并且容易理解。3.可以扩充的功能可以加上计算员工工资的结算(如按照薪水和奖金以及罚金结算工资),还有可以加上运用运算符重载的功能实现。我希望我做的课程设计有个美好的界面以及很方面地为广大消费者服务。可以的话,加上些消遣的小程序也是可以的,同时提供些学习的程序方便学习英语以及其他8.参考文献1 Bjarne Strou

10、strup, THE C+ PROGRAMMING LANGUAGE, Higher Education Press Pearson Education,20022 美Walter Savitch著,周靖译,C+面向对象程序设计基础、数据结构与编程思想,清华大学出版社,20043 美Brian Overland著,董梁等译,C+语言命令详解,电子工业出版社,20004 陈光明主编,实用Visual C+编程大全,西安电子科技大学出版社,20005 美Beck Zaratian著,Visual C+6.0Programmers Guide,北京希望电脑公司,19986 美Jon Bates, Tim Tonpkins著,何健辉等译,实用Visual C+6.0教程,清华大学出版社,20007 美Robert L.Krusw,Alexander J.Ryba著,钱丽萍译,C+数据结构与程序设计,清华大学出版社,2004

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1