c语言实现学生管理系统,C语言学生管理系统源代码

《C语言学生管理系统源代码》由会员分享,可在线阅读,更多相关《C语言学生管理系统源代码(12页珍藏版)》请在人人文库网上搜索。

1、C语言学生成绩管理系统源代码,保证能用#include malloc.h#include stdio.h#include stdlib.h#include string.hchar filename30;int n=0,d;FILE *fp;typedef struct studentint num;char name10;int yuwen;int shuxue;int yingyu;int count;float aver;struct student *next; aaa;typedef struct stuint num;char name10;int yuwen,shuxue,yin。

2、gyu;int count;float aver; aaaa;aaa *head;/*浏览*/void liulan(aaa *head)aaa *p;if(head=NULL)printf(n没有任何学生资料!n);elseprintf(ttt考试成绩管理系统n);printf(-n);printf(|学号t|姓名t|语文t|数学t|英语t|总分t|平均分|n);printf(-n);p=head-next;doprintf(|%dt|%st|%dt|%dt|%dt|%dt|%.1ft|n,p-num,p-name,p-yuwen,p-shuxue,p-yingyu,p-yuwen+p-sh。

3、uxue+p-yingyu,p-count/3.0);printf(-n);p=p-next;while(p!=NULL);/*读取*/aaa *duqu ()aaa *s,*head,*p,*q;n=0;if(fp=fopen(filename,rb)=NULL)printf(不能读取文件!n);return NULL;head=malloc(sizeof(aaa);if(head=NULL)printf(内存空间不足,文件读取失败!n);return NULL;head-next=NULL;p=head;q=malloc(sizeof(aaa);if(!feof(fp)fread(q,si。

4、zeof(aaaa),1,fp);q-next=NULL;while(!feof(fp)s=malloc(sizeof(aaa);fread(s,sizeof(aaaa),1,fp);s-next=NULL;p-next=q;p=q;q=s;n+;return head;/*输入函数*/aaa *shuru (aaa *head)aaa *q,*p,*s;aaa newstd;n=0;q=head;doq=head;s=malloc(sizeof(aaa);if(s=NULL)printf(内存不足,添加学生成绩失败!07n);break;printf(请输入学号(输入0退出):);scanf。

5、(%d,&newstd.num);if(newstd.num=0)break;if(newstd.numnext;while(p!=NULL)if(p-num=newstd.num)printf(输入学号重复,请重新输入!n);break;p=p-next;q=q-next;if(p=NULL)printf(姓名:);scanf(%s,newstd.name);printf(语文:);scanf(%d,&newstd.yuwen);printf(数学:);scanf(%d,&newstd.shuxue);printf(英语:);scanf(%d,&newstd.yingyu);strcpy(s。

6、-name,newstd.name);s-num=newstd.num;s-yuwen=newstd.yuwen;s-shuxue=newstd.shuxue;s-yingyu=newstd.yingyu;s-count=s-yuwen+s-shuxue+s-yingyu;s-aver=(float)(s-count/3.0);s-next=NULL;q-next=s;n+;while(1);printf(输入完毕,%d个学生成绩已输入(已插入)n,n);return head;/*保存*/int baocun (aaa *head)aaa *s;s=head-next;if(fp=fopen。

7、(filename,wb)=NULL)printf(不能写入文件!保存失败!n);return 0;while(s!=NULL)fwrite(s,sizeof(aaaa),1,fp);s=s-next;fclose(fp);return 1;/*保存文件*/int save (aaa *head)int i=0;aaa *s;s=head-next;printf(请输入文件路径及文件名:);scanf(%s,filename);if(fp=fopen(filename,wb)=NULL)printf(不能建立文件!n);return 0;while(s!=NULL)fwrite(s,sizeo。

8、f(aaaa),1,fp);s=s-next;i+;fclose(fp);printf(%d名学生成绩记录写入%s中!n,i,filename);printf(文件保存成功!n);return 1;/*打开文件*/aaa *dakai (void)aaa *s,*head,*p,*q;n=0;printf(请输入文件路径及文件名:);scanf(%s,filename);if(fp=fopen(filename,rb)=NULL)printf(不能读取文件!n);return NULL;head=malloc(sizeof(aaa);if(head=NULL)printf(内存空间不足,文件打。

9、开失败!n);return NULL;head-next=NULL;p=head;q=malloc(sizeof(aaa);if(!feof(fp)fread(q,sizeof(aaaa),1,fp);q-next=NULL;while(!feof(fp)s=malloc(sizeof(aaa);fread(s,sizeof(aaaa),1,fp);s-next=NULL;p-next=q;p=q;q=s;n+;liulan(head);printf(-n);printf(文件已打开,%d个记录已读取n,n);d=baocun(head);getchar();return head;/*建立*。

10、/aaa *great()aaa *head;head=malloc(sizeof(aaa);if(head=NULL)printf(内存空间不足,链表建立失败!07n);return NULL;head-next=NULL;head-num=0;head=shuru(head);d=save(head);return head;/*查询*/int chaxun(aaa *head)aaa *q;int i;if(head=NULL)printf(n没有任何的学生资料!n);return 0;printf(需要查询的学号:);scanf(%d,&i);q=head-next;while(q-n。

11、um!=i & q!=NULL)q=q-next;if(q!=NULL)printf(学号t姓名t语文t数学t英语t总分t平均分n);q-count=q-yuwen+q-shuxue+q-yingyu;q-aver=(float)(q-count/3.0);printf(%dt%st%dt%dt%dt%dt%.1fn,q-num,q-name,q-yuwen,q-shuxue,q-yingyu,q-count,q-aver);return 0;elseprintf(查无此人!n);return 0;/*删除*/aaa *shanchu(aaa *head)aaa *s,*q;int m;hea。

12、d=duqu();if(head=NULL)printf(没有任何学生记录!n);exit(0);printf(请输入要删除的学生学号);scanf(%d,&m);if(m=0)return head;s=head;q=s-next;while(q-num!=m & q!=NULL)q=q-next;s=s-next;if(q!=NULL)printf(学号:%d 姓名:%s 语文:%d 数学:%d 英语:%d 总分:%d 平均分:%.1fn,q-num,q-name,q-yuwen,q-shuxue,q-yingyu,q-yingyu+q-shuxue+q-yuwen,q-count/3.0。

13、);s-next=q-next;free(q);printf(删除学号为%d学生记录成功!n,m);elseprintf(查无此人!n);liulan(head);d=baocun(head);return head;/*排序*/aaa *paixu(aaa *head)aaa *p,*max,*q;int i,j,m;char t10;head=duqu();if(head=NULL)printf(n没有任何学生资料!07n);return NULL;exit(0);q=head;printf(按总成绩排序所有学生n);for(i=0;inext;for(j=i+1;jnext;if(max。

14、-countcount)max=p;if(max!=q)m=max-num;max-num=q-num;q-num=m;strcpy(t,max-name);strcpy(max-name,q-name);strcpy(q-name,t);m=max-yuwen;max-yuwen=q-yuwen;q-yuwen=m;m=max-shuxue;max-shuxue=q-shuxue;q-shuxue=m;m=max-yingyu;max-yingyu=q-yingyu;q-yingyu=m;q-count=q-yuwen+q-shuxue+q-yingyu;q-aver=(float)(q-c。

15、ount/3.0);d=baocun(head);return head;/*插入*/aaa *charu(aaa *head)aaa *s,*p;s=p=head;p=shuru(s);p=paixu(p);printf(插入完毕!n);liulan(head);d=baocun(head);return head;/*修改*/aaa *xiugai(aaa *head)aaa *q;int m;if(head=NULL)printf(n没有任何学生记录!n);return NULL;q=head-next;printf(请输入要修改的学生的学号:);scanf(%d,&m);while(q。

16、-num!=m & q!=NULL)q=q-next;if(q=NULL)printf(查无此人!n);printf(学号:%d 姓名:%s 语文:%d 数学:%d 英语:%d 总分:%d 平均分:%.1fn,q-num,q-name,q-yuwen,q-shuxue,q-yingyu,q-yuwen+q-shuxue+q-yingyu,q-count/3.0);printf(请输入修改之后的学号:);scanf(%d,&q-num);printf(请输入修改之后的姓名:);scanf(%s,q-name);printf(请输入修改之后的语文:);scanf(%d,&q-yuwen);prin。

17、tf(请输入修改之后的数学:);scanf(%d,&q-shuxue);printf(请输入修改之后的英语:);scanf(%d,&q-yingyu);printf(修改成功n);q-count=q-yuwen+q-shuxue+q-yingyu;q-aver=(float)(q-count/3.0);printf(学号:%d 姓名:%s 语文:%d 数学:%d 英语:%d 总分:%d 平均分:%.1fn,q-num,q-name,q-yuwen,q-shuxue,q-yingyu,q-count,q-aver);d=baocun(head);head=duqu();head=paixu(he。

18、ad);printf(学号为%d学生数据修改成功!n,m);liulan(head);return head;/*主函数*/main()aaa *head;int m;doprintf(n);printf(t*n);printf(t* = *n);printf(t* 学生成绩管理系统 *n);printf(t* = *n);printf(t* *n);printf(t* 1.输入学生成绩 *n);printf(t* 2.打开记录文件 *n);printf(t* 3.查找学生成绩 *n);printf(t* 4.修改学生信息 *n);printf(t* 5.删除学生信息 *n);printf(t。

19、* 6.插入学生信息 *n);printf(t* 7.学生成绩排序 *n);printf(t* 8.浏览学生信息 *n);printf(t* 9.保存输入数据 *n);printf(t* 0退出 *n);printf(t* *n);printf(t*n);printf(请输入选项(0-9):);scanf(%d,&m);switch(m)case 1:printf(执行输入学生成绩命令!n);head=great();break;case 2:printf(执行打开文件命令!n);head=dakai();break;case 3:printf(执行查找学生信息命令!n);d=chaxun(h。

20、ead);break;case 4:printf(执行修改学生信息命令!n);head=xiugai(head);break;case 5:printf(执行删除学生信息命令!n);head=shanchu(head);break;case 6:printf(执行插入学生信息命令!n);head=charu(head);break;case 7:printf(执行学生成绩排序命令!n);head=paixu(head);printf(已成功排序,输入任意键查看!n);getchar();liulan(head);break;case 8:printf(执行浏览学生信息命令!n);liulan(head);break;case 9:printf(执行保存学生信息命令!n);d=save(head);break;case 0:goto AAAA;default:printf(输入错误!(请输入0-9选项)07n);break;while(1);AAAA:if(head!=NULL)d=baocun(head);getchar(。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值