C语言学生成绩管理系统代码

2025-10-13 18:28:0571 次浏览

最佳答案

#include

#include

//外部函数声明

void menu();

void line();

/* 定义全局变量其中n代表学生人数,ave[5]代表每科成绩的平均分,high[5]每科成绩的最高分,

min[5]代表每科成绩的最低分,student_ave[100]代表每个学生五门成绩的平均分*/

int n,i,j;

float ave[5]={0},high[5]={0},min[5]={0},student_ave[100];

//定义全局结构体

struct student

{

long int num; //学生学号

char name[20]; //学生姓名

float score[5]; //学生成绩

}stu[100];

//主函数开始

int main()

{

void enter(); //enter:输入学生成绩函数(这是函数声明)

void export(); //export:输出学生成绩函数(这是函数声明)

void stat(); //stat:学生成绩统计函数(这是函数声明)

void rank(); //rank:学生成绩排名函数(这是函数声明)

void query(); //query:学生成绩查询函数(这是函数声明)

//定义内部变量

//界面框架

menu();

printf(" 学生成绩管理信息系统\n");

printf(">>请根据以下提示命令字符进行操作!\n");

printf("q:退出 a:成绩输入 p:成绩输出 s:成绩统计 w:成绩排名 t:成绩查询\n");

menu();

//函数调用,选择成绩管理方式

printf("请选择成绩管理方式>>");

while(1)

{

char c;

printf(">>\n");

scanf("%c",&c);

if (c=='q') printf("这是退出学生成绩管理信息系统函数\n>>\n");break;

switch(c)

{

case'a':enter();break;

case'p':export(); break;

case's':stat();break;

case'v':rank();break;

case't':query();break;

default:("命令无效,请重新输入!\n");

}

}

return 0;

}

//主函数部分结束

//定义函数

void menu()

{

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

}

//定义下划线函数

void line()

{

printf("--------------------------------------------------------------------------------\n");

}

//定义学生成绩输入函数开始

void enter()

{

menu();

printf("学生成绩输入\n请按以下格式进行数据输入\n");

printf("请输入学生学号姓名>>");

printf(" 学号 学生姓名\n");

printf("请输入学生成绩 >> ");

printf(" A成绩 B成绩 C成绩 D成绩 E成绩\n");

printf("例如\n请输入学生学号姓名>>");

printf("2012060402,张三\n");

printf("请输入学生成绩 >> ");

printf("95.5,97.0,89.0,92.0,85.0\n");

menu();

//输入学生成绩格式备注

printf("\n请输入学生人数 >> ");

scanf("%d",&n);

//用for循环输入学生成绩

for(i=0;i

{

printf("请输入学生学号姓名>>");

scanf("%ld,%s",&stu[i].num,stu[i].name);

printf("请输入学生成绩 >> ");

scanf("%f",&stu[i].score[0]);

scanf("%f",&stu[i].score[1]);

scanf("%f",&stu[i].score[2]);

scanf("%f",&stu[i].score[3]);

scanf("%f\n",&stu[i].score[4]);

getchar();

student_ave[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4])/5;

//用for循环计算每科成绩z总分

for(j=0;j<5;j++)

{

ave[j]=ave[j]+stu[i].score[j];

}

//用for循环得出每科成绩最高分

for(j=0;j<5;j++)

{

if(high[j]<=stu[i].score[j])

{

high[j]=stu[i].score[j];

}

}

//用for循环得出每科成绩最低分

for(j=0;j<5;j++)

{

if(i==0)

{

min[j]=stu[i].score[j];

}

if(min[j]>=stu[i].score[j])

{

min[j]=stu[i].score[j];

}

}

}

//学生成绩输入完成

//用for循环计算每科成绩平均分

for(j=0;j<5;j++)

{

ave[j]=ave[j]/n;

}

getchar();

menu();

printf("\n");

}

//定义学生成绩输入函数结束

//定义学生成绩输出函数开始

void export()

{

int i;

printf(" 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E\n");

for(i=0;i

{

printf("%9ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f\n",stu[i].num,stu[i].name,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);

}

menu();

}

//定义学生成绩输出函数结束

//定义学生成绩统计函数开始

void stat()

{

printf("各科平均成绩如下!\n");

line();

printf("\n");

printf(" 成绩A 成绩B 成绩C 成绩D 成绩E\n");

//这是每科成绩平均分

for(i=0;i<5;i++)

{

printf(" %6.1f ",ave[i]);

}

printf("\n");

printf("\n");

//只是每科成绩的最高分

printf("各科最高分如下!\n");

line();

printf("\n");

printf(" 成绩A 成绩B 成绩C 成绩D 成绩E\n");

for(j=0;j<5;j++)

{

printf(" %6.1f ",high[j]);

}

printf("\n");

printf("\n");

//这是每科成绩最低分

printf("各科最低分如下!\n");

line();

printf("\n");

printf(" 成绩A 成绩B 成绩C 成绩D 成绩E\n");

for(i=0;i<5;i++)

{

printf(" %6.1f ",min[i]);

}

printf("\n");

printf("\n");

}

//定义学生成绩统计函数结束

//定义学生成绩排名函数开始

void rank()

{

int k=1,z;

float t=0;

float student_high[100]={0};

printf("学生成绩排名如下:\n\n");

line();

printf("\n");

printf("名次 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E 平均分 \n");

//把每个学生五门课的成绩按从大到小的顺序排列并存在数组student_high[]中去

for(i=0;i

{

student_high[i]=student_ave[i];

}

for(j=0;j

{

for(i=0;i

{

if(student_high[i]<=student_high[i+1])

{

t=student_high[i+1];

student_high[i+1]=student_high[i];

student_high[i]=t;

}

}

}

//按成绩排名输出学生成绩信息

for(i=0;i

{

for(j=0;j

{

if(student_high[i]==student_high[i+1])

{

i++;

}

if(student_high[i]==student_ave[j])

{

printf("%d %ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f %7.1f\n",k,stu[j].num,stu[j].name,

stu[j].score[0],stu[j].score[1],stu[j].score[2],stu[j].score[3],stu[j].score[4],student_ave[j]);

for(z=j+1;z

{

if(student_high[i]==student_ave[z])

{

k++;

}

}

}

}

k++;

}

line();

printf("\n");

}

//定义学生成绩排名函数结束

//定义学生成绩查询函数开始

void query()

{

//查询成绩格式

char c2,shu_name[20]; //c2代表查询成绩控制字符。shu_name[]代表输入查询姓名,shu_num代表输入查询学号

int shu_num;

menu();

printf("学生成绩查询\n请按以下方式查询\na:按学生姓名查询 b:按学生学号查询 q:退出\n");

menu();

printf("\n\n");

//选择查询方式

while(c2!='q')

{

printf("请选择查询成绩方式>>");

scanf("%c",&c2);

getchar();

//按姓名查询成绩

if(c2=='a')

{

line();

printf("请输入学生姓名>>");

scanf("%s",shu_name);

getchar();

for(i=0;i

{

if(strcmp(shu_name,stu[i].name)==0)

{

printf(" 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E\n");

printf("%ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f\n",stu[i].num,stu[i].name,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);

}

else if(shu_name!=stu[i].name&&i==(n-1))

{

printf("无此学生成绩\n");

}

}

line();

printf("\n");

}

//按学号查询成绩

else if(c2=='b')

{

line();

printf("请输入学生学号>>");

scanf("%d",&shu_num);

getchar();

for(i=0;i

{

if(shu_num==stu[i].num)

{

printf(" 学号 姓名 成绩A 成绩B 成绩C 成绩D 成绩E\n");

printf("%ld %15s %7.1f %7.1f %7.1f %7.1f %7.1f\n",stu[i].num,stu[i].name,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4]);

}

else if(shu_num!=stu[i].num&&i==(n-1))

{

printf("无此学生成绩\n");

}

}

line();

printf("\n");

}

}

line();

printf("\n\n");

}

//定义学生成绩查询函数结束

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。