c语言成绩管理系统简 3年前

#include<stdio.h> #include<stdlib.h> #define N 50 #include<string.h> #include<conio.h> int max,min; float ave; struct student { int sx,yw,total; char name[10],xh[12]; };//定义基本信息 struct student stu[N]; //定义结构体个数

void mune() { printf("\t\t|-----------------------------|\n"); printf("\t\t| 学生成绩管理系统 |\n"); printf("\t\t| 1.输入学生成绩 |\n");//\t水平制表符 printf("\t\t| 2.显示学生成绩 |\n"); printf("\t\t| 3.查询学生成绩 |\n"); printf("\t\t| 4.增加学生成绩 |\n"); printf("\t\t| 5.删除学生成绩 |\n"); printf("\t\t| 6.修改学生成绩 |\n"); printf("\t\t| 7.总分和平均分 |\n"); printf("\t\t| 8.最高分和最低分 |\n"); printf("\t\t| 9.输出各分数段人数 |\n"); printf("\t\t| 10.成绩排序 |\n"); printf("\t\t| 0.退出 |\n"); printf("\t\t|-----------------------------|\n"); }

int luru(int sum)//输入成绩函数 { int i; printf("请输入录入个数:\n"); scanf("%d",&sum); for(i=0;i<sum;i++) { printf("请输入第%d个同学姓名:\n",i+1); scanf("%s",stu[i].name); printf("请输入第%d个同学学号:\n",i+1); scanf("%s",stu[i].xh); printf("请输入数学成绩\n"); scanf("%d",&stu[i].sx); printf("请输入语文成绩\n"); scanf("%d",&stu[i].yw); } return sum; }

void display(int sum)//显示成绩函数 { int i; printf("__\n"); printf("姓名*学号数学语文*****\n"); printf(" | | | | | | | | \n"); for(i=0;i<sum;i++) { printf("%8s %8s %8d %8d\n",stu[i].name,stu[i].xh,stu[i].sx,stu[i].yw); } } void query(int sum)//查询函数 按照学号进行查询 { int i,k,falg=0; char xh[12]; printf("请输入你要查询的学号:\n"); scanf("%s",&xh); for(i=0;i<sum;i++) { if(strcmp(xh,stu[i].xh)==0)//strcmp为比较字符串大小,如前面的大于后面则返回值为1反之为负一 { printf("该学生的信息为:\n"); printf("姓名:%s 学号:%s\n数学:%d 语文:%d\n",stu[i].name,stu[i].xh,stu[i].sx,stu[i].yw); falg++; } } if(falg==0) printf("输入学号错误\n"); }

int add(int sum)//添加学生信息函数 { int i,j; printf("请输入增加个数\n"); scanf("%d",&j); for(i=sum;i<sum+j;i++)//循环输入j个数 { printf("请输入第%d位同学姓名\n",i+1); scanf("%s",stu[i].name); printf("请输入第%d位同学学号\n",i+1); scanf("%s",stu[i].xh); printf("请输入数学成绩\n"); scanf("%d",&stu[i].sx); printf("请输入语文成绩\n"); scanf("%d",&stu[i].yw); } return sum+j; } int del(int sum)//使用学号进行删除学生信息函数 { int i,temp,flag=0;//flag进行记录 ,以免输入错误学号时,导致返回值减少,输入正确返回值则会减少一个 char xh[12]; printf("请输入要删除学生的学号:\n"); scanf("%s",xh); for(i=0;i<sum;i++) { if(strcmp(xh,stu[i].xh)==0) { flag++; temp=sum--; for(i=temp;i<sum;i++) { stu[i]=stu[i+1]; } } } if(flag!=0) printf("删除成功!\n"); if(flag==0) printf("输入错误\n"); return sum; }

int change(int sum)//通过查询学号进行修改成绩函数 { int i,temp,falg=0,choose,sx,yw; char xh[12]; printf("请输入想修改学生成绩的学号\n"); scanf("%s",xh); for(i=0;i<sum;i++) { if(strcmp(xh,stu[i].xh)==0) { temp=i; falg++; printf("请选择想修改的科目\n"); printf("1.语文\n"); printf("2.数学\n"); scanf("%d",&choose); switch(choose) { case 1: printf("请输入修改的分数:\n"); scanf("%d",&yw); stu[temp].yw=yw; break; case 2: printf("请输入修改的分数:\n"); scanf("%d",&sx); stu[temp].sx=sx;//赋值 break; } } if(falg==0) { printf("输入学号不存在\n"); } } return sum; } int tj1(int sum)//统计总分和平均分的函数 { int i,total; for(i=0;i<sum;i++) { total=total+stu[i].sx+stu[i].yw; } for(i=0;i<sum;i++) { stu[i].total=stu[i].sx+stu[i].yw; } ave=(float)total/sum; printf("__\n"); printf("姓名*学号*****总分\n"); for(i=0;i<sum;i++) { printf("%8s %8s %8d\n",stu[i].name,stu[i].xh,stu[i].total);

}
    printf("全班平均分:%.2f\n",ave);
return total;

}

int tj2(int sum)//统计总分最高分和最低分的函数 { int i,j,k; for(i=0;i<sum;i++) { stu[i].total=stu[i].sx+stu[i].yw; } max=stu[0].total; min=stu[0].total; for(i=1;i<sum;i++) { if(max<stu[i].total) { max=stu[i].total; j=i; } if(min>stu[i].total) { min=stu[i].total; k=i; }

}
printf("最高总分为:%s %d分\n最低总分为:%s %d分\n",stu[j].name,max,stu[k].name,min);

} void tj3(int sum)//统计各分数段人数 { int fail=0,pass=0,good=0,excellent=0,i;//设定初使值方便计数 for(i=0;i<sum;i++) { if(stu[i].sx+stu[i].yw<120) fail++; if((stu[i].sx+stu[i].yw>=120)&&(stu[i].sx+stu[i].yw<160)) good++; if(stu[i].sx+stu[i].yw>=160) excellent++; } printf("0-120(不及格):%d人\n120-160(良好):%d人\n160-200(优秀):%d人\n",fail,good,excellent); } void sort(int sum)//总分排序 { int i,j,temp; for(i=0;i<sum;i++) { stu[i].total=stu[i].sx+stu[i].yw; } for(i=0;i<sum;i++)//外循环 { for(j=i+1;j<sum;j++) if(stu[i].total<stu[j].total)//满足则置换 { temp=stu[i].total; stu[i].total=stu[j].total; stu[j].total=temp; }
} printf("总分排名为:\n"); printf("**\n"); printf("姓名 * 学号 * 总分\n"); printf("**\n"); for(i=0;i<sum;i++) { printf(" %s %s %d\n",stu[i].name,stu[i].xh,stu[i].total); } } void exit()//退出函数 { exit(0); } main() { int choose,n,sum; while(1) { mune(); printf("请选择功能\n"); scanf("%d",&choose); switch(choose) { case 0:exit();break; case 1:n=luru(sum);break; case 2:display(n);break; case 3:query(n);break; case 4:n=add(n);break; case 5:n=del(n);break; case 6:n=change(n);break; case 7:tj1(n);break; case 8:tj2(n);break; case 9:tj3(n);break; case 10:sort(n);break; } printf("按任意键返回\n"); getch(); system("cls");
}
}

c语言成绩管理系统简

三倍速的小夏
神曲的存在并不是为了享受音乐,而是品味那段最珍贵的回忆。
2
发布数
2
关注者
1362
累计阅读

热门教程文档

Objective-C
29小节
React Native
40小节
Javascript
24小节
Typescript
31小节
C
14小节