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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(东华大学数据结构课程设计哈希表和运动会.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

东华大学数据结构课程设计哈希表和运动会.doc

1、 东华大学 课程设计报告 设 计 题 目: 运动会分数统计 哈希表查找的设计 【设计题目一】 运动会分数统计 任务 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1~m,女子m+1~m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。(m<=20,n<

2、20) 功能要求 1、可以输入各个项目的前三名或前五名的成绩; 2、能统计各学校总分; 3、可以按学校编号、学校总分、男女团体总分排序输出; 4、可以按学校编号查询学校某个项目的情况; 5、可以按项目编号查询取得前三或前五名的学校。 需求分析 1、由用户定义学校的编号、名称,项目的编号、名称,并输入相对应的成绩; 2、由用户选择各个项目取前三名或前五名; 3、系统根据用户的输入生成运动会分数信息相应文件并保存。 概要设计 1、定义数据结构 (1)学校数据类型 typedef struct ItemNode { int item;

3、 //该学校获奖的项目编号 char i_name[MAX]; //项目名字 int record; //项目成绩 struct ItemNode *next; //链域 }ItemNode; typedef struct { int school; //学校编号 char school_name[MAX]; //学校名字 int shool_score; //学校总分 int boys_score;

4、 //男团体总分 int girl_score; //女团体总分 ItemNode *firstitem; //链域指向链表中第一个获奖项目的结点 }SCHNode; typedef struct { int school_num; //学校总数 SCHNode school[MAX]; }AllSchool; (2)项目数据类型 typedef struct SchoolNode { int school; //学校编号 char s_name[MAX]; /

5、/学校名字 int record; //项目成绩 struct SchoolNode *next; //链域 }SchoolNode; typedef struct { int item; //项目编号 char item_name[MAX]; //项目名字 SchoolNode *firstschool; //链域指向链表中第一个结点 }Item; typedef struct { int item_num; //项目总数 Item item[MAX]; }AllItem

6、s; 2、模块与函数 运动会分数统计系统分为四个模块:信息输入及统计模块、信息保存提取模块、信息排序输出模块、信息查询模块。 (1)信息输入及统计模块函数: void InitList()、void Item_Score()、void InputInfo(); (2)信息保存提取模块函数:void save()、void ReadInfo(); (3)信息排序输出函数:void School_Score()、void Sort_Schoolnum()、void Sort_SchoolScore()、void Sort_ManScore()、void Sort_WomanScore

7、); (4)信息查询模块函数:void FindInfo_SchoolNum()、void FindInfo_SchoolNum()。 3、主函数与各函数调用关系结构图: 运动会分数统计 信息保存提取模块 信息输入及统计模块 信息查询模块 信息排序输出模块 统计各学校总分 按学校总分排序 按女团体总分排序 按男团体总分排序 信息输入及统计 按学校编号排序 提取信息 保存信息 信息初始化 按项目编号查询 按学校编号查询 详细设计 #include

8、> #include #include #include #define MAX 100 #define S_SIZE sizeof(SchoolNode) #define I_SIZE sizeof(ItemNode) typedef struct SchoolNode { int school; //学校编号 char s_name[MAX]; //学校名字 int record; //项目成绩 struct SchoolNode *next;

9、 //链域 }SchoolNode; typedef struct { int item; //项目编号 char item_name[MAX]; //项目名字 SchoolNode *firstschool; //链域指向链表中第一个结点 }Item; typedef struct { int item_num; //项目总数 Item item[MAX]; }AllItems; typedef struct ItemNode { int item; //该学校获奖的项目

10、编号 char i_name[MAX]; //项目名字 int record; //项目成绩 struct ItemNode *next; //链域 }ItemNode; typedef struct { int school; //学校编号 char school_name[MAX]; //学校名字 int shool_score; //学校总分 int boys_score; //男团体总分 int girl_sc

11、ore; //女团体总分 ItemNode *firstitem; //链域指向链表中第一个获奖项目的结点 }SCHNode; typedef struct { int school_num; //学校总数 SCHNode school[MAX]; }AllSchool; void InitList(AllSchool *as,AllItems *ai) //初始化链表 { for (int i = 0;iitem_num;i++) //初始化项目链表 { ai->item[i

12、].item = i+1; strcpy(ai->item[i].item_name," "); ai->item[i].firstschool = NULL; } for (int k = 1;k<=as->school_num;k++) //初始化学校链表 { as->school[k].school = k; strcpy(as->school[k].school_name," "); as->school[k].firstitem = NULL; as->school[k].shool_score = as->school[k].boy

