Ладно ... Иногда я думаю, что это похоже на поездку на велосипеде ... у тебя его нет, но как только он у тебя будет, он останется на всю жизнь.
Ты хочешь решитьэта проблема с использованием некоторых классов ... хорошо.
Прежде всего, разбейте это на две вещи ... программу (вещь, которая будет принимать входные данные от пользователя) и модель (или домен).
Ваша модель - это просто серия занятий.Проще говоря, давайте создадим класс с именем
Ученик класса с именем Экзамен
У ученика могут быть поля с личным строковым именем;
и, возможно, некоторые другие,частный экзамен в середине срока;индивидуальный выпускной экзамен;приватный экзамен;
создайте методы получения и установки для этих полей
хорошо ... надеюсь, вы все еще со мной.Если это кажется простым, попробуйте внедрить вес экзамена в подклассы для экзаменов.
Ваш суперкласс экзамена (если вы решили пойти по маршруту подкласса) имеет метод, называемый что-то вроде getWeightedExamMark или как вы хотите его вызывать.Возвращает двойное число и принимает двойное в своей подписи.Подклассифицируя экзамен, скажем, в Final, Midterm и Quiz, этот метод можно переопределить, чтобы применить правила того, сколько это стоит.
На самом деле, вы должны переместить три объекта Exam из класса Student вкласс ReportCard ... тогда у вас есть метод на ReportCard метода getMark (), который связывает методы getWeightedExamMark из трех подклассов экзамена для отображения итоговой оценки.
Я бы написал код, но подумал, что этолучше вести вас, чтобы вы выучили синтаксис и структурировали себя.
Удачи.