Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.89 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.ArrayList;
  3.  
  4. public class Main {
  5.     Scanner scan = new Scanner(System.in);
  6.     ArrayList <Data> listData = new ArrayList<>();
  7.    
  8.     public Main() {
  9.         int menu = -1;
  10.        
  11.         do {
  12.             showmenu();
  13.             menu = scanInteger();
  14.            
  15.             switch(menu) {
  16.             case 1:
  17.                 String name;
  18.                 do {
  19.                     System.out.print("Input employee name[must be more than 3 characters]: ");
  20.                     name = scan.nextLine();
  21.                 }while(!(name.length() > 2));
  22.                
  23.                 Integer age;
  24.                 do {
  25.                     System.out.print("Input employee age[>= 17]: ");
  26.                     age = scanInteger();
  27.                 }while(!(age >= 17));
  28.                
  29.                 String role;
  30.                 do {
  31.                     System.out.print("Input employee role[Assistant | Programmer]: ");
  32.                     role = scan.nextLine();
  33.                 }while(!(role.equals("Assistant") || role.equals("Programmer")));
  34.                
  35.                 String type;
  36.                 int which = 0;
  37.                 do {
  38.                     System.out.print("Input employee type[PartTime | FullTime]: ");
  39.                     type = scan.nextLine();
  40.                     if (type.equals("PartTime")) {
  41.                         which = 1;
  42.                         break;
  43.                     } else if (type.equals("FullTime")) {
  44.                         which = 2;
  45.                         break;
  46.                     }
  47.                 }while(!(type.equals("PartTime") || type.equals("FullTime")));
  48.                
  49.                 if(which == 1) {
  50.                     PartTime pt = new PartTime(name, age, role, type);
  51.                     Integer wpay;
  52.                     do {
  53.                         System.out.print("Input pay per hour[>= 10000]: ");
  54.                         wpay = scanInteger();
  55.                     }while(!(wpay >= 10000));
  56.                     Integer whour;
  57.                     do {
  58.                         System.out.print("Input working hour per week[>0]: ");
  59.                         whour = scanInteger();
  60.                     }while(!(whour > 0));
  61.                    
  62.                     pt.setWhour(whour);
  63.                     pt.setWpay(wpay);
  64.                     listData.add(pt);
  65.                    
  66.                 }else {
  67.                     FullTime ft = new FullTime(name, age, role, type);
  68.                     Integer salary;
  69.                     do {
  70.                         System.out.print("Input base salary[>= 10000]: ");
  71.                         salary = scanInteger();
  72.                     }while(!(salary >= 10000));
  73.                    
  74.                     ft.setSalary(salary);
  75.                     listData.add(ft);
  76.                 }
  77.                 System.out.println();
  78.                 System.out.println("Success insert employee data");
  79.                 done();
  80.                 break;
  81.             case 2:
  82.                 if(listData.isEmpty()) {
  83.                     none();
  84.                 }else {
  85.                     showData();
  86.                     done();
  87.                 }
  88.                 break;
  89.             case 3:
  90.                 if(listData.isEmpty()) {
  91.                     none();
  92.                 }else {
  93.                     showData();
  94.                     Data tempData = getData();         
  95.                     tempData.setState(true);
  96.                     done();
  97.                 }
  98.             }
  99.         }while(menu != 4);
  100.     }
  101.    
  102.     public void showmenu() {
  103.         System.out.println("ABC EMPLOYEE DATA");
  104.         System.out.println("=================");
  105.         System.out.print("1. Add employee\r\n" +
  106.                 "2. View employee\r\n" +
  107.                 "3. Resign\r\n" +
  108.                 "4. Exit\r\n" +
  109.                 "");
  110.    
  111.         System.out.print("Choice: ");
  112.         }
  113.    
  114.     public void showData() {
  115.         for(int i = 0; i<listData.size(); i++) {
  116.             System.out.println("Employee no." + (i+1));
  117.             if(listData.get(i).getType().equals("PartTime")) {
  118.                 System.out.println("Part Time Employee");
  119.             }else {
  120.                 System.out.println("Full Time Employee");
  121.             }
  122.             System.out.println("==================");
  123.             if(listData.get(i).isState()) {
  124.                 System.out.println("Status: not active");
  125.             }else {
  126.                 System.out.println("Status: active");
  127.             }
  128.             System.out.println("Name: " + listData.get(i).getName());
  129.             System.out.println("Age: " + listData.get(i).getAge());
  130.             System.out.println("Role: " + listData.get(i).getRole());
  131.             if(listData.get(i).getType().equals("PartTime")){
  132.                 PartTime pt = (PartTime) listData.get(i);
  133.                 System.out.println("Pay per hour: " + pt.getWpay());
  134.                 System.out.println("Working hour per week: " + pt.getWhour());
  135.                 System.out.println("Salary per month: " + (pt.getWpay()*pt.getWhour()*4));
  136.             }else {
  137.                 FullTime ft = (FullTime) listData.get(i);
  138.                 System.out.println("Base salary per month: " + ft.getSalary());
  139.             }
  140.             System.out.println();
  141.         }
  142.     }
  143.    
  144.     public Data getData() {
  145.         int number = -1;
  146.         do {
  147.             System.out.print("Input employee number that want to resign[1.." + listData.size() + "]: ");
  148.             number = scanInteger();
  149.         }while(!(number > 0 || number <= listData.size()));
  150.        
  151.         if(listData.get(number-1).isState()==false) {
  152.             System.out.println();
  153.             System.out.println(listData.get(number-1).getName() + " is resigning...");
  154.         }else {
  155.             System.out.println();
  156.             System.out.println("Employee has already resigned!");
  157.         }
  158.         return listData.get(number-1);
  159.     }
  160.    
  161.     public void done() {
  162.         System.out.println();
  163.         System.out.println("Press any key to continue...");
  164.         scan.nextLine();
  165.         }
  166.    
  167.     public void none() {
  168.         System.out.println("There is no employee in the list");
  169.         scan.nextLine();
  170.     }
  171.    
  172.     public int scanInteger() {
  173.         int number = -1;
  174.         try {
  175.             number = scan.nextInt();
  176.         }catch (Exception e){
  177.             System.out.println("Input should be number!");
  178.             number = -1;
  179.         }
  180.         scan.nextLine();
  181.         return number;
  182.     }
  183.     public static void main(String[] args) {
  184.         new Main();
  185.  
  186.     }
  187.  
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement