大一时刚开始写代码的
成绩统计系统管理
有点不好
#include<stdio.h>
#include<string.h>
struct grade_list{ //定义结构体
char name[10]; //姓名
float c_len; //C语言成绩
float math; //高数
float eng; //英语
float PE; //体育
};
void in_put(struct grade_list grades[], int n); //声明输入函数
void average(struct grade_list grades[], int n); //声明平均值函数
void average_subject(struct grade_list grades[], int n);//声明课程平均值函数
void find(struct grade_list grades[], int n); //声明查询函数
void change(struct grade_list grades[], int n); //声明修改成绩函数
int main()
{
struct grade_list grades[50];
int choices,i,n;
printf("成绩统计系统正在启动...\n");
printf("程序正在运行...\n");
do{
rerun:
printf("\n");
printf("\t************************************\n");
printf("\t* =========================== *\n");
printf("\t* 学生成绩统计系统 *\n");
printf("\t* =========================== *\n");
printf("\t* *\n");
printf("\t* 输入学生成绩---------1 *\n");
printf("\t* 查看学生平均成绩-----2 *\n");
printf("\t* 查看课程平均值-------3 *\n");
printf("\t* 查找学生成绩---------4 *\n");
printf("\t* 修改学生成绩---------5 *\n");
printf("\t* 退出系统-------------0 *\n");
printf("\t* *\n");
printf("\t************************************\n");
printf("\t请选择功能:");
scanf("%d", &choices);
switch(choices)
{
case 1:
printf("执行成绩输入程序...\n\n");
printf("\t请输入学生人数(1~50):");
scanf("%d",&n);
in_put(grades,n);
break;
case 2:
printf("执行学生平均成绩计算程序...\n\n");
average(grades,n);
break;
case 3:
printf("执行学科平均成绩计算程序...\n\n");
average_subject(grades,n);
break;
case 4:
printf("执行成绩查询程序...\n\n");
find(grades, n);
break;
case 5:
printf("执行成绩修改程序...\n\n");
change(grades, n);
break;
case 0:
printf("\t||系统已关闭,感谢您的使用!||");
break;
default :
printf("\t非法输入!!!");
goto rerun;
}
}while(choices>0&&choices<6);
return 0;
}
void in_put(struct grade_list grades[], int n) //定义输入函数
{
int i;
for(i=0;i<n;i++)
{
printf("\t请输入第%d名同学的姓名:", i+1);
scanf("%s", grades[i].name);
printf("\t请输入第%d名同学的C语言成绩:", i+1);
scanf("%f", &grades[i].c_len);
printf("\t请输入第%d名同学的高数成绩:", i+1);
scanf("%f", &grades[i].math);
printf("\t请输入第%d名同学的英语成绩:", i+1);
scanf("%f", &grades[i].eng);
printf("\t请输入第%d名同学的体育成绩:", i+1);
scanf("%f", &grades[i].PE);
}
printf("\t*成绩录入成功*\n");
}
void average(struct grade_list grades[], int n) //定义计算学生平均值
{
int i;
float result;
for(i=0;i<n;i++)
{
result=(grades[i].c_len+grades[i].math+grades[i].eng
+grades[i].PE)/4;
printf("\t%s的平均成绩为%.2f\n",grades[i].name, result);
}
}
void average_subject(struct grade_list grades[], int n) //定义计算学科平均分
{
printf("\tC语言\t高数\t英语\t体育\n");
int i;
float result=0.0;
for(i=0;i<n;i++)
{
result+=grades[i].c_len;
}
printf("\t%.2f", result/n);
result=0;
for(i=0;i<n;i++)
{
result+=grades[i].math;
}
printf("\t%.2f", result/n);
result=0;
for(i=0;i<n;i++)
{
result+=grades[i].eng;
}
printf("\t%.2f", result/n);
result=0;
for(i=0;i<n;i++)
{
result+=grades[i].PE;
}
printf("\t%.2f\n", result/n);
}
void find(struct grade_list grades[], int n) //定义循环成绩查询函数
{
int i,trigger;
char in_name[10];
do{
printf("\t请输入要查询的学生姓名:");
scanf("%s", in_name);
int chack=0;
for(i=0;i<n;i++)
{
if(strcmp(in_name,grades[i].name)==0)
{
printf("\t%s的成绩为:\n\n",grades[i].name);
printf("\tC语言\t高数\t英语\t体育\n");
printf("\t%.2f\t%.2f\t%.2f\t%.2f\n\n", grades[i].c_len,grades[i].math,grades[i].eng,grades[i].PE);
chack=1;
}
}
if(chack==0) printf("\t*查无此人*\n\n");
printf("\t继续查询请输入1,否则输入0返回功能选择界面:");
scanf("%d", &trigger);
}while(trigger==1);
}
void change(struct grade_list grades[], int n) //定义成绩修改函数
{
int i,trigger;
char ch_name[10];
do{
int chack=0;
printf("\t请输入要修改成绩的学生姓名:");
scanf("%s", ch_name);
for(i=0;i<n;i++)
{
if(strcmp(ch_name,grades[i].name)==0)
{
printf("\t请输入该同学修改后的成绩:\n\tC语言:");
scanf("%f", &grades[i].c_len);
printf("\t高数:");
scanf("%f", &grades[i].math);
printf("\t英语:");
scanf("%f", &grades[i].eng);
printf("\t体育:");
scanf("%f", &grades[i].PE);
chack=1;
printf("\t*修改成功*\n");
}
}
if(chack==0) printf("\t*查无此人*\n\n");
printf("\t继续修改请输入1,否则输入0返回功能选择界面:");
scanf("%d", &trigger);
}while(trigger==1);
}
如果有问题可以留言哦