如何将计算结果打印出来-Java

如何将计算结果打印出来-Java,java,class,properties,return,behavior,Java,Class,Properties,Return,Behavior,所以这个程序要做的就是从键盘上获取id、工时和工资的输入。然后,它将计算加班工资、固定工资和总工资。计算后,应该计算的id、工时、工资、加班费、固定工资和总工资必须打印到输出中 此外,假定雇员的属性和行为在employee类中 但是,当我想打印toString方法时,常规工资、加班工资和总工资显示为零。知道为什么吗 主要方法: public class FinalExam { // begin class public static void main(String[] args)

所以这个程序要做的就是从键盘上获取id、工时和工资的输入。然后,它将计算加班工资、固定工资和总工资。计算后,应该计算的id、工时、工资、加班费、固定工资和总工资必须打印到输出中

此外,假定雇员的属性和行为在employee类中

但是,当我想打印toString方法时,常规工资、加班工资和总工资显示为零。知道为什么吗

主要方法:

public class FinalExam
{ // begin class

public static void main(String[] args) 
    { // begin main

    // ********** DECLARATION OF CONSTANTS **********

    // ********** DECLARATION OF VARIABLES **********

        String strout;          // output string (toString)

        int ID;                 // employee's id number
        int Hours;              // employee's hours worked
        double Wage;            // employee's wage per hour

    // ********** CREATE OBJECTS **********

        ArrayList<Employee> employeeInfo = new ArrayList();     // list of all employee's properties/objects    

    // ********** CREATE INPUT STREAMS **********

        Scanner keyboard = new Scanner(System.in);              // create a Scanner object for keyboard input.

    // ********** GET INPUT **********

            // get the employee's ID
        System.out.println("\nEnter your employee ID.");
        ID = keyboard.nextInt();                //get the input and set it to the local varaible ID
        Employee employee = new Employee(ID);   // pass your id
        //System.out.println("Employee ID: " + ID);

            // get the employee's hours worked
        System.out.println("\nEnter the amount of hours you worked this week.");
        Hours = keyboard.nextInt();             //get the input and set it to the local varaible HoursWorked
        employee.setHours(Hours);               // pass your hours
        //System.out.println("Hours worked: " + Hours);

            // get the employee's wage
        System.out.println("\nEnter your wage.");
        Wage = keyboard.nextDouble();           //get the input and set it to the local varaible Wage
        employee.setWage(Wage);                 // pass your wage
        //System.out.println("Employee wage: " + Wage);

        employeeInfo.add(employee);             // add it to the list of course

    // ********** OUTPUT **********

        System.out.println("\n\n" + employeeInfo.toString()); 

} // end main
 } // end class

您正在使用OvertimePay、GrossPay和RegularPay,但没有使用它们的getter,而且这些属性尚未初始化。你应该打电话给getter

import java.text.DecimalFormat;

public class Employee
{  // begin class

// *********** CLASS VARIABLES **********

// *********** CLASS CONSTANTS **********

    private static int MAXHOURS = 40;   // maximum hours before overime
    private static double OTRATE = 1.5; // overtime is one and a half

// ********** INSTANCE VARIABLES **********

    private int ID;                     // employee's id
    private int Hours;                  // number of hours worked
    private double Wage;                // pay per hour

    private double RegularPay;          // regular pay
    private int  OverHours;         // number of overtime hours worked
    private double OverPay;             // overtime pay
    private double GrossPay;                // gross pay

// ********** CREATE INPUT STREAMS **********

    DecimalFormat df1 = new DecimalFormat ("#####.00");     // to get two decimal places at the end of the numbers

// ********** CONSTRUCTORS ***********

    public Employee(int IDnumber)
    { // begin initialized constructor
        ID = IDnumber;          // set ID to ID number
    } // end initialized constructor

// ********** ACCESSORS **********

    public int getID()
    { // begin getID
        return ID;
    } // end getID

    public void setWage(double HourlyWage)
    { // begin setWage
        Wage = HourlyWage;
    } // end setWage

    public double getWage()
    { // begin getWage
        return Wage;
    } // end getWage

    public void setHours(int hoursWorked)
    { // begin setHours
        Hours = hoursWorked;
    } // end setHours

    public double getHours()
    { // begin getHours
        return Hours;
    } // end getHours

// ********** MUTATORS **********

    public double getOverPay()
    { // begin getOverPay
        if (Hours > MAXHOURS)
{ // begin if hours worked is bigger than MAXHOURS
            OverHours = Hours - MAXHOURS;
            OverPay = OverHours * Wage * OTRATE;
        } // end if hours worked is bigger than MAXHOURS
        else
            OverPay = 0;

        return OverPay;
    } // end getOverPay

    public double getRegularPay()
    { // begin getRegularPay

        return MAXHOURS * Wage;
    } // end getRegularPay

    public double getGrossPay()
    { // begin getGrossPay
        return getRegularPay() + OverPay;
    } // end getGrossPay


    public String toString()    // overrides the toString method inherited from object
    { // begin toString
        String strout = "\nId \t\t Hours \t\t Rate \t\t Regular Pay \t Overtime Pay \t Gross Pay\n";
        strout += ID + "\t " + Hours + "\t\t\t $" + (df1.format(Wage)) + "\t\t $" + (df1.format(getRegularPay())) + "\t\t\t $" + (df1.format(getOverPay())) + "\t\t\t $" + (df1.format(getGrossPay()));    
            // df1.format(double) allows me two decimal places  

        return strout;
    } // end toString

}  // end class

您正在使用OvertimePay、GrossPay和RegularPay,但没有使用它们的getter,而且这些属性尚未初始化。你应该打电话给getter

import java.text.DecimalFormat;

public class Employee
{  // begin class

// *********** CLASS VARIABLES **********

// *********** CLASS CONSTANTS **********

    private static int MAXHOURS = 40;   // maximum hours before overime
    private static double OTRATE = 1.5; // overtime is one and a half

// ********** INSTANCE VARIABLES **********

    private int ID;                     // employee's id
    private int Hours;                  // number of hours worked
    private double Wage;                // pay per hour

    private double RegularPay;          // regular pay
    private int  OverHours;         // number of overtime hours worked
    private double OverPay;             // overtime pay
    private double GrossPay;                // gross pay

// ********** CREATE INPUT STREAMS **********

    DecimalFormat df1 = new DecimalFormat ("#####.00");     // to get two decimal places at the end of the numbers

// ********** CONSTRUCTORS ***********

    public Employee(int IDnumber)
    { // begin initialized constructor
        ID = IDnumber;          // set ID to ID number
    } // end initialized constructor

// ********** ACCESSORS **********

    public int getID()
    { // begin getID
        return ID;
    } // end getID

    public void setWage(double HourlyWage)
    { // begin setWage
        Wage = HourlyWage;
    } // end setWage

    public double getWage()
    { // begin getWage
        return Wage;
    } // end getWage

    public void setHours(int hoursWorked)
    { // begin setHours
        Hours = hoursWorked;
    } // end setHours

    public double getHours()
    { // begin getHours
        return Hours;
    } // end getHours

// ********** MUTATORS **********

    public double getOverPay()
    { // begin getOverPay
        if (Hours > MAXHOURS)
{ // begin if hours worked is bigger than MAXHOURS
            OverHours = Hours - MAXHOURS;
            OverPay = OverHours * Wage * OTRATE;
        } // end if hours worked is bigger than MAXHOURS
        else
            OverPay = 0;

        return OverPay;
    } // end getOverPay

    public double getRegularPay()
    { // begin getRegularPay

        return MAXHOURS * Wage;
    } // end getRegularPay

    public double getGrossPay()
    { // begin getGrossPay
        return getRegularPay() + OverPay;
    } // end getGrossPay


    public String toString()    // overrides the toString method inherited from object
    { // begin toString
        String strout = "\nId \t\t Hours \t\t Rate \t\t Regular Pay \t Overtime Pay \t Gross Pay\n";
        strout += ID + "\t " + Hours + "\t\t\t $" + (df1.format(Wage)) + "\t\t $" + (df1.format(getRegularPay())) + "\t\t\t $" + (df1.format(getOverPay())) + "\t\t\t $" + (df1.format(getGrossPay()));    
            // df1.format(double) allows me two decimal places  

        return strout;
    } // end toString

}  // end class

您正在使用OvertimePay、GrossPay和RegularPay,但没有使用它们的getter,而且这些属性尚未初始化。你应该打电话给getter

import java.text.DecimalFormat;

public class Employee
{  // begin class

// *********** CLASS VARIABLES **********

// *********** CLASS CONSTANTS **********

    private static int MAXHOURS = 40;   // maximum hours before overime
    private static double OTRATE = 1.5; // overtime is one and a half

// ********** INSTANCE VARIABLES **********

    private int ID;                     // employee's id
    private int Hours;                  // number of hours worked
    private double Wage;                // pay per hour

    private double RegularPay;          // regular pay
    private int  OverHours;         // number of overtime hours worked
    private double OverPay;             // overtime pay
    private double GrossPay;                // gross pay

// ********** CREATE INPUT STREAMS **********

    DecimalFormat df1 = new DecimalFormat ("#####.00");     // to get two decimal places at the end of the numbers

// ********** CONSTRUCTORS ***********

    public Employee(int IDnumber)
    { // begin initialized constructor
        ID = IDnumber;          // set ID to ID number
    } // end initialized constructor

// ********** ACCESSORS **********

    public int getID()
    { // begin getID
        return ID;
    } // end getID

    public void setWage(double HourlyWage)
    { // begin setWage
        Wage = HourlyWage;
    } // end setWage

    public double getWage()
    { // begin getWage
        return Wage;
    } // end getWage

    public void setHours(int hoursWorked)
    { // begin setHours
        Hours = hoursWorked;
    } // end setHours

    public double getHours()
    { // begin getHours
        return Hours;
    } // end getHours

// ********** MUTATORS **********

    public double getOverPay()
    { // begin getOverPay
        if (Hours > MAXHOURS)
{ // begin if hours worked is bigger than MAXHOURS
            OverHours = Hours - MAXHOURS;
            OverPay = OverHours * Wage * OTRATE;
        } // end if hours worked is bigger than MAXHOURS
        else
            OverPay = 0;

        return OverPay;
    } // end getOverPay

    public double getRegularPay()
    { // begin getRegularPay

        return MAXHOURS * Wage;
    } // end getRegularPay

    public double getGrossPay()
    { // begin getGrossPay
        return getRegularPay() + OverPay;
    } // end getGrossPay


    public String toString()    // overrides the toString method inherited from object
    { // begin toString
        String strout = "\nId \t\t Hours \t\t Rate \t\t Regular Pay \t Overtime Pay \t Gross Pay\n";
        strout += ID + "\t " + Hours + "\t\t\t $" + (df1.format(Wage)) + "\t\t $" + (df1.format(getRegularPay())) + "\t\t\t $" + (df1.format(getOverPay())) + "\t\t\t $" + (df1.format(getGrossPay()));    
            // df1.format(double) allows me two decimal places  

        return strout;
    } // end toString

}  // end class

您正在使用OvertimePay、GrossPay和RegularPay,但没有使用它们的getter,而且这些属性尚未初始化。你应该打电话给getter

import java.text.DecimalFormat;

public class Employee
{  // begin class

// *********** CLASS VARIABLES **********

// *********** CLASS CONSTANTS **********

    private static int MAXHOURS = 40;   // maximum hours before overime
    private static double OTRATE = 1.5; // overtime is one and a half

// ********** INSTANCE VARIABLES **********

    private int ID;                     // employee's id
    private int Hours;                  // number of hours worked
    private double Wage;                // pay per hour

    private double RegularPay;          // regular pay
    private int  OverHours;         // number of overtime hours worked
    private double OverPay;             // overtime pay
    private double GrossPay;                // gross pay

// ********** CREATE INPUT STREAMS **********

    DecimalFormat df1 = new DecimalFormat ("#####.00");     // to get two decimal places at the end of the numbers

// ********** CONSTRUCTORS ***********

    public Employee(int IDnumber)
    { // begin initialized constructor
        ID = IDnumber;          // set ID to ID number
    } // end initialized constructor

// ********** ACCESSORS **********

    public int getID()
    { // begin getID
        return ID;
    } // end getID

    public void setWage(double HourlyWage)
    { // begin setWage
        Wage = HourlyWage;
    } // end setWage

    public double getWage()
    { // begin getWage
        return Wage;
    } // end getWage

    public void setHours(int hoursWorked)
    { // begin setHours
        Hours = hoursWorked;
    } // end setHours

    public double getHours()
    { // begin getHours
        return Hours;
    } // end getHours

// ********** MUTATORS **********

    public double getOverPay()
    { // begin getOverPay
        if (Hours > MAXHOURS)
{ // begin if hours worked is bigger than MAXHOURS
            OverHours = Hours - MAXHOURS;
            OverPay = OverHours * Wage * OTRATE;
        } // end if hours worked is bigger than MAXHOURS
        else
            OverPay = 0;

        return OverPay;
    } // end getOverPay

    public double getRegularPay()
    { // begin getRegularPay

        return MAXHOURS * Wage;
    } // end getRegularPay

    public double getGrossPay()
    { // begin getGrossPay
        return getRegularPay() + OverPay;
    } // end getGrossPay


    public String toString()    // overrides the toString method inherited from object
    { // begin toString
        String strout = "\nId \t\t Hours \t\t Rate \t\t Regular Pay \t Overtime Pay \t Gross Pay\n";
        strout += ID + "\t " + Hours + "\t\t\t $" + (df1.format(Wage)) + "\t\t $" + (df1.format(getRegularPay())) + "\t\t\t $" + (df1.format(getOverPay())) + "\t\t\t $" + (df1.format(getGrossPay()));    
            // df1.format(double) allows me two decimal places  

        return strout;
    } // end toString

}  // end class

打印的不是employee对象的状态,而是列表employeeinfo。您需要迭代列表并打印每个员工:

for(Employee e : employeeInfo) {
    System.out.println(e.toString());
}

打印的不是employee对象的状态,而是列表employeeinfo。您需要迭代列表并打印每个员工:

for(Employee e : employeeInfo) {
    System.out.println(e.toString());
}

打印的不是employee对象的状态,而是列表employeeinfo。您需要迭代列表并打印每个员工:

for(Employee e : employeeInfo) {
    System.out.println(e.toString());
}

打印的不是employee对象的状态,而是列表employeeinfo。您需要迭代列表并打印每个员工:

for(Employee e : employeeInfo) {
    System.out.println(e.toString());
}

至少给我一个1-up的杀手
toString
方法:

import java.util.ArrayList;
import java.util.Scanner;

public class FinalExam
{
    public static void main(String[] args)
    {
        FinalExam finalExam = new FinalExam();
        finalExam.run();
    }

    void run()
    {
        Employee emp = new Employee();
        ArrayList<Employee> list = new ArrayList<>();
        Scanner scan = new Scanner(System.in);

        System.out.print('\n' + "your employee id:  ");
        emp.setId(scan.nextInt());

        System.out.print('\n' + "hours you worked:  ");
        emp.setHours(scan.nextInt());

        System.out.print('\n' + "your wage:");
        emp.setWage(scan.nextDouble());

        list.add(emp);

        scan.close();

        System.out.println(emp.toString());
    }

    class Employee
    {
        final private int    MAXHOURS =     40;
        final private double OTRATE =       1.5;

        private int id;
        private int hours;
        private double wage;

        void setId(int id)          { this.id = id; }
        int getId()                 { return id; }

        void setHours(int hours)    { this.hours = hours; }
        int getHours()              { return hours; }

        void setWage(double wage)   { this.wage = wage; }
        double getWage()            { return wage; }

        @Override
        public String toString()
        {
            double payRegular, payOvertime, 
                payGross =      
                    (payRegular =  hours > MAXHOURS ? (MAXHOURS * wage)                    : (hours * wage))  + 
                    (payOvertime = hours > MAXHOURS ? (hours - MAXHOURS) * (wage * OTRATE) :              0);

            StringBuilder string = new StringBuilder(500);

            string.append("\n");

            string.append(
                String.format("%10s %10s %10s %15s %15s %15s", 
                    "Id", "Hours", "Rate", "Regular Pay", "Overtime Pay", "Gross Pay"));

            string.append("\n");

            string.append(
                String.format("%10s %10s %10s %15s %15s %15s", 
                    id, hours, wage, payRegular, payOvertime, payGross));

            string.trimToSize();

            return string.toString();
        }
    }
}
import java.util.ArrayList;
导入java.util.Scanner;
公开课终场
{
公共静态void main(字符串[]args)
{
FinalExam FinalExam=新的FinalExam();
finalExam.run();
}
无效运行()
{
员工emp=新员工();
ArrayList=新建ArrayList();
扫描仪扫描=新扫描仪(System.in);
System.out.print('\n'+“您的员工id:”);
emp.setId(scan.nextInt());
System.out.print('\n'+“您的工作时间:”);
emp.setHours(scan.nextInt());
System.out.print('\n'+“您的工资:”);
emp.setWage(scan.nextDouble());
列表。添加(emp);
scan.close();
System.out.println(emp.toString());
}
班级员工
{
最终专用整数最大小时数=40;
最终私人双OTRATE=1.5;
私有int-id;
私人整数小时;
私人双倍工资;
void setId(int id){this.id=id;}
int getId(){return id;}
void setHours(int hours){this.hours=hours;}
int getHours(){return hours;}
void setWage(双倍工资){this.wage=wage;}
double getWage(){返回工资;}
@凌驾
公共字符串toString()
{
双薪定期,定期支付,
工资总额=
(工资固定=小时>最高小时?(最高小时*工资):(小时*工资))+
(支付时间=小时>最大小时数?(小时数-最大小时数)*(工资*加班费):0);
StringBuilder字符串=新的StringBuilder(500);
字符串。追加(“\n”);
string.append(
字符串格式(“%10s%10s%10s%15s%15s%15s%15s”,
“Id”、“工时”、“费率”、“固定工资”、“加班工资”、“总工资”);
字符串。追加(“\n”);
string.append(
字符串格式(“%10s%10s%10s%15s%15s%15s%15s”,
id、工时、工资、定期工资、发薪时间、发薪总额);
string.trimToSize();
返回字符串.toString();
}
}
}

至少给我一个杀手的1-up
toString
方法:

import java.util.ArrayList;
import java.util.Scanner;

public class FinalExam
{
    public static void main(String[] args)
    {
        FinalExam finalExam = new FinalExam();
        finalExam.run();
    }

    void run()
    {
        Employee emp = new Employee();
        ArrayList<Employee> list = new ArrayList<>();
        Scanner scan = new Scanner(System.in);

        System.out.print('\n' + "your employee id:  ");
        emp.setId(scan.nextInt());

        System.out.print('\n' + "hours you worked:  ");
        emp.setHours(scan.nextInt());

        System.out.print('\n' + "your wage:");
        emp.setWage(scan.nextDouble());

        list.add(emp);

        scan.close();

        System.out.println(emp.toString());
    }

    class Employee
    {
        final private int    MAXHOURS =     40;
        final private double OTRATE =       1.5;

        private int id;
        private int hours;
        private double wage;

        void setId(int id)          { this.id = id; }
        int getId()                 { return id; }

        void setHours(int hours)    { this.hours = hours; }
        int getHours()              { return hours; }

        void setWage(double wage)   { this.wage = wage; }
        double getWage()            { return wage; }

        @Override
        public String toString()
        {
            double payRegular, payOvertime, 
                payGross =      
                    (payRegular =  hours > MAXHOURS ? (MAXHOURS * wage)                    : (hours * wage))  + 
                    (payOvertime = hours > MAXHOURS ? (hours - MAXHOURS) * (wage * OTRATE) :              0);

            StringBuilder string = new StringBuilder(500);

            string.append("\n");

            string.append(
                String.format("%10s %10s %10s %15s %15s %15s", 
                    "Id", "Hours", "Rate", "Regular Pay", "Overtime Pay", "Gross Pay"));

            string.append("\n");

            string.append(
                String.format("%10s %10s %10s %15s %15s %15s", 
                    id, hours, wage, payRegular, payOvertime, payGross));

            string.trimToSize();

            return string.toString();
        }
    }
}
import java.util.ArrayList;
导入java.util.Scanner;
公开课终场
{
公共静态void main(字符串[]args)
{
FinalExam FinalExam=新的FinalExam();
finalExam.run();
}
无效运行()
{
员工emp=新员工();
ArrayList=新建ArrayList();
扫描仪扫描=新扫描仪(System.in);
System.out.print('\n'+“您的员工id:”);
emp.setId(scan.nextInt());
System.out.print('\n'+“您的工作时间:”);
emp.setHours(scan.nextInt());
System.out.print('\n'+“您的工资:”);
emp.setWage(scan.nextDouble());
列表。添加(emp);
scan.close();
System.out.println(emp.toString());
}
班级员工
{
最终专用整数最大小时数=40;
最终私人双OTRATE=1.5;
私有int-id;
私人整数小时;
私人双倍工资;
void setId(int id){this.id=id;}
int getId(){return id;}
void setHours(int hours){this.hours=hours;}
int getHours(){return hours;}
void setWage(双倍工资){this.wage=wage;}
double getWage(){返回工资;}
@凌驾
公共字符串toString()
{
双薪定期,定期支付,
工资总额=
(工资固定=小时>最高小时?(最高小时*工资):(小时*工资))+
(支付时间=小时>最大小时数?(小时数-最大小时数)*(工资*加班费):0);
StringBuilder字符串=新的StringBuilder(500);
字符串。追加(“\n”);
string.append(
一串