Rumah  >  Artikel  >  Java  >  Java melaksanakan skor ujian dan statistik kedudukan sistem peperiksaan dalam talian

Java melaksanakan skor ujian dan statistik kedudukan sistem peperiksaan dalam talian

WBOY
WBOYasal
2023-09-25 09:09:151441semak imbas

Java melaksanakan skor ujian dan statistik kedudukan sistem peperiksaan dalam talian

Java melaksanakan skor ujian dan statistik kedudukan sistem peperiksaan dalam talian

Dalam pendidikan moden, semakin banyak sekolah dan institusi memilih untuk menggunakan Dalam Talian sistem peperiksaan untuk menjalankan peperiksaan dan menilai kebolehan pelajar. Untuk mengurus dan menganalisis markah ujian dengan lebih baik, fungsi penting ialah mengira dan menilai prestasi ujian pelajar. Dalam artikel ini, saya akan menunjukkan kepada anda cara menggunakan Java untuk melaksanakan skor peperiksaan dan statistik kedudukan untuk sistem peperiksaan dalam talian.

Pertama sekali, kita perlu menjelaskan dengan jelas bahawa sistem perlu memasukkan kategori utama berikut: Pelajar, Peperiksaan, Skor Peperiksaan, dan Statistik Skor (Statistik Skor), dan kelas utama (Utama) hingga memulakan data dan menjalankan keseluruhan sistem.

Pertama, mari buat kelas Pelajar:

public class Student {
    private String name;
    private int studentId;
    
    public Student(String name, int studentId) {
        this.name = name;
        this.studentId = studentId;
    }
    
    // getter 和 setter 方法省略
    
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", studentId=" + studentId +
                '}';
    }
}

Kelas Pelajar mempunyai dua atribut: nama dan nombor pelajar. Kami menggunakan pembina untuk memulakan objek pelajar dan menyediakan kaedah getter dan setter yang sepadan, serta kaedah toString() yang diganti untuk mengeluarkan maklumat pelajar dengan mudah.

Seterusnya, kami mencipta kelas peperiksaan (Peperiksaan):

public class Exam {
    private String subject;
    private List<ExamScore> scores;
    
    public Exam(String subject) {
        this.subject = subject;
        this.scores = new ArrayList<>();
    }
    
    public void addScore(ExamScore score) {
        scores.add(score);
    }
    
    // getter 和 setter 方法省略
    
    // 计算平均分方法
    public double calculateAverageScore() {
        double totalScore = 0;
        int count = 0;
        
        for (ExamScore score : scores) {
            totalScore += score.getScore();
            count++;
        }
        
        return totalScore / count;
    }
    
