数据结构课程设计学生成绩名次表_学生成绩名次表实验

其他范文 时间:2020-02-28 02:58:20 收藏本文下载本文
【www.daodoc.com - 其他范文】

数据结构课程设计学生成绩名次表由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学生成绩名次表实验”。

数据结构课程设计-学生成绩名次表

问题描述:建设一个年级(M个班)的学生参加某门课程的考试,每个班最多有N个学生,请输出各班的成绩名次表(M个)、以班级为单位的成绩名次表(1个)、以及以年级为单位的成绩名次表(1个)。

设计要求:

1.功能:每个班级的学生记录按学号顺序排列,每个学生记录至少包含排列名次、学号、成绩3个字段。

2.输入:随机产生M*N个成绩。3.输出:

(1)输出每个班级的成绩名次表,具有相同成绩的名次相同;(2)输出以班级为单位的成绩名次表。

(3)输出以年级为单位的成绩名次表,具有相同成绩的名次相同。

#include #include #include #include #define MAX1 5 #define MAX2 15 typedef struct student {

int num;//学号

int score;//成绩

}DataType1;//学生结点信息 typedef struct banji { DataType1 *data;char claname[10];//班级名称

int clanum;//班级人数 }Stu;//班级结点信息

int M;int Create(Stu S[MAX1][MAX2],int N){

int V;

int i,j,k;srand(time(NULL));

printf(“请输入你创建多少个年级:”);

scanf(“%d”,&M);

printf(“请输入你创建的一个年级有多少个班:”);

scanf(“%d”,&N);

for(i=0;i

for(j=0;j

{

printf(“---------------------创建第%d个年级第%d个班级的信息--------n”,i+1,j+1);

printf(“请输入第%d个年级第%d个班级的名称:”,i+1,j+1);

scanf(“%s”,S[i][j].claname);

printf(“请输入第%d个年级第%d个班级的人数:”,i+1,j+1);

scanf(“%d”,&V);

S[i][j].data=(DataType1 *)malloc(sizeof(DataType1)*V);

getchar();

S[i][j].clanum=V;

for(k=0;k

{

int x=S[i][j].data[k].num=(i+1)*1000+(j+1)*100+k;

printf(“产生该班第%d个学生的学号:%dn”,k+1,x);

int y=S[i][j].data[k].score=rand()%5+95;

printf(“随机产生该班该学生的成绩:%dn”,y);

}

} }

return N;

}

int claorder(Stu S[MAX1][MAX2], int N)//查询每个班级的成绩名次表 { int x,y,i,j,V,k,p=0;DataType1 temp;char b[10];printf(“请输入你要查询班级的名称:”);scanf(“%s”,b);

for(x=0;x

for(y=0;y

{

if(strcmp(S[x][y].claname,b)==0)

goto OK;

if(x==M-1&&y==N-1)

{

printf(“你查找的班级不存在!n”);

return-1;

}

} } OK: V=S[x][y].clanum;

for(i = 0;i

for(j = i+1;j

{

if(S[x][y].data[i].score

{

temp = S[x][y].data[i];

S[x][y].data[i] =S[x][y].data[j];

S[x][y].data[j] = temp;

}

}

printf(“%d班排名:n学号t成绩t名次t班级名称n”,y+1);

for(k=0;k

{p++;

printf(“%4dt%4dt%4dt%sn”,S[x][y].data[k].num ,S[x][y].data[k].score ,p ,S[x][y].claname);

if(k

}

printf(“n”);

return 1;}

int Allclaorder(Stu S[MAX1][MAX2], int N)//查询以班级为单位的成绩名次表

{ int y,i,j,V,k;int c,p;DataType1 temp;

printf(“请输入你要查询那个年级的全部班级名次表:”,M);scanf(“%d”,&c);if(c>M||c

printf(“输入错误!n”);

return-1;} printf(“----打印你要查询的第%d个年级的全部班级名次表----n”,c);

for(y=0;y

{

V=S[c-1][y].clanum;

for(i =0;i

for(j =i+1;j

{

if(S[c-1][y].data[i].score

{

temp = S[c-1][y].data[i];

S[c-1][y].data[i] =S[c-1][y].data[j];

S[c-1][y].data[j] = temp;

}

}

p=0;

printf(“%d班排名:n学号t成绩t名次t班级名称n”,y+1);

for(k=0;k

{

p++;

printf(“%4dt%4dt%4dt%sn”,S[c-1][y].data[k].num ,S[c-1][y].data[k].score ,p ,S[c-1][y].claname);

if(k

}

printf(“n”);

}

return 1;}

int gradeorder(Stu S[MAX1][MAX2], int N)//查询以年级为单位的成绩名次表 { int V;int c;int x,y,i,j,k=0,p=0;DataType1 r[100], temp;printf(“请输入你要查询哪个年级的名次表:”,M);scanf(“%d”,&c);

if(c>M||c

printf(“输入错误!n”);

return-1;}

for(x=0;x

{

V=S[c-1][x].clanum;

for(y=0;y

r[k++]=S[c-1][x].data[y];

}

for(i = 0;i

for(j = i+1;j

{

if(r[i].score

{

temp = r[i];

r[i] = r[j];

r[j] = temp;

}

} printf(“t--------第%d年级总排名-------n”,c);printf(“ 学号t成绩t名次n”);

for(i=0;i

{

p++;

printf(“%4dt%4dt%4dn”,r[i].num ,r[i].score ,p);

if(i

}

return 1;}

void showface()//显示桌面菜单

{

printf(“********欢迎进入彭强学生成绩名次表查询系统*******n”);

printf(“*1 创建年级和班级信息

2查询每个班级的成绩名次表*n”);printf(“*3 查询以班级为单位的成绩名次表

*n”);printf(“*4 查询以年级为单位的成绩名次表

0 退出管理系统 *n”);printf(“*************************************************n”);

}

void main(){ Stu S[MAX1][MAX2];

int N;

char i;do {

showface();//调用菜单函数

printf(“请选择菜单0—5:”);

scanf(“%s”,&i);switch(i){

case '1': N=Create(S,N);break;

case '2': claorder(S,N);break;

case '3': Allclaorder(S,N);break;

case '4': gradeorder(S,N);break;

case '0': exit(0);

break;

default:printf(“选择菜单错误,请重新选择!n”);} }while(i!=0);}

下载数据结构课程设计学生成绩名次表word格式文档
下载数据结构课程设计学生成绩名次表.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文