04. FELADAT · FORRÁSKÓD
Iskolai büfé – napi zárás
Program.csAnimáció megnyitása →
namespace Feladat04_BufeNapiZaras
{
internal class Program
{
static void Main(string[] args)
{
const double KEDVEZMENY_HATAR = 1000.0; // e fölötti vásárlásra jár a diákkedvezmény
const double KEDVEZMENY_SZAZALEK = 0.10; // 10%
Console.WriteLine("=== Iskolai büfé – napi zárás ===");
Console.Write("Hány vásárlás volt ma? ");
int vasarlasokSzama = int.Parse(Console.ReadLine());
double bevetelSzendvics = 0;
double bevetelItal = 0;
double bevetelEdesseg = 0;
double adottKedvezmeny = 0;
int kedvezmenyesTetelek = 0;
int ervenyesTetelek = 0;
int hibasTetelek = 0;
double legnagyobbVasarlas = 0;
int legnagyobbSorszama = 0;
for (int i = 1; i <= vasarlasokSzama; i++)
{
Console.Write($"{i}. vásárlás kategóriája (1-szendvics, 2-ital, 3-édesség): ");
int kategoria = int.Parse(Console.ReadLine());
if (kategoria < 1 || kategoria > 3)
{
hibasTetelek++;
Console.WriteLine(" Érvénytelen kategória, a tétel nem kerül rögzítésre.");
}
else
{
Console.Write($"{i}. vásárlás összege (Ft): ");
double osszeg = double.Parse(Console.ReadLine());
double kedvezmeny = Kedvezmeny(osszeg, KEDVEZMENY_HATAR, KEDVEZMENY_SZAZALEK);
double fizetett = osszeg - kedvezmeny;
if (kedvezmeny > 0)
{
kedvezmenyesTetelek++;
adottKedvezmeny += kedvezmeny;
Console.WriteLine($" Diákkedvezmény: -{kedvezmeny:F2} Ft, fizetendő: {fizetett:F2} Ft");
}
switch (kategoria)
{
case 1: bevetelSzendvics += fizetett; break;
case 2: bevetelItal += fizetett; break;
case 3: bevetelEdesseg += fizetett; break;
}
ervenyesTetelek++;
if (fizetett > legnagyobbVasarlas)
{
legnagyobbVasarlas = fizetett;
legnagyobbSorszama = i;
}
}
}
double osszBevetel = bevetelSzendvics + bevetelItal + bevetelEdesseg;
Console.WriteLine();
Console.WriteLine("--- Napi zárás ---");
Console.WriteLine($"{KategoriaNev(1)}: {bevetelSzendvics:F2} Ft");
Console.WriteLine($"{KategoriaNev(2)}: {bevetelItal:F2} Ft");
Console.WriteLine($"{KategoriaNev(3)}: {bevetelEdesseg:F2} Ft");
Console.WriteLine($"Összes bevétel: {osszBevetel:F2} Ft");
Console.WriteLine($"Rögzített tételek: {ervenyesTetelek} db, hibás tételek: {hibasTetelek} db");
Console.WriteLine($"Kedvezményes vásárlások: {kedvezmenyesTetelek} db");
Console.WriteLine($"Összes adott kedvezmény: {adottKedvezmeny:F2} Ft");
if (ervenyesTetelek > 0)
{
double atlag = osszBevetel / ervenyesTetelek;
Console.WriteLine($"Átlagos kosárérték: {atlag:F2} Ft");
Console.WriteLine($"A legnagyobb vásárlás a(z) {legnagyobbSorszama}. tétel volt: {legnagyobbVasarlas:F2} Ft");
}
else
{
Console.WriteLine("Ma egyetlen érvényes vásárlás sem volt, ezért átlag és legnagyobb tétel sincs.");
}
}
// A határ FÖLÖTTI vásárlásra jár a kedvezmény; egyébként 0 Ft.
static double Kedvezmeny(double osszeg, double hatar, double szazalek)
{
double kedvezmeny = 0;
if (osszeg > hatar)
{
kedvezmeny = osszeg * szazalek;
}
return kedvezmeny;
}
static string KategoriaNev(int kod)
{
string nev;
switch (kod)
{
case 1: nev = "Szendvics"; break;
case 2: nev = "Ital"; break;
case 3: nev = "Édesség"; break;
default: nev = "Ismeretlen"; break;
}
return nev;
}
}
}