欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

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

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

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

    目录1.需求分析:2功能要求:2性能需求:22.概要设计:21.存储结构设计:32.流程图设计:43.详细设计:114.菜单窗口:201.主菜单窗口202. 输入各个项目成绩并存储文件203. 统计各学校总分214. 按学校编号排序输出215. 按学校总分排序输出216. 按男团体总分排序输出227. 按女团体总分排序输出228. 按学校编号查询学校某个项目情况239. 按项目编号查询取得名次的学校235.课程设计总结与体会:231.需求分析:任务:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。(m、w<=20,n<=10)功能要求:1.可以输入各个学校、各项目、以及各项目前三名的数据信息;2能统计各学校总分、男子项目和女子项目总分;3可以按学校编号(或学校名称)、学校总分、男女团体总分排序输出;4.可以按学校编号(或学校名称)查询学校某个项目的情况;可以按项目编号查询取得前三的学校。性能需求规定:输入数据形式和范围:10以内的整数(如果做得更好可以输入学校的名称和运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;2.概要设计:1. 存储结构设计:主菜单123456780输入各个项目成绩并存储文件统计各学校总分按学校编号排序输出按学校总分排序输出按男团体总分排序输出按女团体总分排序输出按学校编号查询学校某个项目情况按项目编号查询取得名次的学校退出1输入各个项目成绩并存储文件输入男子项目总数m输入女子项目总数w输入参加运动会的学校总数n男子项目女子项目输入项目:0返回主菜单界面输入项目编号(如1)输入项目编号(如m)输入项目编号(如m+1)输入项目编号(如m+n)2.统计各学校的总分显示:各学校的总分退出:按enter键3.按学校编号排序输出输入学校编号退出(返回菜单主界面):按enter显示按学校排序输出结果返回到主界面4.按学校总分排序输出输入学校编号退出(返回菜单主界面):按enter显示按学校总分排序结果返回到主界面5.按男团体总分排序输出输入学校编号退出(返回菜单主界面):按enter显示按学校编号排序结果返回到主界面6.按女团体总分排序输出输入学校编号退出(返回菜单主界面):按enter显示按女团体总分排序结果返回到主界面7.按学校编号查询学校某个项目情况输入要查询的学校编号输入要查询的项目编号退出(返回菜单主界面):按enter显示要查询学校的某个项目的获奖情况返回到主界面8.按项目编号查询取得名次的学校(前三名或前五名)输入要查询的项目编号退出(返回菜单主界面):按enter显示某个项目编号的学校名次(前三或前五)返回到主界面0.退出按任意键可以推出2.流程程图设计: Main()函数流程图开始int t!g2|!g1exit(1);system("cls");选择操作编号123456789Funct1()函数流程图School *p1和Items *p2!p1|!p2exit(1);YPrintf();w<0|w>20NYYYPrintf(“输入有误”)Printf(“输入有误”)Printf(“输入有误”)NNNn<0|n>20m<0|m>20输入前三名学校名称结束开始Save()函数流程图Funct2()函数流程图Funct3()函数流程图开始int k;k<=g2->nprintf("tttttt%dt",k);p2=g2->bk.firstitem;p2!=NULLprintf("项目%d:得%d分 ",p2->item,p2->record);p2=p2->next;printf("n");k+;printf("n");结束YYNNFunct4()函数流程图开始int i=2,j,k;i<=g2->nprintf("%dt",k);system("pause");结束YNmultiplexi+k=1k<=g2->nprintf("%d tt%dn",g2->bk.school,g2->bk.score);k+NYFunct5()函数流程图开始int i=2,j,k;i<=g2->nprintf("%dt",k);system("pause");结束YNmultiplexi+k=1k<=g2->nprintf("%dtt %dn",g2->bk.school,g2->bk.boys);k+NYFunct6()函数流程图Funct7()函数流程图Funct8()函数流程图开始int iP2!=NULL;结束Nprintf("n");printf(" 学校%d:得%d分 ",p1->school,p1->record);Y3.详细设计:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <io.h> /#include <conio.h> 屏幕操作函数 #define MAX 50 /#define NULL 0 typedef struct node1 int school; 学校编号 int record; 项目成绩 struct node1 *next; 链域 Schools; typedef struct int item; 项目编号 Schools *firstschool; 链域指向链表中第一个结点 ITEM; typedef struct int z; 项目总数 ITEM aMAX; ALLitems; typedef struct node2 int item; 该学校获奖的项目 int record; 项目成绩 struct node2 *next; 链域 Items; typedef struct int school; /*学校编号*/ int score; /*学校总分*/ int boys; /*男团体总分*/ int girls; /*女团体总分*/ Items *firstitem; 链域指向链表中第一个获奖项目的结点 SCHNode; typedef struct int n; /* 学校总数 */ SCHNode bMAX; ALLNode; ALLitems *g1; ALLNode *g2; void funct1(ALLitems *g1,ALLNode *g2) 输入各个项目成绩 Schools *p1; Items *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("n nn"); printf("n *输入各个项目信息 * nn"); printf(" 输入男子项目总数m:"); scanf("%d",&m); while(m<0|m>10) printf(" 输入有误,m是10以内的整数,请重新输入:"); scanf("%d",&m); printf(" 输入女子项目总数w:"); scanf("%d",&w); while(w<0|w>10) printf(" 输入有误,w是10以内的整数,请重新输入:"); scanf("%d",&w); printf(" 输入参加运动会的学校总数n:"); scanf("%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("nn *记录运动会成绩*"); printf("nn (输入0标志结束)n"); for(k=1;k<=g1->z;k+) /* 对两个邻接表置初态 */ g1->ak.item=k; g1->ak.firstschool=NULL; for(k=1;k<=g2->n;k+) g2->bk.school=k; g2->bk.firstitem=0; g2->bk.score=0; g2->bk.boys=0; g2->bk.girls=0; g2->b0.score=0; g2->b0.boys=0; g2->b0.girls=0; while(i!=0) printf("n 项目:"); scanf("%d",&i); while(i<0|i>m+w) printf(" 输入有误,无此项目编号,请重新输入数字:"); scanf("%d",&i); if(i!=0) h=3; do printf(" 第%d名:学校(学校编号为数字)",h); scanf("%d",&x); while(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->record=p1->record=2; if(h=2) p2->record=p1->record=3; if(h=1) p2->record=p1->record=5; p1->next=g1->ai.firstschool; g1->ai.firstschool=p1; p2->next=g2->bx.firstitem; g2->bx.firstitem=p2; g2->bx.score=g2->bx.score+p2->record; 累计总分 if(i<=m) g2->bx.boys=g2->bx.boys+p2->record; 累计男团体总分 else g2->bx.girls=g2->bx.girls+p2->record; 累计女团体总分 h-; while(x!=0&&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"); return; 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.n"); fclose(fp2); void funct2(ALLNode *g2) 输出各学校总分 int k; printf(" 学校编号t 总分 n"); for(k=1;k<=g2->n;k+) printf(" %dttt %dn",k,g2->bk.score); printf("n"); system("pause"); printf(" 按任意键返回主菜单."); getchar(); void funct3(ALLNode *g2) 按学校编号排序输出 int k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf("n "); printf("n n"); printf("nn * 按学校编号排序输出 *n"); printf(" 学校编号ttt获奖情况 n"); for(k=1;k<=g2->n;k+) printf("tttttt%dt",k); p2=g2->bk.firstitem; while(p2!=NULL) printf("项目%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; printf("n "); printf("n n"); printf("nn * 按学校总分排序输出 *n"); printf(" 学校编号tt总分 n"); printf("按1继续 n "); scanf("%d",&k); /printf("输入要查询的项目编号:"); for(i=2;i<=g2->n;i+) printf("%dt",k); p2=g2->bk.firstitem; while(p2!=NULL) printf("%d tt%dn",g2->bk.school,g2->bk.score); p2=p2->next; printf("n"); g2->b0.score=g2->bi.score; g2->b0.boys=g2->bi.boys; g2->b0.girls=g2->bi.girls; g2->b0.school=g2->bi.school; j=i-1; while(g2->b0.score<g2->bj.score&&j>0) g2->bj+1.score=g2->bj.score; g2->bj+1.boys=g2->bj.boys; g2->bj+1.girls=g2->bj.girls; g2->bj+1.school=g2->bj.school; j-; g2->bj+1.score=g2->b0.score; g2->bj+1.boys=g2->b0.boys; g2->bj+1.girls=g2->b0.girls; g2->bj+1.school=g2->b0.school; for(k=1;k<=g2->n;k+) printf("%d tt%dn",g2->bk.school,g2->bk.score); system("pause"); printf("按任意键返回主菜单."); getchar(); void funct5(ALLNode *g2) 按男团体总分排序输出 int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf("n "); printf("n n"); printf("nn * 按男团体总分排序输出 *n"); printf("学校编号tt男团体总分 n"); printf("按1继续 n "); scanf("%d",&k); /printf("输入要查询的学校编号:"); for(i=2;i<=g2->n;i+) printf("%dt",k); p2=g2->bk.firstitem; while(p2!=NULL) printf("%dtt %dn",g2->bk.school,g2->bk.boys); p2=p2->next; printf("n"); g2->b0.score=g2->bi.score; g2->b0.boys=g2->bi.boys; g2->b0.girls=g2->bi.girls; g2->b0.school=g2->bi.school; j=i-1; while(g2->b0.boys<g2->bj.boys&&j>0) g2->bj+1.score=g2->bj.score; g2->bj+1.boys=g2->bj.boys; g2->bj+1.girls=g2->bj.girls; g2->bj+1.school=g2->bj.school; j-; g2->bj+1.score=g2->b0.score; g2->bj+1.boys=g2->b0.boys; g2->bj+1.girls=g2->b0.girls; g2->bj+1.school=g2->b0.school; for(k=1;k<=g2->n;k+) printf("%dtt %dn",g2->bk.school,g2->bk.boys); system("pause"); / 暂停等待 printf("按任意键返回主菜单."); getchar(); void funct6(ALLNode *g2) 按女团体总分排序输出 int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf("n "); printf("n n"); printf("nn * 按女团体总分排序输出 *n"); printf("学校编号tt女团体总分 n"); printf("按1继续 n "); scanf("%d",&k); for(i=2;i<=g2->n;i+) printf("%dt",k); p2=g2->bk.firstitem; while(p2!=NULL) printf("%dtt %dn",g2->bk.school,g2->bk.girls); p2=p2->next; printf("n"); g2->b0.score=g2->bi.score; g2->b0.boys=g2->bi.boys; g2->b0.girls=g2->bi.girls; g2->b0.school=g2->bi.school; j=i-1; while(g2->b0.girls<g2->bj.girls&&j>0) g2->bj+1.score=g2->bj.score; g2->bj+1.boys=g2->bj.boys; g2->bj+1.girls=g2->bj.girls; g2->bj+1.school=g2->bj.school; j-; g2->bj+1.score=g2->b0.score; g2->bj+1.boys=g2->b0.boys; g2->bj+1.girls=g2->b0.girls; g2->bj+1.school=g2->b0.school; for(k=1;k<=g2->n;k+) printf("%dtt %dn",g2->bk.school,g2->bk.girls); system("pause"); printf("按任意键返回主菜单."); getchar(); void funct7(ALLNode *g2) 按学校编号查询学校某个项目情况 int i,j; Items *p2; printf("n "); printf("n n"); printf("n * 按学校编号查询学校某个项目情况 *n"); printf(" 输入要查询的学校编号:"); scanf("%d",&i); printf(" 输入要查询的项目编号:"); scanf("%d",&j); p2=g2->bi.firstitem; while(p2!=NULL) if(p2->item=j) printf(" 学校编号:%dt项目%d:得%d分n",i,p2->item,p2->record); p2=p2->next; printf("n"); system("pause"); printf(" 按任意键返回主菜单."); getchar(); void funct8(ALLitems *g1) 按项目编号查询取得名次的学校 int i; Schools *p1; printf("n* 按项目编号查询取得名次的学校 *n"); printf("输入要查询的项目编号:"); scanf("%d",&i); printf("项目编号ttt取得名次的学校n"); printf("%dt",i); p1=g1->ai.firstschool; while(p1!=NULL) printf(" 学校%d:得%d分 ",p1->school,p1->record); p1=p1->next; printf("nn"); 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(;) printf("tt n");printf("tt n"); printf("tt n"); printf("tt 运动会分数统计系统 n"); printf("tt n"); printf("tt 1.输入各个项目成绩并存储文件 t n"); printf("tt 2.统计各学校总分 t n"); printf("tt 3.按学校编号排序输出 t n"); printf("tt 4.按学校总分排序输出 t n")

    注意事项

    本文(数据结构课程设计——运动会.doc)为本站会员(教****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开