//Ahol érdemes, használj a megoldás során többágú szelekciót!
//Ha ez nem megy, akkor megoldhatod kétágú szelekciókkal is.
//Okostelefonok eladásához azt a modult kell megírnod,
//ami a mindenkori 3 akciós készülék vásárlására ad lehetőséget.
//Feladat:
//Tárold struktúrákban a 3 telefon márkáját és típusát (egy stringként),
//az árát, és a hozzá tartozó kedvezmény mértékét (pl. 5 - ez 5 %-ot
jelent).
//Írd ki ezeket az adatokat a képernyőre, egy telefon adatait egy
sorszámozott sorba.
//Kérdezd meg a usert, hogy melyik telefont választja. Csak egy számot
kelljen beütnie.
//Írd ki a választásától függően a képernyőre a telefon akciós árát. Ha
valótlan
//számot ütött be a user, írj ki hibaüzenetet.
//Ezután kérdezd meg a usert, hogy törzsvásárló-e. <Törzsvásárló / nem
törzsvásárló> formában kérd ezt be.
//Ha törzsvásárló, és a telefon nem akciós értéke 50.000,- Ft fölött van,
//írd ki neki, hogy a törzsvásárlói kártyáján 100 pontot fogsz jóváírni
//(vagyis ennyi pontot fog kapni). Ha ez a feltétel nem igaz, akkor írd ki,
//hogy 100 pontot kapott volna, ha lenne törzsvásárlói kártyája.
//Ezután kérdezd meg, hogy ezeket a feltételeket elfogadja-e (true/false
lehet a válasz).
// Ha igen, kérd be a nevét, és a címét egy-egy változóba.
// Ha nem, akkor nincs
teendő.
//Írj ki egy búcsúzó üzenetet, melyben a nevén nevezed a usert, ha tudod a
nevét,
//és kiírod, hogy milyen címre postázod a telefont. Ha nem tudod a nevét,
//akkor csak ennyit: „Viszontlátásra!”
Ricsi megoldása:
using System;
namespace _20200303Orai
{
class Program
{
public struct telefonok
{
public string markaTipus;
public double ar;
public double kedvezmeny;
}
static void Main(string[] args)
{
//Ahol érdemes, használj a megoldás során többágú szelekciót!
//Ha ez nem megy, akkor megoldhatod kétágú szelekciókkal is.
//Okostelefonok eladásához azt a modult kell megírnod,
//ami a mindenkori 3 akciós készülék vásárlására ad lehetőséget.
//Feladat:
//Tárold struktúrákban a 3 telefon márkáját és típusát (egy stringként),
//az árát, és a hozzá tartozó kedvezmény mértékét (pl. 5 - ez 5 %-ot jelent).
telefonok telefon1 = new telefonok();
telefon1.markaTipus = "Samsung Galaxy S10";
telefon1.ar = 203000;
telefon1.kedvezmeny = 5;
telefonok telefon2 = new telefonok();
telefon2.markaTipus = "Iphone 11";
telefon2.ar = 255000;
telefon2.kedvezmeny = 6;
telefonok telefon3 = new telefonok();
telefon3.markaTipus = "Xiaomi Redmi Note 8T";
telefon3.ar = 65000;
telefon3.kedvezmeny = 4;
//Írd ki ezeket az adatokat a képernyőre, egy telefon adatait egy sorszámozott sorba.
Console.WriteLine("1. telefon:");
Console.WriteLine("{0}", telefon1.markaTipus);
Console.WriteLine("Ár: {0} Ft", telefon1.ar);
Console.WriteLine("Kedvezmény: {0}%", telefon1.kedvezmeny);
Console.WriteLine();
Console.WriteLine("2. telefon:");
Console.WriteLine("{0}", telefon2.markaTipus);
Console.WriteLine("Ár: {0} Ft", telefon2.ar);
Console.WriteLine("kedvezmény: {0}%", telefon2.kedvezmeny);
Console.WriteLine();
Console.WriteLine("3. telefon:");
Console.WriteLine("{0}", telefon3.markaTipus);
Console.WriteLine("Ár: {0} Ft", telefon3.ar);
Console.WriteLine("kedvezmény: {0}%", telefon3.kedvezmeny);
Console.WriteLine();
//Kérdezd meg a usert, hogy melyik telefont választja. Csak egy számot kelljen beütnie.
Console.WriteLine("Melyik telefont választja ? (1,2,3)");
char valaszt = Convert.ToChar(Console.ReadLine());
//Írd ki a választásától függően a képernyőre a telefon akciós árát. Ha valótlan
//számot ütött be a user, írj ki hibaüzenetet.
double ar = 0;
switch (valaszt)
{
case '1':
Console.WriteLine("Ennek az ára: {0} Ft", telefon1.ar);
ar = telefon1.ar;
break;
case '2':
Console.WriteLine("Ennek az ára: {0} Ft", telefon2.ar);
ar = telefon2.ar;
break;
case '3':
Console.WriteLine("Ennek az ára: {0} Ft", telefon3.ar);
ar = telefon3.ar;
break;
default:
Console.WriteLine("Kérem csak a megadott számok közül írjon be egyet.");
break;
}
//Ezután kérdezd meg a usert, hogy törzsvásárló-e. <Törzsvásárló / nem törzsvásárló> formában kérd ezt be.
Console.WriteLine("Ön törzsvásárló ? (törzsvásárló/nem törzsvásárló)");
string kerdes = Console.ReadLine();
//Ha törzsvásárló, és a telefon nem akciós értéke 50.000,- Ft fölött van,
//írd ki neki, hogy a törzsvásárlói kártyáján 100 pontot fogsz jóváírni
//(vagyis ennyi pontot fog kapni). Ha ez a feltétel nem igaz, akkor írd ki,
//hogy 100 pontot kapott volna, ha lenne törzsvásárlói kártyája.
if (kerdes == "törzsvásárló")
{
if (ar > 50000)
{
Console.WriteLine("Akkor a törzsvásárlói kártyáján 100 ponot fogok jóváírni.");
}
}
else
{
if (kerdes == "nem törzsvásárló")
{
Console.WriteLine("100 pontot kapott volna, ha lenne törzsvásárlói kártyája.");
}
}
//Ezután kérdezd meg, hogy ezeket a feltételeket elfogadja-e (true/false lehet a válasz).
Console.WriteLine("Elfogadja ezeket a feltételeket ? (true/false)");
bool kerdes2 = Convert.ToBoolean(Console.ReadLine());
// Ha igen, kérd be a nevét, és a címét egy-egy változóba.
// Ha nem, akkor nincs teendő.
switch (kerdes2)
{
case true:
Console.WriteLine("Kérem a nevét:");
string nev = Console.ReadLine();
Console.WriteLine("Kérem a címét:");
string cim = Console.ReadLine();
Console.WriteLine("{0} a {1} címre postázom a telefont.", nev, cim);
break;
case false:
Console.WriteLine("Viszontlátásra!");
break;
default:
break;
}
//Írj ki egy búcsúzó üzenetet, melyben a nevén nevezed a usert, ha tudod a nevét,
//és kiírod, hogy milyen címre postázod a telefont. Ha nem tudod a nevét,
//akkor csak ennyit: „Viszontlátásra!”
Console.ReadLine();
}
}
}
Varsó megoldása:
using System;
namespace _20200303HaziFeladat
{
class Program
{
public struct Phone
{
public string PhoneMarka;
public string PhoneTipus;
public int PhoneROM;
public string PhoneSzin;
public int PhoneAr;
public double PhoneKedvezmeny;
}
static void Main(string[]
args)
{
//2020.03.03
Struktúra, többágú szelekció gyarkolás - Okostelefonok
//Ahol érdemes,
használj a megoldás során többágú szelekciót!
//Ha ez nem megy,
akkor megoldhatod kétágú szelekciókkal is.
Console.Title
= "Telefon-kereskedés";
//Okostelefonok
eladásához azt a modult kell megírnod,
//ami a
mindenkori 3 akciós készülék vásárlására ad lehetőséget.
Console.WriteLine("Telefon-kereskedés\n---------------\n");
//Feladat:
//Tárold struktúrákban
a 3 telefon márkáját és típusát (egy stringként),
//az árát, és a
hozzá tartozó kedvezmény mértékét (pl. 5 - ez 5 %-ot jelent).
Phone
Termek1 = new Phone();
Termek1.PhoneMarka = "iPhone";
Termek1.PhoneTipus = "XR";
Termek1.PhoneROM = 64;
Termek1.PhoneSzin = "Fekete";
Termek1.PhoneAr = 215000;
Termek1.PhoneKedvezmeny = 5;
Phone
Termek2 = new Phone();
Termek2.PhoneMarka = "Samsung";
Termek2.PhoneTipus = "Galaxy A70";
Termek2.PhoneROM = 128;
Termek2.PhoneSzin = "Fekete";
Termek2.PhoneAr = 120000;
Termek2.PhoneKedvezmeny = 10;
Phone
Termek3 = new Phone();
Termek3.PhoneMarka = "Xiaomi";
Termek3.PhoneTipus = "Mi 9T Pro";
Termek3.PhoneROM = 128;
Termek3.PhoneSzin = "Fekete";
Termek3.PhoneAr = 140000;
Termek3.PhoneKedvezmeny = 12;
//Írd ki ezeket
az adatokat a képernyőre, egy telefon adatait egy sorszámozott sorba.
Console.WriteLine("Kínálat\n---------\n");
Console.WriteLine("1. készülék");
Console.WriteLine("Márka: {0}\nTípus: {1}\nBelső tárhely mérete:
{2}\nSzín: {3}\nÁr: {4} Forint\n", Termek1.PhoneMarka,
Termek1.PhoneTipus, Termek1.PhoneROM, Termek1.PhoneSzin, Termek1.PhoneAr);
Console.WriteLine("2. készülék");
Console.WriteLine("Márka: {0}\nTípus: {1}\nBelső tárhely mérete:
{2}\nSzín: {3}\nÁr: {4} Forint\n", Termek2.PhoneMarka,
Termek2.PhoneTipus, Termek2.PhoneROM, Termek2.PhoneSzin, Termek2.PhoneAr);
Console.WriteLine("3. készülék");
Console.WriteLine("Márka: {0}\nTípus: {1}\nBelső tárhely mérete:
{2}\nSzín: {3}\nÁr: {4} Forint\n", Termek3.PhoneMarka,
Termek3.PhoneTipus, Termek3.PhoneROM, Termek3.PhoneSzin, Termek3.PhoneAr);
//Kérdezd meg a
usert, hogy melyik telefont választja. Csak egy számot kelljen beütnie.
Console.Write("Melyik készüléket választja? (1/2/3) ");
int
selector = Convert.ToInt32(Console.ReadLine());
//Írd ki a választásától
függően a képernyőre a telefon akciós árát. Ha valótlan
//számot ütött be
a user, írj ki hibaüzenetet.
double
PhoneAr = 0;
double
PhoneArKedvezmenyes = 0;
switch
(selector)
{
case 1:
PhoneArKedvezmenyes =
Termek1.PhoneAr - (Termek1.PhoneAr / 100 * Termek1.PhoneKedvezmeny);
PhoneAr = Termek1.PhoneAr;
break;
case 2:
PhoneArKedvezmenyes =
Termek2.PhoneAr - (Termek2.PhoneAr / 100 * Termek2.PhoneKedvezmeny);
PhoneAr = Termek2.PhoneAr;
break;
case 3:
PhoneArKedvezmenyes =
Termek3.PhoneAr - (Termek3.PhoneAr / 100 * Termek3.PhoneKedvezmeny);
PhoneAr = Termek3.PhoneAr;
break;
default:
Console.BackgroundColor
= ConsoleColor.Red;
Console.WriteLine("Hibásan megadott érték!");
Console.ResetColor();
break;
}
string
VasarloNeve = String.Empty;
string
VasarloLakcim = String.Empty;
if
(selector > 0 && selector < 4)
{
Console.WriteLine("\nA telefon akciós ára: {0} Forint",
PhoneArKedvezmenyes);
//Ezután kérdezd meg
a usert, hogy törzsvásárló-e. <Törzsvásárló / nem törzsvásárló> formában
kérd ezt be.
//Ha törzsvásárló, és
a telefon nem akciós értéke 50.000,- Ft fölött van,
//írd ki neki, hogy a
törzsvásárlói kártyáján 100 pontot fogsz jóváírni
//(vagyis ennyi
pontot fog kapni). Ha ez a feltétel nem igaz, akkor írd ki,
//hogy 100 pontot
kapott volna, ha lenne törzsvásárlói kártyája.
Console.Write("\nÖn törzsvásárló? (Törzsvásárló / Nem törzsvásárló): ");
string
Torzsvasarlo = Console.ReadLine();
if
(Torzsvasarlo.ToUpper() == "TÖRZSVÁSÁRLÓ"
|| Torzsvasarlo.ToUpper() == "NEM TÖRZSVÁSÁRLÓ")
{
if
(Torzsvasarlo.ToUpper() == "TÖRZSVÁSÁRLÓ")
{
if
(PhoneAr > 50000)
{
Console.WriteLine("\nA törzsvásárlói kártyán 100 pontot fogunk jóváírni
a vásárlás után.");
}
}
else
{
if
(PhoneAr > 50000)
{
Console.WriteLine("\nHa lett volna törzsvásárlói kártyája, akkor a vásárlás
után 100 pontot írtunk volna jóvá!");
}
}
}
//Ezután kérdezd meg,
hogy ezeket a feltételeket elfogadja-e (true/false lehet a válasz).
// Ha igen, kérd be a
nevét, és a címét egy-egy változóba.
// Ha nem, akkor
nincs teendő.
Console.Write("\nElfogadja a felhasználási feltételeket?
(true/false): ");
bool FF = Convert.ToBoolean(Console.ReadLine());
if (FF)
{
Console.Write("\nKérem a vásárló nevét: ");
VasarloNeve = Console.ReadLine();
Console.Write("\nKérem a vásárló címét: ");
VasarloLakcim = Console.ReadLine();
}
}
else
{
Console.BackgroundColor
= ConsoleColor.Red;
Console.WriteLine("Hiba az adatok feldolgozása közben!");
Console.ResetColor();
}
//Írj ki egy búcsúzó
üzenetet, melyben a nevén nevezed a usert, ha tudod a nevét,
//és kiírod, hogy
milyen címre postázod a telefont. Ha nem tudod a nevét,
//akkor csak
ennyit: „Viszontlátásra!”
Console.WriteLine();
if
(VasarloNeve == "")
{
Console.WriteLine("Viszontlátásra!");
}
else
{
Console.WriteLine("Kedves {0}! Erre a címre postázom a telefont:
{1}", VasarloNeve, VasarloLakcim);
}
Console.Write("\n\nA program bezárásához nyomjon meg egy billentyűt...");
Console.ReadKey();
}
}
}
Nincsenek megjegyzések:
Megjegyzés küldése