c语言实训报告_c语言编程实训报告

2020-02-27 其他范文 下载本文

c语言实训报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言编程实训报告”。

C语言排序比较

目 录

一、目的概述。。。。。。。。。。。。。。。。。。。。3

二、实验(设计)仪器设备和材料清单。。。。。。。。。3

三、项目分析和设计。。。。。。。。。。。。。。。。。3

四、项目关键代码。。。。。。。。。。。。。。。。。。6

五、项目调试和运行。。。。。。。。。。。。。。。。。12

六、实训设计的心得体会。。。。。。。。。。。。。。。16

C语言课程实训设计报告

一、目的概述

我这次实训的项目主要是排序法的编写,运行和比较,主要有直接插入排序,选择排序法,冒泡排序法,快速排序法;由主函数对这四个排序法分别进行调用,用最小的时间空间资源利用率得出正确的排序结果。通过比较得出四种排序算法的优劣,以及在那种情况下该使用哪种排序法才最为简便。

二、实验(设计)仪器设备和材料清单

1.硬件:PC机

2.软件:turboc 2.0,visula c++ 6.0

三、项目分析和设计

这个项目的程序可分为几个板块来做,每个板块有每个板块的作用,通过不同程序的不同作用相互调用即可实现整个程序的运行,这个项目程序主要可以分为以下几个板块: 1.抽象数据类型定义

InsertSort(RECNODE*r,int n)// 插入排序// BubleSort(RECNODE *r,int n)//冒泡排序// QuickSort(RECNODE*r,int start,int end)//快速排序// SeleSort(RECNODE*r,int n)// 选择排序// ShellSort(RECNODE *r,int n)//希尔排序// HeapSort(RECNODE*r,int n)//堆排序// 2.子程序及功能要求

1)用Void 来定义6个排序的子程序 Void InsertSort(RECNODE*r,int n)Void BubleSort(RECNODE *r,int n)Void QuickSort(RECNODE*r,int start,int end)Void SeleSort(RECNODE*r,int n)Void ShellSort(RECNODE *r,int n)Void HeapSort(RECNODE*r,int n)2

(2)使用switch语句,当用户从键盘输入一个数字时,则选择对应的排序算法。scanf(“%d”,&p);switch(p){ case 1: case 2: case 3: case 4: case 5: case 6: case 0:break;default:printf(“输入错误!请重新输入!n”);break;} 3.各程序模块之间的调用关系

主函数(main)调用switch模块,按照用户的要求,通过switch语句,再调用相应的排序算法模块。4 详细设计

4.1设计相应的数据结构 typedef struct { int key;定义关键字类型为整数类型 }RECNODE;#define MAXSIZE 150 一个用作示例的小顺序表的最大长度 4.2主要模块的算法描述

int main()主模块 { RECNODE a[MAXSIZE];int len,p;do { printf(“**********************n”);显示界面 printf(“* 菜 单 *n”);3

printf(“**********************n”);printf(“* 1---直接排序 *n”);printf(“* 2---冒泡排序 *n”);printf(“* 3---快速排序 *n”);printf(“* 4---选择排序 *n”);printf(“* 5---堆排序 *n”);printf(“* 6---希尔排序 *n”);printf(“* 0---退出 *n”);printf(“**********************n”);printf(“n请在上述序号中选择一个并输入: ”);scanf(“%d”,&p);switch(p)switch子模块 { case 1:len=MakeList(a);UndealoutList(a,len);InsertSort(a,len);插入排序子模块 DealoutList(a,len);break;case 2:len=MakeList(a);UndealoutList(a,len);BubleSort(a,len);冒泡排序子模块 DealoutList(a,len);break;case 3:len=MakeList(a);UndealoutList(a,len);QuickSort(a,1,len);快速排序子模块 DealoutList(a,len);break;case 4:len=MakeList(a);UndealoutList(a,len);SeleSort(a,len);选择排序子模块 DealoutList(a,len);break;case 5:len=MakeList(a);UndealoutList(a,len);HeapSort(a,len);堆排序子模块 DealoutList(a,len);break;case 6:len=MakeList(a);UndealoutList(a,len);ShellSort(a,len);希尔排序子模块 DealoutList(a,len);4

break;case 0:break;跳出switch子模块 default:printf(“输入错误!请重新输入!n”);break;} }while(p!=0);}

四、项目关键代码

#include “stdlib.h” #define MAXSIZE 150 #include typedef struct { int key;}RECNODE;int b,t;int MakeList(RECNODE *r){ int j,k;printf(“n请输入初始数据(每个数据以空格隔开,-1结束):k=0;scanf(”%d“,&j);while(j!=-1){ k++;r[k].key=j;scanf(”%d“,&j);} return k;} void UndealoutList(RECNODE *r,int n){ int i;printf(”n未排序前的数据 : “);for(i=0;i

”);

for(i=0;i

void BubleSort(RECNODE *r,int n)//冒泡排序// { int i,j;b=0,t=0;RECNODE temp;for(i=1;i=i;j--)if(r[j+1].key

else b++;t++;} } int Partition(RECNODE*r,int*low,int*high)//一躺快速排序// { int i,j;static int w=0;RECNODE temp;i=*low;j=*high;temp=r[i];do { while((r[j].key>=temp.key)&&(i

{ int i;static int q=0;if(start

C语言实训报告

C语言实训报告 做完这个课程设计,我们的自信一下子提高了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了......

C语言实训报告

C语言实训报告一、实训目的:1、能够正确编译C语言的某些程序、更深一步的了解C语言的步骤。2、熟练掌握C语句的逻辑表达式、函数的运算表达式及运算符。3、在编译的过程中明......

C语言实训报告

湖北汽车工业学院电气与信息工程学院《C语言程序设计》实训报告实训题目: 学生信息管理系统 专业: 汽车电子工程专业 班级: 姓名: 成绩: 一、需求分析1、问题根据需求,该系统......

C语言实训报告

做完这个课程设计,我们的自信一下子提高了;尽管对于有些人这种程序会很简单,可对我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动......

C语言实训报告

在这个星期里,我们在专业老师带领下进行了C语言程序实训练习。一周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!首先,在实训中的第一步是编写一个图书管理系......

《c语言实训报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言实训报告
点击下载文档
相关专题 c语言编程实训报告 报告 实训 语言 c语言编程实训报告 报告 实训 语言
[其他范文]相关推荐
[其他范文]热门文章
下载全文