当前位置: 首页 > news >正文

c语言 学生成绩管理系统

c语言期末作业

 

学生成绩管理系统
本系统能够对学生成绩管理功能,包括:
1.对多个学生成绩进行管理,至少10个学生。
2.每个学生至少3门课程。
3.对每个学生大学期间的成绩进行记录。
4.修改学生成绩。
5.不同用户的权限不同,管理员拥有所有权限(打印、登记、添加、排序、查询、修改、删除学生信息)、教师可以排序、查询、登记和修改成绩;学生可以查询成绩。 其中查询分姓名查询、学号查询;排序分总成绩排序及各科成绩排序.
6.成绩说明:0~100,整数。
7.成绩需要保存进文件,程序初始化时读取文件。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGQeWF-,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGQeWF-,size_20,color_FFFFFF,t_70,g_se,x_16

 

#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("\t     1.管理端 \t\n");printf("\t     2.教师端 \t\n");printf("\t     3.学生端 \t\n");printf("\t     4.退出   \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

            

 

 

 

 

 

 

 

 

 


http://www.taodudu.cc/news/show-1944744.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • C语言学生成绩管理系统(综合项目)
  • 学生成绩管理系统(C语言)
  • 在线反编译
  • swf反编译及修改
  • swf反编译为as
  • 如何防止SWF文件被反编译 如何防止SWF文件被反编译(2)
  • swf文件的反编译或着flash文件的反编译
  • swc反编译工具_ffdec 10.0|ffdec(flash反编译工具)下载v10.0.0官方最新版 - 欧普软件下载...
  • swc反编译工具_Flash反编译工具下载_Flash反编译工具(JPEXS Free Flash Decompiler)v11.3中文版-这家软件站...
  • swc反编译工具_JPEXS Free Flash Decompiler(Flash反编译工具)v11.3.0 中文免费版-ucbug软件站...
  • flash 反编译资料
  • Sothink SWF Decompiler 反编译swf
  • 如何防止SWF文件被反编译
  • SWF反编译工具
  • 使用swix反编译swf文件修改版权
  • 反编译swf工具
  • SWF文件反编译调试记录
  • 反编译swf
  • SWF 学习笔记 ——《如何在内存中提取出加密的SWF》
  • swf文件的反编译入门
  • 用JPEXS软件实现swf反编译-逆向调试方法
  • 把swf反编译成fla的几种方法
  • cognos oracle sql,Cognos联接Oracle数据库
  • cognos宏函数的使用prompt
  • cognos 10 oracle,Cognos10.2.1安装配置手册.docx
  • cognos java,cognos10用JAVA如何获取passPortID(即实现单点登录)
  • cognos数据源的配置
  • Cognos SDK 入门教程(一) - Hello Cognos
  • Cognos report studio 清单表优化实录
  • Cognos报表的开发