1. 程式人生 > >JAVA課程學習九:類訓練-學生管理實現

JAVA課程學習九:類訓練-學生管理實現

練習知識1:掌握類的建立,成員變數與方法的編寫

練習知識2:掌握類的例項化與成員、方法的呼叫

練習知識3:掌握面向物件思想,理解類的封裝與關聯關係

設計要求:
建立一個學生類(姓名,學號,3門課成績(英語,數學,語文),總分),類的方法:輸入,輸出,學生資料,根據總分排序,列印學生名次)

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static
void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("請輸入你要錄入的學生人數:"); int studentNum = in.nextInt(); System.out.println("==========================================================="); List<Student> list = new ArrayList<Student>(); for
(int i=0;i<studentNum;i++) { System.out.println("輸入學生的學號:"); String studentID = in.next(); System.out.println("輸入學生的姓名:"); String studentName = in.next(); System.out.println("輸入數學科目的成績:"); int math = in.nextInt(); System.out.println("輸入英語科目的成績:"
); int English = in.nextInt(); System.out.println("輸入語文科目的成績:"); int chinese = in.nextInt(); Course course = new Course(math,English,chinese); Student student = new Student(studentID,studentName,course); list.add(student); System.out.println("==========================================================="); } //排序 list.sort(new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { if(o1.getCourse().getSum()>o2.getCourse().getSum()) return -1; else return 1; } }); //遍歷輸出 for(Student student : list) { System.out.println("學號:"+student.getStudentID()+"\t"+"姓名:"+student.getStudentName()+"\t" + "總分:"+student.getCourse().getSum()); } } } /** * @描述 學生類 * @author iceyu * */ class Student{ private String studentID; private String studentName; private Course course; public Student() {} public Student(String studentID,String studentName,Course course) { this.course = course; this.studentID = studentID; this.studentName = studentName; } public String getStudentID() { return studentID; } public void setStudentID(String studentID) { this.studentID = studentID; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public Course getCourse() { return course; } public void setCourse(Course course) { this.course = course; } } /** * @描述 課程類 * @author iceyu * */ class Course{ private int math; private int English; private int chinese; private int sum; public Course() {} public Course(int math,int English,int chinese) { this.math = math; this.chinese = chinese; this.English = English; } public int getSum() { return this.chinese + this.English + this.math; } public void setSum(int sum) { this.sum = sum; } public int getMath() { return math; } public void setMath(int math) { this.math = math; } public int getEnglish() { return English; } public void setEnglish(int english) { English = english; } public int getChinese() { return chinese; } public void setChinese(int chinese) { this.chinese = chinese; } }

最終結果:

請輸入你要錄入的學生人數:
3
===========================================================
輸入學生的學號:
001
輸入學生的姓名:
小明
輸入數學科目的成績:
67
輸入英語科目的成績:
78
輸入語文科目的成績:
55
===========================================================
輸入學生的學號:
002
輸入學生的姓名:
小紅
輸入數學科目的成績:
89
輸入英語科目的成績:
99
輸入語文科目的成績:
90
===========================================================
輸入學生的學號:
003
輸入學生的姓名:
小白
輸入數學科目的成績:
78
輸入英語科目的成績:
67
輸入語文科目的成績:
55
===========================================================
最終排名:
學號:002  姓名:小紅   總分:278
學號:001  姓名:小明   總分:200
學號:003  姓名:小白   總分:200

覆蓋tostring方法輸出:

package 學生管理;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("請輸入你要錄入的學生人數:");
        int studentNum = in.nextInt();

        System.out.println("===========================================================");

        List<Student> list = new ArrayList<Student>();

        for(int i=0;i<studentNum;i++) {
            System.out.println("輸入學生的學號:");
            String studentID = in.next();

            System.out.println("輸入學生的姓名:");
            String studentName = in.next();

            System.out.println("輸入數學科目的成績:");
            int math = in.nextInt();

            System.out.println("輸入英語科目的成績:");
            int English = in.nextInt();

            System.out.println("輸入語文科目的成績:");
            int chinese = in.nextInt();

            Course course = new Course(math,English,chinese);
            Student student = new Student(studentID,studentName,course);
            list.add(student);
            System.out.println("===========================================================");
        }

        //排序
        list.sort(new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                if(o1.getCourse().getSum()>o2.getCourse().getSum())
                    return -1;
                else
                    return 1;
            }

        });

        System.out.println("最終排名:");
        //遍歷輸出
        for(Student student : list) {
//          System.out.println("學號:"+student.getStudentID()+"\t"+"姓名:"+student.getStudentName()+"\t"
//                  + "總分:"+student.getCourse().getSum());
            System.out.println(student.toString());
        }

    }

}

/**
 * @描述 學生類
 * @author iceyu
 *
 */
class Student{
    private String studentID;
    private String studentName;
    private Course course;

    public Student() {}
    public Student(String studentID,String studentName,Course course) {
        this.course = course;
        this.studentID = studentID;
        this.studentName = studentName;
    }

    public String getStudentID() {
        return studentID;
    }
    public void setStudentID(String studentID) {
        this.studentID = studentID;
    }
    public String getStudentName() {
        return studentName;
    }
    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }
    public Course getCourse() {
        return course;
    }
    public void setCourse(Course course) {
        this.course = course;
    }

    //重寫類的ToString方法
    @Override
    public String toString() {
        String result = "學號:"+this.getStudentID()+"\t"+"姓名:"+this.getStudentName()+"\t"
                + "總分:"+this.getCourse().getSum();
        return result;
    }


}

/**
 * @描述 課程類
 * @author iceyu
 *
 */
class Course{
    private int math;
    private int English;
    private int chinese;
    private int sum;
    public Course() {}
    public Course(int math,int English,int chinese) {
        this.math = math;
        this.chinese = chinese;
        this.English = English;
    }

    public int getSum() {
        return this.chinese + this.English + this.math;
    }
    public void setSum(int sum) {
        this.sum = sum;
    }
    public int getMath() {
        return math;
    }
    public void setMath(int math) {
        this.math = math;
    }
    public int getEnglish() {
        return English;
    }
    public void setEnglish(int english) {
        English = english;
    }
    public int getChinese() {
        return chinese;
    }
    public void setChinese(int chinese) {
        this.chinese = chinese;
    }

}