Grade Report


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 64M

Authors:
Problem type
Allowed languages
Java 19, Java 8

這個程式允許使用者輸入一個整數n,以及n組學生姓名和成績配對

輸入完成之後,程式會印出學生成績清單,每個學生成績的輸出格式為"Student: studentName, Grade: courseGrade",例如,若學生名稱為Alice,成績為90,則輸出該學生成績時會印出"Student: Alice, Grade: 90"。

這個程式目前仍缺少Grade函數的實作,請完成它,並且上傳完整的程式。 除了Grade函數之外,請勿修改其他已經寫好的部分,違反此規則者,無論自動評測結果為何,在考試中均不計分。但允許輕微的排版差異。

程式完成之後,可用以下測試資料做初步的測試,但仍請自行設計完整的測試資料

輸入 #1:

2 Jack 90 Mike 95

輸出 #1:

Student: Jack, Grade: 90 ; Student: Mike, Grade: 95 ;

輸入 #2:

2 J 1 M -1

輸出 #2:

Student: J, Grade: 1 ; Student: M, Grade: -1 ;

import java.util.Scanner;

// 定義Grade類別,建構函數的第一個參數是學生名稱字串,第二個參數是整數成績
// Grade類別有一個getInfo方法,返回一個字串,格式為"Student: studentName, Grade: courseGrade"
// 例如"Student: Alice, Grade: 90"
class Grade {
    ...
}

public class GradeReport {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 讀取學生數量,這是使用者輸入的第一個數字
        int n = scanner.nextInt();
        // 創建Grade物件的陣列
        Grade[] grades = new Grade[n];

        // 接著讀取 n 組學生名稱和成績,並為每個學生創建Grade物件,然後將其添加到陣列中
        for (int i = 0; i < n; i++) {
            String studentName = scanner.next();
            int courseGrade = scanner.nextInt();

            // 創建Grade物件,建構子的第一個參數是學生名稱,第二個參數是成績
            grades[i] = new Grade(studentName, courseGrade);
        }

        // 輸出每一組學生名稱和成績
        for (int i = 0; i < grades.length; i++) {
            // 呼叫Grade物件的getInfo方法,並輸出結果,格式為"Student: studentName, Grade: courseGrade"
            // 例如"Student: Alice, Grade: 90"
            System.out.print(grades[i].getInfo());
            System.out.print(" ; ");
        }
    }
}

Comments


  • 0
    scu09156146  commented on April 26, 2024, 2:45 p.m.

    題解

    import java.util.Scanner;
    
    //定義Grade類別,參數:(字串)學生名稱、(整數)成績
    //方法:getInfo(),返回一個字串,格式為"Student: studentName, Grade: courseGrade"
    class Grade {
        String studentName;
        int courseGrade;
    
        public Grade(String name, int grade) {
            studentName = name;
            courseGrade = grade;
        }
    
        public String getInfo() {
            return "Student: " + studentName + ", Grade: " + courseGrade;
        }
    }
    
    public class GradeReport {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt();
            // 創建Grade物件的陣列
            Grade[] grades = new Grade[n];
    
            // 讀取 n 組學生名稱和成績,並為每個學生創建Grade物件
            for (int i = 0; i < n; i++) {
                String studentName = scanner.next();
                int courseGrade = scanner.nextInt();
    
                // 創建Grade物件,建構子的第一個參數是學生名稱,第二個參數是成績
                grades[i] = new Grade(studentName, courseGrade);
            }
            scanner.close();
    
            // 輸出每一組學生名稱和成績
            for (int i = 0; i < grades.length; i++) {
                // 呼叫Grade物件的getInfo方法,並輸出結果
                System.out.print(grades[i].getInfo());
                System.out.print(" ; ");
            }
        }
    }