From 863a001f64bab89b85062ec63c2e4605547ade81 Mon Sep 17 00:00:00 2001 From: tisit Date: Wed, 19 Mar 2025 14:38:27 +0300 Subject: [PATCH] task 2 --- ._.git | Bin 4096 -> 0 bytes ._.gitignore | Bin 4096 -> 0 bytes ._.idea | Bin 4096 -> 0 bytes ._lab2.iml | Bin 4096 -> 0 bytes ._out | Bin 4096 -> 0 bytes ._src | Bin 4096 -> 0 bytes ._отчет лб 2.docx | Bin 4096 -> 0 bytes .idea/._.gitignore | Bin 4096 -> 0 bytes .idea/._misc.xml | Bin 4096 -> 0 bytes .idea/._modules.xml | Bin 4096 -> 0 bytes .idea/vcs.xml | 6 +++ src/._MyDate.java | Bin 4096 -> 0 bytes src/Main.java | 43 ++++++++++++++++++++- src/base/Scientist.java | 66 ++++++++++++++++++++++++++++++++ src/engineer/Engineer.java | 16 ++++++++ src/junior/JuniorScientist.java | 16 ++++++++ src/senior/SeniorScientist.java | 16 ++++++++ 17 files changed, 161 insertions(+), 2 deletions(-) delete mode 100644 ._.git delete mode 100644 ._.gitignore delete mode 100644 ._.idea delete mode 100644 ._lab2.iml delete mode 100644 ._out delete mode 100644 ._src delete mode 100644 ._отчет лб 2.docx delete mode 100644 .idea/._.gitignore delete mode 100644 .idea/._misc.xml delete mode 100644 .idea/._modules.xml create mode 100644 .idea/vcs.xml delete mode 100644 src/._MyDate.java create mode 100644 src/base/Scientist.java create mode 100644 src/engineer/Engineer.java create mode 100644 src/junior/JuniorScientist.java create mode 100644 src/senior/SeniorScientist.java diff --git a/._.git b/._.git deleted file mode 100644 index b71a66a1641a5d5ff748332322e25a5b74fa030e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 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 + + + + + \ No newline at end of file diff --git a/src/._MyDate.java b/src/._MyDate.java deleted file mode 100644 index b71a66a1641a5d5ff748332322e25a5b74fa030e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vf+zv$ zV3+~K+-O=D5#plB`MG+D1qC^&dId%KWvO|IdC92^j7$v2KF^nnUm53wrgfA%8Umvs zFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O*h2u+*#u!QkPFGkELJE=EzU13N={Ws y%P-1S$jmEA%`3^w&r8h7sZ_{GO)F7I%1O-22KI%ax`s4`>VLRbWEkZB{|5jO2q 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; + } +}