Czego się nauczysz?
- Obsługi formularzy HTML i walidacji danych w PHP
- Operacji matematycznych i formatowania liczb
- Zapisu i odczytu danych z plikow JSON
- Tworzenia historii operacji z datami
Stworzysz Kalkulator kosztow - aplikacje umozliwiajaca obliczanie kosztu całkowitego produktu lub usługi na podstawie podanych parametrow. Użytkownik wprowadza cene jednostkowa, ilosc oraz rabat (procentowy lub kwotowy), a system automatycznie oblicza i wyświetla cene końcowa. Historia wszystkich obliczen jest zapisywana do pliku JSON, co pozwala sledzic poprzednie kalkulacje.
Czego się nauczysz?
W prawdziwej pracy...
Kalkulatory kosztow sa podstawa systemow e-commerce, fakturowania i sprzedazy. Każdy sklep internetowy, system POS czy aplikacja do wystawiania ofert wymaga podobnych obliczen. Umiejetnosc walidacji danych liczbowych i obsługi rabatow to codziennosc w pracy programisty tworzacego aplikacje biznesowe.
Formularz wprowadzania danych Użytkownik podaje cene jednostkowa produktu, ilosc sztuk oraz opcjonalny rabat (jako procent lub kwote stałej znizki).
Obliczenie kosztu końcowego System przelicza koszt całkowity uwzgledniajac ilosc i rabat, wyswietlajac wynik w czytelnej formie (np. “180,00 zl”).
Zapis do historii Każde obliczenie jest zapisywane do pliku JSON wraz z data wykonania, co pozwala później przegladac poprzednie kalkulacje.
Przykładowa struktura pliku JSON:
{ "calculations": [ { "id": 1, "price": 100.00, "quantity": 2, "discount": 10, "discount_type": "percent", "total": 180.00, "created_at": "2026-02-13 10:30:00" }, { "id": 2, "price": 50.00, "quantity": 5, "discount": 25, "discount_type": "amount", "total": 225.00, "created_at": "2026-02-13 11:45:00" } ]}Wymagane funkcje:
Przykładowy scenariusz:
Ocena: 3.0Użytkownik wchodzi na strone i widzi formularz. Wpisuje cene 100 zl, ilosc 2 sztuki i rabat 10%. Po kliknieciu “Oblicz” widzi wynik: “Koszt całkowity: 180,00 zl”. Obliczenie zostaje zapisane do pliku JSON.
Wszystko z wariantu A, plus:
Przykładowy scenariusz:
Ocena: 4.0-5.0Użytkownik wykonuje obliczenie, a pod formularzem widzi tabele z ostatnimi 10 obliczeniami. Może wybrać filtr “dzisiaj” i zobaczyc tylko dzisiejsze kalkulacje. Przy błędnych danych (np. ujemna cena) widzi czerwony komunikat “Cena musi być liczba dodatnia”.
Wszystko z wariantu B, plus:
Przykładowy scenariusz:
Ocena: 5.0-6.0Użytkownik wybiera typ rabatu “kwotowy” i wpisuje 25 zl znizki. System sprawdza, czy rabat nie przekracza wartości zamowienia. Na dole strony widzi raport: “Łączna wartość obliczen: 2450 zl | Sredni rabat: 12% | Liczba transakcji: 15”. Może też usunąć stare wpisy lub wyeksportowac historie do pliku CSV.
Walidacja liczby dodatniej:
$price = filter_var($_POST['price'], FILTER_VALIDATE_FLOAT);if ($price === false || $price <= 0) { $errors[] = "Cena musi być liczba dodatnia";}Obliczenie rabatu procentowego:
$subtotal = $price * $quantity;$discount_amount = $subtotal * ($discount / 100);$total = $subtotal - $discount_amount;Zapis do JSON:
$data = json_decode(file_get_contents('history.json'), true) ?? ['calculations' => []];$data['calculations'][] = [ 'id' => count($data['calculations']) + 1, 'price' => $price, 'quantity' => $quantity, 'discount' => $discount, 'total' => $total, 'created_at' => date('Y-m-d H:i:s')];file_put_contents('history.json', json_encode($data, JSON_PRETTY_PRINT));Wykorzystaj lekcje!
Cotygodniowe spotkania podczas lekcji to idealny moment, by:
Pracuj iteracyjnie - lepiej mieć działający wariant A niz niedokonczony C!