Java类与对象定义类的编写

用Java语言编写完成你上学期自己个人所有课程的成绩处理,同时也为本学期所有课程设定目标成绩,并进行处理。功能由自已分析来确定,如分别两学期总分、平均分、绩点、最好科目、科目数,以及大学一年级你将完成学业的情况,总绩点数、优势和不足科目等相关信息。
要求:定义类的成员务必完善,功能齐全,不使用类的继承、组合等知识。主类和其它类分开独立文件。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Score {
    private Map<String, Double> scoreDict;

    public Score() {
        this.scoreDict = new HashMap<String, Double>();
    }

    public Score(Map<String, Double> scoreDict) {
        this.scoreDict = scoreDict;
    }

    public void setScore(String subject, double score) {
        scoreDict.put(subject, score);
    }

    public double getScore(String subject) {
        return scoreDict.get(subject);
    }

    public double getAverageScore() {
        double totalScore = 0.0;
        int subjectCount = scoreDict.size();

        for (String subject : scoreDict.keySet()) {
            totalScore += scoreDict.get(subject);
        }

        return totalScore / subjectCount;
    }

    public double getTotalScore() {
        double totalScore = 0.0;

        for (String subject : scoreDict.keySet()) {
            totalScore += scoreDict.get(subject);
        }

        return totalScore;
    }

    public String getHighestScoreSubject() {
        double highestScore = 0.0;
        String highestScoreSubject = "";

        for (String subject : scoreDict.keySet()) {
            if (scoreDict.get(subject) > highestScore) {
                highestScore = scoreDict.get(subject);
                highestScoreSubject = subject;
            }
        }

        return highestScoreSubject;
    }

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

        // 输入每一科科目和成绩
        System.out.println("请输入科目和成绩:");
        while (scanner.hasNext()
         {
              score.add((scanner.next(), (scanner.nextDouble());
         }
    }
}