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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运动会分数统计课程设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运动会分数统计课程设计.docx

1、运动会分数统计课程设计青岛大学软件技术学院游戏算法实践报告姓 名 杜威 专 业 数字媒体艺术 班 级 10级4班 指导教师 刘春秋 2013年 1 月 16日1 问题定义与描述1.1 问题定义运动会分数统计系统1.2 问题描述参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2(m、w=20,n=10)。1.可以输入各个项目的前三名或前五名的成绩;2.能统计各学校总分;3.可以按学校编号、学校总分、男女团体总分排序输出;4.可以按学校编号查询学校某个项目的情况;可以按项目编号查询

2、取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数。2 关键技术C语言 数组 链表3 数据的组织需要输入学校编号,项目编号,取得的名次,以及哪些名次3.1数据类型定义typedef struct node1 int school; /*学校编号*/ int record; /*项目成绩*/ struct node1 *next; /*链域*/Schools; typedef struct int item; /*项目编号*/ Schools *firstschool; /*链域指向链表中第一个结点*/ITEM; typedef struct int z; /* 项目总数 */ I

3、TEM 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; /* 学校总数 */ SC

4、HNode bMAX; ALLNode; 3.2数据存储结构以链表和数组实现4 总体设计4.1 系统模块图图4.1 系统模块图 4.2数组和链表的基本操作输入阶段,数组作为链表的数据域,将数据存放在数组的各个成员中。输出阶段,将存储在数组中的数据进行调用,通过按数组中同一成员不同项目的大小不同来进行比较,来进行排序。5 详细设计5.1主函数流程图图5.1 主函数流程图5.2输入各个项目成绩的函数流程图图5.2输入各个项目成绩的函数流程图5.3比赛成绩排序输出函数流程图图5.3比赛成绩排序输出函数流程图6 测试结果及分析6.1主菜单窗口图6.1主菜单窗口6.2输入各个项目成绩并存储文件请选择(0

5、8):1 进入输入各个项目成绩并存储文件图6.21进入输入各个项目成绩界面输入男子项目总数m:2 输入女子项目总数w:2 输入参加运动会的学校总数n: 3图6.22输入项目和学校总数输入 项目:1 请选择1(1.前三名2.前五名)第3名:学校3第2名:学校2第1名:学校1项目:2 请选择1(1.前三名2.前五名)第3名:学校1第2名:学校2第1名:学校3项目:3 请选择1(1.前三名2.前五名)第3名:学校3第2名:学校1第1名:学校2项目:4 请选择1(1.前三名2.前五名)第3名:学校3第2名:学校1第1名:学校2图6.23输入项目信息输入 项目:0 返回到主菜单窗口 图6.24返回主界面

6、 6.3统计各学校总分请选择(08):2 进入统计各学校总分图6.3统计各学校总分6.4按学校编号排序输出请按任意键继续 0 返回到主菜单窗口 请选择(08):3 按学校编号排序输出图6.4按学校编号排序输出6.5按学校总分排序输出请按任意键继续 0 返回到菜单主界面请选择(08):4 按学校总分排序输出图6.5按学校总分排序输出6.6按男团体总分排序输出请按任意键继续 0 返回到菜单主界面 请选择(08):5 按男团体总分排序输出图6.6按男团体总分排序输出6.7按女团体总分排序输出请按任意键继续 0 返回到菜单主界面 请选择(08):6 按女团体总分排序输出图6.7按女团体总分排序输出6.

7、8按学校编号查询学校某个项目情况 请按任意键继续 0 返回到菜单主界面请选择(08):7 按学校编号查询学校某个项目情况图6.8按学校编号查询学校某个项目情况6.9按项目编号查询取得名次的学校请按任意键继续 0 返回到菜单主界面请选择(08):8 按项目编号查询取得名次的学校图6.9按项目编号查询取得名次的学校7 心得体会本次课程设计,不仅检验了我的实践能力,也让自己可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。同时通过与组员和老师之间的交流,学到了很多自己所不了解的知识,多问,多学,实践与团队合作,才是关键。附录:程序代码#include #include #in

8、clude #include #define MAX 50 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; /*该学校获奖的项

9、目*/ 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; /*函数名:funct1

10、 *函数功能:输入各项目成绩 *形参:LLitems *g1,ALLNode *g2 *返回值:无 */ void funct1(ALLitems *g1,ALLNode *g2) Schools *p1; Items *p2; int i,j,k,m,w,h,x; p1=(Schools *)malloc(sizeof(Schools); p2=(Items *)malloc(sizeof(Items); if(!p1|!p2) exit(1); printf(n *输入各个项目信息 * nn); printf( 输入男子项目总数m:); scanf(%d,&m); if(m20) prin

11、tf( 输入有误,m是20以内的整数,请重新输入:); scanf(%d,&m); printf( 输入女子项目总数w:); scanf(%d,&w); if(w20) printf( 输入有误,w是20以内的整数,请重新输入:); scanf(%d,&w); printf( 输入参加运动会的学校总数n:); scanf(%d,&g2-n); if(g2-nn20) printf( 输入有误,n是20以内的整数,请重新输入:); scanf(%d,&g2-n); g1-z=m+w; printf( 则项目编号为男子1-%d,女子%d-%d,m,m+1,g1-z); printf(nn *记录运

12、动会成绩*); printf(nn (输入0标志结束)n); for(k=1;kz;k+) g1-ak.item=k; g1-ak.firstschool=NULL; for(k=1;kn;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); if(i!=0) printf( 1.前三名 2.前五名n); print

13、f( 请选择:); scanf(%d,&j); if(j!=1&j!=2) printf( 输入有误,请重新选择:); scanf(%d,&j); if(j=1) h=3; do printf( 第%d名:学校(学校编号为数字),h); 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) p

14、2-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(ibx.boys=g2-bx.boys+p2-record; /* 累计男团体总分 */ else g2-bx.girls=g2-bx.girls+p2-record; /* 累计女团体总分 */ h-; while(x!=0&h!=0); if(j=2) h=5; d

15、o printf( 第%d名:学校(学校编号为数字),h); scanf(%d,&x); p1=(Schools *)malloc(sizeof(Schools); p1-school=x; p2=(Items *)malloc(sizeof(Items); p2-item=i; if(h=5) p2-record=p1-record=1; if(h=4) p2-record=p1-record=2; if(h=3) p2-record=p1-record=3; if(h=2) p2-record=p1-record=5; if(h=1) p2-record=p1-record=7; p1-n

16、ext=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(ibx.boys=g2-bx.boys+p2-record; /* 累计男团体总分 */ else g2-bx.girls=g2-bx.girls+p2-record; /* 累计女团体总分 */ h-; while(x!=0&h!=0); /*函数名:save *函数功能:保存文件 *形参:无 *返回值:无 */ vo

17、id 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);

18、return; if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) printf(file write error.n); fclose(fp2);/*函数名:funct2 *函数功能:统计各学校总分 *形参:ALLNode *g2 *返回值:无 */ void funct2(ALLNode *g2) /* 输出各学校总分 */ int k; printf(nn * 输出各学校总分 *n); printf( 学校编号t 总分 n); for(k=1;kn;k+) printf( %dttt %dn,k,g2-bk.score); printf(n); system(

19、pause); printf( 按任意键返回主菜单.); getchar(); /*函数名:funct3 *函数功能:按学校编号排序输出 *形参:ALLNode *g2 *返回值:无 */ void funct3(ALLNode *g2) /* 按学校编号排序输出 */ int k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf(nn * 按学校编号排序输出 *n); printf( 学校编号ttt获奖情况 n); scanf(%d,&k); for(k=1;kn;k+) printf(t%dt,k); p2=g2-bk.firstit

20、em; while(p2!=NULL) printf(项目%d:得%d分 ,p2-item,p2-record); p2=p2-next; printf(n); printf(n); system(pause); printf(按任意键返回主菜单.); getchar(); /*函数名:funct4 *函数功能:按学校总分排序输出 *形参:ALLNode *g2 *返回值:无 */ void funct4(ALLNode *g2) /* 按学校总分排序输出 */ int i,j,k; Items *p2; printf(nn * 按学校总分排序输出 *n); printf( 学校编号tt总分

21、n); scanf(%d,&k); for(i=2;in;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.scorebj.score&j0) g2-bj+1.score

22、=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;kn;k+) printf(%d tt%dn,g2-bk.school,g2-bk.score); system(pause); printf(按任意键返回主菜单.);

23、getchar(); /*函数名:funct5 *函数功能:按男团体总分排序输出 *形参:ALLNode *g2 *返回值:无 */ void funct5(ALLNode *g2) /* 按男团体总分排序输出 */ int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf(nn * 按男团体总分排序输出 *n); printf(学校编号tt男团体总分 n); scanf(%d,&k); for(i=2;in;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.boysbj.boys&j0) g2-bj+1.score=g2-bj.score; g2-bj+1.boys=g2-bj.boys; g2-bj+1.girls=g2-bj.girls; g2-bj+1.schoo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1