- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程实战9
编程实战大奖赛某大奖赛有n(n=1)个选手参赛,m(m2)个评委为选手打分(0~10)。统分规则为:在每个选手的m个得分中,去掉一个最高分和一个最低分,取平均分为选手最终得分。编程实现:(1)根据n个选手的最终得分,从高到低排定名次,前3名获得金、银、铜牌。(2)根据每个选手的最终得分计算每个评委为该选手打分的偏差,为全部选手所打分数的偏差之和作为该评委的得分,将所有评委的得分从低到高排序,第一名获得最佳评委奖。分析首先,大致描述程序流程输入选手名单输入选手得分计算选手最终得分选手排名打印获奖选手名单输入评委名单计算评委得分计算评委最终得分评委排名打印获奖评委名单分析 然后,分析程序要处理的数据选手用编号表示,为一个4位整数(1001~9999)评委也用编号,用3位整数(101~999)表示 评委选手 118158388565898…选手得分1234888.596…85868…7.68345699989…9……………………分析然后,分析程序要处理的数据选手用编号表示,为一个4位整数(1001~9999)评委也用编号,用3位整数(101~999)表示 评委选手 118158388565898…12340.450.450.050.552.45…23450.680.180.321.680.32…345600010……………………评委得分4.573.551.354.657.84设计首先,设计出主要数据结构选手相关编号:iPlayerID[N]原始分:fPlayerScore1[N][M]最终得分:fPlayerScore2[N]评委相关编号:iJudgeID[M]原始分:fJudgeScore1[N][M]最终得分:fJudgeScore2[M]设计其次,划分程序模块,细化程序流程把数据结构映射到每个模块输入选手编号:InputPlayerID(iPlayerID[N])输入评委编号:InputJudgeID(iJudgeID[M])输入选手原始分:InputPlayer (fPlayerScore1[N][M])计算选手最终得分:PlayerScore(fPlayerScore1[N][M], fPlayerScore2[N])选手排名:sortPlayer(iPlayerID[N], fPlayerScore2[N])计算评委原始分:JudgeScore1(fPlayerScore1[N][M] , fPlayerScore2[N], fJudgeScore1[N][M])计算评委最终得分:JudgeScore(fJudgeScore1[N][M], fJudgeScore2[M])评委排名:sortJudge(iJudgeID[M], fJudgeScore2[M])打印选手排名:printPlayer(iPlayerID[N], fPlayerScore2[N])打印评委排名:printJudge(iJudgeID[M], fJudgeScore2[M])设计然后,对模块进行分析综合输入选手编号和评委编号可用一个函数实现简化为:inputID( id[] )选手排名、评委排名也可合并为一个函数(flag为0表示从低到高,为1表示从高到低)简化为:sort(id[], score[], flag)两个计算最终得分的函数能不能合并为一个? 不能!为什么?计算选手最终得分、评委原始分和评委最终得分3个函数关系密切,可合并,同时可减少传递评委原始分fJudgeScore[N][M]简化为:void CalScore(fPlayerScore1[N][M], fPlayerScore2[], fJudgeScore2[M])设计再次,确认各模块的构成,并映射到程序流程输入编号:int InputID(int ID[N])输入选手原始分:void InputPlayer (float fPlayerScore1[N][M])计算得分:void calScore(float fPlayerScore1[N][M], float fPlayerScore2[N], float fJudgeScore2[M])排名:void sort (int ID[N], float fScore[N], int flag)打印选手排名:void printPlayer(int iPlayerID[N], float fPlayerScore2[N])打印评委排名:void printJudge(int iJudgeID[M], float fJudgeScore2[M])inputID( player )inputID(Judge)inputplayer()printPlayer()sort(Player)calScore()pri
文档评论(0)