学生成绩管理系统源程序_第1页
学生成绩管理系统源程序_第2页
学生成绩管理系统源程序_第3页
学生成绩管理系统源程序_第4页
学生成绩管理系统源程序_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include #include #include #define PF printf #include time.h #define LEN sizeof(struct St1) /定义结构体 / typedef struct St1 char IDNumber16;/* 学号 */ char FamilyName16; /* 姓 */ char GivenName16; /* 名 */ int sex; /* 性别( 0代表女,1 代表 男)*/ int BirthYear; /* 出生年 */ int BirthMonth; /* 出生月 */ int BirthDay; /* 出生日

2、 */ float score0,score1,score2,score3; /* 成绩 */ float sum; /* 总分 */ float average; /* 平均分 */ struct St1 *next; StudentNode; int time() struct tm* ptm; long ts; int y,m,d,h,n,s; ts = time(NULL); ptm = localtime( y = ptm- tm_year+1900; /年 m = ptm- tm_mon+1; /月 d = ptm- tm_mday; /日 h = ptm- tm_hour; /时

3、 n = ptm- tm_min; /分 s = ptm- tm_sec; /秒 return(y); c 为总分 StudentNode *head=NULL; / 全局指针 int n,i=0,c=0,d=0,j=0;/ 全局变量 j 在函数中作数组下标或循环变量 数组中元素个数 d 为平均分数组元素个数 float English=0.0,Math=0.0,C=0.0,Mazhe=0.0,Sum100,Avr100;/全局变量 /自定义函数 / void show_menu(); void menu(); void creat_stu(); void input_stu(); void

4、print_stu(); void search_NO(); void search_name(); void arrage_stu(); void del_stu(); void revise_stu(); void save(); void jisuan(); /显示菜单 /执行菜单 /建立链表 /输入学生信息 /显示链表中所有记录信息 /以学号方式查询信息 /以姓方式查询信息 /学生成绩排名 /删除学生信息 /修改学生信息 /保存信息 /计算所有学生的以及各科总分和均分 void insert_stu(); /插入学生记录到表中 void search_clas(); /按班级查询显示学

5、生信息 void sort(float x,int n);/ 对学生按总分进行从高到底排序 void search_allscore(); /按学生总成绩查询,用来输出排名信息 void jieduan();/用来输出按平均分阶段输出信息,其中用了按平均分输出信息的程序。 void Loadf();/ 从文件中读出所有学生记录 void main() printf( *); 欢迎来到学生管理系统 !); printf(n); printf( printf(n); printf(n); printf( 制作人:陈志 52101610); creat_stu(); menu(); 建链表 /* *

6、 void creat_stu() FILE *fp; long size; StudentNode *p1,*p2; head=(StudentNode *)malloc(sizeof(StudentNode); head-next=NULL; if(fp=fopen(fname.txt,r)=NULL) printf( 这是新表 n); return; fseek(fp,0L,2); size=ftell(fp); if(!size) printf( 这是空表 n); return; / 开始创建链表 rewind(fp);/移动到文件首 p2=head-next; / 找到当前位置 wh

7、ile(!feof(fp) p1=(StudentNode *)malloc(sizeof(StudentNode); fscanf(fp,%s %s %s %d %d %d %d %f %f %f %f %f %fn,p1-IDNumber,p1-FamilyName,p1 -GivenName, p1-next=NULL; /创建节点完 if(head-next=NULL) head-next=p1; else p2-next=p1; p2=p1; n+; p2-next=NULL; fclose(fp); /* * 执行菜 * void menu() int c; show_menu()

8、; while(1) scanf(%d, switch(c) getchar(); case 1:input_stu();break; case 2:del_stu(); break; case 3:print_stu();break; case 4:search_name(); break; case 5:save();break; case 6:Loadf();break; case 7:jisuan(); break; case 8:search_clas(); break; case 9:insert_stu() ; break; case 10:search_NO(); break;

9、 case 11:arrage_stu();break; case 12:revise_stu(); break; case 13:jieduan();break; case 0:exit(0); / 执行菜单选项 show_menu(); /* 显 示 +k- 菜 单 * void show_menu() PF(n); PF(n* 菜 单 *、| PF(tt* 1. 输入学生信息 *n); PF(tt* 2. 删除学生信息 *n); PF(tt* 3. 显示链表中所有记录信息 *n); PF(tt* 4. 按照学生的姓查找记录 *n); PF(tt* 5. 将链表中记录保存到文件中 *n);

10、 PF(tt* 6. 从文件中读入记录 *n); PF(tt* 7. 计算所有学生以及各科总分和均分 *n); PF(tt* 8. 按班级查询显示学生信息 *n); PF(tt* 9. 插入记录到表中 *n); PF(tt* 10 按学号查询学生信息 *n); PF(tt* 11 学生成绩排名 *n); PF(tt* 12 修改学生信息 *n); PF(tt* 13 按平均分阶段输出学生信息 *n); PF(tt* 0. 退出 *n); PF( * *n); PF(n 请选择 n); /* * 输入学 生信息 * void input_stu()/ 输入学生信息 float a,b; /a,b

11、 分别用来存放该生的各科总成绩和平均成绩 int y,j; y=time(); n=0; StudentNode *p1=NULL,*p2=NULL; p1=( StudentNode *)malloc(sizeof(StudentNode); PF(n * * *n); 输入 /输入学生信息 生信息 /学号 /姓 /名 PF(tt 输入学生学号 :t); scanf(%s,p1-IDNumber); PF(tt 输入学生的姓 :t); scanf(%s,p1-FamilyName); PF(tt 输入学生的名 :t); scanf(%s,p1-GivenName); PF(tt 输入学生性别

12、 (0 代表女, 1 代表男 ):t); scanf(%d,/ 性别 for(j=0;j+) 正常 PF(tt 输入学生出生年 :t); scanf(%d, / 判断输入年份是否合理, 假设人年龄在 0-100 岁之间为 /出生年 if(y-p1-BirthYear)100|(p1-BirthYeary) PF(tt 年份输入错误不符合要求 ,请重新输入出生年份: t); else break; for(j=0;j+)/ 判断输入月份是否合理 PF(tt 输入学生出生月 :t); scanf(%d,/ 出生月 if(p1-BirthMonthBirthMonth12) PF(tt 月份输入错误

13、不符合要求 ,请重新输入出生月份: t); else break; for(j=0;j+) / 判断输入出生日是否合理 PF(tt 输入学生出生日 :t); scanf(%d,/ 出生日 if(p1-BirthDayBirthDay31) PF(tt 出生日输入错误不符合要求 ,请重新输入出生日: t); else break; PF(tt 输入学生的外语成绩 :t); scanf(%f,/ 各科成绩 PF(tt 输入学生的数学成绩 :t); scanf(%f, PF(tt 输入学生的 C 语言成绩 :t); scanf(%f, PF(tt 输入学生的马哲成绩 :t); scanf(%f, a

14、=p1-score0+p1-score1+p1-score2+p1-score3; / 求该生的各科总成绩 b=(a/4); p1-sum=a; p1-average=b; /求该生的平均成绩 English=English+p1-score0; Math=Math+p1-score1; C=C+p1-score2; Mazhe=Mazhe+p1-score3; Sumc+=a; 便按成绩排序 Avrd+=b; 放 /求学生英语总分 /求学生数学总分 /求学生 C 语言总分 /求学生马哲总分 / 将各学生的总成绩输入到一个全局数组当中,方 /将个学生的平均分输入到一个全局数组中存 n+; if

15、(head-next=NULL) head=(StudentNode *)malloc(LEN); head-next=p1; else for(p2=head;p2-next!=NULL;p2=p2-next); p2-next=p1; p1-next=NULL; save();保存到文件 /* * /学生信息浏览 void print_stu() StudentNode *p=NULL; if(head=NULL)/判断链表是否为空 PF( 文档中无记录! n); return; for(p=head-next;p!=NULL;p=p-next) PF( * *n); PF(t 学生学号

16、:t%sn,p-IDNumber); PF(t 学生姓 :t%sn,p-FamilyName); PF(t 学生名 :t%sn,p-GivenName); PF(t 学生性别 :t%dn,p-sex); PF(t 学生出生年 :t%dn,p-BirthYear); PF(t 学生出生月 :t%dn,p-BirthMonth); PF(t 学生出生日 :t%dn,p-BirthDay); PF(t 学生英语成绩 :t%fn,p-score0); PF(t 学生数学成绩 :t%fn,p-score1); PF(t 学生 C 语言成绩 :t%fn,p-score2); PF(t 学生马哲成绩 :t%

17、fn,p-score3); PF(t 学生总成绩 :t%fn,p-sum); PF(t 学生平均成绩 :t%fn,p-average); PF(n); /输出信息 PF(t 各个学生总分分别为: ); for(n=0;nc;n+) PF(%ft,Sumn); /*找到最后的结点,然后 将增加的结点挂在它上面 */ 显示链表中所有记录学生信息 /读出信息 查看链表中所有记录学生信息 *按照学生学号信息查找 PF(n); PF(t 各个学生平均分分别为: ); for(n=0;nnext;p!=NULL;p=p-next)/ 读出信息 if(!strcmp(p-FamilyName, Family

18、Name) PF(tt 您查找的学生有: n); PF(n); PF(tt 学生学号 :t%sn,p-IDNumber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(tt 学生名 :t%sn,p-GivenName); PF(tt 学生性别 :t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生月 :t%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score

19、1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); PF(tt 学生马哲成绩 :t%fn,p-score3); PF(tt 学生总成绩 :t%fn,p-sum); PF(tt 学生平均成绩 :t%fn,p-average); PF(n); i=1; / 输出信息 if(i!=1) PF( 无该姓氏学生信息!请查证: ); /没找到信息时的处理 * void search_NO()/ 学生学号信息查找 int i=0; StudentNode *p=NULL; char IDNumber20; if(head=NULL)/ 判断链表是否为空 PF( 文档中无记录! n);

20、return; PF( 请输入学生学号 :); scanf(%s,IDNumber); for(p=head-next;p!=NULL;p=p-next)/ 读出信息 if(!strcmp(p-IDNumber,IDNumber) PF(tt 您查找的学生是 :n); PF(n); PF(tt 学生学号 :t%sn,p-IDNumber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(tt 学生名 :t%sn,p-GivenName); PF(tt 学生性别 :t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生

21、月 :t%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); PF(tt 学生马哲成绩 :t%fn,p-score3); PF(tt 学生总成绩 :t%fn,p-sum); PF(tt 学生平均成绩 :t%fn,p-average); PF(n); i=1; / 输出信息 /没找到信息时的处理 if(!i) PF( 无该生信息!请查证: ); *按照学生班级统计并输

22、出总成绩 * void search_clas()/ 学生学号信息查找 int i=0,j=0; StudentNode *p=NULL; char a6,b6; if(head=NULL)/ 判断链表是否为空 PF( 文档中无记录! n); return; PF( 请输入学生班级 :); scanf(%s,a); for(p=head-next;p!=NULL;p=p-next)/ 读出信息 for(j=0;jIDNumberj; if(a0=b0 PF(n); PF(tt 学生学号 :t%sn,p-IDNumber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(t

23、t 学生名 :t%sn,p-GivenName); PF(tt 学生性别 :t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生月 :t%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); PF(tt 学生马哲成绩 :t%fn,p-score3); PF(tt 学生总成绩 :t%fn,p-sum); PF(t

24、t 学生平均成绩 :t%fn,p-average); PF(n); i=1; / 输出信息 /没找到信息时的处理 if(!i) PF( 无该班级信息!请查证: ); 改学生信息 /验证信息是否正确 /* 修 * void revise_stu() int y,j,k=0,m=0; int i=0; float a,b; y=time(); StudentNode *p=NULL; if(head=NULL)/ 判断链表是否为空 PF( 文档中无记录! n); return; char IDNumber20; PF( 请输入学生的学号 :t); scanf(%s,IDNumber); for(p

25、=head-next;p!=NULL;p=p-next) if(!strcmp(p-IDNumber,IDNumber) PF(tt 你要修改的学生是 :n); PF(n); PF(tt 学生学号 :t%sn,p-IDNumber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(tt 学生名 :t%sn,p-GivenName); PF(tt 学生性别 (0代表女, 1代表男 ):t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生月 :t%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,

26、p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); PF(tt 学生马哲成绩 :t%fn,p-score3); PF(tt 学生总成绩 :t%fn,p-sum); PF(tt 学生平均成绩 :t%fn,p-average); PF(n); /输出要修改信息 i=1; for(k=0;ksum=Sumk) break; for(m=0;maverage=Avrm) break; English=English-p-score0; Math

27、=Math-p-score1; C=C-p-score2; Mazhe=Mazhe-p-score3; /记录被修改学生总分在数组中的位子 /记录被修改学生平均分在数组中的位子 /修改学生英语总分 /修改学生数学总分 /修改学生 C 语言总分 /修改学生马哲总分 PF(tt 您修改学号为 %s 的学生: n,IDNumber); PF(n); strcpy(p-IDNumber,IDNumber); PF(tt 输入修改学生姓 :t); scanf(%s,p-FamilyName); PF(tt 输入修改学生名 :t); scanf(%s,p-GivenName); PF(tt 输入修改学生性

28、别 (0 代表女, 1 代表男 ):t); scanf(%d, 0-100 for(j=0;j+) /判断输入年份是否合理, 假设人年龄在 岁之间为正常 PF(tt 输入学生出生年 :t); scanf(%d,/出生年 if(y-p-BirthYear)100|(p-BirthYeary) ,请重新输入出生年份: t); PF(tt 年份输入错误不符合要求 else break; for(j=0;j+)/ 判断输入月份是否合理 PF(tt 输入学生出生月 :t); scanf(%d,/ 出生月 if(p-BirthMonthBirthMonth12) PF(tt 月份输入错误不符合要求 ,请重

29、新输入出生月份: t); else break; for(j=0;j+) / 判断输入出生日是否合理 PF(tt 输入学生出生日 :t); scanf(%d,/出生日 if(p-BirthDayBirthDay31) PF(tt 出生日输入错误不符合要求 ,请重新输入出生日: t); else break; PF(tt 输入学生的外语成绩 :t); scanf(%f,/修改的各科成绩 PF(tt 输入学生的数学成绩 :t); scanf(%f, PF(tt 输入学生的 C 语言成绩 :t); scanf(%f, /求该生的平均成绩 /将新的总分修改原总分 /将新的平均分修改原平均分 /修改学生

30、英语总分 /修改学生数学总分 /修改学生 C 语言总分 /修改学生马哲总分 PF(tt 输入学生的马哲成绩 :t); scanf(%f, a=p-score0+p-score1+p-score2+p-score3; / 求该生的各科总成绩 b=(a/4); p-sum=a; p-average=b; Sumk=p-sum; Avrm=p-average; English=English+p-score0; Math=Math+p-score1; C=C+p-score2; Mazhe=Mazhe+p-score3; PF(n); save(); if(!i) PF( 无该生信息!请查证: );

31、 /输入修改信息 /* 没找到信息时的处理 */ /* * void del_stu() int i=0; StudentNode *p=NULL; if(head=NULL) PF( 文档中无记录! n); return; else char IDNumber20; PF( 请输入学生的学号 :t); scanf(%s,IDNumber); for(p=head;p!=NULL;p=p-next) 删除学生信息 /判断链表是否为空 if(!strcmp(p-next-IDNumber,IDNumber) / 验证信息是否正确 PF(%sn,IDNumber); PF(tt 您要删除的学生是:

32、 n); PF(n); PF(tt 学生学号 :t%sn,p-next-IDNumber); PF(tt 学生姓 :t%sn,p-next-FamilyName); PF(tt 学生名 :t%sn,p-next-GivenName); PF(tt 学生性别 :t%dn,p-next-sex); PF(tt 学生出生年 :t%dn,p-next-BirthYear); PF(tt 学生出生月 :t%dn,p-next-BirthMonth); PF(tt 学生出生日 :t%dn,p-next-BirthDay); PF(tt 学生英语成绩 :t%fn,p-next-score0); PF(tt

33、学生数学成绩 :t%fn,p-next-score1); PF(tt 学生 C 语言成绩 :t%fn,p-next-score2); PF(tt 学生马哲成绩 :t%fn,p-next-score3); PF(tt 学生总成绩 :t%fn,p-next-sum); PF(tt 学生平均成绩 :t%fn,p-next-average); /修改学生英语总分 /修改学生数学总分 / 修改学生 C 语言总 /修改学生马哲总分 PF(n);/输出要删除的信息 English=English-(p-next-score0); Math=Math-(p-score1); C=C-(p-next-score

34、2); Mazhe=Mazhe-(p-next-score3); for(n=0;nnext-sum=Sumn) for(j=n;jc;j+) Sumj=Sumj+1; break; c-;/数据总数减一 for(n=0;nnext-average=Avrn) for(j=n;jnext-next) printf( 第一个 n);p-next=p-next-next; else p-next=NULL; n-; save(); return; /if 的括号 / 大 for 循环的 /没找到信息时的处理 if(!i) PF( 无该生信息!请查证: ); return; /else 的括号 sa

35、ve(); /* * 将链表中记录保存到 文件中 * void save() printf( H* 结束 * StudentNode *p=NULL; FILE *fp; char *filename=fname.txt; if(fp=fopen(fname.txt,w)=NULL) printf(n 打不开文件 !n); /出错检测 return; if(head-next=NULL) printf(n 信息为空 !n); return; else p=head-next; while(p!=NULL) fprintf(fp,%s %s %s %d %d %d %d %f %f %f %f

36、%f %f n,p-IDNumber,p-FamilyName,p-GivenName, p-sex,p-BirthYear,p-BirthMonth,p-BirthDay,p-score0,p-score1,p-score2,p-score3,p-su m,p-average); /存入文件 p=p-next; printf( 保存完毕 !n); fclose(fp); ,可评估学校教学质量 /计算所有学生以及各科总分和均分 void jisuan() float sum=0,avr; int j; for(j=0;jnext;p!=NULL;p=p-next) CL /* /读出信息 读出

37、链表中所有记录学生信息 *n); PF(t 学生学号 :t%sn,p-IDNumber); PF(t 学生姓 :t%sn,p-FamilyName); PF(t 学生名 :t%sn,p-GivenName); PF(t 学生性别 :t%dn,p-sex); PF(t 学生出生年 :t%dn,p-BirthYear); PF(t 学生出生月 :t%dn,p-BirthMonth); PF(t 学生出生日 :t%dn,p-BirthDay); PF(t 学生英语成绩 :t%fn,p-score0); PF(t 学生数学成绩 :t%fn,p-score1); PF(t 学生 C 语言成绩 :t%fn

38、,p-score2); PF(t 学生马哲成绩 :t%fn,p-score3); PF(t 学生总成绩 :t%fn,p-sum); PF(t 学生平均成绩 :t%fn,p-average); PF(n); / 输出信息 PF(t 各个学生总分分别为: ); for(n=0;nc;n+) PF(%ft,Sumn); PF(n); PF(t 各个学生平均分分别为: ); for(n=0;nIDNumber); PF(tt 输入插入学生的姓 :t); scanf(%s,p1-FamilyName); PF(tt 输入插入学生的名 :t); scanf(%s,p1-GivenName); 插入 /输入

39、学生信息 生信息 /学号 /姓 /名 /性别 PF(tt 输入插入学生性别 (0 代表女 ,1 代表男 ):t); scanf(%d, 0-100 岁之间为 for(j=0;j+)/ 判断输入年份是否合理, 假设人年龄在 正常 PF(tt 输入插入学生出生年 :t); scanf(%d, /出生年 if(y-p1-BirthYear)100|(p1-BirthYeary) PF(tt 年份输入错误不符合要求 ,请重新输入出生年份: t); else break; for(j=0;j+)/ 判断输入月份是否合理 PF(tt 输入插入学生出生月 :t); scanf(%d,/ 出生月 if(p1-

40、BirthMonthBirthMonth12) PF(tt 月份输入错误不符合要求 ,请重新输入出生月份: t); else break; for(j=0;j+) / 判断输入出生日是否合理 PF(tt 输入插入学生出生日 :t); scanf(%d,/ 出生日 if(p1-BirthDayBirthDay31) PF(tt 出生日输入错误不符合要求 ,请重新输入出生日: t); else break; PF(tt 输入插入学生的外语成绩 :t); scanf(%f,/ 各科成绩 PF(tt 输入插入学生的数学成绩 :t); scanf(%f, PF(tt 输入插入学生的 C 语言成绩 :t)

41、; scanf(%f, PF(tt 输入插入学生的马哲成绩 :t); scanf(%f, a=p1-score0+p1-score1+p1-score2+p1-score3; / 求该生的各科总成绩 b=(a/4); /求该生的平均成绩 p1-sum=a; p1-average=b; English=English+p1-score0; /求学生英语总分 Math=Math+p1-score1; /求学生数学总分 C=C+p1-score2; /求学生 C 语言总分 Mazhe=Mazhe+p1-score3; /求学生马哲总分 Sumc+=a; /将各学生的总成绩输入到一个全局数组当中 ,方

42、便 按成绩排序 Avrd+=b; /将各学生的平均分输入到一个全局数组当中 ,方便 按平均成绩阶段输出 n+; if(head-next=NULL) head=(StudentNode *)malloc(LEN); head-next=p1; else for(p2=head;p2-next!=NULL;p2=p2-next);/* 找到最后的结点,然后 将增加的结点挂在它上面 */ p2-next=p1; p1-next=NULL; save();保存到文件 /* * 学 生 成绩 排名 及基本 数据的 统计 计算 * void sort(float x,int n)/数组排序函数 int

43、i,j,k; float t; for(i=0;in-1;i+) k=i; for(j=i+1;jxk) k=j; if(k!=i) t=xi;xi=xk;xk=t; void search_allscore()/按学生总分查找,用来输出排名。 int i=0,j=0; StudentNode *p=NULL; if(head=NULL)/判断链表是否为空 PF( 文档中无记录! n); return; for(j=0;jnext;p!=NULL;p=p-next)/读出信息 if(p-sum=Sumj) PF(tt 第 %d 名: n,j+1); PF(tt 学生学号 :t%sn,p-IDN

44、umber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(tt 学生名 :t%sn,p-GivenName); PF(tt 学生性别 :t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生月 :t%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); PF(tt 学生马哲成绩 :t%f

45、n,p-score3); PF(tt 学生总成绩 :t%fn,p-sum); PF(tt 学生平均成绩 :t%fn,p-average); PF(n); /学生成绩排名函数 / void arrage_stu() sort(Avr,d); sort(Sum,c); search_allscore(); void jieduan()/按平均分阶段输出学生信息 ,其中使用了按平均分查找的程序 int A=0,B=0,C=0,D=0,E=0; int i=0,j=0; for(i=0;i=90) A+; if(Avri=80) if(Avri60) E+; StudentNode *p=NULL;

46、if(head=NULL)/ 判断链表是否为空 PF( 文档中无记录! n); return; PF(tt平均分90分以上的学生有:%d个”,A); PF(n); for(j=0;jnext;p!=NULL;p=p-next)/读出信息 if(p-average=Avrj) PF(tt 学生学号 :t%sn,p-IDNumber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(tt 学生名 :t%sn,p-GivenName); PF(tt 学生性别 :t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生月 :t

47、%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); PF(tt 学生马哲成绩 :t%fn,p-score3); PF(tt 学生总成绩 :t%fn,p-sum); PF(tt 学生平均成绩 :t%fn,p-average); PF(n); PF(n); PF(tt 平均分 80-90 分的学生有: %d 个 ,B); PF(n); for(j=A;jnext;p!

48、=NULL;p=p-next)/读出信息 if(p-average=Avrj) PF(tt 学生学号 :t%sn,p-IDNumber); PF(tt 学生姓 :t%sn,p-FamilyName); PF(tt 学生名 :t%sn,p-GivenName); PF(tt 学生性别 :t%dn,p-sex); PF(tt 学生出生年 :t%dn,p-BirthYear); PF(tt 学生出生月 :t%dn,p-BirthMonth); PF(tt 学生出生日 :t%dn,p-BirthDay); PF(tt 学生英语成绩 :t%fn,p-score0); PF(tt 学生数学成绩 :t%fn,p-score1); PF(tt 学生 C 语言成绩 :t%fn,p-score2); P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论