Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/103: Рейтинг темы: голосов - 103, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 57

Создание иерархии классов: студент, преподаватель, декан

31.10.2014, 02:23. Показов 20353. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, понять как сделать. Есть задание: создать классы, описывающие студента, преподавателя, декана. Определить методы для вывода информации об объектах:
- все студенты, которые учатся в одной группе
- преподавателей, имеющих звание доцент
- студенты, чем рейтинг в указанном диапазоне
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.10.2014, 02:23
Ответы с готовыми решениями:

Создание иерархии классов
Здравствуйте, помогите, пожалуйста с заданием. Разработать иерархию из следующих классов, необходимых для реализации модели зоопарка: ...

Создание иерархии классов и интерфейсов
Помогите пожалуйста, нужно написать курсач на тему "создание иерархии классов и интерфейсов в предметной области животные". Я не знаю...

Создание иерархии классов: магазин электротоваров
Уважаемые форумчане, нужно создать программу. В программе должны присутствовать: иерархия классов с указанием ключевых полей, свойств и...

16
21 / 19 / 4
Регистрация: 05.06.2013
Сообщений: 190
31.10.2014, 22:07
в чём собсно проблема создаёте класс студент у него есть поля группа, рейтинг. Ещё класс преподаватель в данной формулировке задачи можно сделать там booleanовое поле isDocent. И собственно всё.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 57
03.11.2014, 22:55  [ТС]
Как связать все классы: студент, преподаватель и декан. И что в классе декан, должно находиться
0
21 / 19 / 4
Регистрация: 05.06.2013
Сообщений: 190
03.11.2014, 23:24
Kristi-na, как угодно .Вы никак не описали свойства класса декан и связь классов студент, преподаватель и декан
0
16 / 16 / 10
Регистрация: 17.03.2014
Сообщений: 59
04.11.2014, 10:38
Данные классы не составляют иерархию наследования. Судя по заданию можно создать класс Academi и в нем массивы (коллекции) преподавателей, студентов, деканов, но зто будет композиция.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 57
04.11.2014, 10:56  [ТС]
У меня задание создать иерархию наследования классов: студент, преподаватель, декан. И вот проблема как составить наследование классов, и какие методы и переменные поместить в классы.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
04.11.2014, 11:56
Все эти классы могут наследовать от human. Между классами наследования быть не должно
0
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
05.11.2014, 02:09
Цитата Сообщение от M_Kenan Посмотреть сообщение
но зто будет композиция.
А если декан имеет(has a) преподавателя, то это будет композиция или нет?
Или же если преподаватель имеет(has a) студента то будет ли это композицией?

Добавлено через 54 секунды
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
Все эти классы могут наследовать от human.

Не по теме:

а Human extends Питекантроп

0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
05.11.2014, 03:17
Kristi-na, ваше задание решается за пару минут. Проблема в том, что вы указали не все данные необходимые для решения задачи.
Нужно что бы вы написали какая именно информация должна храниться в классах (ФИО, Возраст и т.д...)
Пока вы не предоставите эту информацию, некоторые личности в вашей теме так и будут соревноваться в остроумии. За что в конечном итоге получат наказание...
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 57
05.11.2014, 10:15  [ТС]
Вот полностью задание:

1. Создать иерархию классов, описывающую заданные объекты
2. Поля каждого из создаваемых классов должны быть инкапсулированы
3. Предусмотреть инициализацию полей на этапе создания объектов класса
4. При необходимости переопределить специфические методы в дочерних классах
5. Все объекты, указанные в задании, должны быть объединены в один массив или ArrayList.

Создать классы, описывающие студента, преподавателя, декана. Создать 5 объектов различных типов. Определить методы для вывода информации об объектах:
- все студенты, которые учатся в одной группе
- преподавателей, имеющих звание доцент
- студенты, чем рейтинг в указанном диапазоне
0
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
05.11.2014, 17:13
насчет дела на несколько минут как говорил Станиславский - не верю, одно набора теста вагон
0
4 / 4 / 1
Регистрация: 29.09.2014
Сообщений: 24
05.11.2014, 18:25
Насколько я понимаю задание то количество и тип полей классов (кроме тех, значения которых нужно вернуть с помощью методов), а также их взаимосвязи - произвольно, главное реализовать концепцию наследования?
0
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
05.11.2014, 18:47
Лучший ответ Сообщение было отмечено Kristi-na как решение

Решение

базовый класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public abstract class Person {
    private String name;
    private int age;
    // является ли мальчиком
    private boolean isMale;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public boolean isMale() {
        return isMale;
    }
 
    public void setMale(boolean isMale) {
        this.isMale = isMale;
    }
 
    public Person(String name, int age, boolean isMale) {
        this.name = name;
        this.age = age;
        this.isMale = isMale;
    }
}
студент
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class Student extends Person {
    // группа
    private String group;
    // средний бал
    private double rating;
 
    public String getGroup() {
        return group;
    }
 
    public void setGroup(String group) {
        this.group = group;
    }
 
    public double getRating() {
        return rating;
    }
 
    public void setRating(double rating) {
        this.rating = rating;
    }
 
    public Student(String name, int age, boolean isMale, String group, double rating) {
        super(name, age, isMale);
        this.group = group;
        this.rating = rating;
    }
 
    @Override
    public String toString() {
        return "Студент " + getName() + " учится в групе " + getGroup()
                + " и имеет средний бал " + getRating();
    }
}
препод
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Teacher extends Person {
    // звание
    private String title;
    // предмет который он читает
    private String subject;
 
    public String getTitle() {
        return title;
    }
 
    public void setTitle(String title) {
        this.title = title;
    }
 
    public String getSubject() {
        return subject;
    }
 
    public void setSubject(String subject) {
        this.subject = subject;
    }
 
    public Teacher(String name, int age, boolean isMale, String title, String subject) {
        super(name, age, isMale);
        this.title = title;
        this.subject = subject;
    }
 
    @Override
    public String toString() {
        return "Учитель " + getName() + " имеет ученую степень " + getTitle() + " и преподает " + getSubject();
    }
}
декан
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Dean extends Person {
    // факультет декана
    private String faculty;
 
    public String getFaculty() {
        return faculty;
    }
 
    public void setFaculty(String faculty) {
        this.faculty = faculty;
    }
 
    public Dean(String name, int age, boolean isMale, String faculty) {
        super(name, age, isMale);
        this.faculty = faculty;
    }
 
    @Override
    public String toString() {
        return "Декан " + getName() + " на факультете " + getFaculty();
    }
}
класс для информации о людях из универа

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.ArrayList;
import java.util.List;
 
public class UniversityManager {
 
    public List<Student> getStudentsFromTheSameGroup(List<Student> students, String group) {
        List<Student> result = new ArrayList<>();
        for (Student student : students) {
            if (student.getGroup().equals(group))
                result.add(student);
        }
        return result;
    }
 
    public List<Teacher> getDocents(List<Teacher> teachers) {
        List<Teacher> result = new ArrayList<>();
        for (Teacher teacher : teachers)
            if (teacher.getTitle().equals("docent") || teacher.getTitle().equals("доцент"))
                result.add(teacher);
        return result;
    }
 
    // rating from and to inclusive
    public List<Student> getStudentsInRange(List<Student> students, double from, double to) {
        List<Student> result = new ArrayList<>();
        for (Student student : students) {
            if (student.getRating() >= from && student.getRating() <= to)
                result.add(student);
        }
        return result;
    }
}
запускаем, смотрим
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.*;
public class Test {
 
    public static void main(String[] args) {
        Student st1 = new Student("Петя Пяточкин", 20, true, "ФК-071", 4.5);
        Student st2 = new Student("Вася Пупкин", 20, true, "ФК-071", 4.2);
        Student st3 = new Student("Маша Иванова", 20, false, "ПМ-081", 5.0);
        Student st4 = new Student("Катя Ермалаева", 21, false, "ПМ-081", 3.5);
        Student st5 = new Student("Ваня Калюжный", 20, true, "ФК-071", 3.6);
        Student st6 = new Student("Петя Нагорный", 20, true, "ФК-071", 4.5);
        Student st7 = new Student("Дима Бима", 20, true, "ФК-071", 4.5);
 
        Teacher t1 = new Teacher("Марья Ивановна", 49, false, "доцент", "економика");
        Teacher t2 = new Teacher("Александр Павлович", 29, true, "аспирант", "електрооборудование");
        Teacher t3 = new Teacher("Светлана Ивановна", 32, false, "професор", "економика");
        Teacher t4 = new Teacher("Аристарх Эдуардович", 69, true, "професор", "филосовия древнего мира");
 
        List<Student> students = Arrays.asList(st1, st2, st3, st4, st5, st6, st7);
        List<Teacher> teachers = Arrays.asList(t1, t2, t3, t4);
 
        UniversityManager manager = new UniversityManager();
 
        System.out.println("Список студентов группы ФК-071 ");
        List<Student> FK = manager.getStudentsFromTheSameGroup(students, "ФК-071");
        for (Student student : FK)
            System.out.println(student);
 
        System.out.println("Список доцентов ");
        List<Teacher> docents = manager.getDocents(teachers);
        for (Teacher teacher : docents)
            System.out.println(teacher);
 
    }
}
Добавлено через 2 минуты
Господа модераторы, какой то трешак с добавлением сообщений.

Сначала мне показало, что добавило 2 одинаковых сообщения(этих больших с простыней кода)
Потом одно из них я отредактировал, выкинув текст.(логично что осталось 1 большое + 1 отредактированое)
Теперь я захожу и вижу, что большого то оказывается не было
3
0 / 0 / 0
Регистрация: 18.02.2021
Сообщений: 51
03.11.2021, 08:28
А как здесь сделать интерфейс?
0
 Аватар для Aviz__
2745 / 2054 / 507
Регистрация: 17.02.2014
Сообщений: 9,473
03.11.2021, 09:36
Цитата Сообщение от vladimirovna_ Посмотреть сообщение
А как здесь сделать интерфейс?
Java
1
2
3
4
interface Teach {
    void giveLectures();
    void takeExams();
}
0
0 / 0 / 0
Регистрация: 18.02.2021
Сообщений: 51
03.11.2021, 09:53
в коде же нету методов takeExams, giveLectures. Можете объяснить?
0
 Аватар для Aviz__
2745 / 2054 / 507
Регистрация: 17.02.2014
Сообщений: 9,473
03.11.2021, 13:05
Цитата Сообщение от vladimirovna_ Посмотреть сообщение
Можете объяснить?
в коде препод вообще не учит. вот ему этот интерфейс и назначь)).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2021, 13:05
Помогаю со студенческими работами здесь

Построить иерархию классов: студент, преподаватель, персона, заведующий кафедрой
Помогите построить иерархию классов: студент, преподаватель,персона, заведующий кафедрой, используя: наследование и виртуальные функции....

Построить иерархию классов: студент, преподаватель, персона, заведующий кафедрой
Помогите построить иерархию классов: студент, преподаватель,персона, заведующий кафедрой.

Иерархия классов "Студент, преподаватель, персона, завкафедрой"
Помогите создать иерархию классов ; Студент,преподаватель,персона,завкафедрой; на языке C++

Создание иерархии классов
Создать абстрактный базовый класс Struct, с виртуальными методами изменения и получения значения информационного поля, и класс потомок...

Создание иерархии классов
Помогите пожалуйста! Проблема со второй частью задания :&quot;Создать производный класс Student, имеющий поле года обучения. Определить методы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru