* Изходен код от упражнение 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;
}
}
Добави коментар