收藏 分享(赏)

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

上传人:gnk289057 文档编号:9018766 上传时间:2019-07-20 格式:DOC 页数:29 大小:211KB
下载 相关 举报
学生数据结构成绩管理系统.doc_第1页
第1页 / 共29页
学生数据结构成绩管理系统.doc_第2页
第2页 / 共29页
学生数据结构成绩管理系统.doc_第3页
第3页 / 共29页
学生数据结构成绩管理系统.doc_第4页
第4页 / 共29页
学生数据结构成绩管理系统.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 物光学院计算机类实验报告数据结构课程实验报告学院: 班级: 姓名: 学号: 实验设备:计算机 1 台 实验日期:2011 年 7 月 3 日实验项目名称 学生数据结构成绩管理系统实验目的 考察学生对数据结构的综合应用能力实验要求:(1)学生信息及成绩的录入(2)学生成绩的查询(3)学生成绩的分段统计和排序输出实验内容(包括步骤):(1)学生信息及成绩的录入要求包括的学生信息有:学号,姓名,性别,出生日期,民族 及数据结构成绩(具体内容可自行假设,至少录入 10 名以上学生)。所录入的学生按学号散列存储(散列函数为 学号%5 取整,如 1002%5 =2),采用拉链法解决冲突。(2)学生成绩的

2、查询要求根据提供的学号完成学生成绩的查询(必须采用散列查找)。(3)学生成绩的分段统计和排序输出统计出各分数段学生人数(60 分以下,6070,7180,.)采用堆排序,将学生成绩从高到低排序输出。调试与结果测试:* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据物光学院计算机类实验报告4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *请输入你要执行的操作:11、建立新的数据系统。请选择:1请输入第 1 名学生的学号,学号为 0 表示结束输入:01

3、请输入第 1 名学生的姓名:林一请输入第 1 名学生的性别:男请输入第 1 名学生的民族:汉请输入第 1 名学生的语文成绩:77请输入第 1 名学生的数学成绩:87请输入第 1 名学生的英语成绩:80请输入第 2 名学生的学号,没有此学生则输入 0 表示结束:02请输入第 2 名学生的姓名:琳儿请输入第 2 名学生的性别:女请输入第 2 名学生的民族:汉请输入第 2 名学生的语文成绩:80请输入第 2 名学生的数学成绩:85请输入第 2 名学生的英语成绩:90物光学院计算机类实验报告请输入第 3 名学生的学号,没有此学生则输入 0 表示结束:03请输入第 3 名学生的姓名:林珊请输入第 3 名

4、学生的性别:女请输入第 3 名学生的民族:汉请输入第 3 名学生的语文成绩:78请输入第 3 名学生的数学成绩:83请输入第 3 名学生的英语成绩:95请输入第 4 名学生的学号,没有此学生则输入 0 表示结束:04请输入第 4 名学生的姓名:林四请输入第 4 名学生的性别:男请输入第 4 名学生的民族:汉请输入第 4 名学生的语文成绩:75请输入第 4 名学生的数学成绩:87请输入第 4 名学生的英语成绩:78请输入第 5 名学生的学号,没有此学生则输入 0 表示结束:05请输入第 5 名学生的姓名:领悟请输入第 5 名学生的性别:男请输入第 5 名学生的民族:汉请输入第 5 名学生的语文成

5、绩:70请输入第 5 名学生的数学成绩:90请输入第 5 名学生的英语成绩:80请输入第 6 名学生的学号,没有此学生则输入 0 表示结束:06请输入第 6 名学生的姓名:林柳请输入第 6 名学生的性别:女请输入第 6 名学生的民族:汉请输入第 6 名学生的语文成绩:80物光学院计算机类实验报告请输入第 6 名学生的数学成绩:70请输入第 6 名学生的英语成绩:86请输入第 7 名学生的学号,没有此学生则输入 0 表示结束:07请输入第 7 名学生的姓名:林奇请输入第 7 名学生的性别:男请输入第 7 名学生的民族:汉请输入第 7 名学生的语文成绩:78请输入第 7 名学生的数学成绩:89请输

6、入第 7 名学生的英语成绩:80请输入第 8 名学生的学号,没有此学生则输入 0 表示结束:08请输入第 8 名学生的姓名:零八请输入第 8 名学生的性别:男请输入第 8 名学生的民族:汉请输入第 8 名学生的语文成绩:65请输入第 8 名学生的数学成绩:80请输入第 8 名学生的英语成绩:70请输入第 9 名学生的学号,没有此学生则输入 0 表示结束:09请输入第 9 名学生的姓名:零九请输入第 9 名学生的性别:男请输入第 9 名学生的民族:汉请输入第 9 名学生的语文成绩:70请输入第 9 名学生的数学成绩:80请输入第 9 名学生的英语成绩:75请输入第 10 名学生的学号,没有此学生

7、则输入 0 表示结束:10请输入第 10 名学生的姓名:异灵物光学院计算机类实验报告请输入第 10 名学生的性别:男请输入第 10 名学生的民族:汉请输入第 10 名学生的语文成绩:85请输入第 10 名学生的数学成绩:95请输入第 10 名学生的英语成绩:87请输入第 11 名学生的学号,没有此学生则输入 0 表示结束:0此系统目前共计学生 10 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总分1 林一 77 87 80 2442 琳儿 80 85 90 2553 林珊 78 83 95 2564 林四 75 87 78 2405 领悟 70 90 80 2406 林柳 8

8、0 70 86 2367 林奇 78 89 80 2478 零八 65 80 70 2159 零九 70 80 75 22510 异灵 85 95 87 267* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据物光学院计算机类实验报告4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *请输入你要执行的操作:6语文 数学 英语060 的学生人数是: 0 0 06070 的学生人数是: 1 0 07080 的学生人数是: 6 1 38090 的学生人数是

9、: 3 7 590100 的学生人数是:0 2 2* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *请输入你要执行的操作:2物光学院计算机类实验报告* * * * 学生成绩统计排序 * * * *1.按学生学号排序2.按学生总分排序3.按学生语文成绩排序4.按学生数学成绩排序5.按学生英语成绩排序6.显示当前学生成绩0.返回上一级菜单* * * * * * * * * * * * * * * * *

10、请输入你要执行的操作:2排序后的成绩表为:此系统目前共计学生 10 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总分10 异灵 85 95 87 2673 林珊 78 83 95 2562 琳儿 80 85 90 2557 林奇 78 89 80 2471 林一 77 87 80 2444 林四 75 87 78 2405 领悟 70 90 80 2406 林柳 80 70 86 2369 零九 70 80 75 2258 零八 65 80 70 215*物光学院计算机类实验报告* * * * 学生成绩统计排序 * * * *1.按学生学号排序2.按学生总分排序3.按学生语文

11、成绩排序4.按学生数学成绩排序5.按学生英语成绩排序6.显示当前学生成绩0.返回上一级菜单* * * * * * * * * * * * * * * * *请输入你要执行的操作:3排序后的成绩表为:此系统目前共计学生 10 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总分10 异灵 85 95 87 2672 琳儿 80 85 90 2556 林柳 80 70 86 2367 林奇 78 89 80 2473 林珊 78 83 95 2561 林一 77 87 80 2444 林四 75 87 78 2405 领悟 70 90 80 2409 零九 70 80 75 2258

12、 零八 65 80 70 215*物光学院计算机类实验报告* * * * 学生成绩统计排序 * * * *1.按学生学号排序2.按学生总分排序3.按学生语文成绩排序4.按学生数学成绩排序5.按学生英语成绩排序6.显示当前学生成绩0.返回上一级菜单* * * * * * * * * * * * * * * * *请输入你要执行的操作:4排序后的成绩表为:此系统目前共计学生 10 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总分10 异灵 85 95 87 2675 领悟 70 90 80 2407 林奇 78 89 80 2471 林一 77 87 80 2444 林四 75

13、87 78 2402 琳儿 80 85 90 2553 林珊 78 83 95 2569 零九 70 80 75 2258 零八 65 80 70 2156 林柳 80 70 86 236*物光学院计算机类实验报告* * * * 学生成绩统计排序 * * * *1.按学生学号排序2.按学生总分排序3.按学生语文成绩排序4.按学生数学成绩排序5.按学生英语成绩排序6.显示当前学生成绩0.返回上一级菜单* * * * * * * * * * * * * * * * *请输入你要执行的操作:5排序后的成绩表为:此系统目前共计学生 10 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总

14、分3 林珊 78 83 95 2562 琳儿 80 85 90 25510 异灵 85 95 87 2676 林柳 80 70 86 2365 领悟 70 90 80 2407 林奇 78 89 80 2471 林一 77 87 80 2444 林四 75 87 78 2409 零九 70 80 75 2258 零八 65 80 70 215*物光学院计算机类实验报告* * * * 学生成绩统计排序 * * * *1.按学生学号排序2.按学生总分排序3.按学生语文成绩排序4.按学生数学成绩排序5.按学生英语成绩排序6.显示当前学生成绩0.返回上一级菜单* * * * * * * * * * *

15、 * * * * * *请输入你要执行的操作:0* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *请输入你要执行的操作:3请输入您要查询学生的方式:1、按学号查询;2、按姓名查询。物光学院计算机类实验报告请选择:1请输入你要查询的学生的学号,输入 0 退出学号查询:05学号为 5 学生的数据为:学号 姓名 性别 民族 语文成绩 数学成绩 英语成绩 总分5 领悟 男 汉 70 90 80 240请输入

16、你还要查询的学生的学号,输入 0 退出学号查询:0请输入您要查询学生的方式:1、按学号查询;2、按姓名查询。请选择:2请输入你要查询的学生的姓名,输入 0 退出姓名查询:异灵姓名为异灵学生的数据为:学号 姓名 性别 民族 语文成绩 数学成绩 英语成绩 总分10 异灵 男 汉 85 95 87 267请输入你还要查询的学生的姓名,输入 0 退出姓名查询:0请输入您要查询学生的方式:1、按学号查询;2、按姓名查询。物光学院计算机类实验报告请选择:3你选择不查询!* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据4.插入学生数据5.显示当前成绩表

17、6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *请输入你要执行的操作:4请输入要新加入的学生的学号,学号为 0 表示结束输入:11请输入新加入学生的姓名:一一请输入新加入学生的性别:女请输入新加入学生的民族:汉请输入新加入学生的语文成绩:80请输入新加入学生的数学成绩:80请输入新加入学生的英语成绩:85请输入还要加入的学生的学号,输入 0 表示结束:0物光学院计算机类实验报告加入后的成绩表为:此系统目前共计学生 11 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总分1 林一 77 87 80 2442 琳儿 80

18、 85 90 2553 林珊 78 83 95 2564 林四 75 87 78 2405 领悟 70 90 80 2406 林柳 80 70 86 2367 林奇 78 89 80 2478 零八 65 80 70 2159 零九 70 80 75 22510 异灵 85 95 87 26711 一一 80 80 85 245* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *物光学院计算机类实验报

19、告请输入你要执行的操作:5此系统目前共计学生 11 名:*学生成绩统计*学号 姓名 语文成绩 数学成绩 英语成绩 总分1 林一 77 87 80 2442 琳儿 80 85 90 2553 林珊 78 83 95 2564 林四 75 87 78 2405 领悟 70 90 80 2406 林柳 80 70 86 2367 林奇 78 89 80 2478 零八 65 80 70 2159 零九 70 80 75 22510 异灵 85 95 87 26711 一一 80 80 85 245* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据

20、4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * * * * * * * * * * *物光学院计算机类实验报告请输入你要执行的操作:6语文 数学 英语060 的学生人数是: 0 0 06070 的学生人数是: 1 0 07080 的学生人数是: 6 1 38090 的学生人数是: 4 8 690100 的学生人数是:0 2 2* * * * 学生成绩管理系统 * * * *1.学生数据键盘录入2.学生成绩统计排序3.查询学生数据4.插入学生数据5.显示当前成绩表6.统计各分数段学生人数0.退出成绩管理系统* * * * * * * *

