Форма входа

Наша реклама

Помогите сайту просмотрите рекламу

Поиск

Календарь

«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Наш опрос

Оцените мой сайт
Всего ответов: 122

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0




Суббота, 27.04.2024, 06:56
Приветствую Вас Гость | RSS
Скорая помощь для студентов
Главная | Регистрация | Вход
Лабораторная работа №3


Лабораторная работа №3
Проектирование иерархии классов

1. Создайте иерархию классов для университета

В университете учатся и работают следующие категории людей (в скобках приводятся характеристики каждой категории):
• Преподаватели (ФИО, дата рождения, место работы (подразделение), должность, заработная плата, наименование преподаваемой дисциплины, ученая степень). При наличии ученой степени преподаватель получает надбавку к зарплате фиксированного размера.
• Административный персонал (ФИО, дата рождения, место работы (подразделение), должность, заработная плата, стаж работы)
• Студенты бюджетной формы обучения (ФИО, дата рождения, место учебы (подразделение), средний балл, стипендия). Стипендия рассчитывается как зависимость от среднего балла (алгоритм расчета выберите сами, например, произведение некоторого минимума на ср. балл (120*4), процент от максимума (1000*85/100) и т.д.)
• Студенты коммерческой формы обучения (ФИО, дата рождения, место учебы (подразделение), сумма оплаты за обучение)
Университет состоит из подразделений двух типов (в скобках приводятся характеристики каждой категории): 
• Учебные подразделения - факультеты, институты и т.д. (название, количество сотрудников, количество студентов, общее количество людей)
• Административные подразделения - управлений, отделов и т.д. (название, количество сотрудников).
В учебном подразделении могут обучаться студенты обеих форм и работать преподаватели и административный персонал. Учебное подразделение содержит два списка: студентов и сотрудников.
В административном подразделении могут работать только административные сотрудники. Административное подразделение содержит список своих сотрудников.
Любое подразделение имеет функцию вывода списка всех своих сотрудников и студентов, а также поиска сотрудника/студента по фамилии. Для административного подразделения список студентов, естественно, не выводится. 
В университете отдельно выделяются два административных подразделения:
• Отдел кадров: содержит список всех сотрудников университета и имеет возможность его распечатки и поиска по списку. Имеет функции приема сотрудников на работу и увольнения.
• Бухгалтерия: содержит список всех лиц в университете, которым университет производит выплаты (т.е. всех сотрудников и бюджетных студентов). При этом бухгалтерию не интересуют никакие данные об этих лицах. Имеет функцию выплаты денег всем зарегистрированным в списке лицам. Выплата денег производится посредством вывода сообщения о выплате определенной суммы лицу.
Университет содержит список всех отделов, а также отдельно отдел кадров и бухгалтерию. Университет имеет возможность вывести список всех подразделений, а также вывести список всех сотрудников и студентов. Университет имеет функцию поиска лица по ФИО и вывода информации о нем.

2. Разработайте приложение, демонстрирующее использование созданных классов

Решение.


public class Administration

{
 String Administration_FIO;
 String BirthDay;
 String Podrazdelenie;
 String Dolzhnost;
 String Zarplata;
 String Stazh_Raboti;
 
 Administration (String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Stazh)
 {
  Administration_FIO = FIO;
  BirthDay = Day;
  Podrazdelenie = Podr;
  Dolzhnost = Dolzh;
  Zarplata = Zarpl;
  Stazh_Raboti = Stazh;
 }
}


import java.util.ArrayList;


public class Otdel_Buhgalt
 
{
 ArrayList<Administration> Admins = new ArrayList<Administration>();
 ArrayList<Teachers> Teachs = new ArrayList<Teachers>();
 ArrayList<Students_B> StudB = new ArrayList<Students_B>();
 
 void Viplata(String Name, int Summa)
 {
  for (Administration i: Admins)
  {
  if (i.Administration_FIO.equals(Name))
  {
  System.out.println("Произведена выплата сотруднику " + Name + " в размере " + Summa);
  return;
  }
  }
  for (Teachers i: Teachs)
  {
  if (i.Teachers_FIO.equals(Name))
  {
  System.out.println("Произведена выплата сотруднику " + Name + " в размере " + Summa);
  return;
  }
  }
  for (Students_B i: StudB)
  {
  if (i.Students_B_FIO.equals(Name))
  {
  System.out.println("Произведена выплата сотруднику " + Name + " в размере " + Summa);
  return;
  }
  }
 }
 
}


