数据结构——学生数据结构成绩管理系统.doc

上传人:知****量 文档编号:12996688 上传时间:2022-04-27 格式:DOC 页数:26 大小:439KB
返回 下载 相关 举报
数据结构——学生数据结构成绩管理系统.doc_第1页
第1页 / 共26页
数据结构——学生数据结构成绩管理系统.doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《数据结构——学生数据结构成绩管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构——学生数据结构成绩管理系统.doc(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、. .数据结构实验报告院系光电与信息工程学院专业 电子信息工程学号2011级 2班 2013年7月6日一实验题目数据结构期末综合实验11.5学生数据结构成绩管理系统二 实验要求(1)学生信息及成绩的录入(2)学生成绩的查询(3)学生成绩的分段统计和排序输出三实验内容基本要求(1)学生信息及成绩的录入要求包括的学生信息有:学号、班级及数据结构等成绩(具体内容可自行假设,至少录入10名以上学生)所录入的学生按学号散列存储(散列函数为 学号%5 取整,如 1002%5 =2),采用拉链法解决冲突。(2)学生成绩的查询 要求根据提供的学号完成学生成绩的查询(必须采用散列查找)。(3)学生成绩的分段统计

2、和排序输出统计出各分数段学生人数(60分以下,6070,7180,.) 采用堆排序,将学生成绩从高到低排序输出四调试与结果测试 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:11、建立新的数据系统。请选择:1请输入第1名学生的学号,学号为0表示结束输入:01请输入第1名学生的XX:林一请输入第1名学生的性别:男请输入第1名学生的民族:汉请输入第1名学生的数据

3、结构成绩:77请输入第1名学生的英语成绩:87请输入第1名学生的高数成绩:80请输入第2名学生的学号,没有此学生则输入0表示结束:02请输入第2名学生的XX:林二请输入第2名学生的性别:女请输入第2名学生的民族:汉请输入第2名学生的数据结构成绩:80请输入第2名学生的英语成绩:85请输入第2名学生的高数成绩:90请输入第3名学生的学号,没有此学生则输入0表示结束:03请输入第3名学生的XX:林三请输入第3名学生的性别:女请输入第3名学生的民族:汉请输入第3名学生的数据结构成绩:78请输入第3名学生的英语成绩:83请输入第3名学生的高数成绩:95请输入第4名学生的学号,没有此学生则输入0表示结束

4、:0此系统目前共计学生3名:*学生成绩统计*学号 数构成绩 英语成绩 高数成绩 总分1 林一 77 87 80 2442 林二 80 85 90 2553 林三 78 83 95 256* * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:6 数构 英语 高数060的学生人数是: 0 0 06070的学生人数是: 0 0 07080的学生人数是: 2 0 080

5、90的学生人数是: 1 3 190100的学生人数是:0 0 2 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:2 * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * *

6、* * * * * * *请输入你要执行的操作:2排序后的成绩表为:此系统目前共计学生3名:*学生成绩统计*学号 数构成绩 英语成绩 高数成绩 总分3 林三 78 83 95 2562 林二 80 85 90 2551 林一 77 87 80 244* * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:3排序后的成绩表为:此系统目前共计学生3名: * *

7、* * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:4排序后的成绩表为:此系统目前共计学生3名: * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *

8、请输入你要执行的操作:5排序后的成绩表为:此系统目前共计学生3名: * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:0 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * *

9、 * * * * * * *请输入你要执行的操作:3请输入您要查询学生的方式:1、按学号查询;2、按XX查询。请选择:1请输入你要查询的学生的学号,输入0退出学号查询:03学号为3学生的数据为:学号 性别 民族 数构成绩 英语成绩 高数成绩 总分5 林三 女 汉 78 83 95 256请输入你还要查询的学生的学号,输入0退出学号查询:0请输入您要查询学生的方式:1、按学号查询;2、按XX查询。请选择:2请输入你要查询的学生的XX,输入0退出XX查询:林二XX为异灵学生的数据为:学号 性别 民族 数构成绩 英语成绩 高数成绩 总分1 林二 女 汉 80 85 90 255请输入你还要查询的学生

10、的XX,输入0退出XX查询:0请输入您要查询学生的方式:1、按学号查询;2、按XX查询。请选择:3你选择不查询! * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:4请输入要新加入的学生的学号,学号为0表示结束输入:04请输入新加入学生的XX:林四请输入新加入学生的性别:女请输入新加入学生的民族:汉请输入新加入学生的数构成绩:80请输入新加入学生的英语成绩:80

11、请输入新加入学生的高数成绩:85请输入还要加入的学生的学号,输入0表示结束:0加入后的成绩表为:此系统目前共计学生4名: * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:5此系统目前共计学生4名: * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数

12、段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:6 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:0请按任意键继续. . .Press any key to continue附:实验源代码#include #include #include #include typedef struc

13、t studentlong num; /学号char name20; /char sex20; /性别 char nation20; /民族 int score3; /成绩int sum; /总分struct student *next;Student;int n;Student *enter(void); Student *sort_1(Student *head,int); void print(Student *head);Student *sort_all(Student *head);void find(Student *head);Student *add_new(Student

14、*head);void stats(Student *head);Student *enter() /录入学生数据int flag; Student *head,*p1,*p2;n=0;head=(Student *)malloc(sizeof(Student);p2=head;printf(n请输入第%d名学生的学号,学号为0表示结束输入:,n+1); scanf(%d,&flag);while(getchar()!=n);for(;flag;)n+;p1=(Student *)malloc(sizeof(Student);p1-num=flag;printf(请输入第%d名学生的XX:,n

15、);scanf(%s,p1-name); printf(请输入第%d名学生的性别:,n);scanf(%s,p1-sex);printf(请输入第%d名学生的民族:,n);scanf(%s,p1-nation);printf(请输入第%d名学生的数据结构成绩:,n);scanf(%d,&p1-score0);printf(请输入第%d名学生的英语成绩:,n);scanf(%d,&p1-score1);printf(请输入第%d名学生的高数成绩:,n);scanf(%d,&p1-score2);p1-sum=p1-score0+p1-score1+p1-score2;p2-next=p1;p2=

16、p1;printf(n请输入第%d名学生的学号,没有此学生则输入0表示结束:,n+1); scanf(%d,&flag);p2-next=NULL;printf(nn);return head;Student *sort_all(Student *head) /学生成绩统计排序int choose;for(;) printf(ntt* * * * 学生成绩统计排序 * * * *n);printf(ttt1.按学生学号排序n);printf(ttt2.按学生总分排序n);printf(ttt3.按学生数据结构成绩排序n);printf(ttt4.按学生英语成绩排序n);printf(ttt5.

17、按学生高数成绩排序n);printf(ttt6.显示当前学生成绩n);printf(ttt0.返回上一级菜单n);printf(tt* * * * * * * * * * * * * * * * *nn); printf(请输入你要执行的操作:);scanf(%d,&choose);while(getchar()!=n);switch(choose)case 1:case 2:case 3: case 4:case 5:head=sort_1(head,choose);break;case 6:print(head);break;case 0:return head;default: prin

18、tf(nn您的输入有误!请重新输入:nn);break;Student *sort_1(Student *head,int choose)Student *p1,*p2=head-next,*pm,*px;Student mid;if (!p2) return head;for(p1=p2;p1-next!=NULL;p1=p1-next)pm=p1;for(p2=p1-next;p2!=NULL;p2=p2-next)switch(choose) case 1:if (pm-nump2-num) pm=p2;break; /按学生学号排序 case 2:if (pm-sumsum) pm=p

19、2;break; /按学生总分排序 case 3:if (pm-score0score0) pm=p2;break; /按学生数据结构成绩排序 case 4:if (pm-score1score1) pm=p2;break; /按学生英语成绩排序 case 5:if (pm-score2score2) pm=p2;break; /按学生高数成绩排序if(pm!=p1) mid=*pm; *pm=*p1; *p1=mid; px=pm-next; pm-next=p1-next; p1-next=px;printf(n排序后的成绩表为:n);print(head); return head;vo

20、id find(Student *head) /查询学生数据Student *p;int choose,fnum;char tem20;if (n=0) printf(n当前系统没有任何学生数据。n );return;for(;) printf(n请输入您要查询学生的方式:nn);printf(1、按学号查询;2、按XX查询。nn);printf(请选择:);scanf(%d,&choose);while(getchar()!=n);if (choose=1) printf(n请输入你要查询的学生的学号,输入0退出学号查询:);scanf(%d,&fnum);for(;fnum;)for(p=

21、head-next;p!=NULL&p-num!=fnum;p=p-next);if (!p) printf(nn找不到你要查询的学号,请重新输入,输入0表示结束:);scanf(%d,&fnum);else if (p-num=fnum)printf(n学号为%d学生的数据为:n,p-num);printf(学号tXXt性别t民族t数据结构成绩 英语成绩 高数成绩 总分n);printf(%dt%st%st%st %d %d %d %dn, p-num,p-name,p-sex,p-nation,p-score0,p-score1,p-score2,p-sum);printf(nn请输入你还

22、要查询的学生的学号,输入0退出学号查询:);scanf(%d,&fnum); else if (choose=2) printf(n请输入你要查询的学生的XX,输入0退出XX查询:); scanf(%s,tem); for(;strcmp(tem,0);) for(p=head-next;p!=NULL&strcmp(p-name,tem);p=p-next); if (!p) printf(nn找不到你要查询的XX,请重新输入,输入0表示结束:); scanf(%s,tem); else if (!strcmp(p-name,tem)printf(nXX为%s学生的数据为:n,p-name)

23、;printf(学号tXXt性别t民族t数据结构成绩 英语成绩 高数成绩 总分n);printf(%dt%st%st%st %d %d %d %dn,p-num,p-name,p-sex,p-nation,p-score0,p-score1,p-score2,p-sum);printf(nn请输入你还要查询的学生的XX,输入0退出XX查询:);scanf(%s,tem); else printf(n你选择不查询!n);break;Student *add_new(Student *head) /插入学生数据Student *p;int flag; printf(nn请输入要新加入的学生的学号,

24、学号为0表示结束输入:); scanf(%d,&flag);while(getchar()!=n);for(;flag;)p=(Student *)malloc(sizeof(Student);p-num=flag;printf(请输入新加入学生的XX:,n);scanf(%s,p-name); printf(请输入新加入学生的性别:,n);scanf(%s,p-sex);printf(请输入新加入学生的民族:,n);scanf(%s,p-nation);printf(请输入新加入学生的数据结构成绩:,n);scanf(%d,&p-score0);printf(请输入新加入学生的英语成绩:,n

25、);scanf(%d,&p-score1);printf(请输入新加入学生的高数成绩:,n);scanf(%d,&p-score2);p-sum=p-score0+p-score1+p-score2;p-next=head-next;head-next=p;n+;printf(n请输入还要加入的学生的学号,输入0表示结束:); scanf(%d,&flag);printf(加入后的成绩表为:n);return head;void print(Student *head) /显示学生成绩表Student *p=head-next;if (!p) printf(nn此系统目前没有任何学生数据!nn

26、n);return;printf(此系统目前共计学生%d名:n,n); printf(*学生成绩统计*n);printf(学号tXXt数据结构成绩 英语成绩 高数成绩 总分n);for(;p;p=p-next)printf(%dt%st %d %d %d %dn,p-num,p-name,p-score0,p-score1,p-score2,p-sum=p-score0+p-score1+p-score2); printf(*nn);void stats(Student *head) /统计各分数段人数Student *p=head-next;int cou05=0,0,0,0,0,cou15

27、=0,0,0,0,0,cou25=0,0,0,0,0;if(!p) printf(n当前系统没有任何学生数据。n );return;printf(ntt 数据结构 英语 高数);while(p)if(p-score0score1score2next; printf(n060的学生人数是: %d %d %d,cou00,cou10,cou20);p=head-next;while(p)if(p-score0=60&p-score0score1=60&p-score1score2=60&p-score2next; printf(n6070的学生人数是: %d %d %d,cou01,cou11,c

28、ou21);p=head-next;while(p)if(p-score0=70&p-score0score1=70&p-score1score2=70&p-score2next; printf(n7080的学生人数是: %d %d %d,cou02,cou12,cou22); p=head-next;while(p)if(p-score0=80&p-score0score1=80&p-score1score2=80&p-score2next; printf(n8090的学生人数是: %d %d %d,cou03,cou13,cou23); p=head-next;while(p)if(p-score0=90)cou04+;if(p-score1=90)cou14+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 设计方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com