1、1 电子设计应用软件训练任务电子设计应用软件训练任务 一 、训练任务 1、PROTEL 部分 (1) 熟练掌握PROTEL 软件的使用; (2) 按要求绘制电路原理图和PCB 版图(能够用自动布线和手动布线相结合); (3) 能够按要求建立元件库和封装库。 2、软件设计部分 按照给定的软件设计任务完成相应的软件设计(见软件设计任务部分)。 二、基本要求及说明 1、PROTEL 部分 (1) 电路原理图图纸尺寸按照给定的任务作相应的设置; (2) 电路原理图见PROTEL 训练任务部分; (3) 按指定电路图在PROTEL 99 中绘制原理图和印制板图; (4) 按照给定要求创建原理图器件和该器
2、件的相应的封装(见 PROTEL 训练任务部 分) 。查找资料, 按资料创建原理图中某一元件及其封装形式; 2、软件设计部分 按软件设计要求实现相应的功能(见软件设计任务部分) 三三、按照要求撰写总结报告按照要求撰写总结报告 成绩评定表成绩评定表 评语、建议或需要说明的问题:评语、建议或需要说明的问题: 指导教师签字:指导教师签字: 日期:日期: 成成 绩绩 2 软件设计部分软件设计部分 一题目分析一题目分析 利用随机函数产生 N 个随机整数,对这些数进行多种方法进行排序。 要求:至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、 希尔排序、起泡排序、快速排序、选择排序、堆排序、
3、归并排序) 。并把排序后的结 果保存在不同的文件中。 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比) ,找 出其中两种较快的方法。 二设计过程(程序流程图)二设计过程(程序流程图) 1.定义一个结构体类型的线性表,并将该线性表初始长度设置为 0。 2.构造输入随机数并显示在界面上的函数和输出排序之后的数据函数, 使排序前和排 序后的结果能直观显示在屏幕上。 3.主函数调用直接插入排序函数,通过函数调用将随机数进行排序。流程图如图 11 所示。 3 Y N Y N Y N Y 图 11 直接插入排序函数流程图 定义整型变量 i,j L.length=0 开始 输出要排序的 数
4、据为空! i=2 i后面数据时 t=L.rj+1; L.rj+1=L.rj; L.rj=t; /将元素交换 return OK; / 下面为选择排序函数 sequenlist ChooseSort(Sqlist 16 if(L.length=0) printf(“没有数据!“); return ERROR; for(i=1;i=L.length;i+) /排序的趟数 k=i; for(j=i+1;j=L.length;j+) /比较第 i 个元素以及其后的数据中最小的 if(L.rjL.rk) k=j; if(i!=j) /将最小数据赋值给 L.ri t=L.ri; L.ri=L.rk; L.
5、rk=t; return OK; 17 /下面为主函数函数 void main() Sqlist L; Sqlist L0; InitSqlist(L); /初始化 L InitSqlist(L0); int m,i; char choice=z; clock_t start, finish; /定义 clock_t 用于计时 double duration; /向 L 中输入元素 printf(“n n“); printf(“ n“); printf(“ 排序算法比较系统 n“); printf(“ n“); printf(“ n“); printf(“ 以下是各个排序算法的代号:nn“); printf(“ 1、直接插入排序 n“); printf(“ 2、起泡排序 n“); printf(“ 3、选择排序n“); 18 printf(“ 4、退出该系统nn“); ScanfSqlist(m,L0); printf(“n“); printf(“ 1、直接插入排序 n“); printf(“ 2、起泡排序 n“); printf(“ 3、选择排序n“); printf(“ 4、退出该系统nn“); pri