2015-09-14 8 views
0

Это основной практический вопрос Java, который я видел, но я хотел бы сделать его более заметным и включить в него функции, которые спрашивают пользователя, хотят ли они изменять информацию сотрудника, и если да, то какой, а затем применить запрошенную изменения для сотрудника и отображение обновленной информации о сотрудниках еще раз.Как я могу спросить пользователя, хотят ли они изменить информацию, а затем применить изменение?

Вот мой код до сих пор:

public class Employee 
{ 
    private String firstName; 
    private String lastName; 
    private double monthlySalary; 
    private String decision; 

    // constructor to initialize first name, last name and monthly salary 
    public Employee(String first, String last, double salary) 
    { 
    firstName = first; 
    lastName = last; 

     if (salary >= 0.0) // determine whether salary is positive 
      monthlySalary = salary; 
    } // end three-argument Employee constructor 

    // set Employee's first name 
    public void setFirstName(String first) 
    { 
     firstName = first; 
    } // end method setFirstName 

    // get Employee's first name 
    public String getFirstName() 
    { 
     return firstName; 
    } // end method getFirstName 

    // set Employee's last name 
    public void setLastName(String last) 
    { 
     lastName = last; 
    } // end method setLastName 

    // get Employee's last name 
    public String getLastName() 
    { 
     return lastName; 
    } // end method getLastName 

    // set Employee's monthly salary 
    public void setMonthlySalary(double salary) 
    { 
     if (salary >= 0.0) // determine whether salary is positive 
      monthlySalary = salary; 
    } // end method setMonthlySalary 

    // get Employee's monthly salary 
    public double getMonthlySalary() 
    { 
     return monthlySalary; 
    } // end method getMonthlySalary 

    // set Employee's new monthly salary 
    public void setNewMonthlySalary(double salary) 
    { 
     monthlySalary = salary; 
    } // end method setMonthlySalary 

    // get Employee's new monthly salary 
    public double getNewMonthlySalary() 
    { 
     return monthlySalary; 
    } // end method getMonthlySalary 

} // end class Employee 

и класс EmployeeTest

import java.util.Scanner; 

public class EmployeeTest 
{ 

    public static void main(String args[]) 
    { 
     Employee employee1 = new Employee("Bo", "Jackson", 8875.00); 
     Employee employee2 = new Employee("Cam", "Newton", 13150.75); 
     // create Scanner to obtain input from command window 
     Scanner input = new Scanner(System.in); 

     // display employees 
     System.out.printf("Employee 1: %s %s; Yearly Salary: %.2f\n", 
       employee1.getFirstName(), employee1.getLastName(), 
       12 * employee1.getMonthlySalary()); 
     System.out.printf("Employee 2: %s %s; Yearly Salary: %.2f\n", 
       employee2.getFirstName(), employee2.getLastName(), 
       12 * employee2.getMonthlySalary()); 

     // enter new employee salaries 
     System.out.println("Enter " + employee1.getFirstName() + "'s new salary:"); 
     double newSalary1 = input.nextDouble(); 
     employee1.setNewMonthlySalary(newSalary1); 
     System.out.println("Enter " + employee2.getFirstName() + "'s new salary:"); 
     double newSalary2 = input.nextDouble(); 
     employee2.setNewMonthlySalary(newSalary2); 

     // display employees with new yearly salary 
     System.out.printf("Employee 1: %s %s; Yearly Salary: %.2f\n", 
       employee1.getFirstName(), employee1.getLastName(), 
       12 * newSalary1); 
     System.out.printf("Employee 2: %s %s; Yearly Salary: %.2f\n", 
       employee2.getFirstName(), employee2.getLastName(), 
       12 * newSalary2); 
    } // end main 

} // end class EmployeeTest 

После отображения информации о сотрудниках, я хотел бы предложить пользователю выбрать, будет ли или не внести изменения к зарплате работника. Если да, то какой сотрудник. После внесения изменений я хотел бы отобразить измененные результаты. Каким будет самый простой способ справиться с этим?

+3

Подумайте об использовании некоторых методов, таких как «displayEmployee», «newEmployee», «updateEmployee», это, вероятно, поможет вам разобраться. –

+0

Мне действительно интересно, должен ли я использовать инструкцию if или switch? Вам не нужна помощь в названии методов. Если бы я мог получить пример инструкции if, которая завершила бы четыре шага: 1) предложит пользователю ввести да или нет; 2) затем, если да, попросите пользователя выбрать сотрудника одного или сотрудника два; 3), то, как только работник выбран, они могут изменить зарплату; 4) затем отобразите новую зарплату. – NOSDUH

+0

Мне кажется, что вам интересно, может ли кто-нибудь сделать домашнее задание. Вы должны «попробовать что-то» (допустим, используя 'if', потому что * правило * 2 выбора =>' if', more choice => 'switch'), затем спросите, есть ли у вас какая-либо конкретная проблема. Удачи. –

ответ

0

После некоторой настройки на мои вложенные заявления ifs я выяснил, как добиться того, что я искал. Я не могу сказать, что искал ответы на домашние задания, поскольку я больше не в школе. Я просто искал более простой способ достичь своей цели, пройдя путь наименьшего сопротивления ... кое-что, что сделало бы кодирование проще и более кратким. Хотя мой ответ немного громозднее, чем мне хотелось бы, он все равно выполнит эту задачу. Я буду работать больше, чтобы улучшить приложение, но вот что я придумал:

import java.util.Scanner; 
import javax.swing.JOptionPane; 
import javax.swing.JDialog; 

public class EmployeeTest 
{ 

    public static void main(String args[]) 
    { 
     // create Scanner to obtain input from command window 
     Scanner input = new Scanner(System.in); 
     Employee employee1 = new Employee("Bo", "Jackson", 8875.00); 
     Employee employee2 = new Employee("Cam", "Newton", 13150.75); 

     // display employees 
     System.out.printf("Employee 1: %s %s; Yearly Salary: %.2f\n", 
       employee1.getFirstName(), employee1.getLastName(), 
       12 * employee1.getMonthlySalary()); 
     System.out.printf("Employee 2: %s %s; Yearly Salary: %.2f\n", 
       employee2.getFirstName(), employee2.getLastName(), 
       12 * employee2.getMonthlySalary()); 

     JDialog.setDefaultLookAndFeelDecorated(true); 
     int response1 = JOptionPane.showConfirmDialog(null, "Do you wnat to change an employee's salary?", 
       "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); 

      if (response1 == JOptionPane.NO_OPTION)// if NO is clicked 
      { 
       System.out.println("See you next time"); 
      } else if (response1 == JOptionPane.YES_OPTION)// if YES is clicked 
      { 
       // option to change the salary for employee 1 
       int response2 = JOptionPane.showConfirmDialog(null, "Would you like to change " + employee1.getFirstName() + " " + employee1.getLastName() + "'s salary:", 
         "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); 
       if (response2 == JOptionPane.NO_OPTION)// if NO is clicked 
       { 
        // option to change the salary for employee 2 
        int response3 = JOptionPane.showConfirmDialog(null, "Would you like to change " + employee2.getFirstName() + " " + employee2.getLastName() + "'s salary:", 
          "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); 
        if (response3 == JOptionPane.NO_OPTION) 
          { 
           System.out.println("See you next time"); 
          } else if (response3 == JOptionPane.YES_OPTION)// if YES is clicked 
          { 
           // enter new salary for employee 2 
           System.out.println("Enter " + employee2.getFirstName() + " " + employee2.getLastName() + "'s new salary:"); 
           double newSalary2 = input.nextDouble(); 
           employee2.setNewMonthlySalary(newSalary2); 

           // display unchanged salary for employee 1 
           System.out.printf("Employee 1: %s %s; Yearly Salary: %.2f\n", 
             employee1.getFirstName(), employee1.getLastName(), 
             12 * employee1.getMonthlySalary()); 

           // display new yearly salary for employee 2 
           System.out.printf("Employee 2: %s %s; Yearly Salary: %.2f\n", 
             employee2.getFirstName(), employee2.getLastName(), 
             12 * newSalary2); 
          } else if (response3 == JOptionPane.CLOSED_OPTION)// if JOPTIONPANE is closed 
          { 
           System.out.println("JOptionPane closed"); 
          }// END RESPONSE 3 
       } else if (response2 == JOptionPane.YES_OPTION)// if YES is clicked 
       { 
        // enter new salary for employee 1 
        System.out.println("Enter " + employee1.getFirstName() + " " + employee1.getLastName() + "'s new salary:"); 
        double newSalary1 = input.nextDouble(); 
        employee1.setNewMonthlySalary(newSalary1); 

        // display new yearly salary for employee 1 
        System.out.printf("Employee 1: %s %s; Yearly Salary: %.2f\n", 
          employee1.getFirstName(), employee1.getLastName(), 
          12 * newSalary1); 
        // display unchanged salary for employee 2 
        System.out.printf("Employee 2: %s %s; Yearly Salary: %.2f\n", 
          employee2.getFirstName(), employee2.getLastName(), 
          12 * employee2.getMonthlySalary()); 
       } else if (response2 == JOptionPane.CLOSED_OPTION)// if JOPTIONPANE is closed 
       { 
        System.out.println("JOptionPane closed"); 
       }// END RESPONSE 2 
       { 

       } 

      } else if (response1 == JOptionPane.CLOSED_OPTION)// if JOPTIONPANE is clicked 
      { 
       System.out.println("JOptionPane closed"); 
      }// END RESPONSE 1 

    } // end main 

} // end class EmployeeTest 

общественного класса «Сотрудник» не изменится на пост выше.

Смежные вопросы