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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言课程设计 学生成绩管理系统.docx

1、C语言课程设计 学生成绩管理系统#include #include #include #include typedef struct student /*定义一个单链表*/ char sno10; char name10; int Chinese; int Math; int English; int sum; float avg; struct student *next;student1,*grade;grade get_info(grade L) /输入学生信息 student1 *s,*p=NULL,*q; int flag,n,i; char choice=Y; while(choi

2、ce!=N&choice!=n) printf(n请输入要录入的学生个数:); scanf(%d,&n); for(i=1;isno); printf(n请输入学生的姓名:n); scanf(%s,&s-name); printf(n请输入学生的语文成绩:n); scanf(%d,&s-Chinese); printf(n请输入学生的数学成绩:n); scanf(%d,&s-Math); printf(n请输入学生的英语成绩:n); scanf(%d,&s-English); s-sum=s-Chinese+s-Math+s-English; s-avg=(float)s-sum/3; if(

3、L!=NULL) q=L; p=L; while(q) flag=strcmp(q-sno,s-sno); if(flag=0) printf(该学生已存在!n); break; q=q-next; if(flag!=0) while(p-next) p=p-next; p-next=s; p=s; s-next=NULL; /*尾结点的指针置空,下同!*/ else L=s; s-next=NULL; printf(n是否继续?(Y/N或y/n):); scanf(%s,&choice); system(cls); return L;sno_select(grade L) /*按学生学号查找

4、*/ student1 *p=L; char num10,choice=Y; int i=1,flag; while(choice!=N&choice!=n) printf(n请输入该学生的学号:); scanf(%s,&num); while(p) flag=strcmp(p-sno,num); if(flag=0) printf(n*n); printf(t学号t姓名t语文t数学t英语t总分t平均分n); printf(t%st%st%dt%dt%dt%dt%.2fn,p-sno,p-name,p-Chinese,p-Math,p-English,p-sum,p-avg); printf(

5、*n); break; else p=p-next; if(flag) printf(n不存在该学号的学生!nn); printf(继续查找?(Y/N或y/n):); scanf(%s,&choice); system(cls); return 0;grade_select(grade L) /*按分数段查询*/ int n,m,j,k=0,x=0,y=0; char choice=Y; student1 *p=L; while(choice!=N&choice!=n) printf(n可查找的科目的菜单如下:n); printf(t 1.语文 2.数学 3.英语n); printf(请选择(

6、输入序号即可):); scanf(%d,&j); printf(n请输入一个分数段,即输入n,m的值(nChinese=n&p-Chinesesno,p-name,p-Chinese,p-Math,p-English,p-sum,p-avg); k=1; if(j=2) k=1; y=1; if(p-Math=n&p-Mathsno,p-name,p-Chinese,p-Math,p-English,p-sum,p-avg); x=1; if(j=3) k=1; x=1; if(p-English=n&p-Englishsno,p-name,p-Chinese,p-Math,p-English

7、,p-sum,p-avg); p=p-next; printf(n*n); if(L=NULL) printf(该系统还没有存放数据!nn); else if(k=0) printf(没有学生的语文成绩在这个分数段上nn); if(x=0) printf(没有学生的数学成绩在这个分数段上nn); if(y=0) printf(没有学生的英语成绩在这个分数段上nn); k=0; x=0; y=0; printf(继续查找?(Y/N或y/n):); scanf(%s,&choice); system(cls); statistics(grade L) /*统计函数*/ student1 *p=L;

8、 int i=0; char choice=N; float all_avg=0; while(choice!=Y&choice!=y) while(p) all_avg=all_avg+p-avg; p=p-next; i+; printf(n=n); printf(该班级总人数为:%dn,i); if(L=NULL) printf(该班级的平均分为:0n); else printf(该班级的平均分为:%5.2fn,all_avg/i); printf(=n); printf(n退出?(Y或y):); scanf(%s,&choice); system(cls);grade delete_g

9、rade(grade L) /*删除指定学生成绩函数*/ student1 *p=L,*q=L; int i=1,flag; char choice=Y,num10; while(choice!=N&choice!=n) printf(n=n); if(L=NULL) printf(该系统中不存在任何数据nn); else printf(n请输入想要删除的学生学号:); scanf(%s,&num); while(p) flag=strcmp(p-sno,num); if(flag=0) if(q=p) L=q-next; free(q); else while(q-next!=p) q=q-

10、next; q-next=p-next; free(p); break; p=p-next; if(flag) printf(n不存在该学生); else printf(n删除成功!); printf(n=n); p=L; q=L; printf(继续删除?(Y/N或y/n):); scanf(%s,&choice); system(cls); return L;asc_order_grade(grade L) /*升序排序函数*/ int k,x=1,n=0,m,y; float z; student1 *p,*q,*s=L; char t10,choice; while(s) /*计算链表

11、数据个数n*/ s=s-next; n+; while(x) choice=N; printf(*n); printf( 成绩升序排序菜单如下:n); printf( -n); printf( 1.按语文成绩升序排序n); printf( 2.按数学成绩升序排序n); printf( 3.按英语成绩升序排序n); printf( 4.按总成绩升序排序n); printf( 5.按平均成绩升序排序n); printf( 6.返回主菜单n); printf(*n); printf(请选择(输入菜单序号即可):); scanf(%d,&k); system(cls); if(k=1) /*按语文成绩

12、升序排序*/ while(choice!=Y&choice!=y) for(m=0;mnext) q=p-next; if(p-Chinese=q-Chinese) strcpy(t,p-sno); /*学号交换*/ strcpy(p-sno,q-sno); strcpy(q-sno,t); strcpy(t,p-name); /*学号交换*/ strcpy(p-name,q-name); strcpy(q-name,t); y=p-Chinese; /*语文成绩交换*/ p-Chinese=q-Chinese; q-Chinese=y; y=p-Math; /*数学成绩交换*/ p-Math

13、=q-Math; q-Math=y; y=p-English; /*英语成绩交换*/ p-English=q-English; q-English=y; y=p-sum; /*总成绩交换*/ p-sum=q-sum; q-sum=y; z=p-avg; /*平均成绩交换*/ p-avg=q-avg; q-avg=z; p=p-next; p=L; printf(n按语文成绩升序排序的最终结果为:n); printf(n*n); printf(t学号t姓名t语文t数学t英语t总分t平均分n); while(p) printf(t%st%st%dt%dt%dt%dt%.2fn,p-sno,p-na

14、me,p-Chinese,p-Math,p-English,p-sum,p-avg); p=p-next; printf(n*n); printf(nn); printf(退出?(Y或y); scanf(%s,&choice); system(cls); else if(k=2) /*按数学成绩升序排序*/ while(choice!=Y&choice!=y) for(m=0;mnext) q=p-next; if(p-Math=q-Math) strcpy(t,p-sno); /*学号交换*/ strcpy(p-sno,q-sno); strcpy(q-sno,t); strcpy(t,p-

15、name); /*学号交换*/ strcpy(p-name,q-name); strcpy(q-name,t); y=p-Chinese; /*语文成绩交换*/ p-Chinese=q-Chinese; q-Chinese=y; y=p-Math; /*数学成绩交换*/ p-Math=q-Math; q-Math=y; y=p-English; /*英语成绩交换*/ p-English=q-English; q-English=y; y=p-sum; /*总成绩交换*/ p-sum=q-sum; q-sum=y; z=p-avg; /*平均成绩交换*/ p-avg=q-avg; q-avg=z

16、; p=p-next; p=L; printf(n按数学成绩升序排序的最终结果为:n); printf(n*n); printf(t学号t姓名t语文t数学t英语t总分t平均分n); while(p) printf(t%st%st%dt%dt%dt%dt%.2fn,p-sno,p-name,p-Chinese,p-Math,p-English,p-sum,p-avg); p=p-next; printf(n*n); printf(nn); printf(退出?(Y或y); scanf(%s,&choice); system(cls); else if(k=3) /*按英语成绩升序排序*/ whi

17、le(choice!=Y&choice!=y) for(m=0;mnext) q=p-next; if(p-English=q-English) strcpy(t,p-sno); /*学号交换*/ strcpy(p-sno,q-sno); strcpy(q-sno,t); strcpy(t,p-name); /*学号交换*/ strcpy(p-name,q-name); strcpy(q-name,t); y=p-Chinese; /*语文成绩交换*/ p-Chinese=q-Chinese; q-Chinese=y; y=p-Math; /*数学成绩交换*/ p-Math=q-Math; q

18、-Math=y; y=p-English; /*英语成绩交换*/ p-English=q-English; q-English=y; y=p-sum; /*总成绩交换*/ p-sum=q-sum; q-sum=y; z=p-avg; /*平均成绩交换*/ p-avg=q-avg; q-avg=z; p=p-next; p=L; printf(n按英语成绩升序排序的最终结果为:n); printf(n*n); printf(t学号t姓名t语文t数学t英语t总分t平均分n); while(p) printf(t%st%st%dt%dt%dt%dt%.2fn,p-sno,p-name,p-Chine

19、se,p-Math,p-English,p-sum,p-avg); p=p-next; printf(n*n); printf(nn); printf(退出?(Y或y); scanf(%s,&choice); system(cls); else if(k=4) /*按总成绩升序排序*/ while(choice!=Y&choice!=y) for(m=0;mnext) q=p-next; if(p-sum=q-sum) strcpy(t,p-sno); /*学号交换*/ strcpy(p-sno,q-sno); strcpy(q-sno,t); strcpy(t,p-name); /*学号交换

20、*/ strcpy(p-name,q-name); strcpy(q-name,t); y=p-Chinese; /*语文成绩交换*/ p-Chinese=q-Chinese; q-Chinese=y; y=p-Math; /*数学成绩交换*/ p-Math=q-Math; q-Math=y; y=p-English; /*英语成绩交换*/ p-English=q-English; q-English=y; y=p-sum; /*总成绩交换*/ p-sum=q-sum; q-sum=y; z=p-avg; /*平均成绩交换*/ p-avg=q-avg; q-avg=z; p=p-next; p

21、=L; printf(n按总成绩升序排序的最终结果为:n); printf(n*n); printf(t学号t姓名t语文t数学t英语t总分t平均分n); while(p) printf(t%st%st%dt%dt%dt%dt%.2fn,p-sno,p-name,p-Chinese,p-Math,p-English,p-sum,p-avg); p=p-next; printf(n*n); printf(nn); printf(退出?(Y或y); scanf(%s,&choice); system(cls); else if(k=5) /*按平均绩升序排序*/ while(choice!=Y&choice!=y) for(m=0;mnext) q=p-next; if(p-avg=q-avg) strcpy(t,p-sno); /*学号交换*/ strcpy(p-sno,q-sno); strcpy(q-

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

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