    @Override
    public String toString() {
        return "Exam{" +
                "subject='" + subject + ''' +
                ", scores=" + scores +
                '}';
    }
}

Kelas peperiksaan mempunyai dua sifat: subjek dan senarai markah peperiksaan. Kami menggunakan pembina untuk memulakan objek peperiksaan dan menyediakan kaedah untuk menambah markah peperiksaan, serta kaedah pengambil dan penetap yang sepadan. Selain itu, kami juga menyediakan kaedah untuk mengira purata markah peperiksaan dan mengatasi kaedah toString() untuk mengeluarkan maklumat peperiksaan.

Kemudian, kami mencipta kelas markah peperiksaan (Skor Peperiksaan):

public class ExamScore {
    private Student student;
    private double score;
    
    public ExamScore(Student student, double score) {
        this.student = student;
        this.score = score;
    }
    
    // getter 和 setter 方法省略
    
    @Override
    public String toString() {
        return "ExamScore{" +
                "student=" + student +
                ", score=" + score +
                '}';
    }
}

Kelas markah peperiksaan mempunyai dua sifat: pelajar dan markah. Kami menggunakan pembina untuk memulakan objek skor ujian dan menyediakan kaedah getter dan setter yang sepadan, serta kaedah toString() yang diganti untuk mengeluarkan maklumat skor ujian.

Seterusnya, kami mencipta kelas statistik skor (Statistik Skor):

public class ScoreStatistics {
    private List<ExamScore> scores;
    
    public ScoreStatistics(List<ExamScore> scores) {
        this.scores = scores;
    }
    
    public void printExamScores() {
        for (ExamScore score : scores) {
            System.out.println(score);
        }
    }
    
    public void printRanking() {
        Collections.sort(scores, Comparator.comparingDouble(ExamScore::getScore).reversed());
        
        int rank = 1;
        for (ExamScore score : scores) {
            System.out.println("Rank " + rank + ": " + score.getStudent().getName() + ", Score: " + score.getScore());
            rank++;
        }
    }
}

Kelas statistik skor mempunyai atribut senarai skor. Kami menggunakan pembina untuk memulakan objek statistik dan menyediakan dua kaedah untuk mengeluarkan skor ujian dan kedudukan. Apabila mengeluarkan kedudukan, kami menggunakan kaedah Collections.sort() untuk mengisih senarai gred dalam susunan menurun berdasarkan skor dan menggunakan kaedah Comparator.comparingDouble() untuk menentukan asas bagi pengisihan. Kami kemudian menggunakan gelung untuk mengeluarkan pangkat dan markah setiap pelajar.

Akhirnya, kami mencipta kelas utama (Utama) untuk memulakan data dan menjalankan keseluruhan sistem:

public class Main {
    public static void main(String[] args) {
        // 初始化学生对象
        Student student1 = new Student("张三", 1001);
        Student student2 = new Student("李四", 1002);
        Student student3 = new Student("王五", 1003);
        
        // 初始化考试成绩对象
        ExamScore score1 = new ExamScore(student1, 80);
        ExamScore score2 = new ExamScore(student2, 90);
        ExamScore score3 = new ExamScore(student3, 85);
        
        // 初始化考试对象
        Exam exam = new Exam("数学");
        
        // 添加考试成绩到考试对象
        exam.addScore(score1);
        exam.addScore(score2);
        exam.addScore(score3);
        
        // 创建成绩统计对象
        List<ExamScore> scores = new ArrayList<>();
        scores.add(score1);
        scores.add(score2);
        scores.add(score3);
        ScoreStatistics statistics = new ScoreStatistics(scores);
        
        // 输出考试成绩和排名
        System.out.println("Exam Scores:");
        statistics.printExamScores();
        
        System.out.println();
        
        System.out.println("Exam Ranking:");
        statistics.printRanking();
    }
}

Dalam kelas utama, kami mula-mula mencipta pelajar dan skor ujian objek, dan lulus Kaedah tambah menambah markah ujian kepada objek ujian. Kemudian, kami mencipta objek statistik skor dan menggunakan objek ini untuk mengeluarkan skor ujian dan kedudukan.

Jalankan program ini dan anda akan melihat output berikut:

Exam Scores:
ExamScore{student=Student{name='张三', studentId=1001}, score=80.0}
ExamScore{student=Student{name='李四', studentId=1002}, score=90.0}
ExamScore{student=Student{name='王五', studentId=1003}, score=85.0}

Exam Ranking:
Rank 1: 李四, Score: 90.0
Rank 2: 王五, Score: 85.0
Rank 3: 张三, Score: 80.0

Di atas adalah contoh kod untuk menggunakan Java untuk melaksanakan skor ujian dan statistik kedudukan sistem peperiksaan dalam talian. Melalui sistem ini, anda boleh mengurus dan menganalisis markah ujian pelajar dengan mudah dan meletakkan kedudukan pelajar mengikut markah mereka. Sudah tentu, ini hanyalah contoh mudah dan anda boleh mengembangkan dan mengoptimumkannya mengikut keperluan sebenar anda. Semoga berjaya menulis sistem peperiksaan dalam talian anda!

Atas ialah kandungan terperinci Java melaksanakan skor ujian dan statistik kedudukan sistem peperiksaan dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn