Przejdź do głównej zawartości

Kalkulator walut (stały kurs)

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?

  • Pracy z tablicami asocjacyjnymi (kursy walut)
  • Obliczania konwersji walutowych
  • Formatowania kwot w różnych walutach
  • Zapisywania historii operacji

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.

  1. Formularz konwersji Użytkownik wprowadza kwotę do przeliczenia oraz wybiera walutę źródłową i docelową z listy dostępnych walut.

  2. 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”).

  3. 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:

  • Formularz: kwota, waluta źródłowa, waluta docelowa
  • Stałe kursy dla jednej pary walut (np. PLN-EUR)
  • Walidacja kwoty w PHP (liczba dodatnia)
  • Obliczenie i wyświetlenie wyniku
  • Prosty interfejs CSS

Przykładowy scenariusz:

Turysta 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)”.

Ocena: 3.0

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' => '', '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:

  • Pokazać postępy - nawet małe kroki się liczą
  • Wyjaśnić wątpliwości - pytaj, nie zgaduj
  • Skonsultować rozwiązania - feedback pomoże Ci się rozwijać

Pracuj iteracyjnie - lepiej mieć działający wariant A niż niedokończony C!