Cel: napisać prosty symulator bankomatu uczący pracy ze zmiennymi, metodami, walidacją danych i utrzymywaniem stanu konta.
dotnet new console -n AtmSimulator.Program.cs na kod poniżej.dotnet run.Skopiuj do Program.cs.
// Program.cs
using System;
using System.Globalization;
class Program
{
static decimal ReadAmount(string prompt)
{
while (true)
{
Console.Write(prompt);
var s = Console.ReadLine();
if (s == null) throw new OperationCanceledException();
s = s.Trim().Replace(',', '.');
if (decimal.TryParse(s, NumberStyles.Number, CultureInfo.InvariantCulture, out var v) && v >= 0)
return v;
Console.WriteLine("Nieprawidłowa kwota. Wprowadź wartość dodatnią (np. 100.50).");
}
}
static int ReadChoice()
{
Console.Write("Wybierz opcję: ");
var c = Console.ReadLine();
if (int.TryParse(c, out var n)) return n;
return -1;
}
static void Main()
{
decimal balance = 1000m; // stan konta
Console.WriteLine("Symulator bankomatu (C#)");
while (true)
{
Console.WriteLine();
Console.WriteLine("1) Sprawdź saldo");
Console.WriteLine("2) Wypłać środki");
Console.WriteLine("3) Wpłać środki");
Console.WriteLine("4) Historia (tymczasowa)");
Console.WriteLine("5) Wyjdź");
var choice = ReadChoice();
switch (choice)
{
case 1:
Console.WriteLine($"Saldo: {balance:F2} PLN");
break;
case 2:
var withdraw = ReadAmount("Podaj kwotę do wypłaty: ");
if (withdraw == 0)
{
Console.WriteLine("Kwota zero — nic nie zmieniono.");
break;
}
if (withdraw > balance)
{
Console.WriteLine("Brak wystarczających środków.");
break;
}
balance -= withdraw;
Console.WriteLine($"Wypłacono {withdraw:F2} PLN. Nowe saldo: {balance:F2} PLN");
// tutaj możesz dodać zapis transakcji do listy
break;
case 3:
var deposit = ReadAmount("Podaj kwotę do wpłaty: ");
if (deposit == 0)
{
Console.WriteLine("Kwota zero — nic nie zmieniono.");
break;
}
balance += deposit;
Console.WriteLine($"Wpłacono {deposit:F2} PLN. Nowe saldo: {balance:F2} PLN");
break;
case 4:
Console.WriteLine("Funkcja historii: jeszcze niezaimplementowana w przykładzie.");
break;
case 5:
Console.WriteLine("Do zobaczenia!");
return;
default:
Console.WriteLine("Nieprawidłowa opcja. Wybierz numer z menu.");
break;
}
}
}
}