2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【高级语言程序设计】c语言-学生成绩管理系统

【高级语言程序设计】c语言-学生成绩管理系统

时间:2020-12-28 00:50:14

相关推荐

【高级语言程序设计】c语言-学生成绩管理系统

c语言期末作业

声明:未经允许,请勿转载

学生成绩管理系统

本系统能够对学生成绩管理功能,包括:

1.对多个学生成绩进行管理,至少10个学生。

2.每个学生至少3门课程。

3.对每个学生大学期间的成绩进行记录。

4.修改学生成绩。

5.不同用户的权限不同,管理员拥有所有权限(打印、登记、添加、排序、查询、修改、删除学生信息)、教师可以排序、查询、登记和修改成绩;学生可以查询成绩。其中查询分姓名查询、学号查询;排序分总成绩排序及各科成绩排序.

6.成绩说明:0~100,整数。

7.成绩需要保存进文件,程序初始化时读取文件。

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>int g=3; //登陆密码时允许输入的次数char prefix_a[8]="asdf"; //管理员密码char prefix_t[8]="asdf"; //教师密码char prefix_s[8]="asdf"; //学生密码int number; //全局变量学生人数void menu(); //主界面函数void administrator(); //管理端界面void teachar();//教师端界面void student();//学生端界面void color(short x);//改变字体颜色void password_a(); //管理端密码登陆void password_t(); //教师端密码登陆void password_s(); //学生端密码登陆void input(); //登记学生成绩void delete_();//删除学生信息void search(); //查询学生成绩void change(); //修改学生成绩void show(); //打印学生信息void add(); //添加学生信息void print_table(); //列表头void read(); //从文件中读取信息void back_a(); //管理端返回上一界面void back_t(); //教师端返回上一界面void back_s(); //学生端返回上一界面void save(); //保存学生信息函数void back_sort_a(); //管理端排序功能 返回界面void back_sort_t(); //教师端排序功能 返回界面void sort_a(); //管理端排序学生成绩void sort_t(); //教师端排序学生成绩void sort_sum(); //按总成绩排序void sort_grade1(); //按数学成绩排序void sort_grade2(); //按英语成绩排序void sort_grade3(); //按物理成绩排序void search_a(); //管理端查询学生成绩void search_t(); //教师端查询学生成绩void search_s(); //学生端查询学生成绩void search_id();//按学号查询void search_name(); //按学号查询void back_search_a();//管理端查询功能 返回界面void back_search_t();//教师端查询功能 返回界面void back_search_s();//学生端查询功能 返回界面struct student{int id;//学号char name[20]; //姓名char sex[5]; //性别float grade1; //高等数学float grade2; //大学英语float grade3; //大学物理float avg; //平均分float sum; //总分}stu[100];int main(){menu();return 0;}void menu()//主界面{int l;printf("\t欢迎使用学生信息系统\t\n");printf("\t1.管理端 \t\n");printf("\t2.教师端 \t\n");printf("\t3.学生端 \t\n");printf("\t4.退出 \n");printf("=================================\n");printf("请输入选择的登陆端: ");scanf("%d",&l);switch(l){case 1:system("cls");password_a();break;case 2:system("cls");password_t();break;case 3:system("cls");password_s();break;case 4:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");menu();break;}}void administrator() //管理端界面{read();int l;printf("\t欢迎使用管理端系统\t\n");printf("\t 1.打印学生成绩 \t\n");printf("\t 2.登记学生成绩 \t\n");printf("\t 3.添加学生成绩 \t\n");printf("\t 4.排序学生成绩 \t\n");printf("\t 5.查询学生成绩\t\n");printf("\t 6.修改学生信息 \n");printf("\t 7.删除学生信息 \n");printf("\t 8.返回 \n");printf("\t 9.退出 \n");printf("=================================\n");printf("请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");show();back_a();break;case 2:system("cls");input();back_a();break;case 3:system("cls");add();//添加学生信息();back_a();break;case 4:system("cls");sort_a();back_a();break;case 5:system("cls");search_a();back_a();break;case 6:system("cls");change();back_a();break;case 7:system("cls");delete_();back_a();break;case 8:system("cls");menu();break;case 9:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");administrator();break;}}void teachar() //教师端界面{read();int l;printf("\t欢迎使用教师端系统\t\n");printf("\t 1.打印学生成绩 \t\n");printf("\t 2.登记学生成绩 \t\n");printf("\t 3.排序学生成绩 \t\n");printf("\t 4.查询学生成绩\t\n");printf("\t 5.修改学生信息 \n");printf("\t 6.返回 \n");printf("\t 7.退出 \n");printf("=================================\n");printf("请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");show();back_t();break;case 2:system("cls");input();back_t();break;case 3:system("cls");sort_t();back_t();break;case 4:system("cls");search_t();back_t();break;case 5:system("cls");change();back_t();break;case 6:system("cls");menu();break;case 7:printf("感谢您的使用,已退出!");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");teachar();break;}}void student() //学生端界面{read();int l;printf("\t欢迎使用学生端系统\t\n");printf("\t 1.打印学生成绩 \t\n");printf("\t 2.查询学生成绩\t\n");printf("\t 3.返回 \n");printf("\t 4.退出 \n");printf("=================================\n");printf("请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");show();back_s();break;case 2:system("cls");search_s();back_s();break;case 3:system("cls");menu();break;case 4:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");student();break;}}void color(short x) //改变字体颜色{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);}void password_a() //管理端密码登陆{char username[20];char password[20];int flag;while(g--){printf("\t管理员您好,欢迎使用登陆界面!\n");printf("请输入账户: ");scanf("%s",username);printf("请输入密码: ");scanf("%s",password);flag=strcmp(prefix_a,password);if(flag == 0){color(2);printf("[输入正确]请等待3秒!\n");Sleep(3000);system("cls");color(7);administrator();break;}else{color(772);if(g==0){printf("[警告]您已输错三次,将自动退出系统!\n");color(7);exit(1);}printf("[输入错误]请3秒后重新输入正确密码!\n");Sleep(3000);system("cls");color(7);continue;}}}void password_t() //教师端密码登陆{char username[20];char password[20];int flag;while(g--){printf("\t老师您好,欢迎使用登陆界面!\n");printf("请输入账户: ");scanf("%s",username);printf("请输入密码: ");scanf("%s",password);flag=strcmp(prefix_t,password);if(flag == 0){color(2);printf("[输入正确]请等待3秒!\n");Sleep(3000);system("cls");color(7);teachar();break;}else{color(772);if(g==0){printf("[警告]您已输错三次,将自动退出系统!\n");color(7);exit(1);}printf("[输入错误]请3秒后重新输入正确密码!\n");Sleep(3000);system("cls");color(7);continue;}}}void password_s() //学生端密码登陆{char username[20];char password[20];int flag;while(g--){printf("\t同学你好,欢迎使用登陆界面!\n");printf("请输入账户: ");scanf("%s",username);printf("请输入密码: ");scanf("%s",password);flag=strcmp(prefix_s,password);if(flag == 0){color(2);printf("[输入正确]请等待3秒!\n");Sleep(3000);system("cls");student();break;}else{color(772);if(g==0){printf("[警告]您已输错三次,将自动退出系统!\n");color(7);exit(1);}printf("[输入错误]请3秒后重新输入正确密码!\n");Sleep(3000);system("cls");color(7);continue;}}}void back_a() //管理端返回上一界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");administrator();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_a();break;}}void back_t() //教师端返回上一界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");teachar();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_t();break;}}void back_s() //学生端返回上一界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");student();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_s();break;}}void read() //从文件中读取信息{FILE *fp;int i;fp=fopen("学生信息.txt","r");if(fp==NULL){color(772);printf("[警告]文件打开失败\n");color(7);}else {color(2);printf("[tip]文件读取成功\n");color(7);fscanf(fp,"%d\n",&number);for(i=0;i<number;i++){fscanf(fp,"%d\t%s\t%s\t%f\t%f\t%f\t%f\t%f\n",&stu[i].id,stu[i].name,stu[i].sex,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3,&stu[i].avg,&stu[i].sum);}}fclose(fp);}void print_table() //列表头{printf("\t\t\t学号姓名性别高等数学 大学英语 大学物理 平均分 总分\n");printf("\t\t\t---------------------------------------------------------------------------\n");}void input() //登记学生成绩{int i;struct student stu[100];FILE *fp;fp=fopen("学生信息.txt","w");if(fp==NULL){color(772);printf("[警告]文件打开失败\n");}system("cls");color(7);printf("\t欢迎进入学生信息录入系统");printf("\n学生总人数: ");scanf("%d",&number);if(number>0){fprintf(fp,"%d\n",number);for(i=0;i<number;i++){printf("\n请输入第%d个学生的信息:\n",i+1);printf("学号: ");scanf("%d",&stu[i].id);getchar();printf("姓名: ");scanf("%s",stu[i].name);getchar();printf("性别: ");scanf("%s",stu[i].sex);getchar();printf("高等数学: ");scanf("%f",&stu[i].grade1);getchar();printf("大学英语: ");scanf("%f",&stu[i].grade2);getchar();printf("大学物理: ");scanf("%f",&stu[i].grade3);stu[i].sum= stu[i].grade1 +stu[i].grade2 + stu[i].grade3 ;stu[i].avg = (stu[i].sum)/3;fprintf(fp,"\t\t\t%d\t%s\t%s\t%.0f\t%.0f\t%.0f\t%.1f\t%.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);}fclose(fp);}else{color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");input();}}void show() //打印学生信息{system("cls");int i;print_table();for(i=0;i<number;i++){printf("\t\t\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);}printf("\t\t\t---------------------------------------------------------------------------\n");}void delete_()//删除学生信息{int num,a,v;printf("\t请输入学生学号:");scanf("%d",&num);int i, j;for (i = 0;i<number; i++){if (stu[i].id==num){printf("\t你将要删除该学生信息\n\n");print_table();printf("\t\t\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);printf("\n\t1.确认删除");printf("\n\t2.取消删除");printf("\n\t=========================");printf("\n\t请输入:");scanf("%d", &a);if (a == 1){for(j=i;j<number-1;j++){stu[j]=stu[j+1];}color(2);printf("\n\t[tip]删除成功!");color(7);number--;save(); //保存学生信息break;}else{color(2);printf("\n\t[tip]已取消操作!");color(7);break;}}}if(i==number)//该学号不存在{color(772);printf("\n\t[错误]未找到该学号学生");color(7);}printf("\n\t1.继续删除 2.返回上一级\n");printf("\t请输入:");scanf("%d", &v);if (v == 1){system("cls");delete_();}else{system("cls");administrator();}}void save() //保存学生信息函数{FILE* fp;int i,ret;fp=fopen("学生信息.txt", "w");if (fp == NULL){color(772);printf("\n\t[警告]文件打开失败\n");color(7);}fprintf(fp,"%d\n",number);for (i = 0; i <number; i++){ret=fprintf(fp,"\t\t\t%d\t%s\t%s\t%.0f\t%.0f\t%.0f\t%.1f\t%.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);}if (ret<0){color(772);printf("\n\t[错误]文件写入失败\n");color(7);}else{color(2);printf("\n\t[tip]文件写入成功\n");color(7);}fclose(fp);//关闭文件指针}void change() //修改学生成绩{char name2[20],sex2[5];float grade1_1,grade2_1,grade3_1;int id2,avg2,sum2,i,b;printf("\t请输入要修改的学生的学号:");scanf("%d",&id2);for (i =0;i<number;i++){if (stu[i].id ==id2 ){printf("\t修改前:\n");print_table();printf("\t\t\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);printf("\n\t请输入修改后信息\n");printf("\t学生姓名:");scanf("%s",name2);getchar();printf("\t学生性别:");scanf("%s", sex2);getchar();printf("\t高等数学:");scanf("%f", &grade1_1);getchar();printf("\t大学英语:");scanf("%f", &grade2_1);getchar();printf("\t大学物理:");scanf("%f", &grade3_1);getchar();sum2=grade1_1+grade2_1+grade3_1;avg2=sum2/3;printf("\n\t1.确认修改");printf("\n\t2.取消修改");printf("\n\t=========================");printf("\n\t请输入:");scanf("%d", &b);if (b== 1){strcpy(stu[i].name, name2);strcpy(stu[i].sex, sex2);stu[i].grade1 = grade1_1;stu[i].grade2 = grade2_1;stu[i].grade3 = grade3_1;stu[i].avg = avg2;stu[i].sum=sum2;printf("\n\t修改后:\n");printf("\t\t\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);save();//保存学生信息到文件中}break;}}if (i == number){color(772);printf("\n\t[错误]未找到该学号学生\n");color(7);}printf("\t是否继续修改,请选择(y/n):");getchar();if (getchar() == 'y'){system("cls");change();}}void sort_a() //管理员排序学生成绩{int l;printf("\t欢迎使用排序系统\t\n");printf("\t 1.按总成绩排序 \t\n");printf("\t 2.按数学成绩排序 \t\n");printf("\t 3.按英语成绩排序\t\n");printf("\t 4.按物理成绩排序 \n");printf("\t 5.返回 \n");printf("\t 6.退出 \n");printf("\t=================================\n");printf("\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");sort_sum();back_sort_a();break;case 2:system("cls");sort_grade1();back_sort_a();break;case 3:system("cls");sort_grade2();back_sort_a();break;case 4:system("cls");sort_grade3();back_sort_a();break;case 5:system("cls");administrator();break;case 6:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");sort_a();break;}}void sort_t() //教师排序学生成绩{int l;printf("\t欢迎使用排序系统\t\n");printf("\t 1.按总成绩排序 \t\n");printf("\t 2.按数学成绩排序 \t\n");printf("\t 3.按英语成绩排序\t\n");printf("\t 4.按物理成绩排序 \n");printf("\t 5.返回 \n");printf("\t 6.退出 \n");printf("\t=================================\n");printf("\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");sort_sum();back_sort_t();break;case 2:system("cls");sort_grade1();back_sort_t();break;case 3:system("cls");sort_grade2();back_sort_t();break;case 4:system("cls");sort_grade3();back_sort_t();break;case 5:system("cls");teachar();break;case 6:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");sort_t();break;}}void sort_sum()//按总成绩排序{int k,j,min=0,max=0;struct student temp;for (k = 0; k< number ; k++){for (j = 0; j < number - 1 - k; j++){if (stu[j].sum < stu[j + 1].sum){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(int i=0;i<number;i++){if(stu[i].sum<stu[min].sum)min=i;if(stu[i].sum>stu[max].sum)max=i;}save();print_table();show();printf("\t总分最高分: ");printf("\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-9.1f(%.0f)\n",stu[max].id,stu[max].name,stu[max].sex,stu[max].grade1,stu[max].grade2,stu[max].grade3,stu[max].avg,stu[max].sum);printf("\t总分最低分: ");printf("\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-9.1f(%.0f)\n",stu[min].id,stu[min].name,stu[min].sex,stu[min].grade1,stu[min].grade2,stu[min].grade3,stu[min].avg,stu[min].sum);printf("\t-------------------------------------------------------------------------------------------");}void sort_grade1() //按数学成绩排序{int k,j,min=0,max=0;struct student temp;for (k = 0; k< number ; k++){for (j = 0; j < number - 1 - k; j++){if (stu[j].grade1 < stu[j + 1].grade1){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(int i=0;i<number;i++){if(stu[i].grade1<stu[min].grade1)min=i;if(stu[i].grade1>stu[max].grade1)max=i;}save();print_table();show();printf("\t数学最高分: ");printf("\t%-10d%-10s%-9s(%-3.0f)\t%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[max].id,stu[max].name,stu[max].sex,stu[max].grade1,stu[max].grade2,stu[max].grade3,stu[max].avg,stu[max].sum);printf("\t数学最低分: ");printf("\t%-10d%-10s%-9s(%-3.0f)\t%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[min].id,stu[min].name,stu[min].sex,stu[min].grade1,stu[min].grade2,stu[min].grade3,stu[min].avg,stu[min].sum);printf("\t-------------------------------------------------------------------------------------------");}void sort_grade2() //按英语成绩排序{int k,j,min=0,max=0;struct student temp;for (k = 0; k< number ; k++){for (j = 0; j < number - 1 - k; j++){if (stu[j].grade2 < stu[j + 1].grade2){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(int i=0;i<number;i++){if(stu[i].grade2<stu[min].grade2)min=i;if(stu[i].grade2>stu[max].grade2)max=i;}save();print_table();show();printf("\t英语最高分: ");printf("\t%-10d%-10s%-10s%-9.0f(%-3.0f)\t %-10.0f%-10.1f%-10.0f\n",stu[max].id,stu[max].name,stu[max].sex,stu[max].grade1,stu[max].grade2,stu[max].grade3,stu[max].avg,stu[max].sum);printf("\t英语最低分: ");printf("\t%-10d%-10s%-10s%-9.0f(%-3.0f)\t %-10.0f%-10.1f%-10.0f\n",stu[min].id,stu[min].name,stu[min].sex,stu[min].grade1,stu[min].grade2,stu[min].grade3,stu[min].avg,stu[min].sum);printf("\t-------------------------------------------------------------------------------------------");}void sort_grade3() //按物理成绩排序{int k,j,min=0,max=0;struct student temp;for (k = 0; k< number ; k++){for (j = 0; j < number - 1 - k; j++){if (stu[j].grade3 < stu[j + 1].grade3){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(int i=0;i<number;i++){if(stu[i].grade3<stu[min].grade3)min=i;if(stu[i].grade3>stu[max].grade3)max=i;}save();print_table();show();printf("\t物理最高分: ");printf("\t%-10d%-10s%-10s%-10.0f%-9.0f(%-3.0f)\t %-10.1f%-10.0f\n",stu[max].id,stu[max].name,stu[max].sex,stu[max].grade1,stu[max].grade2,stu[max].grade3,stu[max].avg,stu[max].sum);printf("\t物理最低分: ");printf("\t%-10d%-10s%-10s%-10.0f%-9.0f(%-3.0f)\t %-10.1f%-10.0f\n",stu[min].id,stu[min].name,stu[min].sex,stu[min].grade1,stu[min].grade2,stu[min].grade3,stu[min].avg,stu[min].sum);printf("\t-------------------------------------------------------------------------------------------");}void search_a()//管理端查询学生成绩{int l;printf("\t欢迎使用成绩查询系统\t\n");printf("\t 1.按学号查询 \t\n");printf("\t 2.按姓名查询 \t\n");printf("\t 3.返回 \n");printf("\t 4.退出 \n");printf("\t=================================\n");printf("\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");search_id();back_search_a();break;case 2:system("cls");search_name();back_search_a();break;case 3:system("cls");administrator();break;case 4:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");search_a();break;}}void search_t()//教师端查询学生成绩{int l;printf("\t欢迎使用成绩查询系统\t\n");printf("\t 1.按学号查询 \t\n");printf("\t 2.按姓名查询 \t\n");printf("\t 3.返回 \n");printf("\t 4.退出 \n");printf("\t=================================\n");printf("\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");search_id();back_search_t();break;case 2:system("cls");search_name();back_search_t();break;case 3:system("cls");teachar();break;case 4:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");search_t();break;}}void search_s()//学生端查询学生成绩{int l;printf("\t欢迎使用成绩查询系统\t\n");printf("\t 1.按学号查询 \t\n");printf("\t 2.按姓名查询 \t\n");printf("\t 3.返回 \n");printf("\t 4.退出 \n");printf("\t=================================\n");printf("\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");search_id();back_search_s();break;case 2:system("cls");search_name();back_search_s();break;case 3:system("cls");student();break;case 4:printf("感谢您的使用,已退出!\n");exit(0);default:color(772);printf("[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");search_s();break;}}void search_id() //按学号查询{int id3,i;printf("\t学生的学号:");scanf("%d",&id3);for ( i =0;i<number;i++){if (stu[i].id ==id3 ){printf("\t该学生信息如下:\n ");print_table();printf("\t\t\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);break;}}if (i == number){color(772);printf("\n\t[错误]未找到该学号学生\n");color(7);}printf("\n\t是否继续修改,请选择(y/n):");getchar();if (getchar() == 'y'){system("cls");search_id();}}void search_name() //按姓名查询{char name1[20];int i;printf("\t学生的姓名:");scanf("%s",name1);for (i =0;i<number;i++){if (strcmp(stu[i].name,name1)==0 ){printf("\t该学生信息如下:\n ");print_table();printf("\t\t\t%-10d%-10s%-10s%-10.0f%-10.0f%-10.0f%-10.1f%-10.0f\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[i].avg,stu[i].sum);break;}}if (i == number){color(772);printf("\n\t[错误]未找到该学生\n");color(7);}printf("\n\t是否继续修改,请选择(y/n):");getchar();if (getchar() == 'y'){system("cls");search_name();}}void back_search_a() //管理端查询功能 返回界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回管理端");printf("\n\t3.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");administrator();break;case 3:system("cls");search_a();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_search_a();break;}}void back_search_t() //教师端查询功能 返回界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回教师端");printf("\n\t3.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");teachar();break;case 3:system("cls");search_t();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_search_t();break;}}void back_search_s() //学生端查询功能 返回界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回学生端");printf("\n\t3.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");student();break;case 3:system("cls");search_s();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_search_s();break;}}void back_sort_a() //管理端排序功能 返回界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回管理端");printf("\n\t3.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");administrator();break;case 3:system("cls");sort_a();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_sort_a();break;}}void back_sort_t() //教师端排序功能 返回界面{int l;printf("\n\t1.返回主界面");printf("\n\t2.返回教师端");printf("\n\t3.返回上一级");printf("\n\t=========================");printf("\n\t请输入要执行的操作: ");scanf("%d",&l);switch(l){case 1:system("cls");menu();break;case 2:system("cls");teachar();break;case 3:system("cls");sort_t();break;default:color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);back_sort_t();break;}}void add()//添加学生信息{int i = number, j, flag,m;printf("\t请输入待增加的学生数:");scanf("%d", &m);if (m > 0){do{flag = 1;printf("\n\t请输入第%d位学生的信息:\n", i + 1);while (flag){flag = 0;printf("\t学号: ");scanf("%d", &stu[i].id);for (j = 0; j < i; j++){if (stu[i].id==stu[j].id){color(772);printf("\t[错误]已存在该学号学生,请重新输入!\n");color(7);flag = 1;break;}}}printf("\t姓名: ");scanf("%s",stu[i].name);getchar();printf("\t性别: ");scanf("%s",stu[i].sex);getchar();printf("\t高等数学: ");scanf("%f",&stu[i].grade1);getchar();printf("\t大学英语: ");scanf("%f",&stu[i].grade2);getchar();printf("\t大学物理: ");scanf("%f",&stu[i].grade3);stu[i].sum= stu[i].grade1 +stu[i].grade2 + stu[i].grade3 ;stu[i].avg = (stu[i].sum)/3;if (0 == flag){i++;}} while (i<number + m);}else{color(772);printf("\t[输入错误]请3秒后重新输入有效数字!\n");Sleep(3000);color(7);system("cls");add();}number += m;color(2);printf("\t[成功]学生信息添加完毕!!!");color(7);save();}

文件素材:

5

9 李五 男 76 76 100 84.0 252

6 丝丝 女 9 100 98 69.0 207

2 李四 男 89 79 67 78.3 235

1 张三 男 35 43 67 48.3 145

7 苏苏 女 98 12 53 54.3 163

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。