运用C语言实现对学生成绩的操作,对C语言的整体应用能让你更加熟练的掌握C语言,这个是友友在大一的时候写到,比较基础,有什么不懂的可以在评论区,评论,会及时回复的.
#include<stdio.h> #include<stdlib.h> #include<conio.h> int x; struct Student{ char name[20]; long long int num; float cjc; float cjy; float cjs; }stu[100]; void shuru() {printf("\t\t\t共有多少名学生:\n"); int x; scanf("%d",&x); int i; for( i=0;i<x;i++) { printf("\t\t\t请输入学生姓名:\n"); scanf("%s",&stu[i].name); printf("\t\t\t请输入学生学号;\n"); scanf("%lld",&stu[i].num); printf("\t\t\t请输入c语言成绩;\n"); scanf("%f",&stu[i].cjc); printf("\t\t\t请输入英语成绩;\n"); scanf("%f",&stu[i].cjy); printf("\t\t\t请输入数学成绩;\n"); scanf("%f",&stu[i].cjs); } float zf[50]; for(int i=0;i<x;i++) { zf[i]=stu[i].cjc+stu[i].cjy+stu[i].cjs; } } void shanchu() { long long int n; printf("\t\t\t请输入你需要删除的学生学号:\n"); scanf("%lld",&n); int j=0,i; for(i=0;i<x;i++) { if(n!=stu[i].num) { stu[j]=stu[i]; j++; } } if(i==j) { printf("\t\t\t输入错误!!!\n"); } else for(i=0;i<j;i++) { printf("姓名:%s\n 学号:%lld\n c语言成绩%.2f\n 英语成绩%.2f\n 数学成绩%.2f\n",stu[i].name,stu[i].num,stu[i].cjc,stu[i].cjy,stu[i].cjs);break; } x=j; } void chaxun() { long long int n; printf("\t\t\t请输入你要查询的学生学号:\n"); scanf("%lld",&n); for(int i=0;i<x;i++) { if(n==stu[i].num) { printf("姓名:%s\n 学号:%lld\n c语言成绩%.2f\n 英语成绩%.2f\n 数学成绩%.2f\n",stu[i].name,stu[i].num,stu[i].cjc,stu[i].cjy,stu[i].cjs);break; } } } void pingjun() { float a[50]; for(int i=0;i<x;i++) { a[i]=(stu[i].cjc+stu[i].cjs+stu[i].cjy)/3.0; } for(int i=0;i<x;i++) { printf("%s %lld %.2f\n",stu[i].name,stu[i].num,a[i]); } } void xiugai() { long long int n; printf("\t\t\t请输入你要查询的学生学号:\n"); scanf("%lld",&n); for(int i=0;i<x;i++) { if(n==stu[i].num) { printf("\t\t\t请输入新的c语言成绩;\n"); scanf("%f",&stu[i].cjc); printf("\t\t\t请输入新的英语成绩;\n"); scanf("%f",&stu[i].cjy); printf("\t\t\t请输入新的数学成绩;\n"); scanf("%f",&stu[i].cjs); } } } void xianshi() { for(int i=0;i<x;i++) { printf("姓名:%s\n 学号:%lld\n c语言成绩%.2f\n 英语成绩%.2f\n 数学成绩%.2f\n",stu[i].name,stu[i].num,stu[i].cjc,stu[i].cjy,stu[i].cjs);break; } } void paixu() { struct Student stu1; int t=0; printf("\t\t\tc语言成绩排序请输入1\英语成绩排序请输入2\n数学成绩排序请输入3:\n\t\t\t"); scanf("%d",&t); if(t==1) { for(int i=1;i<x;i++) { for(int j=0;j<x-i;j++) if(stu[j].cjc<stu[j+1].cjc) { stu1=stu[j]; stu[j]=stu[j+1]; stu[j+1]=stu1; } } for(int i=0;i<x;i++) { printf("%s %lld %f\n",stu[i].name,stu[i].num,stu[i].cjc); } } if(t==2) { for(int i=1;i<x;i++) { for(int j=0;j<x-i;j++) if(stu[j].cjy<stu[j+1].cjy) { stu1=stu[j]; stu[j]=stu[j+1]; stu[j+1]=stu1; } } for(int i=0;i<x;i++) { printf("%s %lld %f\n",stu[i].name,stu[i].num,stu[i].cjy); } } if(t==3) { for(int i=1;i<x;i++) { for(int j=0;j<x-i;j++) if(stu[j].cjs<stu[j+1].cjs) { stu1=stu[j]; stu[j]=stu[j+1]; stu[j+1]=stu1; } } for(int i=0;i<x;i++) { printf("%s %lld %f\n",stu[i].name,stu[i].num,stu[i].cjs); } } } void baocun() { printf("\t\t\t已保存\n"); } int main() { int j; while(1) { system("cls");//清屏 printf("\n\n\n\t\t\t 欢迎使用学生成绩管理系统\n\n\n"); printf("\t\t\t***************************\n"); printf("\t\t\t* 主菜单 *\n"); printf("\t\t\t***************************\n\n\n"); printf("\t\t 1 成绩输入 2 成绩删除\n\n"); printf("\t\t 3 成绩查询 4 成绩排序\n\n"); printf("\t\t 5 显示成绩 6 成绩保存\n\n"); printf("\t\t 7 退出系统 8修改学生信息\n\n"); printf("\t\t 9计算平均分\n\n"); printf("\t\t 请选择[1/2/3/4/5/6/7/8]:\n"); scanf("%d",&j); switch(j) { case 1:printf("\t\t\t成绩输入\n");shuru();break; case 2:printf("\t\t\t成绩删除\n");shanchu();break; case 3:printf("\t\t\t成绩查询\n");chaxun();break; case 4:printf("\t\t\t成绩排序\n");paixu();break; case 5:printf("\t\t\t显示成绩\n");xianshi();break; case 6:printf("\t\t\t成绩保存\n");baocun();break; case 7:printf("\t\t\t退出系统\n");exit(0); case 8:printf("\t\t\t修改学生信息\n");xiugai();break; case 9:printf("\t\t\t计算平均分\n");pingjun();break;//正常运行程序并退出程序 default:printf("\t\t\t输入错误,请重新输入\n");break; } getch();//我们一般所使用的 getchar() 函数在读入一个字符时 必须按一下 enter 键,该代码才会继续运行; //但是 getch() 函数读入一个字符时 不用 enter 代码会继续跑; } return 0; }