diff --git a/._.git b/._.git
deleted file mode 100644
index b71a66a..0000000
Binary files a/._.git and /dev/null differ
diff --git a/._.gitignore b/._.gitignore
deleted file mode 100644
index b71a66a..0000000
Binary files a/._.gitignore and /dev/null differ
diff --git a/._.idea b/._.idea
deleted file mode 100644
index b71a66a..0000000
Binary files a/._.idea and /dev/null differ
diff --git a/._lab2.iml b/._lab2.iml
deleted file mode 100644
index b71a66a..0000000
Binary files a/._lab2.iml and /dev/null differ
diff --git a/._out b/._out
deleted file mode 100644
index b71a66a..0000000
Binary files a/._out and /dev/null differ
diff --git a/._src b/._src
deleted file mode 100644
index b71a66a..0000000
Binary files a/._src and /dev/null differ
diff --git a/._отчет лб 2.docx b/._отчет лб 2.docx
deleted file mode 100644
index 27de555..0000000
Binary files a/._отчет лб 2.docx and /dev/null differ
diff --git a/.idea/._.gitignore b/.idea/._.gitignore
deleted file mode 100644
index b71a66a..0000000
Binary files a/.idea/._.gitignore and /dev/null differ
diff --git a/.idea/._misc.xml b/.idea/._misc.xml
deleted file mode 100644
index b71a66a..0000000
Binary files a/.idea/._misc.xml and /dev/null differ
diff --git a/.idea/._modules.xml b/.idea/._modules.xml
deleted file mode 100644
index b71a66a..0000000
Binary files a/.idea/._modules.xml and /dev/null differ
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/._MyDate.java b/src/._MyDate.java
deleted file mode 100644
index b71a66a..0000000
Binary files a/src/._MyDate.java and /dev/null differ
diff --git a/src/Main.java b/src/Main.java
index 3e59c38..ec9abd6 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -1,5 +1,44 @@
+import base.Scientist;
+import senior.SeniorScientist;
+import junior.JuniorScientist;
+import engineer.Engineer;
+
+import java.util.ArrayList;
+
public class Main {
public static void main(String[] args) {
- System.out.println("Hello world!");
+ Scientist s1 = new SeniorScientist(1000, 10);
+ Scientist s2 = new SeniorScientist(1000, 10); // дубликат s1
+ Scientist j1 = new JuniorScientist(800, 5);
+ Scientist j2 = new JuniorScientist(900, 6);
+ Scientist j3 = new JuniorScientist(800, 5); // дубликат j1
+ Scientist e1 = new Engineer(700, 4);
+ Scientist e2 = new Engineer(700, 4); // дубликат e1
+ Scientist e3 = new Engineer(750, 3);
+ Scientist s3 = new SeniorScientist(1100, 8);
+ Scientist j4 = new JuniorScientist(950, 7);
+
+ // Формирование списка уникальных объектов типа Scientist
+ ArrayList uniqueScientists = new ArrayList<>();
+
+ Scientist[] allScientists = { s1, s2, j1, j2, j3, e1, e2, e3, s3, j4 };
+
+ for (Scientist sc : allScientists) {
+ if (!uniqueScientists.contains(sc)) {
+ uniqueScientists.add(sc);
+ }
+ }
+
+ // В случае если уникальных объектов больше 9, выводим первые 9
+ int count = Math.min(uniqueScientists.size(), 9);
+
+ System.out.println("Величина надбавок и общая зарплата для уникальных научных сотрудников:");
+ for (int i = 0; i < count; i++) {
+ Scientist sc = uniqueScientists.get(i);
+ double bonus = sc.computeBonus();
+ double totalSalary = sc.getSalary() + bonus;
+ System.out.println("Объект " + (i+1) + ": " +
+ "Надбавка = " + bonus + ", Общая зарплата = " + totalSalary);
+ }
}
-}
\ No newline at end of file
+}
diff --git a/src/base/Scientist.java b/src/base/Scientist.java
new file mode 100644
index 0000000..c14cf96
--- /dev/null
+++ b/src/base/Scientist.java
@@ -0,0 +1,66 @@
+package base;
+
+public abstract class Scientist {
+ protected double salary;
+ protected int seniority;
+
+ public Scientist(double salary, int seniority) {
+ this.salary = salary;
+ this.seniority = seniority;
+ }
+
+ public double getSalary() {
+ return salary;
+ }
+
+ public void setSalary(double salary) {
+ this.salary = salary;
+ }
+
+ public int getSeniority() {
+ return seniority;
+ }
+
+ public void setSeniority(int seniority) {
+ this.seniority = seniority;
+ }
+
+ // Абстрактный метод вычисления надбавки
+ public abstract double computeBonus();
+
+ // Дополнительные методы
+ public void hire() {
+ System.out.println("Научный сотрудник принят на работу.");
+ }
+
+ public void fire() {
+ System.out.println("Научный сотрудник уволен.");
+ }
+
+ public void transfer() {
+ System.out.println("Научный сотрудник перемещён на новую должность.");
+ }
+
+ public void accrueSalary() {
+ double bonus = computeBonus();
+ double totalSalary = salary + bonus;
+ System.out.println("Начислена зарплата: " + totalSalary +
+ " (ставка: " + salary + ", надбавка: " + bonus + ")");
+ }
+
+ // Переопределение equals() и hashCode() для проверки уникальности
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Scientist scientist = (Scientist) o;
+ return Double.compare(scientist.salary, salary) == 0 &&
+ seniority == scientist.seniority;
+ }
+
+ @Override
+ public int hashCode() {
+ return java.util.Objects.hash(getClass(), salary, seniority);
+ }
+}
diff --git a/src/engineer/Engineer.java b/src/engineer/Engineer.java
new file mode 100644
index 0000000..6141843
--- /dev/null
+++ b/src/engineer/Engineer.java
@@ -0,0 +1,16 @@
+package engineer;
+
+import base.Scientist;
+
+public class Engineer extends Scientist {
+
+ public Engineer(double salary, int seniority) {
+ super(salary, seniority);
+ }
+
+ @Override
+ public double computeBonus() {
+ double x = 0.01;
+ return salary * seniority * x;
+ }
+}
diff --git a/src/junior/JuniorScientist.java b/src/junior/JuniorScientist.java
new file mode 100644
index 0000000..53a1698
--- /dev/null
+++ b/src/junior/JuniorScientist.java
@@ -0,0 +1,16 @@
+package junior;
+
+import base.Scientist;
+
+public class JuniorScientist extends Scientist {
+
+ public JuniorScientist(double salary, int seniority) {
+ super(salary, seniority);
+ }
+
+ @Override
+ public double computeBonus() {
+ double x = 0.02;
+ return salary * seniority * x;
+ }
+}
diff --git a/src/senior/SeniorScientist.java b/src/senior/SeniorScientist.java
new file mode 100644
index 0000000..9997858
--- /dev/null
+++ b/src/senior/SeniorScientist.java
@@ -0,0 +1,16 @@
+package senior;
+
+import base.Scientist;
+
+public class SeniorScientist extends Scientist {
+
+ public SeniorScientist(double salary, int seniority) {
+ super(salary, seniority);
+ }
+
+ @Override
+ public double computeBonus() {
+ double x = 0.03;
+ return salary * seniority * x;
+ }
+}