13、s_score = as->school[k].girl_score = 0; } as->school[0].shool_score = as->school[0].boys_score = as->school[0].girl_score = 0; strcpy(as->school[0].school_name," "); } void Item_Score(AllItems *ai,AllSchool *as,int x) //取三前名和前五名的项目 { ItemNode *p; SchoolNode *q; int j,num,k; int m =

14、3,n = 5; char name[MAX]; for (int i = 0;iitem_num;i++) { printf("\n\n\t|-----------------------请输入第%d个项目编号:",i+1); scanf("%d",&ai->item[i].item); printf("\n\n\t|-----------------------请输入第%d个项目名字:",i+1); scanf("%s",ai->item[i].item_name); getchar(); printf("\n\n\t|------

15、1.前三名\t2.前五名\n"); printf("\n\n\t|-----------------------请选择:"); scanf("%d",&j); if(j!=1&&j!=2) { printf("\n\n\t|-----------------------输入有误,请重新选择:"); scanf("%d",&j); } if (j == 1) { k = 0;m = 3; do { printf("\n\n\t|-----------------------请输入第%d名

16、学校编号:",m); scanf("%d",&num); printf("\n\n\t|-----------------------请输入第%d名学校名字:",m); scanf("%s",name); getchar(); q = (SchoolNode *)malloc(S_SIZE); q->school = num; strcpy(q->s_name,name); p = (ItemNode *)malloc(I_SIZE); p->item = ai->item[i].item; s

17、trcpy(p->i_name,ai->item[i].item_name); if(m==3) p->record=q->record = 2; if(m==2) p->record=q->record = 3; if(m==1) p->record=q->record = 5; q->next = ai->item[i].firstschool; ai->item[i].firstschool = q; p->next = as->school[num].firstitem; as->school[num].firsti

18、tem = p; strcpy(as->school[num].school_name,q->s_name); as->school[num].shool_score=as->school[num].shool_score+p->record;//累计总分 if(i+1<=x) as->school[num].boys_score+=p->record; //累计男团体总分 else as->school[num].girl_score += p->record; //累计女团体总分 m--;

19、 k++; if(k == as->school_num)break; } while (m!=0); } if (j == 2) { k = 0;n = 5; do { printf("\n\n\t|---------请输入第%d名学校编号:",n); scanf("%d",&num); printf("\n\n\t|---------请输入第%d名学校名字:",n); scanf("%s",name); getchar(); q = (SchoolNode *)malloc(S_SIZ

20、E); q->school = num; strcpy(q->s_name,name); p = (ItemNode *)malloc(I_SIZE); p->item = ai->item[i].item; strcpy(p->i_name,ai->item[i].item_name); if(n == 5) p->record = q->record = 1; if(n == 4) p->record = q->record = 2; if(n == 3) p->record = q->record = 3;

21、 if(n == 2) p->record = q->record = 5; if(n == 1) p->record = q->record = 7; q->next = ai->item[i].firstschool; ai->item[i].firstschool = q; p->next = as->school[num].firstitem; as->school[num].firstitem = p; strcpy(as->school[num].school_name,q->s_name); as->

22、school[num].shool_score = as->school[num].shool_score + p->record; //累计总分 if(i+1<=x) as->school[num].boys_score += p->record; //累计男团体总分 else as->school[num].girl_score += p->record; //累计女团体总分 n--; k++; if(k == as->school_num)break; } while (n!=0); } }

23、} void InputInfo(AllSchool *AS,AllItems *AI) { int m,w; printf("\n\n\t|***********************输入各个项目信息***********************|\n\n"); printf("\n\n\t|---------请输入男子项目总数m:"); scanf("%d",&m); if(m<0||m>20) { printf("\n\n\t|*********输入有误,m是20以内的整数,请重新输入:"); scanf("%d",&m); } prin

24、tf("\n\n\t|---------请输入女子项目总数w:"); scanf("%d",&w); if(w<0||w>20) { printf("\n\n\t|*********输入有误,w是20以内的整数,请重新输入:"); scanf("%d",&w); } printf("\n\n\t|---------请输入参加运动会的学校总数n:"); scanf("%d",&AS->school_num); if (AS->school_num < 0 || AS->school_num > 20) { printf("\n\n\t|******

25、输入有误,n是20以内的整数,请重新输入:"); scanf("%d",&AS->school_num); } AI->item_num = m+w; printf("\n\t则项目编号为男子1—%d,女子%d—%d",m,m+1,AI->item_num); InitList(AS,AI); //初始化链表 Item_Score(AI,AS,m); //区分取前名和前名的项目给分情况 } void save(AllItems *ai,AllSchool *as) //存储数据文件 { FILE *fp1,*fp2; i

26、f((fp1=fopen("AllItems.txt","w+"))==NULL) { printf("\n\n\t|-----------------------创建文件失败!-----------------------|\n"); return; } if(fwrite(ai,sizeof(AllItems),1,fp1)!=1) printf("\n\n\t|------------------------保存信息失败!-----------------------|\n"); else printf("\n\n\t|--

27、信息成功保存到AllItems.txt!--------------|\n"); fclose(fp1); if((fp2=fopen("AllSchool.txt","w+"))==NULL) { printf("\n\n\t|-----------------------创建文件失败!-----------------------|\n"); return; } if(fwrite(as,sizeof(AllSchool),1,fp2)!=1) printf("\n\n\t|----------

28、保存信息失败!-----------------------|\n"); else printf("\n\n\t|-------------------信息成功保存到AllSchool.txt!-------------|\n"); fclose(fp2); system("pause"); } void ReadInfo(AllSchool *as,AllItems *ai) //读取文件信息 { FILE *fp1,*fp2; if ((fp1 = fopen("AllItems.txt","r")) == N

29、ULL) { printf("\n\n\t|-------------------找不到文件AllItems.txt!------------------|\n"); system("pause");return ; } fread(ai,sizeof(AllItems),1,fp1); printf("\n\n\t|-----------------AllItems.txt文件内容读取完毕!--------------|\n"); fclose(fp1); if ((fp2 = fopen("AllSchool.txt","r")) == NULL) { p

30、rintf("\n\n\t|-------------------找不到文件AllSchool.txt!------------------|\n"); system("pause");return ; } fread(as,sizeof(AllSchool),1,fp2); printf("\n\n\t|-----------------AllSchool.txt文件内容读取完毕!-------------|\n"); fclose(fp2); system("pause"); } void School_Score(AllSchool *as) //

31、统计学校总分 { printf("\n\n\t|***********************输出各个学校总得分***********************|\n"); printf("\t|----------------------------------------------------------------|\n"); printf("\t|---- 学校编号\t|学校名字 |男团体总分|女团体总分|总分 |------|\n"); printf("\t|---------------------------------------------------

32、\n"); for (int i = 1;i<=as->school_num;i++) { printf("\t|---- %-9d|%-8s |%-4d\t|%-10d|%-8d|----|\n",i,as->school[i].school_name,as->school[i].boys_score,as->school[i].girl_score,as->school[i].shool_score); printf("\t|----------------------------------------------------------

33、\n"); } printf("\n\n");system("pause"); } void Sort_Schoolnum(AllSchool *as) //按学校编号排序 { printf("\n\n\t|***********************按学校编号排序输出***********************|\n"); printf("\t|----------------------------------------------------------------|\n"); printf("\t|---- 学校编号\t|学校名字

34、 |男团体总分|女团体总分|总分 |------|\n"); printf("\t|----------------------------------------------------------------|\n"); for (int i = 1;i<=as->school_num;i++) { printf("\t|---- %-9d|%-8s |%-4d\t|%-10d|%-8d|----|\n",i,as->school[i].school_name,as->school[i].boys_score,as->school[i].girl_score,as

35、>school[i].shool_score); printf("\t|----------------------------------------------------------------|\n"); } printf("\n\n");system("pause"); } void Sort_SchoolScore(AllSchool *as) //按学校总分排序(直接插入排序) { int i,j,k; printf("\n\n\t|*********************按学校总分排序输出**********************

36、\n"); printf("\t|----------------------------------------------------------------|\n"); printf("\t|---- 学校编号\t|学校名字 |男团体总分|女团体总分|总分 |------|\n"); printf("\t|----------------------------------------------------------------|\n"); for (i = 2;ischool_num;i++) { as->school[0].boys

37、score = as->school[i].boys_score; as->school[0].girl_score = as->school[i].girl_score; as->school[0].shool_score = as->school[i].shool_score; as->school[0].school = as->school[i].school; strcpy(as->school[0].school_name,as->school[i].school_name); j = i - 1; while (as->school[0].

38、shool_score < as->school[j].shool_score && j >0) { as->school[j+1].boys_score = as->school[j].boys_score; as->school[j+1].girl_score = as->school[j].girl_score; as->school[j+1].shool_score = as->school[j].shool_score; as->school[j+1].school = as->school[j].school; strcpy(as->scho

39、ol[j+1].school_name,as->school[j].school_name); j--; } as->school[j+1].boys_score = as->school[0].boys_score; as->school[j+1].girl_score = as->school[0].girl_score; as->school[j+1].shool_score = as->school[0].shool_score; as->school[j+1].school = as->school[0].school; strcpy(a

40、s->school[j+1].school_name,as->school[0].school_name); } for (k = 1;k<=as->school_num;k++) { printf("\t|---- %-9d|%-8s |%-4d\t|%-10d|%-8d|----|\n",as->school[k].school,as->school[k].school_name,as->school[k].boys_score,as->school[k].girl_score,as->school[k].shool_score); printf("\t|----

41、\n"); } printf("\n\n");system("pause"); } void Sort_ManScore(AllSchool *as) //按男团体总分排序(直接插入排序) { int i,j,k; printf("\n\n\t|*********************按男团体总分排序输出***********************|\n"); printf("\t|-----------------------

42、\n"); printf("\t|---- 学校编号\t|学校名字 |男团体总分|女团体总分|总分 |------|\n"); printf("\t|----------------------------------------------------------------|\n"); for (i = 2;i<=as->school_num;i++) { as->school[0].boys_score = as->school[i].boys_score; as->sch

43、ool[0].girl_score = as->school[i].girl_score; as->school[0].shool_score = as->school[i].shool_score; as->school[0].school = as->school[i].school; strcpy(as->school[0].school_name,as->school[i].school_name); j = i - 1; while (as->school[0].boys_score < as->school[j].boys_score && j >0

44、) { as->school[j+1].boys_score = as->school[j].boys_score; as->school[j+1].girl_score = as->school[j].girl_score; as->school[j+1].shool_score = as->school[j].shool_score; as->school[j+1].school = as->school[j].school; strcpy(as->school[j+1].school_name,as->school[j].school_name);

45、 j--; } as->school[j+1].boys_score = as->school[0].boys_score; as->school[j+1].girl_score = as->school[0].girl_score; as->school[j+1].shool_score = as->school[0].shool_score; as->school[j+1].school = as->school[0].school; strcpy(as->school[j+1].school_name,as->school[0].school

46、name); } for (k = 1;k<=as->school_num;k++) { printf("\t|---- %-9d|%-8s |%-4d\t|%-10d|%-8d|----|\n",as->school[k].school,as->school[k].school_name,as->school[k].boys_score,as->school[k].girl_score,as->school[k].shool_score); printf("\t|---------------------------------------------------

47、\n"); } printf("\n\n");system("pause"); } void Sort_WomanScore(AllSchool *as) //按女团体总分排序(直接插入排序) { int i,j,k; printf("\n\n\t|*********************按女团体总分排序输出***********************|\n"); printf("\t|----------------------------------------------------------------|\n")

48、 printf("\t|---- 学校编号\t|学校名字 |男团体总分|女团体总分|总分 |------|\n"); printf("\t|----------------------------------------------------------------|\n"); for (i = 2;i<=as->school_num;i++) { as->school[0].boys_score = as->school[i].boys_score; as->school[0].girl_score = as->school[i].girl_score;

49、 as->school[0].shool_score = as->school[i].shool_score; as->school[0].school = as->school[i].school; strcpy(as->school[0].school_name,as->school[i].school_name); j = i - 1; while (as->school[0].girl_score < as->school[j].girl_score && j >0) { as->school[j+1].boys_score = as->school

50、[j].boys_score; as->school[j+1].girl_score = as->school[j].girl_score; as->school[j+1].shool_score = as->school[j].shool_score; as->school[j+1].school = as->school[j].school; strcpy(as->school[j+1].school_name,as->school[j].school_name); j--; } as->school[j+1].boys_score =

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服