(Process large dataset) A university posts its employees\' salaries at http://cs
ID: 3653706 • Letter: #
Question
(Process large dataset) A university posts its employees' salaries at http://cs.armstrong.edu/liang/data/salary.txt Each line in the file consists of a faculty member's first name, last name, last name, rank, and salary (see Exercise 14.24). Write a program to display the total salary for assistant professors, associate professors, full professors and all faculty, respectively and display the average salary for assistant professors, associate professors, full professors, and alll faculty, respectively.Explanation / Answer
I use a total of 6 classes to solve your problem. They are given below. public class Faculty { private String firstName; private String lastname; private double salary; private static double totalSalary ; private static int Number_of_faculty; public Faculty(String firstName, String lastName, double salary ) { this.firstName = firstName; this.lastname = lastName; this.salary = salary; totalSalary += this.salary; Number_of_faculty++; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public static double getTotalSalary() { return totalSalary; } public static void setTotalSalary(double totalSalary) { Faculty.totalSalary = totalSalary; } public static int getNumber_of_faculty() { return Number_of_faculty; } public static void setNumber_of_faculty(int number_of_faculty) { Number_of_faculty = number_of_faculty; } public static double getAverageSalary() { return totalSalary/Number_of_faculty; } } public class AssociateProfessor extends Faculty { private static double associateTotalSalary; private static int Number_of_Associates; public AssociateProfessor(String firstname, String lastName, double salary) { super(firstname, lastName, salary); associateTotalSalary += salary; Number_of_Associates++; } public static double getAssociateTotalSalary() { return associateTotalSalary; } public static void setAssociateTotalSalary(double associateTotalSalary) { AssociateProfessor.associateTotalSalary = associateTotalSalary; } public static int getNumber_of_Associates() { return Number_of_Associates; } public static void setNumber_of_Associates(int number_of_Associates) { Number_of_Associates = number_of_Associates; } public static double getAverageSalary() { return associateTotalSalary/Number_of_Associates; } } public class AssistantProfessor extends Faculty { private static double assistantTotalSalary; private static int Number_of_Assistants; public AssistantProfessor(String firstname, String lastName, double salary) { super(firstname, lastName, salary); assistantTotalSalary += salary; Number_of_Assistants++; } public static double getAssistantTotalSalary() { return assistantTotalSalary; } public static void setAssistantTotalSalary(double assistantTotalSalary) { AssistantProfessor.assistantTotalSalary = assistantTotalSalary; } public static int getNumber_of_Assistants() { return Number_of_Assistants; } public static void setNumber_of_Assistants(int number_of_Assistants) { Number_of_Assistants = number_of_Assistants; } public static double getAverageSalary() { return assistantTotalSalary/Number_of_Assistants; } } public class FullProfessor extends Faculty { private static double fullProfessorTotalSalary; private static int Number_of_Full_Professors; public FullProfessor(String firstname, String lastName, double salary) { super(firstname, lastName, salary); fullProfessorTotalSalary += salary; Number_of_Full_Professors++; } public static double getFullProfessorTotalSalary() { return fullProfessorTotalSalary; } public static void setFullProfessorTotalSalary(double fullProfessorTotalSalary) { FullProfessor.fullProfessorTotalSalary = fullProfessorTotalSalary; } public static int getNumber_of_Full_Professors() { return Number_of_Full_Professors; } public static void setNumber_of_Full_Professors(int number_of_Full_Professors) { Number_of_Full_Professors = number_of_Full_Professors; } public static double getAverageSalary() { return fullProfessorTotalSalary/Number_of_Full_Professors; } } import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.Scanner; public class ReandfromFile { private Scanner input; public void openFile() { URL url; try { url = new URL("http://cs.armstrong.edu/liang/data/Salary.txt"); input = new Scanner(new InputStreamReader(url.openStream())); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void readFile() { AssociateProfessor associate; AssistantProfessor assistant; FullProfessor full; while(input.hasNext()) { String firstname = input.next(); String lastName = input.next(); String Type = input.next(); double salary = input.nextDouble(); switch(Type) { case "assistant" : assistant = new AssistantProfessor(firstname, lastName, salary); break; case "associate" : associate = new AssociateProfessor(firstname, lastName, salary); break; case "full" : full = new FullProfessor(firstname, lastName, salary); break; } } } public void closeFile() { input.close(); } } public class DisplaySalaries { public static void main(String[] args) { ReandfromFile application = new ReandfromFile(); application.openFile(); application.readFile(); application.closeFile(); System.out.printf("%s%.2f%s%.2f%s%.2f%s%.2f ", "The total salary of Associates professor : ", AssociateProfessor.getAssociateTotalSalary(), " The total salary of Assistant professor :", AssistantProfessor.getAssistantTotalSalary(), " The total salary of Full professors :", FullProfessor.getFullProfessorTotalSalary(), " The total slary of all faculty :", Faculty.getTotalSalary()); System.out.printf("%s%.2f%s%.2f%s%.2f%s%.2f ", "The average salary of Associates professor : ", AssociateProfessor.getAverageSalary(), " The average salary of Assistant professor :", AssistantProfessor.getAverageSalary(), " The average salary of Full professors :", FullProfessor.getAverageSalary(), " The average slary of all faculty :", Faculty.getAverageSalary()); } }
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.