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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2523012.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)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构课程设计—运动会.doc

1、 目录 1.需求分析: 2 功能要求: 2 性能需求: 2 2.概要设计: 2 1.存储结构设计: 3 2.流程图设计: 4 3.详细设计: 11 4.菜单窗口: 20 1.主菜单窗口 20 2. 输入各个项目成绩并存储文件 20 3. 统计各学校总分 21 4. 按学校编号排序输出 21 5. 按学校总分排序输出 21 6. 按男团体总分排序输出 22 7. 按女团体总分排序输出 22 8. 按学校编号查询学校某个项目情况 23 9. 按项目编号查询取得名次的学校 23 5.课程设计总结与体会: 23 1.需求分析: 任务:参加运动会有n个学校,

2、学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。(m、w<=20,n<=10) 功能要求: 1.可以输入各个学校、各项目、以及各项目前三名的数据信息; 2.能统计各学校总分、男子项目和女子项目总分; 3.可以按学校编号(或学校名称)、学校总分、男女团体总分排序输出; 4.可以按学校编号(或学校名称)查询学校某个项目的情况;可以按项目编号查询取得前三的学校。 性能需求 规定:输入数据形式和范围:10以内的整数(如果做得更好可以输入学校的名称和运动项目的名称) 输出形式

3、有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2.概要设计: 1. 存储结构设计: 主菜单 1 2 3 4 5 6 7 8 0 输入各个项目成绩并存储文件 统计各学校总分 按学校编号排序输出 按学校总分排序输出 按男团体总分排序输出 按女团体总分排序输

4、出 按学校编号查询学校某个项目情况 按项目编号查询取得名次的学校 退出 1输入各个项目成绩并存储文件 输入男子项目总数m 输入女子项目总数w 输入参加运动会的学校总数n 男子项目 女子项目 输入项目:0返回主菜单界面 输入项目编号(如1) 输入项目编号(如m) 输入项目编号(如m+1) 输入项目编号(如m+n) 2.统计各学校的总分 显示:各学校的总分 退出:按enter键 3.按学校编号排序输出 输入学校编号 退出(返回菜单主界面):按enter 显示按学校排序输出结果

5、 返回到主界面 4.按学校总分排序输出 输入学校编号 退出(返回菜单主界面):按enter 显示按学校总分排序结果 返回到主界面 5.按男团体总分排序输出 输入学校编号 退出(返回菜单主界面):按enter 显示按学校编号排序结果 返回到主界面 6.按女团体总分排序输出 输入学校编号 退出(返回菜单主界面):按enter 显示按女团体总分排序结果 返回到主界面 7.按学校编号查询学校某个项目情况 输入要查询的学校编号 输入要查询的项目编号 退出(返回菜单主界面):按enter 显示要查询学校的某个项目的获奖情况 返回到主

6、界面 8.按项目编号查询取得名次的学校(前三名或前五名) 输入要查询的项目编号 退出(返回菜单主界面):按enter 显示某个项目编号的学校名次(前三或前五) 返回到主界面 0.退出 按任意键可以推出 2.流程程图设计: Main()函数流程图 开始 int t !g2||!g1 exit(1); system("cls"); 选择操作编号 1 2 3 4 5 6 7 8 9 Funct1()函数流程图 School *p1和Items *p2 !p1||!p2 exit(1); Y Printf();

7、 w<0||w>20 N Y Y Y Printf(“输入有误”) Printf(“输入有误”) Printf(“输入有误”) N N N n<0||n>20 m<0||m>20 输入前三名学校名称 结束 开始 Save()函数流程图 Funct2()函数流程图 Funct3()函数流程图 开始 int k; k<=g2->n printf("\t\t\t\t\t\t%d\t",k); p2=g2->b[k].firstitem; p2!=NULL printf("项目%d

8、得%d分 ",p2->item,p2->record); p2=p2->next; printf("\n"); k++; printf("\n"); 结束 Y Y N N Funct4()函数流程图 开始 int i=2,j,k; i<=g2->n printf("%d\t",k); system("pause"); 结束 Y N multiplex i++ k=1 k<=g2->n printf("%d \t\t%d\n",g2->b[k].school,g2->b[k].score); k++ N Y

9、 Funct5()函数流程图 开始 int i=2,j,k; i<=g2->n printf("%d\t",k); system("pause"); 结束 Y N multiplex i++ k=1 k<=g2->n printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].boys); k++ N Y Funct6()函数流程图 Funct7()函数流程图 Funct8()函数流程图 开始 int i P2!=NULL; 结束 N printf("

10、\n"); printf(" 学校%d:得%d分 ",p1->school,p1->record); Y 3.详细设计: #include #include #include #include //#include 屏幕操作函数 #define MAX 50 //#define NULL 0 typedef struct node1{ int s

11、chool; 学校编号 int record; 项目成绩 struct node1 *next; 链域 }Schools; typedef struct { int item; 项目编号 Schools *firstschool;

12、 链域指向链表中第一个结点 }ITEM; typedef struct { int z; 项目总数 ITEM a[MAX]; }ALLitems; typedef struct node2 { int item; 该学校获奖的项目 int record;

13、 项目成绩 struct node2 *next; 链域 }Items; typedef struct { int school; /*学校编号*/ int score; /*学校总分*/ int boys; /*男团体总分*/ int girls; /*女团体总分*/ Items *firstitem;

14、 链域指向链表中第一个获奖项目的结点 }SCHNode; typedef struct { int n; /* 学校总数 */ SCHNode b[MAX]; }ALLNode; ALLitems *g1; ALLNode *g2; void funct1(ALLitems *g1,ALLNode *g2) 输入各个项目成绩 { Schools *p1; Items *

15、p2; int i,k,m,w,h,x; p1=(Schools *)malloc(sizeof(Schools)); p2=(Items *)malloc(sizeof(Items)); if(!p1||!p2) exit(1); printf("\n "); printf(

16、"\n \n\n"); printf("\n ******输入各个项目信息 ****** \n\n"); printf(" 输入男子项目总数m:"); scanf("%d",&m); while(m<0||m>10) { printf(" 输入有误,m是10以内的整数,请重新输入:");

17、 scanf("%d",&m); } printf(" 输入女子项目总数w:"); scanf("%d",&w); while(w<0||w>10) { printf(" 输入有误,w是10以内的整数,请重新输入:"); scanf("%d",&w); } printf(" 输入参加运动会的学校总数n:"); sca

18、nf("%d",&g2->n); while(g2->n<0||g2->n>10) { printf(" 输入有误,n是10以内的整数,请重新输入:"); scanf("%d",&g2->n); } g1->z=m+w; printf(" 则项目编号为男子1-%d,女子%d-%d",m,m+1,g1->z); printf("\n\n ****记录运动会成

19、绩****"); printf("\n\n (输入0标志结束)\n"); for(k=1;k<=g1->z;k++) /* 对两个邻接表置初态 */ { g1->a[k].item=k; g1->a[k].firstschool=NULL; } for(k=1;k<=g2->n;k++) { g2->b[k].school=k; g2->b[k].firstitem=0; g2->b[k].s

20、core=0; g2->b[k].boys=0; g2->b[k].girls=0; } g2->b[0].score=0; g2->b[0].boys=0; g2->b[0].girls=0; while(i!=0) { printf("\n 项目:"); scanf("%d",&i); while(i<0||i>m+w) { printf("

21、 输入有误,无此项目编号,请重新输入数字:"); scanf("%d",&i); } { { } if(i!=0) { h=3; do{ printf(" 第%d名:学校(学校编号为数字)",h); scanf("%d",&x); whil

22、e(x<0||x>g2->n) { printf(" 输入有误,无此学校编号,请重新输入数字:"); scanf("%d",&x); } p1=(Schools *)malloc(sizeof(Schools)); p1->school=x; p2=(Items *)malloc(sizeof(Items)); p2->item=i; if(h==3) p2-

23、>record=p1->record=2; if(h==2) p2->record=p1->record=3; if(h==1) p2->record=p1->record=5; p1->next=g1->a[i].firstschool; g1->a[i].firstschool=p1; p2->next=g2->b[x].firstitem; g2->b[x].firstitem=p2;

24、 g2->b[x].score=g2->b[x].score+p2->record; 累计总分 if(i<=m) g2->b[x].boys=g2->b[x].boys+p2->record; 累计男团体总分 else g2->b[x].girls=g2->b[x].girls+p2->record; 累计女团体总分 h--; }while(x!=0&

25、h!=0); } } } } void save() 存储数据文件 { FILE *fp1,*fp2; fp1=(FILE *)malloc(sizeof(FILE)); fp2=(FILE *)malloc(sizeof(FILE)); if((fp1=fopen("sports1","wb"))==NULL) { printf("cannot open file.\n"); retu

26、rn; } if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1) printf("file write error.\n"); fclose(fp1); if((fp2=fopen("sports2","wb"))==NULL) { printf("cannot open file.\n"); return; } if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) printf("file write error.\

27、n"); fclose(fp2); } void funct2(ALLNode *g2) 输出各学校总分 { int k; printf(" 学校编号\t 总分 \n"); for(k=1;k<=g2->n;k++) printf(" %d\t\t\t %d\n",k,g2->b[k].score); pri

28、ntf("\n"); system("pause"); printf(" 按任意键返回主菜单......"); getchar(); } void funct3(ALLNode *g2) 按学校编号排序输出 { int k; Items *p2; p2=(Items *)malloc(sizeof(Items)); printf("\n "); printf

29、"\n \n"); printf("\n\n ****** 按学校编号排序输出 ******\n"); printf(" 学校编号\t\t\t获奖情况 \n"); for(k=1;k<=g2->n;k++) { printf("\t\t\t\t\t\t%d\t",k); p2=g2->b[k].firstitem; while(p2!=NULL) { prin

30、tf("项目%d:得%d分 ",p2->item,p2->record); p2=p2->next; } printf("\n"); } printf("\n"); system("pause"); printf("按任意键返回主菜单......"); getchar(); } void funct4(ALLNode *g2) 按学校总分排序输出 { int i,j,k; Items *p2; pr

31、intf("\n "); printf("\n \n"); printf("\n\n ****** 按学校总分排序输出 ******\n"); printf(" 学校编号\t\t总分 \n"); printf("按1继续 \n "); scanf("%d",&k); //printf("输入要查询的项目编号:"); for(i=2;i<=g2->n;i++) { printf("%d\

32、t",k); p2=g2->b[k].firstitem; while(p2!=NULL) { printf("%d \t\t%d\n",g2->b[k].school,g2->b[k].score); p2=p2->next; } printf("\n"); g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls;

33、g2->b[0].school=g2->b[i].school; j=i-1; while(g2->b[0].scoreb[j].score&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; }

34、 g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school; } for(k=1;k<=g2->n;k++) printf("%d \t\t%d\n",g2->b[k].school,g2->b[k].score); system("pause"); printf("按任意键返回主菜单...

35、"); getchar(); } void funct5(ALLNode *g2) 按男团体总分排序输出 { int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items)); printf("\n "); printf("\n \n"); printf("\n\n ****** 按男团体总分排序输出

36、 ******\n"); printf("学校编号\t\t男团体总分 \n"); printf("按1继续 \n "); scanf("%d",&k); //printf("输入要查询的学校编号:"); for(i=2;i<=g2->n;i++) { printf("%d\t",k); p2=g2->b[k].firstitem; while(p2!=NULL) { printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].boys)

37、 p2=p2->next; } printf("\n"); g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2->b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1; while(g2->b[0].boysb[j].boys&&j>0) { g2->b[j+1].score=g2->

38、b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j+1].school=g2->b[j].school; j--; } g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b

39、[j+1].school=g2->b[0].school; } for(k=1;k<=g2->n;k++) printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].boys); system("pause"); // 暂停等待 printf("按任意键返回主菜单......"); getchar(); } void funct6(ALLNode *g2)

40、 按女团体总分排序输出 { int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items)); printf("\n "); printf("\n \n"); printf("\n\n ****** 按女团体总分排序输出 ******\n"); printf("学校编号\t\t女团体总分 \n"); printf("按1继续 \n "); sca

41、nf("%d",&k); for(i=2;i<=g2->n;i++) { printf("%d\t",k); p2=g2->b[k].firstitem; while(p2!=NULL) { printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].girls); p2=p2->next; } printf("\n"); g2->b[0].score=g2->b[i].score; g2->b[0].boys=g2

42、>b[i].boys; g2->b[0].girls=g2->b[i].girls; g2->b[0].school=g2->b[i].school; j=i-1; while(g2->b[0].girlsb[j].girls&&j>0) { g2->b[j+1].score=g2->b[j].score; g2->b[j+1].boys=g2->b[j].boys; g2->b[j+1].girls=g2->b[j].girls; g2->b[j

43、1].school=g2->b[j].school; j--; } g2->b[j+1].score=g2->b[0].score; g2->b[j+1].boys=g2->b[0].boys; g2->b[j+1].girls=g2->b[0].girls; g2->b[j+1].school=g2->b[0].school; } for(k=1;k<=g2->n;k++) printf("%d\t\t %d\n",g2->b[k].school,g

44、2->b[k].girls); system("pause"); printf("按任意键返回主菜单......"); getchar(); } void funct7(ALLNode *g2) 按学校编号查询学校某个项目情况 { int i,j; Items *p2; printf("\n "); printf("\n \n"); printf("\n ******

45、 按学校编号查询学校某个项目情况 ******\n"); printf(" 输入要查询的学校编号:"); scanf("%d",&i); printf(" 输入要查询的项目编号:"); scanf("%d",&j); p2=g2->b[i].firstitem; while(p2!=NULL) { if(p2->item==j) printf("

46、 学校编号:%d\t项目%d:得%d分\n",i,p2->item,p2->record); p2=p2->next; } printf("\n"); system("pause"); printf(" 按任意键返回主菜单......"); getchar(); } void funct8(ALLitems *g1) 按项目编号查询取得名次的学校 { in

47、t i; Schools *p1; printf("\n*** 按项目编号查询取得名次的学校 ***\n"); printf("输入要查询的项目编号:"); scanf("%d",&i); printf("项目编号\t\t\t取得名次的学校\n"); printf("%d\t",i); p1=g1->a[i].firstschool; while(p1!=NULL) { printf(" 学校%d:得%d分 ",p1->school,p1->record);

48、p1=p1->next; } printf("\n\n"); system("pause"); printf("按任意键返回主菜单......"); getchar(); } void main() { int t; g2=(ALLNode*)malloc(sizeof(ALLNode)); g1=(ALLitems*)malloc(sizeof(ALLitems)); if(!g2||!g1) exit(1); system("cls"); for(;;) {

49、 printf("\t\t \n"); printf("\t\t \n"); printf("\t\t \n"); printf("\t\t 运动会分数统计系统 \n"); printf("\t\t

50、 \n"); printf("\t\t 1.输入各个项目成绩并存储文件 \t \n"); printf("\t\t 2.统计各学校总分 \t \n"); printf("\t\t 3.按学校编号排序输出 \t \n"); printf("\t\t 4.按学校总分排序输出 \t \n")

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服