class ResultHandle {
public static void main(String[] args){
System.out.print("/*************************************************\n\n"+
"File name: 软件设计课程设计基础题30(基础题30.java)\n\n"+
"Author: 计06-1 郭献铮 Date: 08.12.16\n\n"+
"Description: 将选手的信息输入文本,并对其进行相关的操作;\n\n"+
"Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明\n\n"+
"1.main()函数 完成各种提示与主操作输入输出\n\n"+
"2.writeData()函数 将选手的信息写入f1.txt文件\n\n"+
"3.writeData2()函数 将选手的信息写入f2.txt文件,并在控制台显示\n\n"+
"*****************************************************/\n\n");
Scanner in=new Scanner(System.in); //创建一个Scanner对象,用于输入
double[][] score=new double[playerNumber][judgerNumber];
for(int i=0;i<playerNumber;++i){
System.out.println("对第"+(i+1)+"个选手,请输入"+judgerNumber+"个评委所评的成绩(空格隔开)");
for(int j=0;j<judgerNumber;++j)
score[i][j]=in.nextDouble();
}
String[] playerName=new String[playerNumber];
System.out.println("请输入"+playerNumber+"个选手的姓名(空格隔开)");
for(int i=0;i<playerNumber;++i)
playerName[i]=in.next();
Player[] player=new Player[playerNumber];
for(int i=0;i<playerNumber;++i)
player[i]=new Player((i+1),playerName[i],score[i]);
try{
PrintWriter output=new PrintWriter(new FileWriter("f1.txt")); //PrintWriter用于写入文本文件
writeData(player,output); //调用子函数
output.close(); //流的关闭
PrintWriter output2=new PrintWriter(new FileWriter("f2.txt"));
writeData2(player,output2);
output2.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void writeData(Player[] player,PrintWriter out) throws IOException{ //调用类的方法,可能产生异常
for(Player p:player)
p.writeData(out);
}
public static void writeData2(Player[] player,PrintWriter out)throws IOException{ //写入文本文件,并且在控制台上输出
out.println("------------------------------------------------------------");
out.println("参赛号"+"\t姓名\t"+"\t最高分"+"\t最低分"+"\t累积分"+"\t最后得分");
for(Player p:player)
p.writeData2(out);
out.println("------------------------------------------------------------");
System.out.println("------------------------------------------------------------");
System.out.println("参赛号"+"\t姓名\t"+"\t最高分"+"\t最低分"+"\t累积分"+"\t最后得分");
for(Player p:player)
p.printOnScreen();
System.out.println("------------------------------------------------------------");
}
public static final int playerNumber=5; //规定选手的个数
public static final int judgerNumber=7; //规定裁判的个数
}
class Player{ //创建一个选手的类,其中包括选手的参赛号、姓名以及成绩的相关操作
Player(){}
Player(int number,String name,double[] score){
this.number=number;
this.name=name;
this.score=score;
}
public double getMaxScore(){ //得到最高分
double max=score[0];
for(int i=1;i<score.length;++i)
if(score[i]>max)
max=score[i];
return max;
}
public double getMinScore(){ //得到最低分
double min=score[0];
for(int i=1;i<score.length;++i)
if(score[i]<min)
min=score[i];
return min;
}
public double getSumScore(){ //得到累积分
double sum=0;
for(int i=0;i<score.length;++i)
sum+=score[i];
sum=sum-getMaxScore()-getMinScore();
return sum;
}
public double getAvgScore(){ //得到平均分
double average=getSumScore()/(score.length-2);
return average;
}
public void writeData(PrintWriter out){ //将信息写入文本文件
out.print(number+"\t"+name+" \t");
for(int i=原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn/ 0;i<score.length;++i)
out.print(score[i]+" ");
out.println();
}
public void writeData2(PrintWriter out){ //将信息写入第二个文本文件
out.printf("%d"+"\t"+"%s "+"\t"+"%.1f"+"\t"+"%.1f"+"\t"+"%.1f"+"\t"+"%.2f",
number,name,getMaxScore(),getMinScore(),getSumScore(),getAvgScore());
out.println();
}
public void printOnScreen(){ //将信息在控制台输出
System.out.printf("%d"+"\t"+"%s "+"\t"+"%.1f"+"\t"+"%.1f"+"\t"+"%.1f"+"\t"+"%.2f",
number,name,getMaxScore(),getMinScore(),getSumScore(),getAvgScore());
System.out.println();
}
private int number; //选手的参赛号
private String name; //选手的姓名
private double[] score; //选手的得分