学生成绩管理系统C语言课程设计源代码
#include #include #include #include #include struct chengji/* 成绩结构体*/ { int point; char subject[20]; }; struct student/* 学生结构体*/ {int w; char name[20]; int number; struct chengji cheng[30]; float sum; float average; }stu[40]; void pjun();/*按平均分排序 */ void pfen();/*按总分排序*/ void addnew();/*录入学生成绩 */ void pall();/*显示所有成绩*/ void check();/*查询菜单*/ void pnum();/*按学号排序*/ void pjing();/*精确查找*/ /****************************************************************************** *************************/ /*主菜单*/ main() { char choose; while(1) { printf(“\n\t\t**************************************“); printf(“\n\t\t*欢迎使用成绩管理系统*“); printf(“\n\t\t**“); printf(“\n\t\t*请选择*“); printf(“\n\t\t*1.录入学生成绩*“); printf(“\n\t\t*2.查询学生成绩*“); printf(“\n\t\t*3.清屏*“); printf(“\n\t\t*0.退出程序*“); printf(“\n\t\t**“); printf(“\n\t\t**************************************“); printf(“\n\n“); printf(“请选择:“); scanf(“%c“,getchar(); switch(choose) {case 1 :addnew();break; case 2 :check();break; case 3 :system(“cls“);break; case 0 :exit(0);break; default:printf(“输入错误,请从新输入!\n\n“); } } } /****************************************************************************** **********************/ /*录入学生成绩*/ void addnew() { intn,m,i,p; float sum; float average; FILE *file; sum=0.00000; average=0.00000; if((file=(“c:\\student.dat“,“rb“))==NULL) { file = (“c:\\student.dat“, “wb+“);/* 创建一个文件 */ } printf(“请输入需要录入的学生人数:“); scanf(“%d“, for(i=0;in;i++) { printf(“输入第%d 个同学信息:\n“,i+1); printf(“姓名:“); scanf(“%s“, printf(“学号:“); scanf(“%d“, printf(“输入科目个数: “); scanf(“%d“, stu[i].w=m; printf(“按科目(回车)成绩(回车)……的顺序输入:\n“);/* 录入成 绩*/ for(p=0;pm;p++) { scanf(“%s“, scanf(“%d“, stu[i].sum=stu[i].sum+stu[i].cheng[p].point; stu[i].average=stu[i].sum/m; } /* printf(“总分%f , 平均分%f\n “,stu[i].sum,stu[i].average);*/ fwrite(/* 把 stu 写入文 件*/ } fclose(file);/* 关闭文件*/ f(stdin); system(“cls“); } /****************************************************************************** **********************/ /*查询菜单*/ void check() { while(1) {char choose; printf(“\n\t\t**************************************“); printf(“\n\t\t*查询菜单*“); printf(“\n\t\t**“); printf(“\n\t\t*请选择*“); printf(“\n\t\t*1.按学号排列*“); printf(“\n\t\t*2.按总分排列*“); printf(“\n\t\t*3.按平均分排列*“); printf(“\n\t\t*4.精确查询*“); printf(“\n\t\t*5.显示所有学生成绩*“); printf(“\n\t\t*6.清屏*“); printf(“\n\t\t*0.返回*“); printf(“\n\t\t**************************************“); printf(“\n\n“); printf(“请选择:“); scanf(“%c“,getchar(); switch(choose) {case 1 :pnum();break; case 2 :pfen();break; case 3 :pjun();break; case 4 :pjing();break; case 5 :pall();break; case 6 :system(“cls“);break; case 0 :main();break; } } } /****************************************************************************** **********************/ /*显示所有成绩*/ void pall() { int i=0,m; FILE *file; if((file=(“c:\\student.dat“,“rb“))==NULL) {printf(“Open error!!\n“); getch(); exit(0); } fread( while(feof(file)==0) /* 循环整个文件*/ { printf(“姓名----学号----总分----平均分\n“); printf(“%s %5d %10.1f %8.1f\n“,stu[i].name,stu[i].number,