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

上传人:b****5 文档编号:28290471 上传时间:2023-07-10 格式:DOCX 页数:9 大小:15.83KB
下载 相关 举报
数据结构课程设计学生成绩名次表.docx_第1页
第1页 / 共9页
数据结构课程设计学生成绩名次表.docx_第2页
第2页 / 共9页
数据结构课程设计学生成绩名次表.docx_第3页
第3页 / 共9页
数据结构课程设计学生成绩名次表.docx_第4页
第4页 / 共9页
数据结构课程设计学生成绩名次表.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

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

《数据结构课程设计学生成绩名次表.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计学生成绩名次表.docx(9页珍藏版)》请在冰豆网上搜索。

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

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

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

问题描述:

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

设计要求:

1.功能:

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

2.输入:

随机产生M*N个成绩。

3.输出:

(1)输出每个班级的成绩名次表,具有相同成绩的名次相同;

(2)输出以班级为单位的成绩名次表。

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

#include

#include

#include

#include

#defineMAX15

#defineMAX215

typedefstructstudent

{

intnum;//学号

intscore;//成绩

}DataType1;//学生结点信息

typedefstructbanji

{

DataType1*data;

charclassname[10];//班级名称

intclassnum;//班级人数

}Stu;//班级结点信息

intM;

intCreate(StuS[MAX1][MAX2],intN)

{

intV;

inti,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].classname);

printf("请输入第%d个年级第%d个班级的人数:

",i+1,j+1);

scanf("%d",&V);

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

getchar();

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

for(k=0;k

{

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

printf("产生该班第%d个学生的学号:

%d\n",k+1,x);inty=S[i][j].data[k].score=rand()%5+95;

printf("随机产生该班该学生的成绩:

%d\n",y);}

}

}

returnN;

}

intclassorder(StuS[MAX1][MAX2],intN)//查询每个班级的成绩名次表

{

intx,y,i,j,V,k,p=0;

DataType1temp;

charb[10];

printf("请输入你要查询班级的名称:

");

scanf("%s",b);

for(x=0;x

{

for(y=0;y

{

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

gotoOK;

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

{

printf("你查找的班级不存在!

\n");

return-1;

}

}

}

OK:

V=S[x][y].classnum;

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("%4d\t%4d\t%4d\t%s\n",S[x][y].data[k].num,S[x][y].data[k].score,p,S[x][y].classname);

if(k

}

printf("\n");

return1;

}

intAllclassorder(StuS[MAX1][MAX2],intN)//查询以班级为单位的成绩名次表

{

inty,i,j,V,k;

intc,p;

DataType1temp;

printf("请输入你要查询那个年级的全部班级名次表<1-%d>:

",M);

scanf("%d",&c);

if(c>M||c<1)

{

printf("输入错误!

\n");

return-1;

}

printf("----打印你要查询的第%d个年级的全部班级名次表----\n",c);

for(y=0;y

{

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

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("%4d\t%4d\t%4d\t%s\n",S[c-1][y].data[k].num,S[c-1][y].data[k].score,p,S[c-1][y].classname);

if(k

}

printf("\n");

}

return1;

}

intgradeorder(StuS[MAX1][MAX2],intN)//查询以年级为单位的成绩名次表

{

intV;

intc;

intx,y,i,j,k=0,p=0;

DataType1r[100],temp;

printf("请输入你要查询哪个年级的名次表<1-%d>:

",M);

scanf("%d",&c);

if(c>M||c<1)

{

printf("输入错误!

\n");

return-1;

}

for(x=0;x

{

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

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("%4d\t%4d\t%4d\n",r[i].num,r[i].score,p);

if(i

}

return1;

}

voidshowface()//显示桌面菜单

{

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

printf("*1创建年级和班级信息2查询每个班级的成绩名次表*\n");

printf("*3查询以班级为单位的成绩名次表*\n");

printf("*4查询以年级为单位的成绩名次表0退出管理系统*\n");

printf("*************************************************\n");

}

voidmain()

{

StuS[MAX1][MAX2];

intN;

chari;

do

{

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

printf("请选择菜单0—5:

");

scanf("%s",&i);

switch(i)

{

case'1':

N=Create(S,N);break;

case'2':

classorder(S,N);break;

case'3':

Allclassorder(S,N);break;

case'4':

gradeorder(S,N);break;

case'0':

exit(0);break;

default:

printf("选择菜单错误,请重新选择!

\n");

}

}while(i!

=0);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1