Commit 20ee361d by Patryk Czarnik

emps.obiektowo - pierwsza seria zadań

parent df8b57b0
......@@ -12,9 +12,9 @@ public class ObslugaCSV {
// mogą zakazać tworzenia obiektów tej klasy oznaczając konstruktor jako prywatny
private ObslugaCSV() { }
public static List<Employee> readCSV(String path) throws FileNotFoundException {
public static List<Employee> readCSV(File file) throws FileNotFoundException {
List<Employee> emps = new ArrayList<>();
try(Scanner scanner = new Scanner(new File(path))) {
try(Scanner scanner = new Scanner(file)) {
scanner.nextLine();
while(scanner.hasNextLine()) {
String line = scanner.nextLine();
......@@ -27,4 +27,12 @@ public class ObslugaCSV {
return emps;
}
public static List<Employee> readCSV(String path) throws FileNotFoundException {
return readCSV(new File(path));
}
public static List<Employee> readCSV() throws FileNotFoundException {
return readCSV("pliki/emps.csv");
}
}
......@@ -22,6 +22,6 @@ public class P0_WypiszObiekty {
5 - wypisz dane pracowników, który zarabia najmniej, i który zarabia najwięcej
6 - sortowanie - wypisz pracowników w kolejności rosnących pensji
7 - wypisz nazwy jobów bez powtórzeń
8 - (grupowanie) - dla każdego stanowiska (jobTitle) wypisz ilu pracownikóœ pracuje na tym stanowisku i jaka jest ich średnia pensja
8 - (grupowanie) - dla każdego stanowiska (jobTitle) wypisz ilu pracowników pracuje na tym stanowisku i jaka jest ich średnia pensja
*/
package emps.obiektowo;
import java.io.FileNotFoundException;
import java.util.List;
// 1 - wypisz wybrane pola, np "Steven King zarabia 24000"
public class P1_WypiszWybranePola {
public static void main(String[] args) throws FileNotFoundException {
List<Employee> emps = ObslugaCSV.readCSV("pliki/emps.csv");
System.out.println("Odczytano " + emps.size() + " rekordów.");
for (Employee emp : emps) {
System.out.println(emp.getFirstName() + " " + emp.getLastName() + " zarabia " + emp.getSalary());
}
}
}
/*
2 - wypisz pracowników, którzy zarabiają >= 10 tys
3 - średnia pensja wszystkich
4 - średnia pensja na wybranym stanowisku
5 - wypisz dane pracowników, który zarabia najmniej, i który zarabia najwięcej
6 - sortowanie - wypisz pracowników w kolejności rosnących pensji
7 - wypisz nazwy jobów bez powtórzeń
8 - (grupowanie) - dla każdego stanowiska (jobTitle) wypisz ilu pracownikóœ pracuje na tym stanowisku i jaka jest ich średnia pensja
*/
package emps.obiektowo;
import java.io.FileNotFoundException;
import java.util.List;
// 2 - wypisz pracowników, którzy zarabiają co najmniej 10 tys
public class P2_WypiszBogatych {
public static void main(String[] args) throws FileNotFoundException {
List<Employee> emps = ObslugaCSV.readCSV("pliki/emps.csv");
System.out.println("Odczytano " + emps.size() + " rekordów.");
for(Employee emp : emps) {
if(emp.getSalary() >= 10_000) {
System.out.println(emp.getFirstName() + " " + emp.getLastName()
+ " (" + emp.getJobTitle() + ") zarabia " + emp.getSalary());
}
}
}
}
/*
3 - średnia pensja wszystkich
4 - średnia pensja na wybranym stanowisku
5 - wypisz dane pracowników, który zarabia najmniej, i który zarabia najwięcej
6 - sortowanie - wypisz pracowników w kolejności rosnących pensji
7 - wypisz nazwy jobów bez powtórzeń
8 - (grupowanie) - dla każdego stanowiska (jobTitle) wypisz ilu pracownikóœ pracuje na tym stanowisku i jaka jest ich średnia pensja
*/
package emps.obiektowo;
import java.io.FileNotFoundException;
import java.util.List;
// 3 - średnia pensja wszystkich
public class P3_SredniaWszystkich {
public static void main(String[] args) throws FileNotFoundException {
List<Employee> emps = ObslugaCSV.readCSV("pliki/emps.csv");
double suma = 0;
for(Employee emp : emps) {
suma += emp.getSalary();
}
double srednia = suma / emps.size();
System.out.println("Średnia pensja wszystkich: " + srednia);
}
}
/*
4 - średnia pensja na wybranym stanowisku
5 - wypisz dane pracowników, który zarabia najmniej, i który zarabia najwięcej
6 - sortowanie - wypisz pracowników w kolejności rosnących pensji
7 - wypisz nazwy jobów bez powtórzeń
8 - (grupowanie) - dla każdego stanowiska (jobTitle) wypisz ilu pracownikóœ pracuje na tym stanowisku i jaka jest ich średnia pensja
*/
package emps.obiektowo;
import javax.swing.*;
import java.io.FileNotFoundException;
import java.util.List;
// 4 - średnia pensja na wybranym stanowisku
public class P4_SredniaJedenJob {
public static void main(String[] args) throws FileNotFoundException {
List<Employee> emps = ObslugaCSV.readCSV("pliki/emps.csv");
String szukanyJob = JOptionPane.showInputDialog("Podaj nazwę stanowiska");
double suma = 0;
int ile = 0;
for(Employee emp : emps) {
if(emp.getJobTitle().equalsIgnoreCase(szukanyJob)) {
suma += emp.getSalary();
ile++;
}
}
if(ile == 0) {
JOptionPane.showMessageDialog(null, "Nikt nie pracuje na stanowisku " + szukanyJob);
} else {
double srednia = suma / ile;
JOptionPane.showMessageDialog(null, "Średnia pracowników na stanowisku " + szukanyJob + " wynosi " + srednia);
}
}
}
/*
5 - wypisz dane pracowników, który zarabia najmniej, i który zarabia najwięcej
6 - sortowanie - wypisz pracowników w kolejności rosnących pensji
7 - wypisz nazwy jobów bez powtórzeń
8 - (grupowanie) - dla każdego stanowiska (jobTitle) wypisz ilu pracownikóœ pracuje na tym stanowisku i jaka jest ich średnia pensja
*/
package emps.obiektowo;
import javax.swing.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
// 4 - średnia pensja na wybranym stanowisku
public class P4_SredniaJedenJob_Interaktywna {
public static void main(String[] args) throws FileNotFoundException {
JFileChooser fileChooser = new JFileChooser(".");
int coSieStalo = fileChooser.showOpenDialog(null);
if(coSieStalo != JFileChooser.APPROVE_OPTION) {
// nie wskazano pliku - przerywam program
return;
}
File selectedFile = fileChooser.getSelectedFile();
List<Employee> emps = ObslugaCSV.readCSV(selectedFile);
Set<String> jobs = new TreeSet<>();
for(Employee emp : emps) {
jobs.add(emp.getJobTitle());
}
String szukanyJob = (String)JOptionPane.showInputDialog(null, "Wybierz stanowisko", "Pytanie",
JOptionPane.QUESTION_MESSAGE, null, jobs.toArray(), "Programmer");
double suma = 0;
int ile = 0;
for(Employee emp : emps) {
if(emp.getJobTitle().equals(szukanyJob)) {
suma += emp.getSalary();
ile++;
}
}
if(ile == 0) {
JOptionPane.showMessageDialog(null, "Nikt nie pracuje na stanowisku " + szukanyJob);
} else {
double srednia = suma / ile;
JOptionPane.showMessageDialog(null, "Średnia pracowników na stanowisku " + szukanyJob + " wynosi " + srednia);
}
}
}
package emps.obiektowo;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
// wypisz nazwy jobów bez powtórzeń
public class P7_UnikalneJoby {
public static void main(String[] args) {
try {
List<Employee> emps = ObslugaCSV.readCSV();
Set<String> jobs = new TreeSet<>();
for(Employee emp : emps) {
jobs.add(emp.getJobTitle());
}
System.out.println(jobs);
System.out.println(jobs.size());
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment