沈阳航空航天大学-课程设计排序算法比较.docx
文本预览下载声明
PAGE
沈阳航空航天大学电子信息工程学院
电子设计应用软件训练
总结报告
学生姓名:
专 业: 电子信息工程
班 级:
学 号: 54
指导教师:
训练时间:2012年 7月9日至 2012年7月20日
电子设计应用软件训练总结报告
PAGE
PAGE \* MERGEFORMAT 2
电子信息工程学院
电子设计应用软件训练任务
一 、训练任务
1、PROTEL 部分
(1) 熟练掌握PROTEL 软件的使用;
(2) 按要求绘制电路原理图和PCB 版图(能够用自动布线和手动布线相结合);
(3) 能够按要求建立元件库和封装库。
2、软件设计部分
按照给定的软件设计任务完成相应的软件设计(见软件设计任务部分)。
二、基本要求及说明
1、PROTEL 部分
(1) 电路原理图图纸尺寸按照给定的任务作相应的设置;
(2) 电路原理图见PROTEL 训练任务部分;
(3) 按指定电路图在PROTEL 99 中绘制原理图和印制板图;
(4) 按照给定要求创建原理图器件和该器件的相应的封装(见PROTEL训练任务部分)。查找资料, 按资料创建原理图中某一元件及其封装形式;
2、软件设计部分
按软件设计要求实现相应的功能(见软件设计任务部分)
三、按照要求撰写总结报告
成绩评定表
评语、建议或需要说明的问题:
指导教师签字: 日期:
成 绩
软件设计部分
一.题目分析
利用随机函数产生N个随机整数,对这些数进行多种方法进行排序。
要求:至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。
统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
二.设计过程(程序流程图)
1.定义一个结构体类型的线性表,并将该线性表初始长度设置为0。
2.构造输入随机数并显示在界面上的函数和输出排序之后的数据函数,使排序前和排序后的结果能直观显示在屏幕上。
3.主函数调用直接插入排序函数,通过函数调用将随机数进行排序。流程图如图11所示。
定义整型变量 i,j开始
定义整型变量 i,j
开始
L.length==0
L.length==0
Y
i=2
i=2
输出要排序的数据为空!
输出要排序的数据为空!
i=L.length N
i=L.length
返回 Y
返回
L.r[i]L.r[i-1]
L.r[i]L.r[i-1]
返回返回 N
返回
返回
L.r[0]=L.r[i]; L.r[i]=L.r[i-1] Y
L.r[0]=L.r[i]; L.r[i]=L.r[i-1]
i=i+1
i=i+1
j=i-2
j=i-2
L.r[j+1]=L.r[j]
L.r[j+1]=L.r[j]
j=j-1
j=j-1
L.r[0]L.r[j] N
L.r[0]L.r[j]
Y
L.r[j+1]=L.r[0]
L.r[j+1]=L.r[0]
图11 直接插入排序函数流程图
开始主函数调用起泡排序函数,通过函数调用将随机数进行排序。流程图如图12所示。
开始
定义整型变量 i,j,t
定义整型变量 i,j,t
L.length==0 N
L.length==0
Y
i=1
i=1
i=L.length-1输出要排序的数据为空!
i=L.length-1
输出要排序的数据为空!
返回 N
返回
j=1 Y
j=1
返回
返回
j=L.length-i
j=L.length-i
N
返回i=i+1
返回
i=i+1
j=j-1L.r[j]L.r[j+1] Y
j=j-1
L.r[j]L.r[j+1]
返回 N
显示全部