*教学成绩管理系统* *说明:《教学成绩管理系统》基本信息包括班级、学号、姓名 及语文、数学、外语、物理、化学五科成绩的信息,可以根据实际情况有所增减* 教学成绩管理系统* *说明:《教学成绩管理系统》基本信息包括班级、学号、姓名 及语文、数学、外语、物理、化学五科成绩的信息,可以根据实际情况有所增减* #include"stdio. h" /*控制台I/O的头文件考 #include "string. h /*字符串函数的头文件* #include "stdlib h" /+exiO函数的头文件* #define max 100 *定义最多可以输入的学生数 int Interface( char(*x)(20), int n); /*操作界面* int Add(int start, struct student *p); /*增加学生数* oid Display (struct student*p, int start, int end) /显示已存在的数据* void SortName(struct student*p, int n) /按姓名排序* void Sort Total(struct student*p, int n); /*按总分排序(由高到低) void SortChinese(struct student*p, int n); /*按语文排序(由高到低) void SortMath( struct student*p, int n); /*按数学排序(由高到低)* void Sort ForeignLanguage(struct student*p, int n /*按外文排序(由高到低)* void SortPhysics(struct student*p, int n) /*按物理排序(由高到低)* void SortChemistry (struct student*p, int n); /*按化学排序(由高到低)* int Search(struct student*p, char*t, int n) 信息检索* int Find(struct student*p, int n); /信息查找* void Modify(struct student*p, int n); /*信息修改* int Delete(struct student*p, int n) 信息删除* void Swap(struct student*pl, struct student*p2) *学生信息互换* oid SaveFile(struct student*p, int n) *文件保存* char password 8="765432 *设置系统管理员密码* struct student char Class 301 char Name 20] 主函数
/*教学成绩管理系统*/ /*说明:《教学成绩管理系统》基本信息包括班级、学号、姓名 及语文、数学、外语、物理、化学五科成绩的信息,可以根据实际情况有所增减*/ /*教学成绩管理系统*/ /*说明:《教学成绩管理系统》基本信息包括班级、学号、姓名 及语文、数学、外语、物理、化学五科成绩的信息,可以根据实际情况有所增减*/ #include "stdio.h" /*控制台 I/O 的头文件*/ #include "string.h" /*字符串函数的头文件*/ #include "stdlib.h" /*exit()函数的头文件*/ #define Max 100 /*定义最多可以输入的学生数*/ int Interface(char (*x)[20],int n); /*操作界面*/ int Add(int start, struct student *p); /*增加学生数*/ void Display(struct student *p, int start, int end); /*显示已存在的数据*/ void SortName(struct student *p, int n); /*按姓名排序*/ void SortTotal(struct student *p, int n); /*按总分排序(由高到低)*/ void SortChinese(struct student *p, int n); /*按语文排序(由高到低)*/ void SortMath(struct student *p, int n); /*按数学排序(由高到低)*/ void SortForeignLanguage(struct student *p, int n); /*按外文排序(由高到低)*/ void SortPhysics(struct student *p, int n); /*按物理排序(由高到低)*/ void SortChemistry(struct student *p, int n); /*按化学排序(由高到低)*/ int Search (struct student *p, char *t, int n); /*信息检索*/ int Find(struct student *p, int n); /*信息查找*/ void Modify(struct student *p, int n); /*信息修改*/ int Delete(struct student *p, int n); /*信息删除*/ void Swap(struct student *p1, struct student *p2); /*学生信息互换*/ void SaveFile(struct student *p,int n); /*文件保存*/ char password[8]="7654321"; /*设置系统管理员密码*/ struct student { char Class[30]; char StudentNumber[20]; char Name[20]; int Score[5]; int Total; }; /**********************************************************\ 主函数 \**********************************************************/ void main()
struct student stu[ Max 体定义结构数组* FILE * fp /*结构数组,即可输入的最大学生数,最大值为声明中预定义的Max S, /*设置变量,以用于用户输入信息的接收,并将其作为转向函数的参数* int n=0. /整型变量* char choice. char menu[20}={"添加","显示"’"按姓名排序""按总分排序”按语文成绩排序 按数学成绩排序","按外语成绩排序","按物理成绩排序""按化学成绩排序", 检索”,"修改”"删除","存盘""返回"}; /***********系统密码管理**幸春***** char pass[ 81: int flag=0 int w=3 char openfile[10]; do f printf("请输入管理员密码:n"); if(lstrcmp(pass, password)) printf("PASSIninIn") printf("密码错误,请重新输入n") while(w>0) if(I flag printf("你已连续三次输入错误,请确认后再使用本系统,谢谢!n") system("cls"); /*用 system调用dos命令,清屏* /***事客*幸幸*幸**打开已有文件幸***春*** printf("in打开已有的文件" d: \student. txt\"?y/n)"), canf("%s",openfile)
{ struct student stu[Max]; /*定义结构数组*/ FILE *fp; /*结构数组,即可输入的最大学生数,最大值为声明中预定义的 Max*/ int s; /*设置变量,以用于用户输入信息的接收,并将其作为转向函数的参数*/ int n=0; /*整型变量*/ char choice; char menu[][20]={"添加","显示","按姓名排序","按总分排序","按语文成绩排序", "按数学成绩排序","按外语成绩排序","按物理成绩排序","按化学成绩排序", "检索","修改","删除","存盘","返回"}; /**********************系统密码管理********************/ char pass[8]; int flag=0; int w=3; char openfile[10]; do{ printf("请输入管理员密码:\n"); scanf("%s",pass); if(!strcmp(pass,password)) { printf("PASS\n\n\n"); flag = 1; break; } else { printf("密码错误,请重新输入:\n"); w--; } } while(w>0); if(!flag) { printf("你已连续三次输入错误,请确认后再使用本系统,谢谢!\n"); exit(0); } system("cls"); /*用 system 调用 dos 命令,清屏*/ /**********************打开已有文件********************/ printf ("\n 打开已有的文件\"d:\\student.txt\"?(y/n)"); scanf("%s",openfile);
if(strcmp(openfile, y)==NULL)) if((fp=fopen("d: \\student. txt","r))==NULL) printi("不能打开文件!m") while(feof(fp)==0) fscanf(fp, %s %s %s%d%d %d %d %d %d\n", stu[n]. Class, stun].Student Number, stu[ &stu[n]. Total, &stu[]. Score[0], &stu(n]. Score[ 1), &stu(n)Score[2], &stu[n]. Score[3], &stu[n]. Score[4); fclose(fp) else printi("请创建一个新文件" student txt"m") system("cls") /*用 system调用dos命令,清屏* printf("-wwwwwwmItttltht printf("ht欢迎进入教学成绩管理系统Ⅶn") printf("%%%%%%%%%‰%%‰%8‰%%%%%%%%%%%%%%ttit%%%%%%%%%%% %%%%%%%%%%%%%%%%n") printf( printf("\nInInIn") printf("单位:北京三零九中学n”) printf("地址:北京市海淀区mn") printi("电话:010-700000 printf("InininIn") printf( n") printf("本系统由“天地人和软件有限公司”开发n") printi("地址:北京市海淀区学院路ln") printi("编制人:天天n"); printf( printf("\nin"); printf("t请任意输入一个值并回车进入系统ln") exit(1) system("cls") /*用 system调用dos命令,清屏*
if((strcmp(openfile,"y")==NULL)) { if((fp=fopen("d:\\student.txt","r"))==NULL) { printf("不能打开文件!\n"); exit(0); } while (feof(fp)==0) { fscanf(fp,"%s %s %s %d %d %d %d %d %d\n",stu[n].Class,stu[n].StudentNumber,stu[n].Na me, &stu[n].Total,&stu[n].Score[0],&stu[n].Score[1],&stu[n].Score[2], &stu[n].Score[3],&stu[n].Score[4]); n++; } fclose(fp); } else printf("请创建一个新文件\"student.txt\".\n"); system("cls"); /*用 system 调用 dos 命令,清屏*/ printf("~~~~~~~~~~~~~\t\t\t\t\t~~~~~~~~~~~~~\n"); printf("~~~~~~~~~~~~~\t\t\t\t\t~~~~~~~~~~~~~\n"); printf("\t\t 欢迎进入教学成绩管理系统\n"); printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\t\t\t\t\t%%%%%%%%%%% %%%%%%%%%%%%%%%%\n"); printf("-------------------------------------------------------------"); printf("\n\n\n\n"); printf("单位:北京三零九中学\n"); printf("地址:北京市海淀区\n"); printf("电话:010-70000000"); printf("\n\n\n\n"); printf("==============\t\t==============\n"); printf("本系统由“天地人和软件有限公司”开发\n"); printf("地址:北京市海淀区学院路\n"); printf("编制人:天天\n"); printf("==============\t\t==============\n"); printf("\n\n"); printf("\t\t 请任意输入一个值并回车进入系统\n"); scanf("%s",&choice); if(choice=='n'||choice=='N') exit(1); system("cls"); /*用 system 调用 dos 命令,清屏*/ do
sInter face( menu, 14) /*调用 Interface(函数* switch(s) 转向语句,选择以实现不同的功能* case 1: Display (stu, O, n-1), break; case 2: SortName(stu, n); break; ase 3: Sort Total(stu, n); break; case 4: Sort Chinese(stu, n); break case 5: SortMath(stu, n); break case 6: Sort ForeignLanguage(stu, n); break case 7: SortPhysics(stu, n); break case 8: Sort Chemistry (stu, n); break case 9: Find(stu, n); break; case 10: Modify(stu, n); break; case 11: n=Delete(stu, n); break; case 12: Save File(stu, n) les>=0&&s<=12), 操作界面函数 **亲幸本本**春本率**幸**幸*率*幸率本李率**幸**/ int Interface(char(x)[20), int n) printf("hn×××××××教学成绩管理系统××××××ln") for (=0; j<n: j++) printf("%2d. %sIn"j+l, x[D printf("请从上述选项中选择:in") scanf("%d", &i) /接收键盘输入的字符* while(i<O‖>n+1) return(int)i-I 幸率幸本本本本******春幸本本本幸春客家举幸本本*******亲幸* 添加信息函数
{ s=Interface(menu,14); /*调用 Interface()函数*/ switch (s) /*转向语句,选择以实现不同的功能*/ { case 0: n=Add(n,stu);break; case 1: Display(stu,0,n-1);break; case 2: SortName(stu,n);break; case 3: SortTotal(stu,n);break; case 4: SortChinese(stu,n);break; case 5: SortMath(stu,n);break; case 6: SortForeignLanguage(stu,n);break; case 7: SortPhysics(stu,n);break; case 8: SortChemistry(stu,n);break; case 9: Find(stu,n);break; case 10: Modify(stu,n);break; case 11: n=Delete(stu,n);break; case 12: SaveFile(stu,n); } } while(s>=0&&s<=12); } /**********************************************************\ 操作界面函数 \**********************************************************/ int Interface(char (*x)[20],int n) { int i; int j; printf("\n×××××××教学成绩管理系统×××××××\n"); do { for (j=0;j<n;j++) printf("%2d.%s\n",j+1,x[j]); printf("请从上述选项中选择:\n"); scanf("%d",&i); /*接收键盘输入的字符*/ } while (i<0||i>n+1); return (int)i-1; } /**********************************************************\ 添加信息函数
****亲*亲本本***家幸本本***亲本本**客*春本本****幸本**/ int Add(int start, struct student"p) Int n for(n=start; n<Max; n++) printf("n[%d]输入学生信息(按e键退出)n",n+1)/*若要退出输入,则按e*/ printi("班级:") if(strcmp((p+n)->Class, e"==0)break printi("学号:"); scanf("%s", (p+n)->StudentNumber) printi("姓名:") printi("语文:") scanf("%d", &((p+n)->Score[OD) printi("数学:") scanf("%od", &((p+n)->Score[lD); printi("外语:"); scanf("%d", &((p+n)->Score[2D); printi("物理:") scanf("%od", &((p+n)->Score3D) printi("化学: scanf("%d", &((p+n)->Score[4D) (p+n)->Total=0 (p+n)->Total=((p+n)->Total+(p+n)->Score[0(p+n)->Score[l +(p+n)->Score[21+(p+n)->Score[3]+(p+n)->Score[4]), return n 显示信息函数 *春家举幸**********本本本**幸本*****亲***幸本****/ void Display(struct student*p, int start, int end printi("n%9s%10s%l0s","班级”,"学号""姓名") *显示标题* printf("%8s%8%685%85%8s%8s","总分","语文""数学","外语","物理""化学") printf("n
\**********************************************************/ int Add(int start,struct student *p) { int n; for (n=start;n<Max;n++) { printf("\n [%d]输入学生信息(按 e 键退出)\n",n+1); /*若要退出输入,则按 e*/ printf("班级:"); scanf("%s",(p+n)->Class); if (strcmp((p+n)->Class,"e")==0)break; printf("学号:"); scanf("%s",(p+n)->StudentNumber); printf("姓名:"); scanf("%s",(p+n)->Name); printf("语文:"); scanf("%d",&((p+n)->Score[0])); printf("数学:"); scanf("%d",&((p+n)->Score[1])); printf("外语:"); scanf("%d",&((p+n)->Score[2])); printf("物理:"); scanf("%d",&((p+n)->Score[3])); printf("化学:"); scanf("%d",&((p+n)->Score[4])); (p+n)->Total=0; (p+n)->Total=((p+n)->Total+(p+n)->Score[0]+(p+n)->Score[1] +(p+n)->Score[2]+(p+n)->Score[3]+(p+n)->Score[4]); } return n; } /**********************************************************\ 显示信息函数 \**********************************************************/ void Display(struct student *p, int start, int end) { int i; printf("\n%9s%10s%10s","班级","学号","姓名"); /*显示标题*/ printf("%8s%8s%8s%8s%8s%8s","总分","语文","数学","外语","物理","化学"); printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~\n");