大家都在看
C语言学生成绩管理系统代码
最佳答案
#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"); } //定义学生成绩查询函数结束
声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。