From ecbc3bd81d8697efe706075e1fb660bb2acc8fb6 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Mon, 12 Dec 2016 16:01:14 +0200 Subject: [PATCH 1/3] Task with matrix done. --- .../changerequest/java/matrix/Matrix.java | 104 ++++++++++++++++++ .../changerequest/java/matrix/TestApp.java | 52 +++++++++ 2 files changed, 156 insertions(+) create mode 100644 src/main/java/school/lemon/changerequest/java/matrix/Matrix.java create mode 100644 src/main/java/school/lemon/changerequest/java/matrix/TestApp.java 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(); + + + + + + } +} From e055fb16ad3d4cea8934d3383e1450e27318b70b Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Sat, 7 Jan 2017 22:06:29 +0200 Subject: [PATCH 2/3] Done all classes, without method for Accountant --- .../java/employees/Accountant.java | 15 ++++++ .../changerequest/java/employees/Demo.java | 23 ++++++++ .../java/employees/Employee.java | 52 +++++++++++++++++++ .../changerequest/java/employees/Manager.java | 10 ++++ .../java/employees/Programmer.java | 15 ++++++ 5 files changed, 115 insertions(+) create mode 100644 src/main/java/school/lemon/changerequest/java/employees/Accountant.java create mode 100644 src/main/java/school/lemon/changerequest/java/employees/Demo.java create mode 100644 src/main/java/school/lemon/changerequest/java/employees/Employee.java create mode 100644 src/main/java/school/lemon/changerequest/java/employees/Manager.java create mode 100644 src/main/java/school/lemon/changerequest/java/employees/Programmer.java 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..9bd29e2 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Accountant.java @@ -0,0 +1,15 @@ +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) { + 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..96a1c04 --- /dev/null +++ b/src/main/java/school/lemon/changerequest/java/employees/Demo.java @@ -0,0 +1,23 @@ +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(80); + System.out.println(programmer); + + Manager manager = new Manager("Bob"); + manager.setSalary(100); + manager.working(80); + System.out.println(manager); + + Accountant accountant = new Accountant("Gloria"); + accountant.setSalary(100); + accountant.working(320); + System.out.println(accountant); + } +} 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()); + } +} From 3990f4f6ea8c755fff66203f94e294f32d61fe50 Mon Sep 17 00:00:00 2001 From: Yaroslav Pavlinskiy Date: Sat, 7 Jan 2017 22:24:37 +0200 Subject: [PATCH 3/3] All done. --- .../lemon/changerequest/java/employees/Accountant.java | 5 ++++- .../school/lemon/changerequest/java/employees/Demo.java | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/school/lemon/changerequest/java/employees/Accountant.java b/src/main/java/school/lemon/changerequest/java/employees/Accountant.java index 9bd29e2..a24e578 100644 --- a/src/main/java/school/lemon/changerequest/java/employees/Accountant.java +++ b/src/main/java/school/lemon/changerequest/java/employees/Accountant.java @@ -9,7 +9,10 @@ public class Accountant extends Employee { } 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 index 96a1c04..84bbebd 100644 --- a/src/main/java/school/lemon/changerequest/java/employees/Demo.java +++ b/src/main/java/school/lemon/changerequest/java/employees/Demo.java @@ -7,17 +7,19 @@ public class Demo { public static void main(String[] args) { Programmer programmer = new Programmer("Stiv"); programmer.setSalary(100); - programmer.working(80); + programmer.working(320); System.out.println(programmer); Manager manager = new Manager("Bob"); manager.setSalary(100); - manager.working(80); + 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)); } }