Czego się nauczysz?
- Pracy z tablicami asocjacyjnymi (kursy walut)
- Obliczania konwersji walutowych
- Formatowania kwot w różnych walutach
- Zapisywania historii operacji
Stworzysz Kalkulator walut - aplikację webową do przeliczania kwot między różnymi walutami przy użyciu stałych (zdefiniowanych w kodzie) kursów wymiany. Użytkownik wprowadza kwotę, wybiera walutę źródłową i docelową, a system oblicza i wyświetla wynik. Historia konwersji jest zapisywana do pliku JSON.
Czego się nauczysz?
W prawdziwej pracy...
Kalkulatory walutowe to element wielu aplikacji e-commerce, bankowych i podróżniczych. Zrozumienie jak działają przeliczniki i konwersje jest podstawą pracy z danymi finansowymi. Nawet prosta wersja że stałymi kursami uczy kluczowych koncepcji.
Formularz konwersji Użytkownik wprowadza kwotę do przeliczenia oraz wybiera walutę źródłową i docelową z listy dostępnych walut.
Obliczenie i wyświetlenie wyniku System przelicza kwotę według zdefiniowanego kursu i wyświetla wynik w czytelnej formie (np. “100 PLN = 23.50 EUR”).
Historia konwersji Każda operacja jest zapisywana do pliku JSON, co pozwala przeglądać poprzednie przeliczenia.
Przykładowa tablica kursów (w kodzie PHP):
<?php$rates = [ 'PLN' => 1.00, // waluta bazowa 'EUR' => 0.235, // 1 PLN = 0.235 EUR 'USD' => 0.25, // 1 PLN = 0.25 USD 'GBP' => 0.20, // 1 PLN = 0.20 GBP 'CHF' => 0.22, // 1 PLN = 0.22 CHF];?>Przykładowa struktura pliku JSON (historia):
{ "conversions": [ { "id": 1, "amount": 100.00, "from": "PLN", "to": "EUR", "rate": 0.235, "result": 23.50, "created_at": "2026-02-13 10:30:00" }, { "id": 2, "amount": 50.00, "from": "EUR", "to": "USD", "rate": 1.064, "result": 53.20, "created_at": "2026-02-13 11:15:00" } ]}Wymagane funkcje:
Przykładowy scenariusz:
Ocena: 3.0Turysta chcę sprawdzić ile euro dostanie za 500 PLN. Wpisuje kwotę 500, wybiera PLN -> EUR i klika “Przelicz”. Widzi wynik: “500,00 PLN = 117,50 EUR (kurs: 0.235)”.
Wszystko z wariantu A, plus:
Przykładowy scenariusz:
Ocena: 4.0-5.0Przedsiębiorca przelicza 1000 EUR na USD. System oblicza przez walutę bazową (PLN) i wyświetla wynik. Pod kalkulatorem widzi historię swoich ostatnich przeliczań z datami.
Wszystko z wariantu B, plus:
Przykładowy scenariusz:
Ocena: 5.0-6.0Analityk przegląda statystyki kalkulatora. Widzi, że najczęściej przeliczana para to PLN-EUR (65% konwersji). Aktualizuje kursy walut w panelu administracyjnym i eksportuje historię konwersji do Excela.
Definicja kursów i przeliczanie:
<?php// Kursy względem PLN (1 PLN = X waluty)$rates = [ 'PLN' => 1.00, 'EUR' => 0.235, 'USD' => 0.25, 'GBP' => 0.20, 'CHF' => 0.22,];
function convert($amount, $from, $to, $rates) { // Najpierw przelicz na PLN, potem na walutę docelową $inPLN = $amount / $rates[$from]; $result = $inPLN * $rates[$to]; return round($result, 2);}
// Użycie$result = convert(100, 'EUR', 'USD', $rates);echo "100 EUR = $result USD";?>Walidacja kwoty:
<?php$amount = $_POST['amount'] ?? '';
// Zamień przecinek na kropkę$amount = str_replace(',', '.', $amount);$amount = floatval($amount);
if ($amount <= 0) { $errors[] = 'Kwota musi być liczbą dodatnią';}?>Zapis konwersji do historii:
<?php$file = 'conversions.json';$data = file_exists($file) ? json_decode(file_get_contents($file), true) : ['conversions' => []];
$data['conversions'][] = [ 'id' => count($data['conversions']) + 1, 'amount' => $amount, 'from' => $from, 'to' => $to, 'rate' => $rates[$to] / $rates[$from], 'result' => $result, 'created_at' => date('Y-m-d H:i:s')];
file_put_contents($file, json_encode($data, JSON_PRETTY_PRINT));?>Formatowanie wyniku:
<?php$symbols = ['PLN' => 'zł', 'EUR' => '€', 'USD' => '$', 'GBP' => '£', 'CHF' => 'CHF'];
echo number_format($amount, 2, ',', ' ') . ' ' . $symbols[$from];echo ' = ';echo number_format($result, 2, ',', ' ') . ' ' . $symbols[$to];?>Wykorzystaj lekcje!
Cotygodniowe spotkania podczas lekcji to idealny moment, by:
Pracuj iteracyjnie - lepiej mieć działający wariant A niż niedokończony C!