程序设计报告对参赛结果分数进行处理.docVIP

  • 133
  • 0
  • 约5.99千字
  • 约 8页
  • 2017-10-03 发布于重庆
  • 举报

程序设计报告对参赛结果分数进行处理.doc

程序设计报告对参赛结果分数进行处理

(一) 需求和规格说明 对参赛结果分数进行处理:参赛选手n人(n1),评委m人(m2),评委给每一选手打一个分数score(分数score为小于等于10的一个正实数)。选手的最后得分lastScore计算方法为 (1)m9时,去掉一个最高分和一个最低分后另m-2个得分的平均值。 (2)m≥9时,去掉两个最高分和两个最低分后另m-4个得分的平均值。 假设事先已经建立了text型的数据文件f1.txt,其中依次记录着n个选手的编号(一个正整数)、姓名(一个字符串)以及m个评委给出的得分。 请编制程序,依次从数据文件f1.txt中读入n个选手的有关信息,而后按上述规定方法计算出每一个选手的最后得分,而且往屏幕上以及另一个text型文件f2.txt中同时输出如下形式的结果信息。 假设参赛选手人数n=5,评委人数m=7,磁盘文件f1.txt中的初始数据为: 1 zhangjin 8.8 9.3 7.9 8.7 8.9 9.7 9.2 2 lintao 8.9 8.2 8.6 8.8 8.5 9.1 9.3 3 guojian 8.9 8.4 8.7 8.6 8.6 8.4 8.6 4 maling 7.9 8.3 8.5 8.6 8.5 8.9 8.3 5 liuyifan 9.5 9.1 9.8 9.2 9.0 9.5 8.9 那么,程序执行后,屏幕显示结果以及磁盘文件f2.txt中的结果均应该为: ---------------------------------------------------------- 参赛号 姓 名 最高分 最低分 累积分 最后得分 ---------------------------------------------------------- 1 zhangjin 9.7 7.9 44.9 8.98 2 lintao 9.3 8.2 43.9 8.78 3 guojian 8.9 8.4 42.9 8.58 4 maling 8.9 7.9 42.2 8.44 5 liuyifan 9.8 8.9 46.3 9.26 ---------------------------------------------------------- 思考:可进一步考虑找出比赛的第1至第k名,也在屏幕以及f2.txt中同时输出相关的结果信息(k小于等于n,并规定若多个选手最后得分相同时,则有效分(即已删除原来的最高分后)中最高分高者名次优先)。 (二) 设计 根据题目,建立结构体player,其成员如下: 类型 成员名 描述 int number 选手序号 char name 选手名字 double * score 选手得分 然后建立函数,如下表: 类型 函数名 描述 double max_score 求最大分数 double min_score 求最小分数 double max_score2 求第二大分数 double min_score2 求第二小分数 double get_totalscore 求选手总分 double get_tscore 求选手累计得分 double get_lastscore 求选手最后得分 (三) 用户手册 用户只需将f1.txt放入文件夹中,运行程序,然后会在屏幕输出文件f1.txt和文件f2.txt中的内容。文件f2.txt保存在文件夹中。 (四) 调试及测试 打开文件程序,运行计算各位选手的得分情况。 (1)运行实例: (2)进一步改进: 无论评委几人,程序都会找出第二高分和第二低分,可以改为只有在评委人数大于9人时执行。 (3)附录((源程序 #include iostream #include fstream using namespace std; struct player //结构体 player { int number; char name[40]; double * score;//成员表列 }; double min_score(double s[],int n);//求最低分数 double max_score(double s[],int n);//求最高分数 double get_totalscore(double

文档评论(0)

1亿VIP精品文档

相关文档