2014-12-11 3 views
0

Я все еще новичок в программировании и нуждаюсь в небольшом подталкивании в правильном направлении. Программа считывает из файла и вычисляет верхний балл, средний балл и удаляет дубликаты и т. Д. Затем добавляет свою оценку проекта до конца, оценки проектов «N» игнорируются, а другие добавляются к концу. Я добавлю текстовый файл в конце сообщения.Добавление классов проектов

Инструкции:

XcelStudent

XcelStudent расширяет Студента. XcelStudent имеет экземпляр String переменной projectGrade, который устанавливается конструктором XcelStudent: public XcelStudent (имя строки, int id, int totalGrades, String projectGrade) Этот конструктор должен вызвать конструктор суперкласса для создания экземпляров переменных экземпляра Student ,

Переопределить метод computeScore(). Он должен вызывать метод computeScore для учащихся , чтобы получить начальную оценку, а затем добавить соответствующее количество баллов для проекта: 1 для «C», 2 для «B» и 4 для «A», ,

Метод toString() должен вызывать метод toString от Student до получить начальную строку, а затем добавить «проект:» + projectGrade в .

Я считаю, что первая часть этого завершена, и я обнаружил четыре класса, но я не уверен, как добавить их в конец.

public class XcelStudent extends Student{ 

    public String projectGrade; 

    public XcelStudent(String name, int id, int totalGrades, String norX) { 
     super(name, id, totalGrades); 

     int points; 
     if(norX.equals("C")){ 
      projectGrade = "C"; 
      //points = 1; 
      System.out.println(" project:" + projectGrade); 
     } 
     if(norX.equals("B")){ 
      projectGrade = "B"; 
      //points = 2; 
      System.out.println(" project:" + projectGrade); 
     } 
     if(norX.equals("A")){ 
      projectGrade = "A"; 
      //points = 4; 
      System.out.println(" project:" + projectGrade); 
     } 
    } 

    public static void main(String[] args) { 


    } 

} 

Текущий ToString и computeScore в моей Student.java

public String toString() { 
     String res = name + "\t" + id + " "; 
     for (int i=0; i < totalGrades; i++) { 
      res += " " + grades[i]; 
     } 
     res += "\tscore: " + new DecimalFormat("0.00").format(computeScore()); 
     return res; 
    } 


@Override 
    public double computeScore() { 
     double total = 0; 
      if (numGrades == 0) { 
      return total; 
      } 
      if (numGrades > grades.length) { 
      numGrades = grades.length; 
      } 
      for (int i = 0; i < numGrades; i++) { 
      total += grades[i]; 
      } 

      if (total > topscore){ 
       topscore = total; 
      } 
      avgscore += total; 

      return total/grades.length; 
    } 

Токовый выход: (я знаю его не отсортирован)

Course cs161: 5 grades 
project:C 
project:A 
project:A 
project:B 
Top Score: 90.0 
Avg Score: 76.16 
Course: cs161 
Adam 2143 85 95 85 75 65 score: 81.00 
John 1243 60 70 80 55 55 score: 64.00 
Mick 1324 70 60 70 80 90 score: 74.00 
Ellen 2341 90 95 88 77 66 score: 83.20 
Jim  1234 50 40 50 60 70 score: 54.00 
Lena 1423 99 50 90 90 85 score: 82.80 
Leila 1432 60 70 60 70 60 score: 64.00 
Mike 1342 60 70 80 90 99 score: 79.80 
Ada  2134 90 90 90 90 90 score: 90.00 
Helen 2314 89 79 99 89 88 score: 88.80 

Желаемый результат:

Course cs161: 5 grades 
Top Score: 92.0 
Avg Score: 77.26 
Course: cs161 
Jim  1234 50 40 50 60 70 score: 54.00 
John 1243 60 70 80 55 55 score: 64.00 
Mick 1324 70 60 70 80 90 score: 75.00 project: C 
Mike 1342 60 70 80 90 99 score: 79.80 
Lena 1423 99 50 90 90 85 score: 86.80 project: A 
Leila 1432 60 70 60 70 60 score: 64.00 
Ada  2134 90 90 90 90 90 score: 92.00 project: B 
Adam 2143 85 95 85 75 65 score: 81.00 
Helen 2314 89 79 99 89 88 score: 88.80 
Ellen 2341 90 95 88 77 66 score: 87.20 project: A 

Файл:

Adam 2143 N 85 95 85 75 65 
adam2 2143 N 0 0 0 0 0 
John 1243 N 60 70 80 55 55 
John2 1243 N 0 0 0 0 0 
Mick 1324 C 70 60 70 80 90 
Ellen 2341 A 90 95 88 77 66 
Jim  1234 N 50 40 50 60 70 
Lena 1423 A 99 50 90 90 85 
Leila 1432 N 60 70 60 70 60 
Mike 1342 N 60 70 80 90 99 
Ada  2134 B 90 90 90 90 90 
Helen 2314 N 89 79 99 89 88 

Спасибо за любую помощь!

ответ

0

Если я правильно понял ваш вопрос, вам в принципе нужно создать новый метод toString в XcelStudent (переопределить его) и вызвать toString родителя. Что-то вдоль линий этого:

@Override 
public String toString() { 

    return super.toString() + "project: " + projectGrade; 
} 

В той части, где вы должны добавить счет, вы можете сделать это снова перекрывая computeScore для XcelStudent и вызова метода Родителя и просто добавить «точки» на основании письма оценки. Вы можете понять это, просто попробовав вещи (подсказка: похоже на вышеупомянутый метод toString). Я не хочу делать домашнее задание для вас.

Другое, что связано с боком, заключается в том, что вы должны использовать защищенные/частные методы, если у вас нет веских оснований публиковать эти методы.

+0

Спасибо! Я внес изменения, и это сработало! – Damoclyes