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");
}

在这里插入图片描述

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值