C语言编写的学生管理系统,在c-free里面能通过;不用好复杂100-300行最好我主要是拿来改的,谢谢

[复制链接]
查看11 | 回复1 | 2010-1-15 22:36:33 | 显示全部楼层 |阅读模式
写的有点仓促,希望可以帮到你。#define M 10#define N 5#includeint main(){ void average1(int a[3],int b[3][3]);/*每个学生的平均分*/ void average2(int a[3],int b[3][3]);/*每门课的平均分*/ void most(int a[3],int b[3][3]);/*最高分对应的学生和科目*/ void average3(int a[3],int b[3][3]);/*平均分方差*/ int i,j,a[M+1],b[M+1][N+1],k; for (i=1;i<=M;i++) {printf("请输入学号:\n");scanf("%d",&a);printf("请输入成绩(按语数外物化的顺序):\n");for (j=1;j<=N;j++){ scanf("%d",&b[j]);} }average1(a,b);/*每个学生的平均分*/
average2(a,b);/*每门课的平均分*/
most(a,b);/*最高分对应的学生和科目*/average3(a,b);/*平均分方差*/}/*以下是函数部分*//*每个学生的平均分*/void average1(int a[M+1],int b[M+1][N+1]){ int i,j; float sum=0;float c[M+1]; for (i=1;i<=M;i++) {sum=0;for (j=1;j<=N;j++){ sum=sum+b[j];
}c=sum/N; } for(i=1;i<=M;i++) {printf("%d号学生的平均成绩是:\n",a);printf("%f\n",c); }}/*每门课的平均分*/void average2(int a[M+1],int b[M+1][N+1]){ int i,j; float d[N+1],sum=0; for (j=1;j<=N;j++) {sum=0;for (i=1;i<=M;i++){sum=sum+b[j];}d[j]=sum/M; } printf("各科平均成绩为:(按语数外物化的顺序):\n"); for (j=1;j<=N;j++) {printf("%f\n",d[j]); }}/*最高分对应的学生和科目*/void most(int a[M+1],int b[M+1][N+1]){ int i,j,max,t,row=1,colum=1;
max=b[1][1];
for (i=1;i<=M;i++)
{
if (max<b[j])
{
max=b[j];
row=i;
colum=j;
}
}
printf("%d号学生",a[row]);
switch(colum)
{
case 1:printf("语文成绩最高为:");break;
case 2:printf("数学成绩最高为:");break;
case 3:printf("外语成绩最高为:");break;
case 4:printf("物理成绩最高为:");break;
case 5:printf("化学成绩最高为:");break;
}
printf("%d\n",max);}/*平均分方差*/void average3(int a[M+1],int b[M+1][N+1]){ int i,j; float x=0,y=0,s,t=0,sum; float c[M+1]; for (i=1;i<=M;i++) {sum=0;for (j=1;j<=N;j++){ sum=sum+b[j];
}c=sum/N; } for(i=1;i<=M;i++) {x=x+c*c;t=c+t;y=(t/M)*(t/M); } s=x/M-y; printf("平均分方差为:\n"); printf("%f\n",s);}
回复

使用道具 举报

千问 | 2010-1-15 22:36:33 | 显示全部楼层
楼上的方法不主张。没仔细看,但是这个问题光用数组实现显然是不合理的。如果是一个规模大的程序(比如制作的是整个年级学生在大学四年的成绩),那么每一学期学生选的科目都不一样,如果用数组的话会浪费很多资源,而且修改起来也很麻烦。所以建议对于学生,用一维数组来实现(因为学生的多少基本是固定不变的),而对于每个学生的成绩来说,用单链表来实现。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行