【发布时间】:2015-09-14 15:56:07
【问题描述】:
这是我见过的一个基本 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
显示员工信息后,我想提示用户选择是否更改员工的工资。如果是这样,那么是哪个员工。进行更改后,我想显示修改后的结果。处理此问题的最简单方法是什么?
【问题讨论】:
-
考虑使用一些方法,如“displayEmployee”、“newEmployee”、“updateEmployee”,这可能会帮助你弄清楚。
-
我真的想知道我应该使用 if 语句还是 switch 语句?真的不需要帮助命名方法。如果我能得到一个 if 语句的示例,它将完成四个步骤: 1)提示用户输入是或否; 2)然后,如果是,则提示用户选择员工一或员工二; 3)然后,一旦选择了员工,他们就可以修改工资; 4) 然后,显示新的工资。
-
在我看来,您想知道是否有人可以做您的作业。您应该“尝试一些事情”(假设使用
if,因为 经验法则 2 个选择 =>if,更多选择 =>switch)然后询问您是否遇到任何具体问题.祝你好运。
标签: java eclipse if-statement switch-statement printf