Commit 425c4d03 by Patryk Czarnik

Przykłady sprzedaż-obiektowo i nieobiektowo

parent b0eb26e3
package sprzedaz.nieobiektowo;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class CzytajPlik {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(new File("sprzedaz.csv"))) {
while(scanner.hasNextLine()) {
String linia = scanner.nextLine();
String[] t = linia.split(",");
System.out.println("data: " + t[0] + ", miasto: " + t[1] + ", cena: " + t[5]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
package sprzedaz.nieobiektowo;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
// Oblicz sumę wartości sprzedaży w mieście Katowice.
// Wartość transakcji to cena * sztuk.
public class SumaWartosciWMiescie {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(new File("sprzedaz.csv"))) {
scanner.nextLine(); // pominięcie nagłówków
double suma = 0;
while(scanner.hasNextLine()) {
String linia = scanner.nextLine();
String[] t = linia.split(",");
if("Katowice".equals(t[1])) {
suma += Double.parseDouble(t[5]) * Integer.parseInt(t[6]);
}
}
// System.out.println("Suma: " + suma);
System.out.printf("Suma: %.2f\n", suma);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
package sprzedaz.obiektowo;
import java.math.BigDecimal;
import java.util.List;
public class A2_SumaWybranegoMiasta {
......@@ -7,10 +8,10 @@ public class A2_SumaWybranegoMiasta {
public static void main(String[] args) {
List<Transakcja> lista = ObslugaCSV.wczytaj("sprzedaz.csv");
double suma = 0;
BigDecimal suma = BigDecimal.ZERO;
for(Transakcja transakcja : lista) {
if("Katowice".equals(transakcja.getMiasto())) {
suma += transakcja.getWartoscDouble();
suma = suma.add(transakcja.getWartosc());
}
}
System.out.println("Suma łączna: " + suma);
......
package sprzedaz.obiektowo;
import java.util.List;
public class P0_Odczyt {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
System.out.println("Udało się wczytać " + transakcje.size() + " rekordów");
for(Transakcja transakcja : transakcje) {
System.out.println(transakcja);
}
}
}
package sprzedaz.obiektowo;
import java.util.List;
public class P1_WypiszWybranePola {
public static void main(String[] args) {
// TODO Z każdego rekordu wypisz tylko miasto, towar i l.sztuk
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
System.out.println("Udało się wczytać " + transakcje.size() + " rekordów");
for(Transakcja transakcja : transakcje) {
// System.out.println(transakcja.getMiasto() + ", " + transakcja.getTowar()
// + ", " + transakcja.getSztuk() + " sztuk");
System.out.printf("W mieście %s sprzedano %d sztuk towaru %s\n",
transakcja.getMiasto(), transakcja.getSztuk(), transakcja.getTowar());
}
}
}
package sprzedaz.obiektowo;
import java.util.List;
public class P2_SumaJednegoMiasta_v1 {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
System.out.println("Udało się wczytać " + transakcje.size() + " rekordów");
double suma = 0;
for(Transakcja transakcja : transakcje) {
if("Katowice".equals(transakcja.getMiasto())) {
suma += transakcja.getSztuk() * transakcja.getCena().doubleValue();
}
}
System.out.println("Suma z wybranego miasta: " + suma);
}
}
package sprzedaz.obiektowo;
import java.util.List;
import java.util.Objects;
import javax.swing.JOptionPane;
public class P2_SumaJednegoMiasta_v2 {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
String miasto = JOptionPane.showInputDialog("Podaj nazwę miasta:");
double suma = 0;
for(Transakcja transakcja : transakcje) {
if(Objects.equals(miasto, transakcja.getMiasto())) {
suma += transakcja.getSztuk() * transakcja.getCena().doubleValue();
}
}
JOptionPane.showMessageDialog(null, "Suma z wybranego miasta: " + suma);
}
}
package sprzedaz.obiektowo;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import javax.swing.JOptionPane;
public class P2_SumaJednegoMiasta_v3 {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
String miasto = JOptionPane.showInputDialog("Podaj nazwę miasta:");
BigDecimal suma = BigDecimal.ZERO;
for(Transakcja transakcja : transakcje) {
if(Objects.equals(miasto, transakcja.getMiasto())) {
suma = suma.add(transakcja.getCena().multiply(BigDecimal.valueOf(transakcja.getSztuk())));
}
}
JOptionPane.showMessageDialog(null, "Suma z wybranego miasta: " + suma);
}
}
package sprzedaz.obiektowo;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import javax.swing.JOptionPane;
public class P2_SumaJednegoMiasta_v4 {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
String miasto = JOptionPane.showInputDialog("Podaj nazwę miasta:");
BigDecimal suma = BigDecimal.ZERO;
for(Transakcja transakcja : transakcje) {
if(Objects.equals(miasto, transakcja.getMiasto())) {
suma = suma.add(transakcja.getWartosc());
}
}
JOptionPane.showMessageDialog(null, "Suma z wybranego miasta: " + suma);
}
}
package sprzedaz.obiektowo;
import java.util.ArrayList;
import java.util.List;
public class P3_Miasta_v1 {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
List<String> miasta = new ArrayList<>();
// nanoTime - odczyt zegara systemowego.
// robimy to po to, aby zmierzyć czas działania
long p = System.nanoTime();
for(Transakcja transakcja : transakcje) {
if(!miasta.contains(transakcja.getMiasto())) {
miasta.add(transakcja.getMiasto());
}
}
long k = System.nanoTime();
for(String miasto : miasta) {
System.out.println(miasto);
}
System.out.printf("Czas: %.6f s\n", (k-p) * 1e-9);
}
}
package sprzedaz.obiektowo;
import java.text.Collator;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class P3_Miasta_v2 {
// Miast jest tylko 8 i tu jeszcze nie widać róznicy w działaniu, ale generalnie dla zbiorów (Set)
// sprawdzanie czy element należy do zbioru oraz zapewnianie unikalności jest szybsze niż dla list.
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCSV.wczytaj("sprzedaz.csv");
//Set<String> miasta = new HashSet<>(); // dowolnie zmienia kolejność
//Set<String> miasta = new LinkedHashSet<>(); // zachowuje oryginalną kolejność (wg pierwszych wystapień)
//Set<String> miasta = new TreeSet<>(); // kolejność posortowana, Ł na końcu
Set<String> miasta = new TreeSet<>(Collator.getInstance()); // posortowane alfabetycznie wg języka polskiego
// nanoTime - odczyt zegara systemowego.
// robimy to po to, aby zmierzyć czas działania
long p = System.nanoTime();
for(Transakcja transakcja : transakcje) {
// Set sam gwarantuje brak powtórzeń, więc w tej wersji nie trzeba pisać if
miasta.add(transakcja.getMiasto());
}
long k = System.nanoTime();
for(String miasto : miasta) {
System.out.println(miasto);
}
System.out.printf("Czas: %.6f s\n", (k-p) * 1e-9);
}
}
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