C语言程序设计之乒乓球比赛编排
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序号: 01
遵
守 考 试 纪 律 注
意
行 为 规 范
哈尔滨工业大学(威海)2019 / 2020 学年 春 季学期
C 语言程序设计
大作业题目(A/B/C )
注意事项:
请不要将题目要求写到答题卡上,答题卡缺省的难度系数是B ,请确认这份试卷适合你自己的难度选择(A/B/C )。程序调试通过后,需要将运行过程截图放在文档中,运行程序前或后,请在命令行窗口执行命令date,用来打印系统当前的时间。截取测试数据和运行过程时,请把时间也一起截图在图像中。 请在设计文档中写清楚自己的学号和姓名,并在源程序中的嵌入自己的姓名学号,一旦发现有人故意泄漏自己的大作业给别人或者抄袭其他同学的文档,各方均按作弊处理,(word 文档和pdf 文档都需要提交)。源代码单独提交,在答题卡源代码中适当的位置标出注释,如函数要注明用法(输入什么,输出什么,用途,实现方法等),变量(尤其是复杂变量如二维数组)要标注出变量的用途。
提交作业的方式:云班课提交备份,用来核对提交时间(以图片和pdf 两种的方式提交),在规定的时间点,同学们同时提交给课代表,课代表在极短的时间内按照班级分别打包,打包文件名字为“班级号A .zip”、“班级号B .zip”、“班级号C.zip”。班级每位同学的文档名为学号姓名A/B/C.doc”或者“学号姓名A/B/C .pdf”以及“学号A/B/C.c ”(A/B/C 只写一个)。
提交时间奖惩制度:每种方案的前5名提交作业的同学奖励5分(大作业满分100分,达到100分不再奖励),超过规定时间没有提交大作业的,每逾期1天罚2分。
友情提示:请超级自信的同学选择A 方案,自信的同学选择B 方案,大部分同学请选择C 方案。
乒乓球竞赛制度简介
同其它球类竞赛项目一样,乒乓球比赛也多采用循环制和淘汰制两种形式,有时也采用两种 办法结合的混合制。 1、循环制
循环制是球类比赛的一种基本和常用的方法,其特点是参加竞赛的各队在整个比赛或小都有相遇的机会,这种方法有利于对手之间的交流和提高技术水平,并且较能公正客观地反映比赛结果,因而成为乒乓球比赛经常采用的方法。其不足之处在于相对来讲耗时较多,特别是
在参赛人数多而比赛时间短的情况下不宜采用。乒乓球比赛一般多采用单循环和分级循环:1.1、单循环
参赛的人或队都要互相轮流比赛1次的方法。单循环比赛的轮数计算:当参赛人数或队数为单数时,轮数等于人(队)数;参赛人数为双数时,轮数等于人(队)数减1。单循环比赛的计算方法是:获胜次数多者名次列前,如有2个或2个以上的运动员获胜次数相同时,则依次由他们之间场数胜负比率、局数胜负比率、分数胜负比率的顺序来决定。
1.2、分组循环
这是将若干人(队)分成几个小组,在各小组内进行循环方法,其特点是要以节省时间,在参赛人数多且比赛时间短的情况下采用。分组循环一般用于团体赛,可将所有参赛队用蛇形方法分组,如12个队参赛可分成A、B两组:
A组:1 4 5 8 9 12
B组:2 3 6 7 10 11
上列数字是各队的顺序号,它是按各队实力强弱排列的,序号小者实力强,反之实力弱。2、淘汰制
淘汰制就是比赛中失败一次即退出比赛,获胜者继续比赛,直到决出冠亚军为止。这种竞赛方法的特点是节省时间,竞争性强,能使比赛越来越精彩,但也有偶然性。
2.1 单淘汰
所谓单淘汰是指将所有参赛选手编成一定的比赛顺序,由相近的两名选手进行比赛,胜者进入下一轮,负者即遭淘汰。
2.2双淘汰
双败淘汰制与普通的淘汰制输掉一场即被淘汰不同,参赛者只有在输掉两场比赛后才丧失争夺冠军的可能。双败淘汰制的比赛一般分两个组进行,胜者组与负者组。在第一轮比赛后,获胜者编入胜者组,失败者编入负者组继续比赛。之后的每一轮,在负者组中的失败者将被淘汰;胜者组的情况也类似,只是失败者仅被淘汰出胜者组降入负者组,只有在负者组中再次失败(即总共有两次失败)后才会被淘汰出整个比赛。
每一轮败者组的比赛又分为两个阶段。第一个阶段,由当前败者组中的幸存者相互对阵,负者被淘汰,胜者进入第二个阶段;第二个阶段,由第一阶段中败者组的胜者对阵刚刚在本轮由胜者组中淘汰下来的选手。
以一个8名选手参加的双败淘汰制比赛为例:
第一轮比赛:四场比赛后,各自有4名选手依据结果编入胜者组或败者组
第二轮比赛:胜者组4名选手相互比赛,败者编入败者组,败者组选手在第一阶段先相互比赛,并淘汰掉2名选手,剩下的2名选手再进入第二阶段,与刚在胜者组淘汰到败者组的2名选手比赛,获胜的2名进入第三轮。
第三轮比赛(即败者组决赛):败者组剩下的这2名选手在第一阶段先淘汰掉1名(已累积二败绩),剩下1名进入第二阶段,对阵胜者组决赛中的失败者,败者组决赛中的胜者(到此仅败过1场)将与胜者组决赛中的胜者(到此从未败过),争夺最后的冠军。
在胜者组第一名与败者组第一名最后决赛时,任何一方胜利即获得最终的冠军。
细节说明
方案C最高分85,方案B最高分95分,方案A最高分100分。没有达到指定要求的在最高得分的基础上减去一定的分值。其他细节扣分点包括但不限于如下几点:
1)命令行下输入的候选人姓名要求是不能重复的,也就是不能有两个参赛选手姓名相
同
2)如果程序运行中要输入姓名,要求参赛选手的姓名对大小写不敏感,也就是Alice
与alice是同一个人,BOB 与bob是同一个人
3)如果程序运行中要输入比分,比分必须要验证是合理的。
4)命令行中输入参赛人数量时要求验证在题目给定的范围内,如果不在这个范围要求
退出重新运行程序
5)编程前需要斟酌好数据结构,如果数据结构选择不当,导致程序特别复杂或者程序
运行效率降低的会被扣分
6)可以适当使用全局变量
方案C
2020年要举行新一年的乒乓球比赛了,假设去年比赛有两名种子选手今年继续参赛(姓名在命令行中输入,名字各不相同),种子选手要尽量安排在比赛的最后阶段遇到。今年比赛的选手总数([8-16])和选手名单(名字各不相同)在程序运行时输入。请按照单淘汰