JAVAプログラミング:5人の学生がいて、学生ごとに3科目(国語、数学、英語)の成績があります.


  1 import java.io.FileReader;
  2 import java.io.FileWriter;
  3 import java.io.IOException;
  4 import java.util.Collections;
  5 import java.util.Comparator;
  6 import java.util.LinkedList;
  7 import java.util.Scanner;
  8  
  9 public class Student
 10 {
 11     double chinese;
 12     double math;
 13     double english;
 14     double sum;
 15     String sname;
 16  
 17     public Student ( double chinese, double math, double english, double sum, String sname )
 18     {
 19         this.chinese = chinese;
 20         this.math = math;
 21         this.english = english;
 22         this.sum = sum;
 23         this.sname = sname;
 24     }
 25  
 26     @Override
 27     public String toString ()
 28     {
 29         return String.format ("%s\t\t%2$.1f\t\t\t%3$.1f\t\t\t%4$.1f\t\t\t%5$.1f", sname, chinese, math, english, sum);
 30     }
 31  
 32     public static void main ( String[] args )
 33     {
 34         Scanner scanner = new Scanner (System.in);
 35         LinkedList list = new LinkedList ();
 36         System.out.println ("          ,     :name,30,30,30(  ,"https://www.baidu.com/s?wd=%E4%B8%89%E9%97%A8&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YvuhnkuWNnjmvnvnvnv 0 ZwV 5 Hcvrjm 3 rH 6 sPfKWUMw 85 HfYnjn 4 nH 6 sgvPsT 6 K 1 TL0 qnfK 1 TL0 z 5 HD 0 IgF_5 y 9 YIZ 0 lQzqlpA-bmmmmh 7 GGZR 8 mvqVQL 7 dugPYpyq 8 Q 1 DDDDPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPRRRPPPPjfdrHRvP 0"target="_blank"class=" baidu"baidu-highghlidu-highghghght">     )");
 37         while (scanner.hasNextLine ())
 38         {
 39             String line = scanner.nextLine ().trim ();
 40             if ("".equals (line))
 41             {
 42                 break;
 43             }
 44             String[] info = line.split ("\\,");
 45             String name = info[0];
 46             double chinese = 0;
 47             double math = 0;
 48             double english = 0;
 49             double sum = 0;
 50             try
 51             {
 52                 chinese = Double.parseDouble (info[1]);
 53                 math = Double.parseDouble (info[2]);
 54                 english = Double.parseDouble (info[3]);
 55                 sum = chinese + math + english;
 56             }
 57             catch (Exception e)
 58             {
 59                 System.out.println ("     ,    :");
 60                 continue;
 61             }
 62             Student student = new Student (chinese, math, english, sum, name);
 63             list.add (student);
 64         }
 65         scanner.close ();
 66         Collections.sort (list, new Comparator ()
 67         {
 68             @Override
 69             public int compare ( Student o1, Student o2 )
 70             {
 71                 if (o1.sum > o2.sum)
 72                 {
 73                     return -1;
 74                 }
 75                 else if (o1.sum < o2.sum)
 76                 {
 77                     return 1;
 78                 }
 79                 else
 80                 {
 81                     return 0;
 82                 }
 83             }
 84         });
 85         try
 86         {
 87             String file = "stu.txt";
 88             String line = System.getProperty ("line.separator");
 89             FileWriter fw = new FileWriter (file, true);
 90             FileReader fr = new FileReader (file);
 91             if (fr.read () == -1)
 92             {
 93                 fw.write ("  \t\t  \t\t  \t\t"https://www.baidu.com/s?wd=%E8%8B%B1%E8%AF%AD&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YvuhnkuWNnjmvnvnvnv 0 ZwV 5 Hcvrjm 3 rH 6 sPfKWUMw 85 HfYnjn 4 nH 6 sgvPsT 6 K 1 TL0 qnfK 1 TL0 z 5 HD 0 IgF_5 y 9 YIZ 0 lQzqlpA-bmmmmh 7 GGZR 8 mvqVQL 7 dugPYpyq 8 Q 1 DDDDPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPRRRPPPPjfdrHRvP 0"target="_blank"class=" baidu"baidu-highghlidu-highghghght">  \t\t  " + line);
 94             }
 95             fr.close ();
 96             for ( Student student : list )
 97             {
 98                 fw.write (student.toString () + line);
 99                 fw.flush ();
100             }
101             fw.close ();
102             System.out.println ("    .");
103         }
104         catch (IOException e)
105         {}
106     }
107 }

 
転載先:https://www.cnblogs.com/wslcs/p/4882529.html