1、void savedb(); /把内存中结构体数组中的学生数据保存到外存中void zhumulu(); /显示程序主目录void display(); /显示所有学员信息void input(); /录入新学员信息int find(char str80);/查找指定学号的学员,找到返回该学员在数组中的下标,没找到返回-1,str代表指定学号;在多个模块中用到该函数void query(); /根据学号查找,并显示学员信息void update(); /修改学员信息void del(); /删除学员信息void sort(); /对学员进行排序void average(); /求学生成绩平均值
2、void guake(); /不及格学生/函数定义void main() /程序进入“欢迎界面” printf(nnnnntt欢迎进入=学员信息管理系统=n); /按任意键初始化学员信息nttt按任意键初始化学员信息.nn getch(); /从键盘收任一个字符即返回,该函数在conio.h中 readdb();/初始化学员信息,把外存中学生数据读入到内存中ttt共有%d 条学员信息,scount);/scount是实际学生数量nnttt按任意键进入主目录. zhumulu();/调出“程序主目录”void zhumulu() char select;/代表用户所选择的子目录号 do syst
3、em(cls printf(=学员信息管理系统=nn以下是程序主目录,请选择功能nn1)显示n2)查找n3)录入n4)修改n5)删除n6)排序n7)求学生成绩的平均值8)不及格学生n0)退出nn键入功能前的数字后,按Enter键: select=getchar(); switch(select) case 1: system( display(); printf( break; 2query(); break; /查询学员信息 3input(); /录入新学员信息 4update(); break; /修改学员信息 5del(); / 删除学员信息 6sort(); /对学员进行排序 case
4、 7:average(); case 8:guake(); /求挂科学生0 /退出 default:printf(请选择功能前的数字nbreak; while(select!=void readdb()/初始化学员信息,把外存中学生数据读入到内存中 FILE *fp; if(fp=fopen(studb.txt,r)=NULL) printf(文件有错误!程序不能运行!n return; scount=0;/scount是数据库中实际学生数量,是全局变量 while(!feof(fp) /no是学号,name是姓名,)core是成绩 /stu是学生结构体数组,全局变量 fscanf(fp,%s
5、 %s %f %f %f,stuscount.no,stuscount.name,&stuscount.score0,&stuscount.score1,&stuscount.score2); if(strcmp(stuscount.no,)!=0) scount+;/去掉学号为空字符串 fclose(fp);/把内存中结构体数组中的学生数据保存到外存中void savedb() int i;w)=NULL)/以写的方式打开文件,覆盖原文件 for(i=0;iscount;i+)/scount代表实际的学生数量,stu是表示学生信息的结构体数组名 if(strcmp(stui.no,=0)/去
6、掉学号为空字符串的信息 printf(fp,%-8s%-10s%-10.1f%-10.1f%-10.1fn,stui.no,stui.name,stui.score0,stui.score1,stui.score2);void display()/显示所有学员信息 int i;n%-8s%-10s%-10s%-10s%-10sn学号姓名语文数学英语%-8s%-10s%-10s%-10s%-10sn, =i+) /在printf中,“-”表示数据左对齐,“.1”中的表示输出宽度,“1”表示输出位小数/查找指定学号的学员,代表指定学号(str)的下标,如果指定学号不存在,返回-1 ;int fin
7、d(char str80) if(strcmp(str,stui.no)=0) return i; return -1;void query() /根据学号查找,并显示学员信息 char str80;int n; system(n请输入要查询的学生的学号: scanf(%s,str); n=find(str); if(n=-1)/find函数返回值,n代表指定学号的下标,如果指定学号不存在,返回-1n对不起,您要查找的学员不存在n else,stun.no,stun.name,stun.score0,stun.score1,stun.score2); /显示完毕,提示用户返回主程序void i
8、nput()/录入新学员信息 STU s;/代表新学员信息 /先显示已有学员信息当前学员信息如下: /在printf中,“-”表示数据左对齐,“.2”中的表示输出宽度,“.2”表示表示输出两位小数 /下面输入新学员信息nnn请输入学号,不允许为空字符串:,&s.no);n请输入姓名,注意里不能加空格:s.name);语文成绩:%fs.score0 );数学成绩s.score1 );英语成绩s.score2 ); /把临时结构体变量s赋到结构体数组中;同时把表示学员数量的变量scount增加 stuscount+=s; savedb();void update()/修改学员信息 int n;char str80;STU s;当前学员信息
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1