21、* * * * * * * * *请输入你要执行的操作:0请按任意键继续. . .Press any key to continue代码注释: #include #include #include #include 物光学院计算机类实验报告typedef struct studentlong num; /学号char name20; /姓名char sex20; /性别char nation20; /民族 int score3; /成绩int sum; /总分struct student *next;Student;int n;Student *enter(void); Student *so

22、rt_1(Student *head,int); void print(Student *head);Student *sort_all(Student *head);void find(Student *head);Student *add_new(Student *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 名学生的学号,学号

23、为 0 表示结束输入:“,n+1); scanf(“%d“,物光学院计算机类实验报告while(getchar()!=n);for(;flag;)n+;p1=(Student *)malloc(sizeof(Student);p1-num=flag;printf(“请输入第%d 名学生的姓名:“,n);scanf(“%s“,p1-name);printf(“请输入第%d 名学生的性别:“,n);scanf(“%s“,p1-sex);printf(“请输入第%d 名学生的民族:“,n);scanf(“%s“,p1-nation);printf(“请输入第%d 名学生的语文成绩:“,n);scan

24、f(“%d“,printf(“请输入第%d 名学生的数学成绩:“,n);scanf(“%d“,printf(“请输入第%d 名学生的英语成绩:“,n);scanf(“%d“,p1-sum=p1-score0+p1-score1+p1-score2;p2-next=p1;p2=p1;printf(“n 请输入第%d 名学生的学号,没有此学生则输入 0 表示结束:“,n+1);scanf(“%d“,p2-next=NULL;printf(“nn“);return head;物光学院计算机类实验报告Student *sort_all(Student *head) /学生成绩统计排序int choos

25、e;for(;) printf(“ntt* * * * 学生成绩统计排序 * * * *n“);printf(“ttt1.按学生学号排序n“);printf(“ttt2.按学生总分排序n“);printf(“ttt3.按学生语文成绩排序n“);printf(“ttt4.按学生数学成绩排序n“);printf(“ttt5.按学生英语成绩排序n“);printf(“ttt6.显示当前学生成绩n“);printf(“ttt0.返回上一级菜单n“);printf(“tt* * * * * * * * * * * * * * * * *nn“); printf(“请输入你要执行的操作:“);scanf(

26、“%d“,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: printf(“nn 您的输入有误!请重新输入:nn“);break;物光学院计算机类实验报告Student *sort_1(Student *head,int choose)Student *p1,*p2=head-next,*pm,*px;Student mid;if (!p2)

27、 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=p2;break; /按学生总分排序case 3:if (pm-score0score0) pm=p2;break; /按学生语文成绩排序case 4:if (pm-score1score1) pm=p2;break; /按学生数学成绩排序case

28、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;void find(Student *head) /查询学生数据Student *p;int choose,fnum;char tem20;if (n=0) printf(“n 当前系统没有任何学生数据。n “);return;for(;)pr

29、intf(“n 请输入您要查询学生的方式:nn“);printf(“1、按学号查询;2、按姓名查询。nn“);printf(“请选择:“);scanf(“%d“,while(getchar()!=n);if (choose=1) printf(“n 请输入你要查询的学生的学号,输入 0 退出学号查询:“);scanf(“%d“,for(;fnum;)物光学院计算机类实验报告for(p=head-next;p!=NULLp=p-next);if (!p) printf(“nn 找不到你要查询的学号,请重新输入,输入 0 表示结束:“);scanf(“%d“,else if (p-num=fnum

30、)printf(“n 学号为%d 学生的数据为:n“,p-num);printf(“学号t 姓名t 性别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 请输入你还要查询的学生的学号,输入 0 退出学号查询:“);scanf(“%d“, else if (choose=2)printf(“n 请输入你要查询的学生的姓名,输入 0 退出姓名查询:“);scanf(“%s“,tem

31、); for(;strcmp(tem,“0“);)物光学院计算机类实验报告for(p=head-next;p!=NULLp=p-next);if (!p)printf(“nn 找不到你要查询的姓名,请重新输入,输入 0 表示结束:“);scanf(“%s“,tem);else if (!strcmp(p-name,tem)printf(“n 姓名为%s 学生的数据为:n“,p-name);printf(“学号t 姓名t 性别t 民族t 语文成绩 数学成绩 英语成绩 总分n“);printf(“%dt%st%st%st %d %d %d %dn“,p-num,p-name,p-sex,p-nat

32、ion,p-score0,p-score1,p-score2,p-sum);printf(“nn 请输入你还要查询的学生的姓名,输入 0 退出姓名查询:“);scanf(“%s“,tem); else printf(“n 你选择不查询!n“);break;Student *add_new(Student *head) /插入学生数据Student *p;物光学院计算机类实验报告int flag; printf(“nn 请输入要新加入的学生的学号,学号为 0 表示结束输入:“); scanf(“%d“,while(getchar()!=n);for(;flag;)p=(Student *)mal

33、loc(sizeof(Student);p-num=flag;printf(“请输入新加入学生的姓名:“,n);scanf(“%s“,p-name); printf(“请输入新加入学生的性别:“,n);scanf(“%s“,p-sex);printf(“请输入新加入学生的民族:“,n);scanf(“%s“,p-nation);printf(“请输入新加入学生的语文成绩:“,n);scanf(“%d“,printf(“请输入新加入学生的数学成绩:“,n);scanf(“%d“,printf(“请输入新加入学生的英语成绩:“,n);scanf(“%d“,p-sum=p-score0+p-scor

34、e1+p-score2;p-next=head-next;head-next=p;n+;printf(“n 请输入还要加入的学生的学号,输入 0 表示结束:“); scanf(“%d“,printf(“加入后的成绩表为:n“);return head;物光学院计算机类实验报告void print(Student *head) /显示学生成绩表Student *p=head-next;if (!p) printf(“nn 此系统目前没有任何学生数据!nnn“);return;printf(“此系统目前共计学生%d 名:n“,n); printf(“*学生成绩统计*n“);printf(“学号t

35、姓名t 语文成绩 数学成绩 英语成绩 总分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=0,0,0,0,0,cou25=0,0,0,0,0;if(!p)printf(“n 当前系统没有任何学生数据。n “)

36、;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 printf(“n6070 的学生人数是: %d %d %d“,cou01,cou11,cou21);p=head-next;while(p)if(p-score0=70 printf(“n7080 的学生人数是: %d %d %d“,cou02,cou12,cou22); p=head-nex

37、t;while(p)if(p-score0=80printf(“n8090 的学生人数是: %d %d %d“,cou03,cou13,cou23); p=head-next;while(p)if(p-score0=90)cou04+;if(p-score1=90)cou14+;if(p-score2=90)cou24+;p=p-next;printf(“n90100 的学生人是:%d %d %dn“,cou04,cou14,cou24);物光学院计算机类实验报告int main() /主函数Student *head;int choose,i;head=(Student *)malloc(s

38、izeof(Student);head-next=NULL; for(;)printf(“ntt* * * * 学生成绩管理系统 * * * *n“);printf(“ttt1.学生数据键盘录入n“);printf(“ttt2.学生成绩统计排序n“);printf(“ttt3.查询学生数据n“);printf(“ttt4.插入学生数据n“);printf(“ttt5.显示当前成绩表n“);printf(“ttt6.统计各分数段学生人数n“);printf(“ttt0.退出成绩管理系统n“);printf(“tt* * * * * * * * * * * * * * * * *nn“); pri

39、ntf(“n 请输入你要执行的操作:“);scanf(“%d“,while(getchar()!=n);switch(choose)case 1:printf(“n1、建立新的数据系统。nn“);printf(“请选择:“);scanf(“%d“,if (i=1) head=enter();print(head);break; /学生数据键盘录入 else 物光学院计算机类实验报告printf(“n 你选择放弃建立新的数据系统!n“);break; case 2:head=sort_all(head);break; /学生成绩统计排序case 3:find(head);break; /查询学生数据case 4:head=add_new(head); /插入学生数据case 5:print(head);break; /显示当前成绩表case 6:stats(head);break; /统计人数case 0:system(“pause“);return 0; /退出成绩管理系统default: printf(“nn 您的输入有误!请重新输入:nn“);break; 以下内容为教师填写教师评阅:成绩:良2008 年 12 月 1 日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报