输入5个学生成绩(从0到100的整数),并将这5个学生成绩保存至文件“data.txt”. 从文件“data.txt”中读取学生成绩,计算并输出平均值,然后按成绩的高低排序并输出[size=24px][/size]
------解决方案--------------------
流忘记关了,呵呵
- Java code
import java.util.Scanner;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.PrintStream;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;public class Ansewer25{ public static void main(String[] args) { StringBuffer sbf=new StringBuffer(); int[] scores=new int[5]; inputScore(scores); int[] temp=viewScore(storeScores(scores)); Arrays.sort(temp); for(int i=temp.length-1;i>=0;i--) { sbf.append(String.valueOf(temp[i])).append(" "); } System.out.println("输入的成绩从高到低的排列为:"+sbf.toString()); System.out.println("平均每科平均成绩为:"+avgScore(scores)); } public static void inputScore(int[] scores) { System.out.println("请输入5个学生的成绩:(0-100的整数)"); for(int i=0;i<5;i++) { Scanner sc=null; sc=new Scanner(System.in); if(sc.hasNextInt()) { int n=sc.nextInt(); if(n>=0&&n<=100) { scores[i]=n;; } else { System.out.println("输入不合法,请重新输入!"); i--; } if(i<scores.length-1) { System.out.println("请输入下一个学生的成绩!"); } } else { System.out.println("输入不合法,请重新输入!"); i--; } } } public static File storeScores(int[] scores) { PrintStream ps=null; File file=new File("d:"+File.separator+"data.txt"); FileOutputStream foutput=null; try { foutput=new FileOutputStream(file); ps=new PrintStream(foutput); for(int i:scores) { ps.println(i); } }catch(Exception e) { e.printStackTrace(); } finally { try { ps.close(); foutput.close(); } catch(Exception e) { e.printStackTrace(); } } return file; } public static int[] viewScore(File file) { BufferedReader br=null; int[] tempInt=new int[5]; FileInputStream finput=null; String temp=null; int n=0; if(file.exists()) { try { finput=new FileInputStream(file); br=new BufferedReader(new InputStreamReader(finput)); while((temp=br.readLine())!=null) { tempInt[n++]=Integer.parseInt(temp); } } catch(Exception e) { e.printStackTrace(); } finally { try { br.close(); finput.close(); } catch(Exception e) { e.printStackTrace(); } } } else { System.out.println("文件不存在!"); } return tempInt; } public static int avgScore(int[] temp) { int total=0; for(int i:temp) { total+=i; } return total/temp.length; }}