文档介绍:浪阴工岩浣
通信软件技能训练报告
选题名称:
学 院:
专 业:
班 级:
姓 名:学号:
指导教师:
学年学期:学年第 学期
年 月 日
1 -课题需求
本次选择的课题的名称是数据排序。排序是数据处理中经常使用的一种重要 运算。所谓排序就是将这n个记录按关键字大小递增或递减重新排列。
当待排序记录的关键字均不相同时,排序结果是惟一的,否则排序结果不唯 一。如果文件中关键字相同的记录经过某种排序方法进行排序之后,仍能保持它 们在排序之前的相对次序,则称这种排序方法是稳定的;否则,称这种排序方法 是不稳定的。
几乎所有的排序都有两个基本的操作:
CD关键字大小的比较。
C2)改变记录的位置。具体处理方式依赖于记录的存储形式,对于顺序型记 录,一般移动记录本身,而链式存储的记录则通过改变指向记录的指针实现重定 位。
排序的算法很多,不同的算法有不同的优缺点,没有哪种算法在任何情况下 都是最好的。评价一种排序算法好坏的标准主要有两条:
CD执行时间和所需的辅助空间,即时间复杂度和空间复杂度;
C2)算法本身的复杂程度,比如算法是否易读、是否易于实现。
按策略划分,内部排序方法可以分为五类:插入排序、选择排序、交换排序、 归并排序和分配排序。此次课程设计需要用到四种排序方法,分别为:插入排序、 交换排序、选择排序、归并排序。这项课题的关键在于如何对数据进行处理,并 按照一定的大小来排序。在数据的处理时要不能改变数据的大小,只能改变他们 的位置,所以要用到数组来存储和转移数据而不改变他们的大小。并且在不同界 面下可以相互切换,这就要求要用到switch case语句。
总体设计
定义一个全局的数组a[60],用来存储数据。
数组的定义格式为:
类型说明符数组名[常量表达式]
常量表达式代表数组中元素的个数,即数组的长度。这里的常量表达式为 60.
2设计总体功能结构
定义输出函数output (),插入排序函数insert (),选择排序函数choice (),交换排序函数exchange (),归并排序相关的两个函数Merge ()和 MergeSort () □通过主函数利用switch case语句根据输入的代表不同功能的数 字来用不同的方法处理数据。输入数字1时用插入排序处理数据;输入数字2 时用选择排序法处理数据;输入数字3时用交换排序法处理数据;输入数字4 时用归并排序法处理数据;输入数字0时退出程序。其中的函数再调用输出函数 output 0;使每个排序运行过之后都输出数据。利用函数调用来处理,处理后都 能输出得到相应的处理后的数据。
实现方法和详细流程
1涉及的基础知识与解决问题的基本思路
C++知识:循环语句、开关语句、选择语句、数组、函数、break语句。
for()语句
for()循环语句的一般格式为:
for«表达式1>;〈表达式2>;〈表达式3>)
S;
其中,三个表达式都可以是C++中的任一符合语法规则的表达式;语句S可 以是任一C++的语句。同样地将语句S称为for()的内嵌语句,并把称为循环体。
for()语句的执行过程如下;首先计算“表达式1”(循环初值),且仅计算 一次。每一次循环之前计算“表达式2”(循环条件),如果其结果为真,则执行 “语句” S,并计算“表达式3”(循环增量)。否则,循环终止。
while ()语句
while ()语句的一般格式为:
while (〈表达式〉)
语句;
while ()语句的执行过程如下:先判断表达式的值;若表达式的值为真,则继续 执行循环体,直到表达式的值为假为止。
C3)开关语句
开关语句switch语句,它也称为多选择语句。它可以根据给定的条件,从 多个分支语句序列中选择执行一个分支的语句序列。switch语句的一般格式 为:
switch (表达式)
(
case常量表达式1:语句;
case常量表达式2:语句;
case常量表达式n:语句;
default:语句;
}
switch语句的执行过程如下:首先计算“表达式”的值,然后,其结果值依 次与每一个常量表达式的值进行匹配。如果匹配成功,则执行该常量表达式后的 语句系列。当遇到break时,则立即结束switch语句的执行,否则,顺序执行 到花括号的最后一条语句。
选择语句(多分支)
选择语句if语句能够出现在另一个if语句或if-else语句里。
嵌套if语句有两种形式:一种是嵌套在else分支中,格式为:
if (表达式1)语句1;
else if (表达式2)语句2;
else if
else语句n;
第2种是嵌套在if分支中,格式为: