选择法与插入法排序比较C++报告书

更新时间:2024-01-02 12:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C河北联合大学 2011-2012第2学期

《软件设计基础-C++》

课程设计报告

设计名称: 选择法与插入法排序比较 姓 名: 学 号: 专业班级: 学 院:

设计时间: 2012年5月20日—2012年6月15日 设计地点: 学校机房

指导教师评语: 成绩: 指导教师签字: 年 月 日 《软件设计基础-C++》课程设计报告 第 2 页,共 11 页

目 录

1.课程设计目的 ·············································································· 3 2.课程设计任务与要求 ····································································· 3 3.课程设计说明书 ··········································································· 4 4.课程设计成果 ·············································································· 5 5.程序调试过程 ············································································ 10 6.设计问题的不足和改进方案 ··························································· 11 7.课程设计心得 ············································································ 12 8.参考文献 ·················································································· 13

《软件设计基础-C++》课程设计报告 第 3 页,共 11 页

1.课程设计目的 (1)培养学生综合利用C++语言进行程序设计的能力,掌握排序算法,使学生能够解决信息管理系统中的一些问题。 (2)提高学生建立程序文档、归纳总结的能力。 2.课程设计任务与要求: 要求: 本次课程设计利用《软件设计基础-C++》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。 要求: 1、对系统进行功能需求分析 2、设计合理的数据结构和系统框架 3、编程简练,程序功能齐全,能正确运行 4、说明书、流程图要清楚 5、课题完成后必须按要求提交课程设计报告 任务: (1)要求用C++模块化设计的思想来完成程序的设计; (2)要求各个功能分别使用函数来完成,各个函数分放在不同文件中。 (3)源代码程序要求必要的注释。 创新: 在基本要求达到后,可以进行创新设计,如讨论各种排序算法的优劣。 《软件设计基础-C++》课程设计报告 第 4 页,共 11 页

3.课程设计说明书 ⑴概要设计 模块说明: 在我设计的程序中一共包括了俩个模块,分别是:选择排序模块、插入排序模块。这三个模块中输入、排序、输出都是独立分开,俩模块是通过switch语句联系起来的,同时,为了实现多次使用这俩个模块,就在switch语句外加了while循环。 ⑵详细设计 总体流程图: Main While Switch 继续循环 Case1 Case2 Default Input Input Selectsort Insertsort Output Output If(flag=’n’||flag==’N’) 1 0 退出程序循环 《软件设计基础-C++》课程设计报告 第 5 页,共 11 页

4.课程设计成果 程序源代码: 主函数: #include #include\#define N 10 void main() { while(1) { //输入菜单 cout<<\菜单\\n\cout<<\cout<<\、选择法排序 2、插入法排序\\n\cout<<\int data[N];//排序数组 int count=0; int select; char flag;//退出判断 cout<<\请选择排序方法...\\n\cin>>select; switch(select) { case 1://选择选择法排序 { } Input(data,N);//输入数组 SelectSort(data,N,count);//选择法排序 Output(data,N,count);//输出 break; case 2://选择插入法排序 { Input(data,N);//输入数组

《软件设计基础-C++》课程设计报告 第 6 页,共 11 页

} 调用函数: #include #include\ void Input(int *data,int n) { //输入数组 cout<<\请输入\个整数...\\n\ for(int i=0;i>data[i]; } } void Output(int *data,int n,int count) { //输出排序好的数组 cout<<\排序结果为:\\n\ for(int i=0;i>flag; if(flag=='n'||flag=='N')//判断是否退出 break; cout<<\输入有误,请重新输入!!!\\n\continue; 《软件设计基础-C++》课程设计报告 第 7 页,共 11 页

{ int i; int j; int temp = 0; int flag = 0; //排序循环 for(i = 0; i < n-1; i++) { temp = data[i]; flag = i; for(j = i+1; j < n; j++) { if(data[j] > temp) { temp = data[j];//目前最大数 flag = j; // 目前最大的元素的下标· } } if(flag != i) // 如果最大的元素不是进行筛选的数据中的第一个,则将最大数据与第一个筛选数据交换 { data[flag] = data[i]; data[i] = temp; count++; } } } //插入法排序 void InsertSort(int *data,int n,int &count) { int i,j,temp; bool flag=false;//检测是否进行了排序 for(i=1;i=0;j--) { if(temp>data[j]) { data[j+1]=data[j]; data[j]=temp; flag=true; } } if(flag) 《软件设计基础-C++》课程设计报告 第 8 页,共 11 页

} } count++;//排序次数 运行结果: 《软件设计基础-C++》课程设计报告 第 9 页,共 11 页

