diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..38090f3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +out/* \ No newline at end of file diff --git a/data/employees.txt b/data/employees.txt new file mode 100644 index 0000000..aa58b63 --- /dev/null +++ b/data/employees.txt @@ -0,0 +1,50 @@ +Name: Tracy +Email: tracy@company.com +Age: 55 +Salay: 15935 +____________________ +Name: Katherine +Email: katherine@company.com +Age: 20 +Salay: 22936 +____________________ +Name: Hank +Email: hank@company.com +Age: 25 +Salay: 21591 +____________________ +Name: Tracy +Email: tracy@company.com +Age: 45 +Salay: 18603 +____________________ +Name: Alice +Email: alice@company.com +Age: 47 +Salay: 19556 +____________________ +Name: Grace +Email: grace@company.com +Age: 59 +Salay: 15204 +____________________ +Name: Olivia +Email: olivia@company.com +Age: 28 +Salay: 15838 +____________________ +Name: Rachel +Email: rachel@company.com +Age: 65 +Salay: 20000 +____________________ +Name: Tracy +Email: tracy@company.com +Age: 56 +Salay: 15368 +____________________ +Name: Katherine +Email: katherine@company.com +Age: 29 +Salay: 18403 +____________________ diff --git a/src/Employee.java b/src/Employee.java new file mode 100644 index 0000000..f062ed7 --- /dev/null +++ b/src/Employee.java @@ -0,0 +1,45 @@ +public class Employee { + private String name; + private String email; + private int age; + private int salary; + + public Employee(String name, String email, int age, int salary) { + setName(name); + setEmail(email); + setAge(age); + setSalary(salary); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public int getSalary() { + return salary; + } + + public void setSalary(int salary) { + this.salary = salary; + } +} diff --git a/src/Intern.java b/src/Intern.java new file mode 100644 index 0000000..6a5a951 --- /dev/null +++ b/src/Intern.java @@ -0,0 +1,17 @@ +public class Intern extends Employee { + public Intern(String name, String email, int age, int salary) { + super(name, email, age, salary); + } + + @Override + public void setSalary(int salary) { + final int MAX_SALARY_INTERN = 20000; + + if(salary > MAX_SALARY_INTERN) { + System.out.println("Warning: Intern '" + this.getName() + "' salary exceeds the maximum allowed value. Salary set to 'MAX_SALARY_INTERN' = " + MAX_SALARY_INTERN); + super.setSalary(MAX_SALARY_INTERN); + } else { + super.setSalary(salary); + } + } +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..4256c01 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,61 @@ +import java.io.FileWriter; +import java.io.IOException; +import java.util.Random; + +public class Main { + public static void main(String[] args) throws IOException { + Employee[] employeesArr = new Employee[10]; + + FileWriter writer = new FileWriter("data/employees.txt", false); + + for (int i = 0; i < employeesArr.length; i++) { + final String name = generateRandomName(); + + if (i < 5) { + employeesArr[i] = new Employee(name, generateRandomEmail(name), generateRandomAge(), generateRandomSalary()); + } else { + employeesArr[i] = new Intern(name, generateRandomEmail(name), generateRandomAge(), generateRandomSalary()); + } + + writer.write("Name: " + employeesArr[i].getName() + "\n"); + writer.write("Email: " + employeesArr[i].getEmail() + "\n"); + writer.write("Age: " + employeesArr[i].getAge() + "\n"); + writer.write("Salay: " + employeesArr[i].getSalary() + "\n"); + writer.write("____________________ \n"); + } + + writer.close(); + } + + private static String generateRandomName() { + final String[] names = { + "Alice", "Bob", "Charlie", "David", "Eva", "Frank", "Grace", + "Hank", "Ivy", "Jack", "Katherine", "Leo", "Mia", "Nathan", + "Olivia", "Peter", "Quincy", "Rachel", "Samuel", "Tracy" + }; + + Random random = new Random(); + return names[random.nextInt(names.length)]; + } + + private static String generateRandomEmail(String name) { + return name.toLowerCase() + "@company.com"; + } + + private static int generateRandomAge() { + final int minValue = 18; + final int maxValue = 67; + + Random random = new Random(); + return random.nextInt(maxValue - minValue + 1) + minValue; + } + + private static int generateRandomSalary() { + final int minValue = 15000; + final int maxValue = 25000; + + Random random = new Random(); + return random.nextInt(maxValue - minValue + 1) + minValue; + } + +}