C语言编写一套学生成绩管理系统,可以计算学生平均分,各科平均分,按学生平均成绩排序,统计不合格学生信息。
直接上代码
#include <stdio.h>
#include<stdlib.h>
#define N 10 //假设有十个学生
#define M 4
void main()
{ int score[N][M];//定义一个二维数组,行表示学生号,列用来放三个科目第四列用来存放学生平均分
char choice='1';
void input(int a[][M],int,int);//函数声明
void aver_stu(int score[][M],int,int);
void aver_cour(int score[][M],int,int);
void orde_aver(int score[][M],int,int);
void failed(int score[][M],int,int);
input(score,N,M);
/*显示主菜单*/
while(choice!='0')
{ system("cls");//清屏
printf(" ==========the Score Processing System ====================\n");
printf("1.print each student's average\n");
printf("2.print each course's average\n");
printf("3.Order the students by student's average decreasingly \n");
printf("4.print the failed student \n");
printf("0.Exit the system \n");
printf("===============================================\n");
printf("Please choise (0-4): \n");
choice=getchar();
switch(choice)
{case '1':
aver_stu(score,N,M); break;
case '2':
aver_cour(score,N,M); break;
case '3':
orde_aver(score,N,M); break;
case '4':
failed(score,N,M); break;
case '0':
exit(0);//退出系统
default:
printf("Choice Error,Please select again(0-4).");
}
}
}
void input(int score[][M],int,int)//学生成绩输入
{
int i,j;
for(i=0;i<N;i++)
{ printf("输入第%d个学生的三门成绩",i+1);
for(j=0;j<M-1;j++)
scanf("%d",&score[i][j]);
}
system("pause");
}
void aver_stu(int score[][M],int,int)//求学生平均分
{
int i,j,ave;
float s=0;
for(i=0;i<N;i++)
{ s=0;
for(j=0;j<M-1;j++)
s+=score[i][j];
ave=s/3;
//a_stu[i]=s/3;
printf("第%d个学生的平均分为%d\n",i+1,ave);
}
system("pause");
}
void aver_cour(int score[][M],int,int)//求三门课平均分
{
int i,j,ave;
float s;
for(j=0;j<M-1;j++)
{s=0;
for(i=0;i<N;i++)
s+=score[i][j];
ave=s/(float)N;
printf(" 课程%d的平均分为%d\n",j+1,ave);
}
system("pause");
}
void orde_aver(int score[][M],int,int)//学生平均成绩降序排列
{
int i,j,t,y,a[20];
float s=0;
for(i=0;i<N;i++)
a[i]=i+1;
for(i=0;i<N;i++)
{ s=0;
for(j=0;j<M-1;j++)
s+=score[i][j];
score[i][3]=s/3;
}
for(i=0;i<N-1;i++)
for(j=0;j<N-j-1;j++)
if(score[i][3]<score[i+1][3])
{ y=a[i];
a[i]=a[i+1];
a[i+1]=y;
t=score[i][3];
score[i][3]=score[i+1][3];
score[i+1][3]=t;
}
printf("学生平均成绩降序排列\n");
for(i=0;i<N;i++)
printf("学生%d\t%d\n",a[i],score[i][3]);
system("pause");
}
void failed(int score[][M],int,int)//统计不合格学生
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<M-1;j++)
if(score[i][j]<60)
printf("学生%d的课程%d成绩不合格\n",i+1,j+1);
system("pause");
}
还没有评论,来说两句吧...