Skip to content

Commit 4b8be41

Browse files
add project Employee; add to project TemperatureConverter; modify project GuessTheNumberGame
1 parent 18bb148 commit 4b8be41

11 files changed

+555
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
public class BasePlusCommissionEmployee extends CommissionEmployee {
2+
// implementation
3+
private double base_salary;
4+
5+
private void validate_base_salary (double base_salary) {
6+
if (base_salary < 0.0) { throw new IllegalArgumentException("Base salary must be >= 0.0"); }
7+
}
8+
9+
// constructor
10+
public BasePlusCommissionEmployee (String first_name, String last_name,
11+
String social_security_number, double gross_sales,
12+
double commission_rate, double base_salary) {
13+
14+
super(first_name, last_name, social_security_number, gross_sales, commission_rate);
15+
16+
validate_base_salary(base_salary);
17+
this.base_salary = base_salary;
18+
}
19+
20+
// interface
21+
public void set_base_salary (double base_salary) {
22+
validate_base_salary(base_salary);
23+
this.base_salary = base_salary;
24+
}
25+
public double get_base_salary () { return base_salary; }
26+
27+
@Override
28+
public double earnings () { return get_base_salary() + super.earnings(); }
29+
30+
@Override
31+
public void raise (double percent) {
32+
super.set_commission_rate(super.get_commission_rate() + super.get_commission_rate() * percent);
33+
set_base_salary(get_base_salary() + get_base_salary() * percent);
34+
}
35+
36+
@Override
37+
public String toString () {
38+
return String.format("Base Salary Plus Commissioned Employee: %s %s with ssn: %s%n %s: %.2f%n %s: %.4f%n %s: $%.2f%n %s: $%.2f%n",
39+
super.get_first_name(), super.get_last_name(),
40+
super.get_social_security_number(),
41+
"Gross Sales", super.get_gross_sales(),
42+
"Commission Rate", super.get_commission_rate(),
43+
"with Base Salary of", get_base_salary(),
44+
"Earnings", earnings());
45+
}
46+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
public class BasePlusCommissionEmployee extends CommissionEmployee {
2+
// implementation
3+
private double base_salary;
4+
5+
private void validate_base_salary (double base_salary) {
6+
if (base_salary < 0.0) { throw new IllegalArgumentException("Base salary must be >= 0.0"); }
7+
}
8+
9+
// constructor
10+
public BasePlusCommissionEmployee (String first_name, String last_name,
11+
String social_security_number, double gross_sales,
12+
double commission_rate, double base_salary) {
13+
14+
super(first_name, last_name, social_security_number, gross_sales, commission_rate);
15+
16+
validate_base_salary(base_salary);
17+
this.base_salary = base_salary;
18+
}
19+
20+
// interface
21+
public void set_base_salary (double base_salary) {
22+
validate_base_salary(base_salary);
23+
this.base_salary = base_salary;
24+
}
25+
public double get_base_salary () { return base_salary; }
26+
27+
@Override
28+
public double earnings () { return get_base_salary() + super.earnings(); }
29+
30+
@Override
31+
public String toString () {
32+
return String.format("Base Salary Plus Commissioned Employee: %s %s with ssn: %s%n %s: %.2f%n %s: %.2f%n %s $%.2f%n %s: $%.2f%n",
33+
super.get_first_name(), super.get_last_name(),
34+
super.get_social_security_number(),
35+
"Gross Sales", super.get_gross_sales(),
36+
"Commission Rate", super.get_commission_rate(),
37+
"with Base Salary of", get_base_salary(),
38+
"Earnings", earnings());
39+
}
40+
}

3a_Employee/CommissionEmployee.java

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
public class CommissionEmployee extends Employee {
2+
// implementation
3+
private double gross_sales;
4+
private double commission_rate;
5+
6+
private void validate_gross_sales (double gross_sales) {
7+
if (gross_sales < 0.0) { throw new IllegalArgumentException("Gross sales must be >= 0.0"); }
8+
}
9+
private void validate_commission_rate (double commission_rate) {
10+
if (commission_rate <= 0.0 || commission_rate >= 1.0) {
11+
throw new IllegalArgumentException("Commission rate must be > 0.0 and < 1.0");
12+
}
13+
}
14+
15+
// constructor
16+
public CommissionEmployee (String first_name, String last_name,
17+
String social_security_number, double gross_sales,
18+
double commission_rate) {
19+
20+
super(first_name, last_name, social_security_number);
21+
22+
validate_gross_sales(gross_sales);
23+
validate_commission_rate(commission_rate);
24+
this.gross_sales = gross_sales;
25+
this.commission_rate = commission_rate;
26+
}
27+
28+
// interface
29+
public void set_gross_sales (double gross_sales) {
30+
validate_gross_sales(gross_sales);
31+
this.gross_sales = gross_sales;
32+
}
33+
public double get_gross_sales () { return gross_sales; }
34+
public void set_commission_rate (double commission_rate) {
35+
validate_commission_rate(commission_rate);
36+
this.commission_rate = commission_rate;
37+
}
38+
public double get_commission_rate () { return commission_rate; }
39+
40+
@Override
41+
public double earnings () { return get_commission_rate() * get_gross_sales(); }
42+
43+
@Override
44+
public void raise (double percent) {
45+
set_commission_rate(get_commission_rate() + get_commission_rate() * percent);
46+
}
47+
48+
@Override
49+
public String toString () {
50+
return String.format("Commissioned %s%n %s: %.2f%n %s: %.4f%n %s: $%.2f%n",
51+
super.toString(), "Gross Sales", get_gross_sales(), "Commission Rate", get_commission_rate(),
52+
"Earnings", earnings());
53+
}
54+
}

3a_Employee/CommissionEmployee_2.java

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
public class CommissionEmployee extends Employee {
2+
// implementation
3+
private double gross_sales;
4+
private double commission_rate;
5+
6+
private void validate_gross_sales (double gross_sales) {
7+
if (gross_sales < 0.0) { throw new IllegalArgumentException("Gross sales must be >= 0.0"); }
8+
}
9+
private void validate_commission_rate (double commission_rate) {
10+
if (commission_rate <= 0.0 || commission_rate >= 1.0) {
11+
throw new IllegalArgumentException("Commission rate must be > 0.0 and < 1.0");
12+
}
13+
}
14+
15+
// constructor
16+
public CommissionEmployee (String first_name, String last_name,
17+
String social_security_number, double gross_sales,
18+
double commission_rate) {
19+
20+
super(first_name, last_name, social_security_number);
21+
22+
validate_gross_sales(gross_sales);
23+
validate_commission_rate(commission_rate);
24+
this.gross_sales = gross_sales;
25+
this.commission_rate = commission_rate;
26+
}
27+
28+
// interface
29+
public void set_gross_sales (double gross_sales) {
30+
validate_gross_sales(gross_sales);
31+
this.gross_sales = gross_sales;
32+
}
33+
public double get_gross_sales () { return gross_sales; }
34+
public void set_commission_rate (double commission_rate) {
35+
validate_commission_rate(commission_rate);
36+
this.commission_rate = commission_rate;
37+
}
38+
public double get_commission_rate () { return commission_rate; }
39+
40+
public double earnings () { return get_commission_rate() * get_gross_sales(); }
41+
42+
@Override
43+
public String toString () {
44+
return String.format("Commissioned %s%n %s: %.2f%n %s: %.2f%n %s: $%.2f%n",
45+
super.toString(), "Gross Sales", get_gross_sales(), "Commission Rate", get_commission_rate(),
46+
"Earnings", earnings());
47+
}
48+
}

3a_Employee/EmployeeTest.java

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
public class EmployeeTest {
2+
public static void main (String[] args) {
3+
CommissionEmployee employee1 = new CommissionEmployee("Fred", "Jones", "111-11-1111", 2000.0, .05);
4+
BasePlusCommissionEmployee employee2 = new BasePlusCommissionEmployee("Sue", "Smith", "222-22-2222", 3000.0, .05, 300);
5+
SalariedEmployee employee3 = new SalariedEmployee("Sha", "Yang", "333-33-3333", 1150.0);
6+
HourlyEmployee employee4 = new HourlyEmployee("Ian", "Tanning", "444-44-4444", 15.0, 50);
7+
HourlyEmployee employee5 = new HourlyEmployee("Angela", "Domchek", "555-55-5555", 20.0, 40);
8+
9+
System.out.printf("Employee information.%n%s%s%s%s%s", employee1, employee2, employee3, employee4, employee5);
10+
11+
Employee[] employees = new Employee[5];
12+
employees[0] = employee1;
13+
employees[1] = employee2;
14+
employees[2] = employee3;
15+
employees[3] = employee4;
16+
employees[4] = employee5;
17+
18+
System.out.printf("%nEmployee information after raises.%n");
19+
for (Employee current_employee : employees) {
20+
if (current_employee instanceof SalariedEmployee) { current_employee.raise(0.04); }
21+
else { current_employee.raise(0.02); }
22+
System.out.print(current_employee);
23+
}
24+
}
25+
}

3a_Employee/HourlyEmployee.java

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
public class HourlyEmployee extends Employee{
2+
// implementation
3+
private double hourly_wage;
4+
private double hours_worked;
5+
6+
private void validate_hourly_wage (double hourly_wage) {
7+
if (hourly_wage <= 0.0) { throw new IllegalArgumentException("Hourly wage must be > 0.0"); }
8+
}
9+
private void validate_hours_worked (double hours_worked) {
10+
if (hours_worked < 1.0 || hours_worked > 168.0) {
11+
throw new IllegalArgumentException("Hours worked must be >= 1.0 and <= 168.0");
12+
}
13+
}
14+
15+
// constructor
16+
public HourlyEmployee (String first_name, String last_name,
17+
String social_security_number, double hourly_wage,
18+
double hours_worked) {
19+
20+
super(first_name, last_name, social_security_number);
21+
22+
validate_hourly_wage(hourly_wage);
23+
validate_hours_worked(hours_worked);
24+
this.hourly_wage = hourly_wage;
25+
this.hours_worked = hours_worked;
26+
}
27+
28+
// interface
29+
public void set_hourly_wage (double hourly_wage) {
30+
validate_hourly_wage(hourly_wage);
31+
this.hourly_wage = hourly_wage;
32+
}
33+
public double get_hourly_wage () { return hourly_wage; }
34+
public void set_hours_worked (double hours_worked) {
35+
validate_hours_worked(hours_worked);
36+
this.hours_worked = hours_worked;
37+
}
38+
public double get_hours_worked () { return hours_worked; }
39+
40+
@Override
41+
public double earnings () {
42+
if (get_hours_worked() <= 40.0) { return get_hours_worked() * get_hourly_wage(); }
43+
else { return 40.0 * get_hourly_wage() + (get_hours_worked() - 40.0) * get_hourly_wage() * 1.5; }
44+
}
45+
46+
@Override
47+
public void raise (double percent) {
48+
set_hourly_wage(get_hourly_wage() + get_hourly_wage() * percent);
49+
}
50+
51+
@Override
52+
public String toString () {
53+
return String.format("Hourly %s%n %s: %.2f%n %s: %.2f%n %s: $%.2f%n",
54+
super.toString(), "Hourly Wage", get_hourly_wage(), "Hours Worked", get_hours_worked(),
55+
"Earnings", earnings());
56+
}
57+
}

3a_Employee/HourlyEmployee_2.java

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
public class HourlyEmployee extends Employee{
2+
// implementation
3+
private double hourly_wage;
4+
private double hours_worked;
5+
6+
private void validate_hourly_wage (double hourly_wage) {
7+
if (hourly_wage <= 0.0) { throw new IllegalArgumentException("Hourly wage must be > 0.0"); }
8+
}
9+
private void validate_hours_worked (double hours_worked) {
10+
if (hours_worked < 1.0 || hours_worked > 168.0) {
11+
throw new IllegalArgumentException("Hours worked must be >= 1.0 and <= 168.0");
12+
}
13+
}
14+
15+
// constructor
16+
public HourlyEmployee (String first_name, String last_name,
17+
String social_security_number, double hourly_wage,
18+
double hours_worked) {
19+
20+
super(first_name, last_name, social_security_number);
21+
22+
validate_hourly_wage(hourly_wage);
23+
validate_hours_worked(hours_worked);
24+
this.hourly_wage = hourly_wage;
25+
this.hours_worked = hours_worked;
26+
}
27+
28+
// interface
29+
public void set_hourly_wage (double hourly_wage) {
30+
validate_hourly_wage(hourly_wage);
31+
this.hourly_wage = hourly_wage;
32+
}
33+
public double get_hourly_wage () { return hourly_wage; }
34+
public void set_hours_worked (double hours_worked) {
35+
validate_hours_worked(hours_worked);
36+
this.hours_worked = hours_worked;
37+
}
38+
public double get_hours_worked () { return hours_worked; }
39+
40+
public double earnings () {
41+
if (get_hours_worked() <= 40.0) { return get_hours_worked() * get_hourly_wage(); }
42+
else { return 40.0 * get_hourly_wage() + (get_hours_worked() - 40.0) * get_hourly_wage() * 1.5; }
43+
}
44+
45+
@Override
46+
public String toString () {
47+
return String.format("Hourly %s%n %s: %.2f%n %s: %.2f%n %s: $%.2f%n",
48+
super.toString(), "Hourly Wage", get_hourly_wage(), "Hours Worked", get_hours_worked(),
49+
"Earnings", earnings());
50+
}
51+
}

3a_Employee/PayrollSystemTest.java

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
public class PayrollSystemTest {
2+
public static void main (String[] args) {
3+
SalariedEmployee se = new SalariedEmployee("John", "Smith", "111-11-1111", 800.00);
4+
HourlyEmployee he = new HourlyEmployee("Karen", "Price", "222-22-2222", 16.75, 40);
5+
CommissionEmployee ce = new CommissionEmployee("Sue", "Jones", "333-33-3333", 10000, .06);
6+
BasePlusCommissionEmployee bpce = new BasePlusCommissionEmployee("Bob", "Lewis", "444-44-4444", 5000, .04, 300);
7+
8+
System.out.println("Employees processed individually:");
9+
System.out.printf("%n%s%n%s: $%,.2f%n%n",
10+
se, "earned", se.earnings());
11+
System.out.printf("%n%s%n%s: $%,.2f%n%n",
12+
he, "earned", he.earnings());
13+
System.out.printf("%n%s%n%s: $%,.2f%n%n",
14+
ce, "earned", ce.earnings());
15+
System.out.printf("%n%s%n%s: $%,.2f%n%n",
16+
bpce, "earned", bpce.earnings());
17+
18+
Employee[] es = new Employee[4];
19+
es[0] = se;
20+
es[1] = he;
21+
es[2] = ce;
22+
es[3] = bpce;
23+
24+
System.out.printf("Employees processed polymorphically:%n%n");
25+
for (Employee current : es) {
26+
System.out.println(current);
27+
if (current instanceof BasePlusCommissionEmployee) {
28+
BasePlusCommissionEmployee employee = (BasePlusCommissionEmployee) current;
29+
employee.set_base_salary(1.10 * employee.get_base_salary());
30+
System.out.printf("new Base Salary with 10%% increase: $%,.2f%n",
31+
employee.get_base_salary());
32+
}
33+
System.out.printf("Earned: $%,.2f%n%n", current.earnings());
34+
}
35+
for (int j = 0; j < es.length; j++) {
36+
System.out.printf("Employee %d is a %s%n", j, es[j].getClass().getName());
37+
}
38+
}
39+
}

3a_Employee/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Under Construction
2+
3+
```
4+
javac *.java
5+
```

4a_GuessTheNumberGameGUI/GuessNumberGame.java

-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
/* Dave Friedman
2-
* CMPSC 221 - Object-Oriented Programming with Web-Based Applications
3-
* HW4 - Guess-the-Number Game
4-
*/
5-
61
import java.awt.Color;
72
import java.awt.event.ActionEvent;
83
import java.awt.event.ActionListener;

0 commit comments

Comments
 (0)