inital commit
This commit is contained in:
commit
d1948b0e58
67 changed files with 5280 additions and 0 deletions
3
Lab101-VenbergGE/manifest.mf
Normal file
3
Lab101-VenbergGE/manifest.mf
Normal file
|
@ -0,0 +1,3 @@
|
|||
Manifest-Version: 1.0
|
||||
X-COMMENT: Main-Class will be added automatically by build
|
||||
|
162
Lab101-VenbergGE/src/Client.java
Normal file
162
Lab101-VenbergGE/src/Client.java
Normal file
|
@ -0,0 +1,162 @@
|
|||
/*
|
||||
* Copyright (C) 2021 Gabriel Venberg
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author toric
|
||||
*/
|
||||
public class Client {
|
||||
public static void main(String[] args) throws FileNotFoundException{
|
||||
File inputFile = new File("/home/toric/Downloads/employeeList.txt"); //TODO!!! change to C:/data/EmployeeList.txt //supposedly with java you can use / on windows as well as linux.
|
||||
Scanner file = new Scanner(inputFile);
|
||||
Scanner scan = new Scanner(System.in);
|
||||
|
||||
final int maxEmployees = 20;
|
||||
|
||||
Employee[] employeeList = new Employee[maxEmployees];
|
||||
|
||||
//declaing the variables we will use in the loop.
|
||||
//im not sure whether or not its best practice to declare inside a loop,
|
||||
//but Im not sure its a good idea to re-instantiate the variable every loop.
|
||||
char employeeType;
|
||||
int id;
|
||||
String name;
|
||||
String titleOrPosition; // can use this for both, saving us a tiny bit of memory.
|
||||
int salary;
|
||||
double hourlyRate;
|
||||
|
||||
//each line is one object
|
||||
for( int i = 0; i<maxEmployees; i++){
|
||||
if(file.hasNextLine()==false){
|
||||
break;
|
||||
}
|
||||
|
||||
employeeType = file.next().charAt(0); //comparing with a single char string was giving me strange results.
|
||||
id = file.nextInt();
|
||||
name = file.next();
|
||||
titleOrPosition = file.next();
|
||||
if (employeeType == 'S'){
|
||||
salary = file.nextInt();
|
||||
employeeList[i]= new Salaried(name, titleOrPosition, id, salary);
|
||||
}
|
||||
else{
|
||||
hourlyRate = file.nextDouble();
|
||||
employeeList[i] = new Hourly(name, titleOrPosition, id, hourlyRate);
|
||||
}
|
||||
file.nextLine();
|
||||
}
|
||||
|
||||
//WHY CANT JAVA JUST HAVE A PRINT() FUNCTION? IT WOULD SAVE ME SO MUCH TYPING!
|
||||
System.out.println("creating salaried employee.");
|
||||
System.out.print("enter the employees name: ");
|
||||
name = scan.next();
|
||||
System.out.println();
|
||||
System.out.print("enter the employees title: ");
|
||||
titleOrPosition = scan.next();
|
||||
System.out.println();
|
||||
System.out.print("enter the employees ID number: ");
|
||||
id = scan.nextInt();
|
||||
System.out.println();
|
||||
System.out.print("enter the employees salary: ");
|
||||
salary = scan.nextInt();
|
||||
System.out.println();
|
||||
//getting how many employees we currently have to figure out where I should put it in the array
|
||||
employeeList[employeeList[0].getEmployeeCount()] =
|
||||
new Salaried(name, titleOrPosition, id, salary);
|
||||
|
||||
System.out.println("creating hourly employee");
|
||||
System.out.print("enter the employees name: ");
|
||||
name = scan.next();
|
||||
System.out.println();
|
||||
System.out.print("enter the employees position: ");
|
||||
titleOrPosition = scan.next();
|
||||
System.out.println();
|
||||
System.out.print("enter the employees ID number: ");
|
||||
id = scan.nextInt();
|
||||
System.out.println();
|
||||
System.out.print("enter the employees hourly wage: ");
|
||||
hourlyRate = scan.nextDouble();
|
||||
System.out.println();
|
||||
employeeList[employeeList[0].getEmployeeCount()] =
|
||||
new Hourly(name, titleOrPosition, id, salary);
|
||||
|
||||
for (int i=0; i < maxEmployees; i++){
|
||||
//cant just let it print the null values, it throws errors if you do.
|
||||
if (employeeList[i] != null){
|
||||
System.out.println(employeeList[i].toString());
|
||||
}
|
||||
else{
|
||||
System.out.println("value is a null value");
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=0; i < maxEmployees; i++){
|
||||
if (employeeList[i] != null){
|
||||
if (employeeList[i] instanceof Salaried){
|
||||
//this FEELS hacky, but other ways Ive tried havent worked. Is there a way to 'cast in place', so to speak?
|
||||
Salaried s = (Salaried) employeeList[i];
|
||||
s.setSalary((int)((double)s.getSalary()*1.1));
|
||||
employeeList[i] = (Employee) s;
|
||||
}
|
||||
else{
|
||||
Hourly h = (Hourly) employeeList[i];
|
||||
h.setHourlyRate(h.getHourlyRate()*1.1);
|
||||
employeeList[i] = (Employee) h;
|
||||
}
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i=0; i < maxEmployees; i++){
|
||||
if (employeeList[i] != null){
|
||||
System.out.println(employeeList[i].toString());
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//its telling that I choose these names immediately, I read way to many crypto blogs!
|
||||
Employee emp1 = new Employee("bob", 1);
|
||||
Employee emp2 = new Employee("bob", 1);
|
||||
Employee emp3 = new Employee("alice", 2);
|
||||
|
||||
System.out.println(emp1.equals(emp2)+" should be true");
|
||||
System.out.println(emp2.equals(emp3)+" should be false");
|
||||
|
||||
Hourly hour1 = new Hourly("alice", "sysAdmin", 1, 100);
|
||||
Hourly hour2 = new Hourly("alice", "sysAdmin", 1, 100);
|
||||
Hourly hour3 = new Hourly("bob", "dev", 2, 100);
|
||||
|
||||
System.out.println(hour1.equals(hour2)+" should be true");
|
||||
System.out.println(hour2.equals(hour3)+" should be false");
|
||||
|
||||
Salaried sal1 = new Salaried("bob", "sysAdmin", 1, 100);
|
||||
Salaried sal2 = new Salaried("bob", "sysAdmin", 1, 100);
|
||||
Salaried sal3 = new Salaried("alice", "dev", 2, 100);
|
||||
|
||||
System.out.println(sal1.equals(sal2)+" should be true");
|
||||
System.out.println(sal2.equals(sal3)+" should be false");
|
||||
|
||||
}
|
||||
}
|
96
Lab101-VenbergGE/src/Employee.java
Normal file
96
Lab101-VenbergGE/src/Employee.java
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* Copyright (C) 2021 Gabriel Venberg
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @author toric
|
||||
* @version 01/25/2021
|
||||
*/
|
||||
public class Employee {
|
||||
private static int employeeCount =0;
|
||||
private int id;
|
||||
private String name;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param name
|
||||
* @param id
|
||||
*/
|
||||
public Employee (String name, int id){
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
employeeCount++;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return id
|
||||
*/
|
||||
public int getID(){return id;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return name
|
||||
*/
|
||||
public String getName(){return name;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return employeeCount
|
||||
*/
|
||||
public int getEmployeeCount(){return employeeCount;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param id sets id
|
||||
*/
|
||||
public void setID(int id){
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param name sets name
|
||||
*/
|
||||
public void setName(String name){
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param o the object to be compared against
|
||||
* @return true if the objects are equal
|
||||
*/
|
||||
public boolean equals( Object o )
|
||||
{
|
||||
if (!(o instanceof Employee)){
|
||||
return false;
|
||||
}
|
||||
Employee e=(Employee)o;
|
||||
return id == e.id
|
||||
&& name.equals( e.name );
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return contents of the instance
|
||||
*/
|
||||
public String toString(){
|
||||
return getClass().getName() + '@' + ':'+name+':'+id+':'+employeeCount;
|
||||
}
|
||||
|
||||
}
|
99
Lab101-VenbergGE/src/Hourly.java
Normal file
99
Lab101-VenbergGE/src/Hourly.java
Normal file
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright (C) 2021 Gabriel Venberg
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @author toric
|
||||
*/
|
||||
public class Hourly extends Employee{
|
||||
|
||||
private String position;
|
||||
private double hourlyRate;
|
||||
private static int hourlyCount = 0;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param name
|
||||
* @param position
|
||||
* @param id
|
||||
* @param hourlyRate
|
||||
*/
|
||||
public Hourly(String name, String position, int id, double hourlyRate){
|
||||
super(name, id);
|
||||
this.position = position;
|
||||
this.hourlyRate = hourlyRate;
|
||||
hourlyCount++;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return position
|
||||
*/
|
||||
public String getPosition(){return position;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return hourlyRate
|
||||
*/
|
||||
public double getHourlyRate(){return hourlyRate;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return hourlyCount
|
||||
*/
|
||||
public int getHourlyCount(){return hourlyCount;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param position sets position
|
||||
*/
|
||||
public void setPosition(String position){
|
||||
this.position = position;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param hourlyRate sets hourlyRate
|
||||
*/
|
||||
public void setHourlyRate(double hourlyRate){
|
||||
this.hourlyRate = hourlyRate;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param o object to compare against
|
||||
* @return true if contents of object are equal
|
||||
*/
|
||||
public boolean equals (Object o){
|
||||
if (!(o instanceof Hourly)){
|
||||
return false;
|
||||
}
|
||||
Hourly h = (Hourly) o;
|
||||
return super.equals(h)
|
||||
&& position.equals(h.position)
|
||||
&& hourlyRate == h.hourlyRate;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return contents of instance
|
||||
*/
|
||||
public String toString(){
|
||||
return super.toString()+':'+getClass().getName()+'@'+position+':'+hourlyRate;
|
||||
}
|
||||
|
||||
}
|
99
Lab101-VenbergGE/src/Salaried.java
Normal file
99
Lab101-VenbergGE/src/Salaried.java
Normal file
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright (C) 2021 Gabriel Venberg
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
*@version 01/26/2021
|
||||
* @author toric
|
||||
*/
|
||||
public class Salaried extends Employee {
|
||||
|
||||
private String title;
|
||||
private int salary;
|
||||
private static int salariedCount;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param name
|
||||
* @param title
|
||||
* @param id
|
||||
* @param salary
|
||||
*/
|
||||
public Salaried(String name, String title, int id, int salary){
|
||||
super(name,id);
|
||||
this.title = title;
|
||||
this.salary = salary;
|
||||
salariedCount++;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return title
|
||||
*/
|
||||
public String getTitle(){return title;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return salary
|
||||
*/
|
||||
public int getSalary(){return salary;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return salariedCount
|
||||
*/
|
||||
public int getSalariedCount(){return salariedCount;}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param title sets title
|
||||
*/
|
||||
public void setTitle(String title){
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param salary sets salary
|
||||
*/
|
||||
public void setSalary(int salary){
|
||||
this.salary = salary;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param o the object to comapre against
|
||||
* @return true if the objects are equal
|
||||
*/
|
||||
public boolean equals (Object o){
|
||||
if (!(o instanceof Salaried)){
|
||||
return false;
|
||||
}
|
||||
Salaried s = (Salaried)o;
|
||||
return super.equals(s)
|
||||
&& title.equals(s.title)
|
||||
&& salary == s.salary;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return String contents of instance
|
||||
*/
|
||||
public String toString(){
|
||||
return super.toString()+':'+getClass().getName()+'@'+title+':'+salary;
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue