C, PHP, VB, .NET

Дневникът на Филип Петров


* Изходен код от упражнение 3, 2015

Публикувано на 20 октомври 2015 в раздел ПИК3 Java.

Създайте клас Person съдържащ член променливи “name” (String) и “phone” (String). Защитете “name” така, че да не може да бъде променян (да е private и да има само get метод). За “phone” оставете public модификатор за достъп и не правете get и set методи. Реализирайте метод “String toString()”, в който се връща низ със съдържание името и телефона на човека разделени със запетая. Направете само конструктор с подадени параметри. Не пишете конструктор по подразбиране.

Направете клас Teacher, който наследява Person и добавя член променлива: enum Position{PROFFESOR , DOCENT,  ASSISTANT}
Направете два конструктора – един с подадени параметри name, phone и Position, и един с подадени само name и phone, при който Position се приема по подразбиране ASSISTANT

Направете клас “Course” с член променливи Sting name – име на курс – и Teacher tutor. Направете само конструктор с подадени параметри. Не правете get и set методи.

Направете клас “Student” наследяващ “Person” и добавящ следните член променливи:
int faknum – факултетен номер
Course[] courses – списък с учебни предмети
double[] grades – оценки по тези учебни предмети
Направете конструктор приемащ име, телефон и факултетен номер, в който масивите се инициализират празни с по 30 елемента. Предпазете масива grades така, че да може да бъдат въвеждани само и единствено оценки в интервала от 2,00 до 6,00.

Направете клас с main метод, в който създайте масив от тип Person, в който въведете два обекта от тип Student и един от тип Teacher. И за трите елемента отпечатайте резултата от техните “toString” методи в конзолата.

Решение:

public class Upr3 {
  public static void main(String[] args) {
    Student st1 = new Student("Petar", "1234", 1234);
    Student st2 = new Student("Ivan", "5678", 5678);
    Teacher t = new Teacher("Philip", "0893690135", Position.ASSISTANT);
    Course c = new Course("PIK3", t);
    try{
      st1.setCourse(c, 4.00, 0);
      st2.setCourse(c, 5.00, 0);
    }
    catch(Exception e){
      System.out.println(e.getMessage());
    }
    
    Person[] arr = new Person[]{ st1, st2, t};
    
    for(Person p: arr) {
      System.out.println(p.toString());
    }
  }
}

enum Position {
  ASSISTANT, DOCENT, PROFESSOR
};

class Person {
  private String name;
  String phone;
  Person(String name, String phone){
    this.name = name;
    this.phone = phone;
  }
  String getName() {
    return this.name;
  }
  public String toString() {
    return this.getName() + ", " + this.phone;
  }
}

class Teacher extends Person {
  Position pos;
  
  Teacher(String name, String phone ,Position pos) {
    super(name, phone);
    this.pos = pos;
  }
  Teacher(String name, String phone) {
    super(name, phone);
    this.pos = Position.ASSISTANT;
  }
}

class Course {
  String name;
  Teacher tutor;
  
  Course(String name, Teacher tutor){
    this.name = name;
    this.tutor = tutor;
  }
}

class Student extends Person {
  int faknum;
  private Course[] courses;
  private double[] grades;
  private static int courses_count = 30;
  Student(String name, String phone, int faknum){
    super(name, phone);
    this.faknum = faknum;
    courses = new Course[courses_count];
    grades = new double[courses_count];
  }
  void setCourse(Course c, double grade, int n) throws Exception{
    if(grade<2.00 || grade>6.00){
      throw new Exception("Невалидна оценка");
    }
    if(n<0 || n>=courses_count){
      throw new Exception("Максималният индекс е 30");
    }
    this.courses[n] = c;
    this.grades[n] = grade;
  }
}

 



Добави коментар

Адресът на електронната поща няма да се публикува


*