当前位置:文档之家› C语言课程设计报告---根据条件进行学生成绩排序

C语言课程设计报告---根据条件进行学生成绩排序

课程设计报告课程设计题目:根据条件进行学生成绩排序
学号:
姓名:
专业:
班级:
指导教师:
2012年6月24日
目录
(一)实验题目 (3)
(二)实验目的 (3)
(三)实验要求 (3)
(四)实验思路 (3)
(五)实验过程 (5)
(六)实验调试与结果 (8)
(七)实验小结 (8)
一.实验题目
根据条件进行学生成绩排序
(1)定义数组用以存放学生的成绩;
(2)在函数中进行5个学生成绩从高到低排序 sort1(int a[5]);
(3)改进第一步的函数为sort2(int a[],int n),进行n个学生成绩从高到低排序;
(4)改进第二步的函数为sort3(int a[],int n, char style), 将n个学生成绩排序,排名方式根据style参数进行,如style为‘a’按升序排,style 为’d’按降序排;
(5)将以上每一步骤的结果均输出,验证程序是否实现题目要求。

二.实验目的
本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体等相关内容的综合应用,使学生能进一步熟悉掌握C语言的基本语法,进一步提升编程能力并逐步培养编程思维,进而不断提高学生解决问题的能力,并为以后的语言学习打下良好的基础。

三.实验要求
1.要求我们独立完成课程设计的主要内容;
2. 按照实验课表安排进行,不得无故旷课;
3.按照选题规则确定课程设计题目,不可随意更换,但可在完成规定的任务之后,根据个人兴趣选做其它题目;
4.严格按照报告格式撰写课程设计报告;
5.程序实现方式可以自选,可采用指针、数组或其任意组合方式完成。

四.实验思路
1.整体思路
2.程序流程图
五.实验过程
源程序清单
#include<stdio.h>
//sort1是进行5个学生成绩从高到低排序
void sort1(int a[5])
{
int i,j,k,t;
for(i=0;i<4;i++)
{ k=i;
for(j=i+1;j<5;j++)
if(a[j]>a[k]) k=j;
t=a[k];a[k]=a[i];a[i]=t;}
}
//sort2是进行n个学生成绩从高到低排序
void sort2(int b[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(b[j]>b[k])k=j;
t=b[i];b[i]=b[k];b[k]=t;}
}
//sort3是进行n个学生成绩排序,同时指定其style的类型void sort3(int c[],int n,char style)
{
int i,j,k,t;
if (style=='a') //学生成绩从低到高排序
{for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(c[k]>c[j])k=j;
t=c[i];c[i]=c[k];c[k]=t;}}
else if(style=='d') //学生成绩从高到低排序
{for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(c[j]>c[k])k=j;
t=c[i];c[i]=c[k];c[k]=t;}}
}
//主函数
void main()
{
int a[5],b[100],c[100],h,l,i,j,g;
printf("排序方法:选择排序法\n******请输入5个学生的成绩******\n"); for(i=0;i<5;i++)
scanf("%d",&a[i]); //输入5个学生的成绩
sort1(a); //调用sort1函数
printf("1.排序以后的成绩顺序:\n");
for(i=0;i<5;i++)
printf("%3d",a[i]);
printf("\n\n");
printf("************************************************************ *******************\n");
printf("\n");
printf("******g为学生人数******\n请输入g的值:\n");
scanf("%d",&g);
printf("\n");
printf("请输入g个学生的成绩:\n");
for(j=0;j<g;j++)
scanf("%d",&b[j]); //输入g个学生的成绩
sort2(b,g); //调用sort2函数printf("2.排序以后的成绩顺序:\n");
for(j=0;j<g;j++)
printf("%3d",b[j]);
printf("\n\n");
printf("************************************************************ *******************\n");
printf("\n");
printf("******h为学生人数******\n请输入h的值:\n");
scanf("%d",&h);
printf("请输入h个学生的成绩:\n");
for(l=0;l<h;l++)
scanf("%d",&c[l]); //输入h个学生的成绩
sort3(c,h,'a'); //调用sort3函数 printf("3.升序排序以后的成绩顺序:\n");
for(l=0;l<h;l++)
printf("%3d",c[l]);
printf("\n");
printf("******h为学生人数******\n请输入h个学生的成绩:\n");
for(l=0;l<h;l++)
scanf("%d",&c[l]);
sort3(c,h,'d'); //调用sort3函数 printf("3.降序排序以后的成绩顺序:\n");
for(l=0;l<h;l++)
printf("%3d",c[l]);
printf("\n");
}
六、执行结果
七、实验小结
通过本次课程设计,增加我对C的认识,也更加了解C,但是还有很多不足,在处理字符串操作的实验中,字符串查找、字符串排序,还是不会,只能借鉴,自己还需加强,多操作、同时也让我了解C用处,自己要多看看书上机操作,同时也提高了自己的编程能力。

相关主题