Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2012
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.95 KB | None | 0 0
  1. import java.io.*;
  2.  
  3. public class JavaApp1 {
  4.     public static void main(String[] args) {
  5.  
  6.         String[] subject = { "英語", "国語", "数学"};
  7.         int len = subject.length;
  8.         int[] num = new int[len];
  9.         String[][] name = new String[len][];
  10.         int[][] score = new int[len][];
  11.  
  12.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14.         for(int i = 0; i < len; i++) {
  15.             num[i] = readInt(br, subject[i] + "の受験者数");
  16.             name[i] = new String[num[i]];
  17.             score[i] = new int[num[i]];
  18.         }
  19.  
  20.         for (int i = 0; i < len; i++) {
  21.             for (int j = 0; j < num[i]; j++) {
  22.                 name[i][j] = readString(br, subject[i] + "の" + (j + 1) + "人目の名前");
  23.                 while (true) {
  24.                     score[i][j] = readInt(br, name[i][j] + "さんの" + subject[i] + "の点数");
  25.                     if (score[i][j] >= 0 && score[i][j] <= 100)
  26.                         break;
  27.                 }
  28.             }
  29.         }
  30.  
  31.         System.out.println("入力結果");
  32.         for (int i = 0; i < len; i++) {
  33.  
  34.             System.out.print(subject[i] + " ");
  35.             double avg = 0;
  36.             int max = 0;
  37.  
  38.             for (int j = 0; j < num[i]; j++) {
  39.                 System.out.print(name[i][j] + ":" + score[i][j] + "点 ");
  40.                 avg += score[i][j];
  41.                 if (max < score[i][j]) {
  42.                     max = score[i][j];
  43.                 }
  44.             }
  45.             avg /= num[i];
  46.  
  47.             String[] who = new String[num[i]];
  48.             int tmp = 0;
  49.             for (int j = 0; j < num[i]; j++) {
  50.                 if (score[i][j] == max) {
  51.                     who[tmp++] = name[i][j];
  52.                 }
  53.             }
  54.  
  55.             System.out.println();
  56.             System.out.println(subject[i] + "の平均点は" + avg + "点");
  57.             System.out.println(subject[i] + "の最高点は" + max + "点");
  58.             System.out.print(subject[i] + "の最高点獲得者は");
  59.             for (int k = 0; k < tmp; k++) {
  60.                 System.out.print(who[k] + "さん");
  61.                 if (k != tmp - 1) {
  62.                     System.out.print("と");
  63.                 } else {
  64.                     System.out.println("です");
  65.                 }
  66.             }
  67.         }
  68.     }
  69.  
  70.     public static String readString(BufferedReader br, String msg) {
  71.         String buf = null;
  72.         if (msg != null)
  73.             System.out.print(msg + " >");
  74.         try {
  75.             buf = br.readLine();
  76.         } catch (IOException e) {
  77.             System.err.println(e);
  78.             System.exit(1);
  79.         }
  80.         return buf;
  81.     }
  82.  
  83.     public static int readInt(BufferedReader br,String msg) {
  84.         int ret;
  85.         while (true) {
  86.             try {
  87.                 ret = Integer.parseInt(readString(br, msg));
  88.                 break;
  89.             } catch (NumberFormatException e) {
  90.                 System.err.println("not an integer");
  91.             }
  92.         }
  93.         return ret;
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement