ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:22.23KB ,
资源ID:3379144      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3379144.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(链表实现学生学籍管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

链表实现学生学籍管理系统.docx

1、链表实现学生学籍管理系统#include #include #include #define N 15 /学号位数#define M 15 /姓名字节数#define L 4 /成绩的科数int aa=0; /记录筛选时打开的文void printf_(struct stu *); /输出单个的学生数据 struct stu * scanf1_(); /接收单个的学生数据,返回指针,struct stu * scanf_(); /得到学生的数据,并放入到链表中void print_(struct stu *); /输出链表中的学生信息struct stu *num_paixu(struct s

2、tu *); /用链表给学生排序void chaxun(struct stu *); /根据学生的学号查询学生的信息,并把学生的数据输出struct stu * charu(struct stu *); /将学生的数据插入到顺序排放的链表中,并且插入后也是顺序排放的。struct stu * shanchu(struct stu *); /删除数据void xiugai(struct stu *); /修改学生的信息。void fprint_(struct stu *); /把数据写入到文件int to_ji(struct stu *); /统计学生的总人数int t_ji_tj(struct

3、 stu *); /统计成绩在某一区间内的人数struct stu * ch_ji_paixu(struct stu *); /按成绩排序,默认的是按总成绩排序struct s *shaixuan(struct stu *); /筛选符合条件的数据,得到符合条件的结构体数据的指针。void shuchu_shai(struct s *); /输出筛选出来的数据void fb_shu_shai(struct s *); /将筛选出来的数据输入到文件中void avrage(struct stu *head,float *); /计算平均成绩void fb_avrage(float *); /将平

4、均成绩放在文件的最后面/建立学生结构体struct stu char numN; char nameM; int ch_jiL; struct stu *next;/建立一个链表,存放学生结构体的指针struct s struct stu *p; struct s *ps;void main() int i,n,x=1,k=0; float aL=0; struct stu *head=NULL; struct s *shead=NULL; char ch; while(x) system(cls); printf(*n); printf( 0-退出系统 1-录入数据 n); printf(

5、2-保存文件 3-按成绩排序 n); printf( 4-查看信息 5-按学号排序 n); printf( 6-统计人数 7-按条件筛选 n); printf( 8-查询信息 9-显示筛选结果 n); printf( 10-插入数据 11-保存筛选结果 n); printf( 12-删除数据 13-计算平均成绩 n); printf( 14-修改数据 15-保存平均成绩 n); printf( 16-按条件统计人数 n); printf(*n); scanf(%d,&n); getchar();/有啥作用 switch(n) case 0: x=0;break; case 1: head=sc

6、anf_();break; case 2: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else fprint_(head);break; case 3: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else head=ch_ji_paixu(head); break; case 4: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break;

7、 else print_(head);break; case 5: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else head=num_paixu(head); printf(是否显示排序结果 Y/N ?); ch=getchar();getchar(); if(ch=y|ch=Y) printf(n); print_(head); break; case 6: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; els

8、e k=to_ji(head); printf(总共有%3d 名学生,k); getchar(); break; case 7: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else shead=shaixuan(head); if(shead!=NULL&shead-ps!=NULL) printf(是否显示筛选结果 Y/N ?); ch=getchar(); if(ch=y|ch=Y) printf(n); shuchu_shai(shead); getchar(); break; case 8: i

9、f(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else chaxun(head); getchar(); break; case 9: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else printf(n); shuchu_shai(shead); getchar(); break; case 10: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar();

10、 break; else head=charu(head);break; case 11: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else fb_shu_shai(shead); getchar(); break; case 12: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else head=shanchu(head); break; case 13: if(head=NULL|head-next=NULL

11、) printf(请先录入学生的数据!); getchar(); break; else avrage(head,a); printf(平均值计算成功!n是否显示平均成绩 Y/N ?); ch=getchar(); if(ch=y|ch=Y) printf(n 语文 数学 英语 总成绩n); printf(%-8.2f%-8.2f%-8.2f%-8.2f,a0,a1,a2,aL-1); getchar(); break; case 14: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else xiugai

12、(head); break; case 15: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else fb_avrage(a); printf(平均值保存成功!); getchar(); break; case 16: if(head=NULL|head-next=NULL) printf(请先录入学生的数据!); getchar(); break; else k=t_ji_tj(head); if(k0) printf(符合条件的有%3d 名学生!,k); getchar(); else if(k=0)

13、 printf(没有符合条件的学生!); getchar(); else if(k=-2) getchar(); break; default : printf(输入有误,请重新输入!); getchar(); break; /输出单个的学生数据 void printf_(struct stu *p0) int i; printf(学号:); puts(p0-num); printf(姓名:); puts(p0-name); printf(语文 数学 英语 总成绩n); for(i=0;ich_jii); printf(n);/接收单个的学生数据,返回指针,struct stu * scanf

14、1_() int i,sum=0; struct stu *p0; p0=(struct stu *)malloc(sizeof(struct stu); printf(请输入学生的学号:); gets(p0-num); printf(请输入学生的姓名:); gets(p0-name); printf(请输入学生的三科成绩(语文、数学、英语):); for(i=0;ich_jii); sum+=p0-ch_jii; getchar(); p0-ch_jiL-1=sum; return p0;/得到学生的数据,并放入到链表中struct stu * scanf_() struct stu *p1

15、,*p2,*head; int i,sum=0,n=0; printf(注意:当学生学号为 0 时输入结束nn); p1=(struct stu *)malloc(sizeof(struct stu); /*得到学生信息*/ head=p2=p1; do printf(请输入学生的学号:); gets(p1-num); if(strcmp(p1-num,0)=0) break; printf(请输入学生的姓名:); gets(p1-name); printf(请输入学生的三科成绩(语文、数学、英语):); for(i=0;ich_jii); sum+=p1-ch_jii; getchar();

16、 printf(n); p1-ch_jiL-1=sum; sum=0; p1=(struct stu *)malloc(sizeof(struct stu); p2-next=p1; p2=p1; n+; while(1); p1-next=NULL; printf(成绩输入结束!n); getchar();/*学生的数据被放在链表中*/ return head; /*输出链表中的学生信息*/void print_(struct stu *head) int i; struct stu *p1,*p2; p1=p2=head; while(p1-next!=NULL) printf(学号: )

17、; puts(p1-num); printf(姓名: ); puts(p1-name); printf(语文 数学 英语 总成绩n); for(i=0;ich_jii); printf(n); p1=p2-next; p2=p1; getchar(); /*用链表给学生排序*/struct stu *num_paixu(struct stu *head) struct stu *p1,*p2,*p3,*p4,*p5,*p6,*p7; int x=1; for(p1=head;p1-next!=NULL;p4=p1,p1=p1-next) p3=p1; for(p2=p1-next,p5=p7=

18、p2;p2-next!=NULL;p7=p2,p2=p2-next) if(strcmp(p3-num,p2-num)0) p3=p2; p5=p7; if(p3!=p1) if(x&p1=head) p6=p1-next; p1-next=p3-next; p3-next=p6; p5-next=p1; head=p3; p1=p3; x=0; else p6=p1-next; p1-next=p3-next; p3-next=p6; p4-next=p3; p5-next=p1; p1=p3; printf(排序成功!n); return head;/根据学生的学号查询学生的信息,并把学生

19、的数据输出void chaxun(struct stu *head) char aN; struct stu *p1; printf(请输入要查询的学号:); gets(a); p1=head; while(p1-next!=NULL) if(strcmp(p1-num,a)=0) break; p1=p1-next; if(p1-next=NULL) printf(没有找到学号为 %s 的学生!n,a); else printf(要查询的学生信息如下:nn); printf_(p1); /将学生的数据插入到顺序排放的链表中,并且插入后也是顺序排放的。struct stu * charu(st

20、ruct stu *head) struct stu *p1,*p2,*p3; p1=scanf1_(); p2=head; p3=p2; while(strcmp(p2-num,p1-num)next!=NULL) p3=p2; p2=p2-next; if(p2=head) p1-next=head; head=p1; else p3-next=p1; p1-next=p2; printf(插入成功!n); getchar(); return head;/删除数据struct stu * shanchu(struct stu *head) char aN; struct stu *p1,*

21、p2,*p3; printf(请输入要删除的学生的学号:); gets(a); p1=head; p2=p1; while(strcmp(p2-num,a)!=0)&p2-next!=NULL) p3=p2; p2=p2-next; if(p2-next=NULL) printf(没有找到要删除的数据!n); else if(p2=head) head=p2-next; printf(删除成功!n); else p3-next=p2-next; printf(删除成功!n); getchar(); return head;/修改学生的信息。void xiugai(struct stu *hea

22、d) char aN; struct stu *p1; int i,k; printf(输入要修改的学生的学号); gets(a); p1=head; while(p1-next!=NULL) if(strcmp(p1-num,a)=0) break; p1=p1-next; if(p1-next=NULL) printf(没有要找的学生信息!n); getchar(); else printf(*n); printf(* 0-放弃修改 *n); printf(* 1-修改学号 *n); printf(* 2-修改姓名 *n); printf(* 3-修改成绩 *n); printf(* 4-修改全部 *n); printf(*n); scanf(%d,&k); getchar(); switch(k) case 0: break; case 1: printf(请输入新学号:); gets(p1-num); printf(修改成功!); getchar();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1