《软件设计基础-C++》课程设计报告 第 10 页,共 11 页 5.程序调试过程 程序调试步骤: 1. 认真分析任务书,明确程序的功能,分析程序用到的函数,有一个基本的思路。 2. 查找资料(如:去图书馆,上网),开始准备编写程序。 3. 开始编写程序,运行程序,修改程序运行中遇到的错误。 4. 调试程序,使其顺利运行。 遇到的问题: 1.主函数调用其他函数出现问题,对其进行修改。 2.循环大括号遗漏,加上大括号。 3.标点符合格式有问题,改输入法,重新输入标点符号。 6.设计问题的不足和改进方案 1.不能对数组进行判断哪一种排序方法最适合,浪费资源,应该加一种功能,就是自动选取最佳排序方法,对所给数组排序。 2.对排序数组里的数字个数有限制,应该有一种功能可以对任意个数进行排序。 《软件设计基础-C++》课程设计报告 第 11 页,共 11 页

7.课程设计心得 通过对c++程序的设计,使我对c++语言有了更深的认识和了解,在我看来要想学好它重在实践。 从一开始选定题目,再向学姐请教,然后去图书馆寻找资料,从一开始的茫然到后来的稍有头绪。开始自己编写程序,修改程序,请学姐帮忙指点。就这样,一遍一遍的重复,程序终于写好了。在这个过程中我对程序的编写有了基本的来了解,同时也学会了分析问题,将复杂的问题细化分类来处理,还有就是如何寻找突破口解决问题。还学会了在编写程序的同时做好记录文档的工作,对以后程序的调试,复检做准备。 在这次程序设计过程中,我学会了很多东西,比如:做任何事一定要细心,就像编写程序一个标点错误,整个程序就运行不了;还有就是以后一定要多去图书馆,在里面我们可以学到许多课堂上学不到的东西。这些都会对我以后的学习有很大的帮助。 8.参考文献 [1] 温秀梅,等.Visual C++面向对象程序设计教程与实验.北京:清华大学出版社,2005. [2] 谭浩强.C++程序设计.北京:清华大学出版社,2004. [3] 刘瑞新.Visual C++面向对象程序设计教程.北京:机械工业出版社,2004. [4] 黄维德,等.C语言程序设计.北京:清华大学出版社,2003. [5] 郑阿奇.Visual C++实用教程.2版.北京:电子工业出版社,2003. [6] 郑莉,等.C++语言程序设计.北京:清华大学出版社,2000.

《软件设计基础-C++》课程设计报告 第 11 页,共 11 页

7.课程设计心得 通过对c++程序的设计,使我对c++语言有了更深的认识和了解,在我看来要想学好它重在实践。 从一开始选定题目,再向学姐请教,然后去图书馆寻找资料,从一开始的茫然到后来的稍有头绪。开始自己编写程序,修改程序,请学姐帮忙指点。就这样,一遍一遍的重复,程序终于写好了。在这个过程中我对程序的编写有了基本的来了解,同时也学会了分析问题,将复杂的问题细化分类来处理,还有就是如何寻找突破口解决问题。还学会了在编写程序的同时做好记录文档的工作,对以后程序的调试,复检做准备。 在这次程序设计过程中,我学会了很多东西,比如:做任何事一定要细心,就像编写程序一个标点错误,整个程序就运行不了;还有就是以后一定要多去图书馆,在里面我们可以学到许多课堂上学不到的东西。这些都会对我以后的学习有很大的帮助。 8.参考文献 [1] 温秀梅,等.Visual C++面向对象程序设计教程与实验.北京:清华大学出版社,2005. [2] 谭浩强.C++程序设计.北京:清华大学出版社,2004. [3] 刘瑞新.Visual C++面向对象程序设计教程.北京:机械工业出版社,2004. [4] 黄维德,等.C语言程序设计.北京:清华大学出版社,2003. [5] 郑阿奇.Visual C++实用教程.2版.北京:电子工业出版社,2003. [6] 郑莉,等.C++语言程序设计.北京:清华大学出版社,2000.

本文来源:https://www.bwwdw.com/article/v15x.html

Top