Commit 1278855c by Patryk Czarnik

Dodatkowe pliki

parent f2c786b0
employee_id;first_name;last_name;job_title;salary;hire_date;department_name;address;postal_code;city;country
100;Steven;King;President;24000;1997-06-17;Executive;2004 Charade Rd;98199;Seattle;United States of America
101;Neena;Kochhar;Wiceszef;17000;1999-09-21;Executive;2004 Charade Rd;98199;Seattle;United States of America
102;Lex;De Haan;Wiceszef;17000;2003-01-13;Executive;2004 Charade Rd;98199;Seattle;United States of America
103;Alexander;Hunold;Programmer;9000;2000-01-03;IT;2014 Jabberwocky Rd;26192;Southlake;United States of America
104;Bruce;Ernst;Programmer;6000;2001-05-21;IT;2014 Jabberwocky Rd;26192;Southlake;United States of America
105;David;Austin;Programmer;4800;2007-06-25;IT;2014 Jabberwocky Rd;26192;Southlake;United States of America
106;Valli;Pataballa;Programmer;4800;2008-02-05;IT;2014 Jabberwocky Rd;26192;Southlake;United States of America
107;Diana;Lorentz;Programmer;4200;2009-02-07;IT;2014 Jabberwocky Rd;26192;Southlake;United States of America
This source diff could not be displayed because it is too large. You can view the blob instead.
pralka;1900.00;23;8
odkurzacz;390.90;23;5
czajnik;150.55;23;29
usługa montażu;500.00;8;100
This source diff could not be displayed because it is too large. You can view the blob instead.
package sklep;
import java.math.BigDecimal;
public class PrzykladowyTowar {
public static void main(String[] args) {
Towar pralka = new Towar("pralka", new BigDecimal("1890.90"), new BigDecimal("0.23"), 100);
System.out.println(pralka);
System.out.println("cena brutto: " + pralka.getCenaBrutto());
System.out.println("cena netto: " + pralka.getCenaNetto());
}
}
package sklep;
import java.math.BigDecimal;
import java.util.Map;
import java.util.Scanner;
public class Sklep1 {
public static void main(String[] args) {
// W tej wersji program na początku wczytuje dane z pliku,
// następnie pozwala kupić wybrane produkty z różnej liczbie
// (wylicza kwotę do zapłaty)
System.out.println("Wczytuję dane...");
Map<String, Towar> towary = Towar.wczytajPlik("sklep.csv");
System.out.println("Dostępne towary:");
// for (Map.Entry<String, Towar> entry : towary.entrySet()) {
// System.out.println(" " + entry.getKey() + " za cenę " + entry.getValue().getCenaBrutto());
// }
// tutaj nie musimy przeglądać wartości wraz z kluczami, bo w obiektach Towar są wszystkie informacje,
// wystarczy przeglądać wartości
System.out.println(" --------------------");
for (Towar towar : towary.values()) {
System.out.printf(" |%-20s | %8s | %3d sztuk|\n", towar.getNazwa(), towar.getCenaBrutto(), towar.getStan());
}
System.out.println(" --------------------");
Scanner scanner = new Scanner(System.in);
// TODO pytaj użytkownika co chce kupić (użytkownik podaje nazwę) aż uzytkownik poda pusty napis - to oznacza koniec
// zapytaj o liczbę sztuk
// podaj kwotę do zapłaty za ten produkt
// na końcu program ma wypisać sumaryczną kwotę do zapłaty
BigDecimal suma = BigDecimal.ZERO;
while(true) {
System.out.println("Co chcesz kupić? (podaj nazwę towaru lub pusty napis, aby zakończyć)");
String coKupuje = scanner.nextLine();
if(coKupuje.isEmpty())
break;
Towar towar = towary.get(coKupuje);
if(towar == null) {
System.out.println("Nie ma takiego towaru");
System.out.println("Dostepne towary: " + towary.keySet());
continue;
}
System.out.println("Jedna sztuka kosztuje " + towar.getCenaBrutto() + ". Ile sztuk chcesz kupić?");
int ileSztuk = scanner.nextInt();
scanner.nextLine();
BigDecimal doZaplaty = towar.getCenaBrutto().multiply(BigDecimal.valueOf(ileSztuk));
System.out.println("Za " + ileSztuk + " towaru " + coKupuje + " zapłacisz " + doZaplaty);
suma = suma.add(doZaplaty);
}
System.out.println("W sumie do zapłaty: " + suma);
}
}
package sklep;
import java.math.BigDecimal;
import java.util.Map;
import java.util.Scanner;
public class Sklep2 {
public static void main(String[] args) {
// W tej wersji program na początku wczytuje dane z pliku,
// następnie pozwala kupić wybrane produkty z różnej liczbie
// (wylicza kwotę do zapłaty i zmniejsza stany magazynowe)
// a na końcu zapisuje do pliku zmienione dane.
System.out.println("Wczytuję dane...");
Map<String, Towar> towary = Towar.wczytajPlik("sklep.csv");
System.out.println("Dostępne towary:");
// for (Map.Entry<String, Towar> entry : towary.entrySet()) {
// System.out.println(" " + entry.getKey() + " za cenę " + entry.getValue().getCenaBrutto());
// }
// tutaj nie musimy przeglądać wartości wraz z kluczami, bo w obiektach Towar są wszystkie informacje,
// wystarczy przeglądać wartości
System.out.println(" --------------------");
for (Towar towar : towary.values()) {
System.out.printf(" |%-20s | %8s | %3d sztuk|\n", towar.getNazwa(), towar.getCenaBrutto(), towar.getStan());
}
System.out.println(" --------------------");
Scanner scanner = new Scanner(System.in);
// TODO pytaj użytkownika co chce kupić (użytkownik podaje nazwę) aż uzytkownik poda pusty napis - to oznacza koniec
// zapytaj o liczbę sztuk
// podaj kwotę do zapłaty za ten produkt
// na końcu program ma wypisać sumaryczną kwotę do zapłaty
BigDecimal suma = BigDecimal.ZERO;
while(true) {
System.out.println("Co chcesz kupić? (podaj nazwę towaru lub pusty napis, aby zakończyć)");
String coKupuje = scanner.nextLine();
if(coKupuje.isEmpty())
break;
Towar towar = towary.get(coKupuje);
if(towar == null) {
System.out.println("Nie ma takiego towaru");
System.out.println("Dostepne towary: " + towary.keySet());
continue;
}
System.out.println("Jedna sztuka kosztuje " + towar.getCenaBrutto() + ". Ile sztuk chcesz kupić?");
int ileSztuk = scanner.nextInt();
scanner.nextLine();
if(ileSztuk > towar.getStan()) {
System.out.println("Za mało sztuk w magazynie, mamy tylko " + towar.getStan());
continue;
}
BigDecimal doZaplaty = towar.getCenaBrutto().multiply(BigDecimal.valueOf(ileSztuk));
System.out.println("Za " + ileSztuk + " towaru " + coKupuje + " zapłacisz " + doZaplaty);
suma = suma.add(doZaplaty);
towar.zmiejszStan(ileSztuk);
}
System.out.println("W sumie do zapłaty: " + suma);
System.out.println();
System.out.println("Końcowy stan sklepu:");
System.out.println(" --------------------");
for (Towar towar : towary.values()) {
System.out.printf(" |%-20s | %8s | %3d sztuk|\n", towar.getNazwa(), towar.getCenaBrutto(), towar.getStan());
}
System.out.println(" --------------------");
System.out.println("Zapisuję zmiany do pliku");
Towar.zapiszPlik(towary, "sklep.csv");
System.out.println("Koniec");
}
}
package sklep;
import java.math.BigDecimal;
import java.util.Map;
import java.util.Scanner;
public class Sklep3 {
private static final String NAZWA_PLIKU = "sklep.csv";
public static void main(String[] args) {
System.out.println("Wczytuję dane...");
Map<String, Towar> towary = Towar.wczytajPlik(NAZWA_PLIKU);
System.out.println("Dostępne towary:");
wypiszTowary(towary);
Scanner scanner = new Scanner(System.in);
BigDecimal suma = BigDecimal.ZERO;
while(true) {
System.out.println("Co chcesz kupić? (podaj nazwę towaru lub pusty napis, aby zakończyć)");
String coKupuje = scanner.nextLine();
if(coKupuje.isEmpty())
break;
Towar towar = towary.get(coKupuje);
if(towar == null) {
System.out.println("Nie ma takiego towaru");
System.out.println("Dostepne towary: " + towary.keySet());
continue;
}
System.out.println("Jedna sztuka kosztuje " + towar.getCenaBrutto() + ". Ile sztuk chcesz kupić?");
int ileSztuk = scanner.nextInt();
scanner.nextLine();
if(ileSztuk > towar.getStan()) {
System.out.println("Za mało sztuk w magazynie, mamy tylko " + towar.getStan());
continue;
}
BigDecimal doZaplaty = towar.getCenaBrutto().multiply(BigDecimal.valueOf(ileSztuk));
System.out.println("Za " + ileSztuk + " towaru " + coKupuje + " zapłacisz " + doZaplaty);
suma = suma.add(doZaplaty);
towar.zmiejszStan(ileSztuk);
}
System.out.println("W sumie do zapłaty: " + suma);
System.out.println();
System.out.println("Końcowy stan sklepu:");
wypiszTowary(towary);
System.out.println("Zapisuję zmiany do pliku");
Towar.zapiszPlik(towary, NAZWA_PLIKU);
System.out.println("Koniec");
}
private static void wypiszTowary(Map<String, Towar> towary) {
System.out.println(" --------------------");
for (Towar towar : towary.values()) {
System.out.printf(" |%-20s | %8s | %3d sztuk|\n", towar.getNazwa(), towar.getCenaBrutto(), towar.getStan());
}
System.out.println(" --------------------");
}
}
package sklep;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.LinkedHashMap;
import java.util.Map;
public class Towar {
private static final String SEP = ";";
private final String nazwa;
private BigDecimal cenaBrutto;
private BigDecimal vat;
private int stan;
public Towar(String nazwa, BigDecimal cenaBrutto, BigDecimal vat, int stan) {
this.nazwa = nazwa;
this.cenaBrutto = cenaBrutto;
this.vat = vat;
this.stan = stan;
}
public String getNazwa() {
return nazwa;
}
public BigDecimal getCenaBrutto() {
return cenaBrutto;
}
public BigDecimal getVat() {
return vat;
}
public int getStan() {
return stan;
}
@Override
public String toString() {
return "Towar [nazwa=" + nazwa + ", cenaBrutto=" + cenaBrutto + ", vat=" + vat + ", stan=" + stan + "]";
}
public BigDecimal getCenaNetto() {
// return cenaBrutto / (1 + vat);
return cenaBrutto.divide(BigDecimal.ONE.add(vat), 2, RoundingMode.HALF_UP);
}
public void zmiejszStan(int ileSztuk) {
if(ileSztuk <= 0) {
throw new IllegalArgumentException("Ujemna liczba");
}
if(ileSztuk > this.stan) {
throw new IllegalArgumentException("Za duża liczba w parametrze");
}
this.stan -= ileSztuk;
}
// W tym przykładzie ogólne operacje dotyczące towarów, jak odczyt z pliku i zapis do pliku
// umieścimy w samej klasie Towar jako metody statyczne.
/** Odczytuje dane towarów z pliku z formacie CSV i zwraca w formie słownika indeksowanego nazwami produktów.
*
* @param sciezka ścieżka do pliku CSV
* @return słownik, gdzie kluczami są nazwy towarów, a wartościami są całe obiekty Towar
*/
public static Map<String, Towar> wczytajPlik(String sciezka) {
Map<String, Towar> towary = new LinkedHashMap<>();
try(BufferedReader in = Files.newBufferedReader(Paths.get(sciezka))) {
String linia;
while((linia = in.readLine()) != null) {
String[] t = linia.split(SEP);
Towar towar = new Towar(t[0], new BigDecimal(t[1]), new BigDecimal(t[2]).movePointLeft(2), Integer.parseInt(t[3]));
towary.put(t[0], towar);
}
} catch (IOException e) {
e.printStackTrace();
}
return towary;
}
public static void zapiszPlik(Map<String, Towar> towary, String sciezka) {
try(PrintWriter out = new PrintWriter(sciezka)) {
for(Towar towar : towary.values()) {
out.print(towar.getNazwa());
out.print(SEP);
out.print(towar.getCenaBrutto());
out.print(SEP);
out.print(towar.getVat().movePointRight(2));
out.print(SEP);
out.print(towar.getStan());
out.println();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Adam;MAŁYSZ;POL;1977-12-03;169;60
Marcin;BACHLEDA;POL;1982-09-04;166;56
Robert;MATEJA;POL;1974-10-05;180;63
Alexander;HERR;GER;1978-10-04;173;65
Stephan;HOCKE;GER;1983-10-20;178;59
Martin;SCHMITT;GER;1978-01-29;181;64
Michael;UHRMANN;GER;1978-09-09;184;64
Georg;SPAETH;GER;1981-02-24;187;68
Matti;HAUTAMAEKI;FIN;1981-07-14;174;57
Tami;KIURU;FIN;1976-09-13;183;59
Janne;AHONEN;FIN;1977-05-11;184;67
Martin;HOELLWARTH;AUT;1974-04-13;182;67
Thomas;MORGENSTERN;AUT;1986-10-30;174;57
Tommy;INGEBRIGTSEN;NOR;1977-08-08;179;56
Bjoern-Einar;ROMOEREN;NOR;1981-04-01;182;63
Roar;LJOEKELSOEY;NOR;1976-05-31;175;62
Alan;ALBORN;USA;1980-12-13;177;57
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