import java.util.ArrayList;


public class Otdel_Kadrov 
{
 ArrayList<Administration> Admins = new ArrayList<Administration>();
 ArrayList<Teachers> Teachs = new ArrayList<Teachers>();
 ArrayList<Students_B> StudB = new ArrayList<Students_B>();
 ArrayList<Students_P> StudP = new ArrayList<Students_P>();
 Podrazdel_Admin Adms = new Podrazdel_Admin();
 Podrazdel_Stud Std = new Podrazdel_Stud();
 
 void AddAdm(String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Stazh)
 {
  this.Admins.clear();
  Adms.AddAdm(FIO, Day, Podr, Dolzh, Zarpl, Stazh);
  this.Admins.addAll(0, Adms.Admins);
 }
 
 void AddTeach(String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Predm, String Step)
 {
  this.Teachs.clear();
  Std.AddTeach(FIO, Day, Podr, Dolzh, Zarpl, Predm, Step);
  this.Teachs.addAll(0, Std.Teachs);
 }
 
 void AddStudB(String FIO, String Day, String Podr, String Ball, String Stip)
 {
  this.StudB.clear();
  Std.AddStudB(FIO, Day, Podr, Ball, Stip);
  this.StudB.addAll(0, Std.StudB);
 }
 
 void AddStudP(String FIO, String Day, String Podr, String Oplata)
 {
  this.StudP.clear();
  Std.AddStudP(FIO, Day, Podr, Oplata);
  this.StudP.addAll(0, Std.StudP);
 }
 
 void Dismiss(String Name)
 {
  for (Administration i: Admins)
  {
  if (i.Administration_FIO.equals(Name))
  {
  this.Admins.clear();
  Adms.Dismiss(Name);
  this.Admins.addAll(0, Adms.Admins);
  return;
  }
  }
  for (Teachers i: Teachs)
  {
  if (i.Teachers_FIO.equals(Name))
  {
  this.Teachs.clear();
  Std.Dismiss(Name);
  this.Teachs.addAll(0, Std.Teachs);
  return;
  }
  }
  for (Students_B i: StudB)
  {
  if (i.Students_B_FIO.equals(Name))
  {
  this.StudB.clear();
  Std.Dismiss(Name);
  this.StudB.addAll(0, Std.StudB);
  return;
  }
  }
  for (Students_P i: StudP)
  {
  if (i.Students_P_FIO.equals(Name))
  {
  this.StudP.clear();
  Std.Dismiss(Name);
  this.StudP.addAll(0, Std.StudP);
  return;
  }
  }
 }
 
 boolean Search(String Name)
 {
  for (Administration i: Admins)
  {
  if (i.Administration_FIO.equals(Name))
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Administration_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Должность: " + i.Dolzhnost);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Стаж работы: " + i.Stazh_Raboti);
  System.out.println("Зарплата: " + i.Zarplata);
  System.out.println("*********************************");
  return true;
  }
  }
  for (Teachers i: Teachs)
  {
  if (i.Teachers_FIO.equals(Name))
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Teachers_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Должность: " + i.Dolzhnost);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Предмет: " + i.Predmet);
  System.out.println("Зарплата: " + i.Zarplata);
  System.out.println("Степень: " + i.Stepen);
  System.out.println("*********************************");
  return true;
  }
  }
  for (Students_B i: StudB)
  {
  if (i.Students_B_FIO.equals(Name))
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Students_B_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Средний балл: " + i.Sredni_Ball);
  System.out.println("Стипендия: " + i.Stipendia);
  System.out.println("*********************************");
  return true;
  }
  }
  for (Students_P i: StudP)
  {
  if (i.Students_P_FIO.equals(Name))
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Students_P_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Оплата за обучение: " + i.Oplata_za_obuchenie);
  System.out.println("*********************************");
  return true;
  }
  }
  System.out.println("Сотрудника с таким именем не существует.");
  return false;
 }
}


import java.util.ArrayList;


public class Podrazdel_Admin 


 ArrayList<Administration> Admins = new ArrayList<Administration>();
 
 void AddAdm(String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Stazh)
 {
  Administration Adm = new Administration(FIO, Day, Podr, Dolzh, Zarpl, Stazh);
  this.Admins.add(Adm);
 }
 
 void ReportsAdm()
 {
  for (Administration i: this.Admins)
  {
  System.out.println("*********************************");
  System.out.println("ФИО: " + i.Administration_FIO);
  System.out.println("День рождения: " + i.BirthDay);
  System.out.println("Должность: " + i.Dolzhnost);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Стаж работы: " + i.Stazh_Raboti);
  System.out.println("Зарплата: " + i.Zarplata);
  System.out.println("*********************************");
  }
 }
 
 void Dismiss(String Name)
 {
  for (Administration i: this.Admins)
  {
  if (i.Administration_FIO.equals(Name))
  {
  this.Admins.remove(i);
  System.out.println("Сотрудник " + Name + " уволен.");
  return;
  }
  }
 }
}


import java.util.ArrayList;


public class Podrazdel_Stud 
{
 ArrayList<Teachers> Teachs = new ArrayList<Teachers>();
 ArrayList<Students_B> StudB = new ArrayList<Students_B>();
 ArrayList<Students_P> StudP = new ArrayList<Students_P>();
 
 void AddTeach(String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Predm, String Step)
 {
  Teachers Std = new Teachers(FIO, Day, Podr, Dolzh, Zarpl, Predm, Step);
  this.Teachs.add(Std);
 }
 
 void AddStudB(String FIO, String Day, String Podr, String Ball, String Stip)
 {
  Students_B Studb = new Students_B(FIO, Day, Podr, Ball, Stip);
  this.StudB.add(Studb);
 }
 
 void AddStudP(String FIO, String Day, String Podr, String Oplata)
 {
  Students_P Studp = new Students_P(FIO, Day, Podr, Oplata);
  this.StudP.add(Studp);
 }
 
 void Dismiss(String Name)
 {
  for (Teachers i: Teachs)
  {
  if (i.Teachers_FIO.equals(Name))
  {
  this.Teachs.remove(i);
  System.out.println("Сотрудник " + Name + " уволен.");
  return;
  }
  }
  for (Students_B i: StudB)
  {
  if (i.Students_B_FIO.equals(Name))
  {
  this.StudB.remove(i);
  System.out.println("Сотрудник " + Name + " уволен.");
  return;
  }
  }
  for (Students_P i: StudP)
  {
  if (i.Students_P_FIO.equals(Name))
  {
  this.StudP.remove(i);
  System.out.println("Сотрудник " + Name + " уволен.");
  return;
  }
  }
 }
 
 void ReportsT()
 {
  for (Teachers i: Teachs)
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Teachers_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Должность: " + i.Dolzhnost);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Предмет: " + i.Predmet);
  System.out.println("Зарплата: " + i.Zarplata);
  System.out.println("Степень: " + i.Stepen);
  System.out.println("*********************************");
  }
 }
 
 void ReportsSB()
 {
  for (Students_B i: StudB)
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Students_B_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Средний балл: " + i.Sredni_Ball);
  System.out.println("Стипендия: " + i.Stipendia);
  System.out.println("*********************************");
  }
 }
 
 void ReportsSP()
 {
  for (Students_P i: StudP)
  {
  System.out.println("*********************************");
  System.out.println("ФИО:" + i.Students_P_FIO);
  System.out.println("День рождения:" + i.BirthDay);
  System.out.println("Подразделение: " + i.Podrazdelenie);
  System.out.println("Оплата за обучение: " + i.Oplata_za_obuchenie);
  System.out.println("*********************************");
  }
 }
}


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Start 
{
 public static void main(String[] args) throws IOException
 {
  University Univer = new University();
  BufferedReader Text = new BufferedReader(new InputStreamReader(System.in));
  int k = -1, n = 0;
  String A,B,C,D,E,F,G, c;
  while (k != 0)
  {
  System.out.println("Выберите действие:");
  System.out.println("1: Добавить сотрудника.");
  System.out.println("2: Поиск сотрудника по ФИО.");
  System.out.println("3: Произвести выплату сотруднику.");
  System.out.println("4: Уволить сотрудника.");
  System.out.println("9: Вывести список сотрудников.");
  System.out.println("0: Выйти из программы.");
  k = Integer.decode(Text.readLine());
  if (k == 1)
  {
  System.out.println("1: Администратора.");
  System.out.println("2: Преподавателя.");
  System.out.println("3: Студента-бюджетника.");
  System.out.println("4: Студента-платника.");
  n = Integer.decode(Text.readLine());
  if (n == 1)
  {
  System.out.println("ФИО");
  A = Text.readLine();
  System.out.println("Дату рождения");
  B = Text.readLine();
  System.out.println("Подразделение");
  C = Text.readLine();
  System.out.println("Должность");
  D = Text.readLine();
  System.out.println("Зарплата");
  E = Text.readLine();
  System.out.println("Стаж");
  F = Text.readLine();
  Univer.AddAdm(A, B, C, D, E, F);
  }
  if (n == 2)
  {
  System.out.println("ФИО");
  A = Text.readLine();
  System.out.println("Дату рождения");
  B = Text.readLine();
  System.out.println("Подразделение");
  C = Text.readLine();
  System.out.println("Должность");
  D = Text.readLine();
  System.out.println("Зарплата");
  E = Text.readLine();
  System.out.println("Предмет");
  F = Text.readLine();
  System.out.println("Ученая степень");
  G = Text.readLine();
  Univer.AddTeach(A, B, C, D, E, F, G);
  }
  if (n == 3)
  {
  System.out.println("ФИО");
  A = Text.readLine();
  System.out.println("Дату рождения");
  B = Text.readLine();
  System.out.println("Подразделение");
  C = Text.readLine();
  System.out.println("Средний балл");
  D = Text.readLine();
  System.out.println("Стипендия");
  E = Text.readLine();
  Univer.AddStudB(A, B, C, D, E);
  }
  if (n == 4)
  {
  System.out.println("ФИО");
  A = Text.readLine();
  System.out.println("Дату рождения");
  B = Text.readLine();
  System.out.println("Подразделение");
  C = Text.readLine();
  System.out.println("Оплата за обучение");
  D = Text.readLine();
  Univer.AddStudP(A, B, C, D);
  }
  }
  if (k == 2)
  {
  System.out.println("Введите имя сотрудника: ");
  c = Text.readLine();
  Univer.Search(c);
  }
  if (k == 3)
  { 
  System.out.println("Введите имя сотрудника: ");
  A = Text.readLine();
  System.out.println("Введите сумму: ");
  n = Integer.decode(Text.readLine());
  Univer.Viplata(A, n);
  }
  if (k == 4)
  {
  System.out.println("Введите имя сотрудника: ");
  A = Text.readLine();
  Univer.Dismiss(A);
  }
  if (k == 9)
  {
  System.out.println("1: Администраторы.");
  System.out.println("2: Преподаватели.");
  System.out.println("3: Студенты-бюджетники.");
  System.out.println("4: Студенты-платники.");
  System.out.println("5: Все.");
  n = Integer.decode(Text.readLine());
  if (n == 1)
  {
  Univer.ReportsAdm();
  }
  if (n == 2)
  {
  Univer.ReportsTeachers();
  }
  if (n == 3)
  {
  Univer.ReportsStdB();
  }
  if (n == 4)
  {
  Univer.ReportsStdP();
  }
  if (n == 5)
  {
  System.out.println("************Администраторы************");
  Univer.ReportsAdm();
  System.out.println("************Преподаватели*************");
  Univer.ReportsTeachers();
  System.out.println("**********Студенты-бюджетники*********");
  Univer.ReportsStdB();
  System.out.println("**********Студенты-платники***********");
  Univer.ReportsStdP();
  }
  }
  }
 }
}



public class Students_B 
{
 String Students_B_FIO;
 String BirthDay;
 String Podrazdelenie;
 String Sredni_Ball;
 String Stipendia;
 
 Students_B (String FIO, String Day, String Podr, String Ball, String Stip)
 {
  Students_B_FIO = FIO;
  BirthDay = Day;
  Podrazdelenie = Podr;
  Sredni_Ball = Ball;
  Stipendia = Stip;
 }
}



public class Students_P 
{
 String Students_P_FIO;
 String BirthDay;
 String Podrazdelenie;
 String Oplata_za_obuchenie;
 
 Students_P (String FIO, String Day, String Podr, String Oplata)
 {
  Students_P_FIO = FIO;
  BirthDay = Day;
  Podrazdelenie = Podr;
  Oplata_za_obuchenie = Oplata;
 }
}



public class Teachers 
{
 String Teachers_FIO;
 String BirthDay;
 String Podrazdelenie;
 String Dolzhnost;
 String Zarplata;
 String Predmet;
 String Stepen;
 
 Teachers (String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Predm, String Step)
 {
  Teachers_FIO = FIO;
  BirthDay = Day;
  Podrazdelenie = Podr;
  Dolzhnost = Dolzh;
  Zarplata = Zarpl;
  Predmet = Predm;
  Stepen = Step;
 }
}


import java.util.ArrayList;

public class University 

{
 ArrayList<Administration> Admins = new ArrayList<Administration>();
 ArrayList<Teachers> Teachs = new ArrayList<Teachers>();
 ArrayList<Students_B> StudB = new ArrayList<Students_B>();
 ArrayList<Students_P> StudP = new ArrayList<Students_P>();
 Otdel_Kadrov Kadr = new Otdel_Kadrov(); 
 Otdel_Buhgalt Buh = new Otdel_Buhgalt();
 
 void AddAdm(String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Stazh)
 {
  this.Admins.clear();
  Kadr.AddAdm(FIO, Day, Podr, Dolzh, Zarpl, Stazh);
  this.Admins.addAll(0, Kadr.Admins);
  Buh.Admins.clear();
  Buh.Admins.addAll(0, this.Admins);
 }
 
 void AddTeach (String FIO, String Day, String Podr, String Dolzh, String Zarpl, String Predm, String Step)
 {
  this.Teachs.clear();
  Kadr.AddTeach(FIO, Day, Podr, Dolzh, Zarpl, Predm, Step);
  this.Teachs.addAll(0, Kadr.Teachs);
  Buh.Teachs.clear();
  Buh.Teachs.addAll(0, this.Teachs);
 }
 
 void AddStudB (String FIO, String Day, String Podr, String Ball, String Stip)
 {
  this.StudB.clear();
  Kadr.AddStudB(FIO, Day, Podr, Ball, Stip);
  this.StudB.addAll(0, Kadr.StudB);
  Buh.StudB.clear();
  Buh.StudB.addAll(0, this.StudB);
 }
 
 void AddStudP(String FIO, String Day, String Podr, String Oplata)
 {
  this.StudP.clear();
  Kadr.AddStudP(FIO, Day, Podr, Oplata);
  this.StudP.addAll(0, Kadr.StudP);
 }
 
 void Dismiss(String Name)
 {
  this.Admins.clear();
  this.Teachs.clear();
  this.StudB.clear();
  this.StudP.clear();
  Kadr.Dismiss(Name);
  this.Admins.addAll(Kadr.Admins);
  this.Teachs.addAll(Kadr.Teachs);
  this.StudB.addAll(Kadr.StudB);
  this.StudP.addAll(Kadr.StudP);
 }
 
 boolean Search(String Name)
 {
  return Kadr.Search(Name);
 }
 
 void ReportsAdm()
 {
  Kadr.Adms.ReportsAdm();
 }
 
 void ReportsTeachers()
 {
  Kadr.Std.ReportsT();
 }
 
 void ReportsStdB()
 {
  Kadr.Std.ReportsSB();
 }
 
 void ReportsStdP()
 {
  Kadr.Std.ReportsSP();
 }
 
 void Viplata(String Name, int Summa)
 {
  Buh.Viplata(Name, Summa);
 }
}






Copyright MyCorp © 2024