我如何询问用户是否要修改信息然后应用更改?
How can I ask a user if they want to modify information and then apply the change?
这是我见过的基本 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 class
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
显示员工信息后,我想提示用户选择是否更改员工的薪水。如果是这样,那么是哪个员工。进行更改后,我想显示修改后的结果。处理此问题的最简单方法是什么?
在对我的嵌套 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
public class "Employee" 对于上面的 post 没有改变。
这是我见过的基本 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 class
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
显示员工信息后,我想提示用户选择是否更改员工的薪水。如果是这样,那么是哪个员工。进行更改后,我想显示修改后的结果。处理此问题的最简单方法是什么?
在对我的嵌套 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
public class "Employee" 对于上面的 post 没有改变。