欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

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

    • 资源ID:13119       资源大小:451.50KB        全文页数:23页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    一实验题目数据结构期末综合实验11.5学生数据结构成绩管理系统2 实验要求(1)学生信息及成绩的录入(2)学生成绩的查询(3)学生成绩的分段统计和排序输出三实验内容基本要求(1)学生信息及成绩的录入要求包括的学生信息有:学号、某、班级及数据结构等成绩(具体内容可自行假设,至少录入10名以上学生)所录入的学生按学号散列存储(散列函数为 学号%5 取整,如 1002%5 =2),采用拉链法解决冲突。(2)学生成绩的查询 要求根据提供的学号完成学生成绩的查询(必须采用散列查找)。(3)学生成绩的分段统计和排序输出统计出各分数段学生人数(60分以下,6070,7180,.) 采用堆排序,将学生成绩从高到低排序输出四调试与结果测试 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:11、建立新的数据系统。请选择:1请输入第1名学生的学号,学号为0表示结束输入:01请输入第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名学生的性别:女请输入第3名学生的民族:汉请输入第3名学生的数据结构成绩:78请输入第3名学生的英语成绩:83请输入第3名学生的高数成绩:95请输入第4名学生的学号,没有此学生则输入0表示结束: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的学生人数是: 2008090的学生人数是: 13190100的学生人数是:0 0 2 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:2 * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:2排序后的成绩表为:此系统目前共计学生3名:*学生成绩统计*学号 某 数构成绩 英语成绩 高数成绩 总分3 林三 78 83 95 2562 林二80 85 90 2551 林一 77 87 80 244* * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:3排序后的成绩表为:此系统目前共计学生3名: * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:4排序后的成绩表为:此系统目前共计学生3名: * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:5排序后的成绩表为:此系统目前共计学生3名: * * * * 学生成绩统计排序 * * * * 1.按学生学号排序 2.按学生总分排序 3.按学生数构成绩排序 4.按学生英语成绩排序 5.按学生高数成绩排序 6.显示当前学生成绩 0.返回上一级菜单 * * * * * * * * * * * * * * * * *请输入你要执行的操作:0 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:3请输入您要查询学生的方式:1、按学号查询;2、按某查询。请选择:1请输入你要查询的学生的学号,输入0退出学号查询:03学号为3学生的数据为:学号 某 性别 民族 数构成绩 英语成绩 高数成绩 总分5 林三 女 汉 788395256请输入你还要查询的学生的学号,输入0退出学号查询:0请输入您要查询学生的方式:1、按学号查询;2、按某查询。请选择:2请输入你要查询的学生的某,输入0退出某查询:林二某为异灵学生的数据为:学号 某 性别 民族 数构成绩 英语成绩 高数成绩 总分1林二女 汉 8085 90255请输入你还要查询的学生的某,输入0退出某查询:0请输入您要查询学生的方式:1、按学号查询;2、按某查询。请选择:3你选择不查询! * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:4请输入要新加入的学生的学号,学号为0表示结束输入:04请输入新加入学生的某:林四请输入新加入学生的性别:女请输入新加入学生的民族:汉请输入新加入学生的数构成绩:80请输入新加入学生的英语成绩:80请输入新加入学生的高数成绩:85请输入还要加入的学生的学号,输入0表示结束:0加入后的成绩表为:此系统目前共计学生4名: * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:5此系统目前共计学生4名: * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:6 * * * * 学生成绩管理系统 * * * * 1.学生数据键盘录入 2.学生成绩统计排序 3.查询学生数据 4.插入学生数据 5.显示当前成绩表 6.统计各分数段学生人数 0.退出成绩管理系统 * * * * * * * * * * * * * * * * *请输入你要执行的操作:0请按任意键继续. . .Press any key to continue附:实验源代码#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <winsock2.h>typedef struct 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 *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名学生的某:",n);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=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.按学生高数成绩排序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: printf("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->num>p2->num) pm=p2;break; /按学生学号排序 case 2:if (pm->sum<p2->sum) pm=p2;break; /按学生总分排序 case 3:if (pm->score0<p2->score0) pm=p2;break; /按学生数据结构成绩排序 case 4:if (pm->score1<p2->score1) pm=p2;break; /按学生英语成绩排序 case 5:if (pm->score2<p2->score2) 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(;) printf("n请输入您要查询学生的方式:nn");printf("1、按学号查询;2、按某查询。nn");printf("请选择:");scanf("%d",&choose);while(getchar()!='n');if (choose=1) printf("n请输入你要查询的学生的学号,输入0退出学号查询:");scanf("%d",&fnum);for(;fnum;)for(p=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("学号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",&fnum); else if (choose=2) printf("n请输入你要查询的学生的某,输入0退出某查询:"); scanf("%s",tem); for(;strcmp(tem,"0");) for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=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->nation,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",&flag);while(getchar()!='n');for(;flag;)p=(Student *)malloc(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",&p->score0);printf("请输入新加入学生的英语成绩:",n);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此系统目前没有任何学生数据!nnn");return;printf("此系统目前共计学生%d名:n",n); printf("*学生成绩统计*n");printf("学号t某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 ");return;printf("ntt 数据结构 英语 高数");while(p)if(p->score0<60)cou00+;if(p->score1<60)cou10+; if(p->score2<60)cou20+;p=p->next; printf("n060的学生人数是: %d %d %d",cou00,cou10,cou20);p=head->next;while(p)if(p->score0>=60&&p->score0<70)cou01+; if(p->score1>=60&&p->score1<70)cou11+; if(p->score2>=60&&p->score2<70)cou21+;p=p->next; printf("n6070的学生人数是: %d %d %d",cou01,cou11,cou21);p=head->next;while(p)if(p->score0>=70&&p->score0<80)cou02+; if(p->score1>=70&&p->score1<80)cou12+; if(p->score2>=70&&p->score2<80)cou22+;p=p->next; printf("n7080的学生人数是: %d %d %d",cou02,cou12,cou22); p=head->next;while(p)if(p->score0>=80&&p->score0<90)cou03+; if(p->score1>=80&&p->score1<90)cou13+; if(p->score2>=80&&p->score2<90)cou23+;p=p->next; printf("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(sizeof(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"); printf("n请输入你要执行的操作:");scanf("%d",&choose);while(getchar()!='n');switch(choose)case 1:printf("n1、建立新的数据系统。nn"); printf("请选择:"); scanf("%d",&i); if (i=1) head=enter();print(head);break; /学生数据键盘录入 else printf

    注意事项

    本文(数据结构学生数据结构成绩管理系统.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开