有五個學生,每個學生有3門課(語文、數學、英語)的成績, * 寫一個程序接收從鍵盤輸入學生的信息,輸入格式為:name,30,30,30(姓名,三門課成績)


/*
 * 3、 有五個學生,每個學生有3門課(語文、數學、英語)的成績,
 * 寫一個程序接收從鍵盤輸入學生的信息,輸入格式為:name,30,30,30(姓名,三門課成績),
 * 然后把輸入的學生信息按總分從高到低的順序寫入到一個名稱"stu.txt"文件中。
 * 要求:stu.txt文件的格式要比較直觀,打開這個文件,就可以很清楚的看到學生的信息
 * 
 */
import java.io.*;
import java.util.*;
public class Test3 {
    public static void main(String[] args)throws Exception{
        //傳入學生人數
        Student(5);
    }
    //鍵盤錄入學生,保存到stu.txt的方法
    public static void Student(int number)throws Exception{
        //創建Scanner對象 接受從控制台輸入
        Scanner in=new Scanner(System.in);
        //因為可能會出現姓名和總分都一樣的學生,為了保證學生不丟失,建立List容器
        List<Student> list=new ArrayList<>();
        //循環錄入學生到集合,排好順序
        System.out.println("輸入格式為: 姓名,語文,數學,英語(,號是小寫狀態)");
        for(int x=1;x<=number;x++){
            System.out.println("請輸入第"+x+"個學生的信息");
            String[] s=in.nextLine().split(",");
            int a=Integer.parseInt(s[1]);
            int b=Integer.parseInt(s[2]);
            int c=Integer.parseInt(s[3]);
            Student stu=new Student(s[0],a,b,c);
            list.add(stu);
        }
        //用比較器進行總分從高到低的排序
        Collections.sort(list,new StuCompare());
        //定義輸出流輸出到stu.txt
        BufferedWriter bufw=new BufferedWriter(new FileWriter("stu.txt"));
        for(Student stu:list){
            bufw.write(stu.getStu());
            bufw.newLine();
            bufw.flush();
        }
        //關閉資源
        in.close();
        bufw.close();
    }
}
//學生對象
class Student{
    private String name;
    private int a, b, c,sum;
    //學生對象建立需要傳入姓名和3門課的成績
    Student(String name, int a, int b, int c){
        this.name=name;
        this.a=a;
        this.b=b;
        this.c=c;
        sum=a+b+c;
    }
    public int getsum(){
        return sum;
    }
    //輸出一個符合格式的字符串
    public String getStu(){
        return name+"    數學:"+a+"    語文:"+b+"    英語:"+c+"    總分:"+sum;
    }
}
//定義比較器,按總分排序
class StuCompare implements Comparator<Student>{
    public int compare(Student s1,Student s2){
        int a=new Integer(s2.getsum()).compareTo(s1.getsum());
        return a;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 /* * 有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據 *(包括學生號,姓名,三門課成績),計算出平均成績, *將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 */ 有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數據和計算出的平均分數存放在磁盤文件 有10個學生,每個學生的數據包括學號、姓名、3門課的成績,從鍵盤輸入10個學生數據,要求打印出3門課總平均成績,以及最高分的學生的數據(包括學號、姓名、3門課的成績、平均分數)。 JAVA編程:有五個學生,每個學生有3門課(語文、數學、英語)的成績, 2017.4.20實驗三:2、定義一個包含學生學號、姓名、年齡和三門課成績的結構體,輸入10個學生信息,並按總成績由高到低的順序排序並輸出。 java例題_50 題目:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 某班有5個學生, 每名學生的數據包括學號,姓名,3門課成績,從鍵盤上輸入5名學生數據,要求打印出3門課的總平均成績以及最高分的學生數據(包括學號,姓名,3門課成績) C語言之:結構體動態分配內存(利用結構體數組保存不超過10個學生的信息,每個學生的信息包括:學號、姓名和三門課(高數、物理和英語 )的成績和平均分(整型)。) 【C語言】利用文本編輯軟件在磁盤上建立一個有n個學生的學號、姓名及英語、數學和計算機三門課程成績的數據文件。編寫程序將數據文件讀入,且求出每個學生的平均成績。 學生成績表數據包括:學號,姓名,高數,英語和計算機三門課成績,計算每個學生總分,每課程平均分,最高分和最低分
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM