diff --git a/src/main/java/school/lemon/changerequest/java/employees/Accountant.java b/src/main/java/school/lemon/changerequest/java/employees/Accountant.java new file mode 100644 index 0000000..a24e578 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Accountant.java @@ -0,0 +1,18 @@ +package school.lemon.changerequest.java.employees; + +/** + * Created by Yaroslav Pavlinskiy on 06.01.2017. + */ +public class Accountant extends Employee { + Accountant(String name) { + super(name); + } + + public double calculateSalaryForEmployee(Employee e) { + if(e instanceof Programmer || e instanceof Manager || e instanceof Accountant) + { + return e.calculateSalary(); + } + return 0; + } +} diff --git a/src/main/java/school/lemon/changerequest/java/employees/Demo.java b/src/main/java/school/lemon/changerequest/java/employees/Demo.java new file mode 100644 index 0000000..84bbebd --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Demo.java @@ -0,0 +1,25 @@ +package school.lemon.changerequest.java.employees; + +/** + * Created by Yaroslav Pavlinskiy on 06.01.2017. + */ +public class Demo { + public static void main(String[] args) { + Programmer programmer = new Programmer("Stiv"); + programmer.setSalary(100); + programmer.working(320); + System.out.println(programmer); + + Manager manager = new Manager("Bob"); + manager.setSalary(100); + manager.working(320); + System.out.println(manager); + + Accountant accountant = new Accountant("Gloria"); + accountant.setSalary(100); + accountant.working(320); + System.out.println(accountant); + + System.out.println(accountant.calculateSalaryForEmployee(manager)); + } +} diff --git a/src/main/java/school/lemon/changerequest/java/employees/Employee.java b/src/main/java/school/lemon/changerequest/java/employees/Employee.java new file mode 100644 index 0000000..6149417 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Employee.java @@ -0,0 +1,52 @@ +package school.lemon.changerequest.java.employees; + +/** + * Created by Yaroslav Pavlinskiy on 06.01.2017. + */ +public abstract class Employee { + public final int HOURS_PER_MONTH = 160; + private String name; + private double salary; + private int hours; + + Employee(String name) + { + this.name = name; + } + + public String getName() { + return name; + } + + public double getSalary() { + return salary; + } + + public int getHours() { + return hours; + } + + public void setSalary(double salary) + { + this.salary = salary; + } + + public void working(int hours) + { + this.hours += hours; + } + + public double calculateSalary() + { + if(this.hours >= HOURS_PER_MONTH) + return salary; + return salary/(HOURS_PER_MONTH/hours); + } + + @Override + public String toString() { + return String.format("%s with salary %s $ worked %s hours -> salary %s $",getName(),getSalary(),getHours(),calculateSalary()); + } + + +} diff --git a/src/main/java/school/lemon/changerequest/java/employees/Manager.java b/src/main/java/school/lemon/changerequest/java/employees/Manager.java new file mode 100644 index 0000000..499fd4e --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Manager.java @@ -0,0 +1,10 @@ +package school.lemon.changerequest.java.employees; + +/** + * Created by Yaroslav Pavlinskiy on 06.01.2017. + */ +public class Manager extends Employee { + Manager(String name) { + super(name); + } +} diff --git a/src/main/java/school/lemon/changerequest/java/employees/Programmer.java b/src/main/java/school/lemon/changerequest/java/employees/Programmer.java new file mode 100644 index 0000000..0bd5fce --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Programmer.java @@ -0,0 +1,15 @@ +package school.lemon.changerequest.java.employees; + +/** + * Created by Yaroslav Pavlinskiy on 06.01.2017. + */ +public class Programmer extends Employee { + Programmer(String name) { + super(name); + } + + @Override + public double calculateSalary() { + return (double)getHours()/((double)HOURS_PER_MONTH / getSalary()); + } +} diff --git a/src/main/java/school/lemon/changerequest/java/matrix/Matrix.java b/src/main/java/school/lemon/changerequest/java/matrix/Matrix.java new file mode 100644 index 0000000..fcfdad1 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/matrix/Matrix.java @@ -0,0 +1,104 @@ +package school.lemon.changerequest.java.matrix; + +/** + * Created by Yaroslav Pavlinskiy on 12.12.2016. + */ +public class Matrix { + + private final int Rows; // count Rows + private final int Columns; // count Columns + private final int[][] data; // 2d array for matrix + + public Matrix(int R,int C)// Constructor with Rows and Columns + { + this.Rows = R; + this.Columns = C; + this.data = new int[R][C]; + } + + public Matrix(int[][]data) //Constructor 2d array + { + this.Rows = data.length; + this.Columns = data[0].length; + this.data = data; + } + private Matrix(Matrix A) { this(A.data); } + + public Matrix AddMatrix(Matrix B) // Method that adding matrix A and B + { + return Calculate(B,'+'); + } + + public Matrix SubtractMatrix(Matrix B) + { + return Calculate(B,'-'); + } + + public Matrix MultiplyNumber(int n) + { + Matrix A = this; + Matrix C = new Matrix(Rows, Columns); + for (int i = 0; i < Rows; i++) + for (int j = 0; j < Columns; j++) + C.data[i][j] = A.data[i][j] * n; + return C; + } + + public Matrix MultiplyMatrix(Matrix B) + { + return Calculate(B,'*'); + } + + public Matrix Transpose() + { + Matrix A = this; + Matrix C = new Matrix(Rows,Columns); + for (int i = 0; i < Rows; i++) + for (int j = 0; j < Columns; j++) + C.data[i][j] = A.data[j][i]; + return C; + } + + public Matrix Calculate(Matrix B,char d) + { + Matrix A = this; + if (B.Rows != A.Rows || B.Columns != A.Columns) return null; + Matrix C = new Matrix(Rows, Columns); + switch (d) + { + case '*': + for (int i = 0; i < Rows; i++) + for (int j = 0; j < Columns; j++) + C.data[i][j] = A.data[i][j] * B.data[i][j]; + break; + case '+': + for (int i = 0; i < Rows; i++) + for (int j = 0; j < Columns; j++) + C.data[i][j] = A.data[i][j] + B.data[i][j]; + break; + case '-': + for (int i = 0; i < Rows; i++) + for (int j = 0; j < Columns; j++) + C.data[i][j] = A.data[i][j] - B.data[i][j]; + break; + + } + + return C; + } + + @Override + public String toString() { + for(int i = 0; i < Rows;i++) + { + for(int j = 0; j < Columns;j++) + { + System.out.print(data[i][j]+" "); + } + System.out.println(); + } + System.out.println("------------"); + return ""; + } + +} diff --git a/src/main/java/school/lemon/changerequest/java/matrix/TestApp.java b/src/main/java/school/lemon/changerequest/java/matrix/TestApp.java new file mode 100644 index 0000000..de49e53 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/matrix/TestApp.java @@ -0,0 +1,52 @@ +package school.lemon.changerequest.java.matrix; +import java.io.*; +/** + * Created by Yaroslav Pavlinskiy on 12.12.2016. + */ +public class TestApp { + + public static void main(String[] args) { + TestApp app = new TestApp(); + + int[][]A = new int[2][2];//initialization matrix A + int[][]B = new int[2][2];//initialization matrix + + A[0][0] = 4; + A[0][1] = 2; + A[1][0] = 9; + A[1][1] = 0; + + B[0][0] = 3; + B[0][1] = 1; + B[1][0] = -3; + B[1][1] = 4; + + Matrix a = new Matrix(A); + System.out.println("Matrix A:"); + a.toString(); + + Matrix b = new Matrix(B); + System.out.println("Matrix B:"); + b.toString(); + + System.out.println("Matrix Add:"); + a.AddMatrix(b).toString(); + + System.out.println("Matrix Subtract:"); + a.SubtractMatrix(b).toString(); + + System.out.println("MultiplayNumber:"); + a.MultiplyNumber(2).toString(); + + System.out.println("MultiplayMatrix:"); + a.MultiplyMatrix(b).toString(); + + System.out.println("Transpose Matrix:"); + a.Transpose().toString(); + + + + + + } +}