java对参赛结果分数进行处理
对参赛结果分数进行处理:参赛选手n人(n>1),评委m人(m>2),评委给每一选手打一个分数score(分数score为小于等于10的一个正实数)。选手的最后得分lastScore为去掉一个最高分和一个最低分后另m-2个得分的平均值。
假设事先已经建立了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中的结果均应该为:
----------------------------------------------------------原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn
参赛号 姓 名 最高分 最低分 累积分 最后得分
----------------------------------------------------------
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,并规定若多个选手最后得分相同时,f1.txt中初始数据在前者名次优先)。
11.2概要设计:
本程设计思路: 这题做起来还是相当的麻烦的,读取文件什么的操作倒不是什么问题,与之前的做法相当,主要就是要处理文件的内容时操作比较的麻烦。要将文件内的全部内容都放进一个数组,然后一个一个读出判断是否是想要的元素,想是数字、小数点等等。
程序流程图(如左图):
11.3 详细设计与编码:
见上传程序。
11.4 调试分析:
对于文件的操作还是老问题,不知道怎么才能检测读取不到文件时应该用什么函数来写。还有就是很奇怪的在输出的时候其它人的都没有问题,但是参赛3号的姓名和最高分之间的间隔是怎么弄都不能变,很是诡异,没弄懂是怎么回事。
程序执行的结果:
11.5 用户使用说明:
用户根据程序的提示输入文件的路径, 然后输入要输出文件的路径及文件名,文件自动生成,如果已经存在则覆盖。
11.6 设计心得:
这个实验还是有点挑战的,开始写的时候碰到了很多的麻烦,然后是上网找了个c++的程序看别人写的思想,然后用java写出来的。感觉其实每种语言还都是有许多相通的地方。当然这题的话,主要就是思想的问题,如果想到了怎么写就是相当的简单,但若是刚开始一点头绪都没有,那就很困难了。所以感觉思想对于一个写程序的人来说是相当的重要,一点点的灵感都是要把握的。1837