2017. február 8., szerda

2017.02.09. Többágú szelekció ismétlés - házi feladat

Február 13-ra, hétfő 7. órára kell megoldani.

//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.

//Asztali számítógépek eladásához azt a modult kell megírnod,
//ami a mindenkori 3 legújabb készülék vásárlására ad lehetőséget.

//Feladat:
//Tárold struktúrákban a 3 számítógép megnevezését (gyártó, fantázianév és egy kód egyben,
//pl. HP Pavilion Wave 600-a000),
//az árát, és a hozzá tartozó akció mértékét (pl. 10 - ez 10 %-ot jelent).
//Írd ki ezeket az adatokat a képernyőre, egy készülék adatait egy sorszámozott sorba.
//Kérdezd meg a felhasználót, hogy melyik számítógépet 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 számítógép akciós árát. Ha valótlan
//számot ütött be a felhasználó, írj ki hibaüzenetet.

//Ezután kérdezd meg a felhasználót, hogy regisztrált felhasználó-e <regisztrált / nem regisztrált>
//formában kérd ezt be.
//Ha regisztrált, és a számítógép nettó értéke 150.000,- Ft fölött van,
//írd ki neki, hogy a 1000 forintnyi bónuszt fog kapni.
//Ha ez a feltétel nem igaz, akkor írd ki,
//hogy 1000 forintnyi bónuszt kapott volna, ha regisztrált vásárló lenne.

//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 felhasználót, ha tudod a nevét,
//és kiírod, hogy milyen címre postázod a számítógépet. Ha nem tudod a nevét,

//akkor csak ennyit: „Reméljük, nemsokára ellátogat újra hozzánk!”

Ádám megoldása:

namespace ConsoleApplication1
{
       class Program
       {
       public struct szg
       {
             public string GyartoNevPluszKod;
             public int ar;
             public double szazalekAkcio;
             public double szazalekosan;
       }
       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.

             //Asztali számítógépek eladásához azt a modult kell megírnod,
             //ami a mindenkori 3 legújabb készülék vásárlására ad lehetőséget.

             //Feladat:
             //Tárold struktúrákban a 3 számítógép megnevezését (gyártó, fantázianév és egy kód egyben,
             //pl. HP Pavilion Wave 600-a000),
             //az árát, és a hozzá tartozó akció mértékét (pl. 10 - ez 10 %-ot jelent).
             //Írd ki ezeket az adatokat a képernyőre, egy készülék adatait egy sorszámozott sorba.
             //Kérdezd meg a felhasználót, hogy melyik számítógépet 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 számítógép akciós árát. Ha valótlan
             //számot ütött be a felhasználó, írj ki hibaüzenetet.

             //Ezután kérdezd meg a felhasználót, hogy regisztrált felhasználó-e <regisztrált / nem regisztrált>
             //formában kérd ezt be.
             //Ha regisztrált, és a számítógép nettó értéke 150.000,- Ft fölött van,
             //írd ki neki, hogy a 1000 forintnyi bónuszt fog kapni.
             //Ha ez a feltétel nem igaz, akkor írd ki,
             //hogy 1000 forintnyi bónuszt kapott volna, ha regisztrált vásárló lenne.

             //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 felhasználót, ha tudod a nevét,
             //és kiírod, hogy milyen címre postázod a számítógépet. Ha nem tudod a nevét,

             //akkor csak ennyit: „Reméljük, nemsokára ellátogat újra hozzánk!”

             const int SzazSzazalek = 100; //ha a száznak nem hozunk létre konstanst, hanem beírjuk csak a számításnál, úgy is jó

             szg Elsogep = new szg();
             Elsogep.GyartoNevPluszKod = "HP Pavilion Wave 600-a000";
             Elsogep.ar = 210000;
             Elsogep.szazalekAkcio = 15;

             Elsogep.szazalekosan = Elsogep.ar - Elsogep.ar * (Elsogep.szazalekAkcio / SzazSzazalek);

             szg Masodikgep = new szg();
             Masodikgep.GyartoNevPluszKod = "Acer Aspire E1-472";
             Masodikgep.ar = 175000;
             Masodikgep.szazalekAkcio = 0;

             Masodikgep.szazalekosan = Masodikgep.ar - Masodikgep.ar * (Masodikgep.szazalekAkcio / SzazSzazalek);

             szg Harmadikgep = new szg();
             Harmadikgep.GyartoNevPluszKod = "Lenovo Ideapad 15,6'' HD LED 110 - 80TJ007KHV";
             Harmadikgep.ar = 125000;
             Harmadikgep.szazalekAkcio = 10;

             Harmadikgep.szazalekosan = Harmadikgep.ar - Harmadikgep.ar * (Harmadikgep.szazalekAkcio / SzazSzazalek);

             Console.WriteLine("1. gép: {0}, teljes ára: {1} Ft és {2}% akcióval rendelkezik.", Elsogep.GyartoNevPluszKod, Elsogep.ar, Elsogep.szazalekAkcio);
             Console.WriteLine("2. gép: {0}, teljes ára: {1} Ft és {2}% akcióval rendelkezik.", Masodikgep.GyartoNevPluszKod, Masodikgep.ar, Masodikgep.szazalekAkcio);
             Console.WriteLine("3. gép: {0}, teljes ára: {1} Ft és {2}% akcióval rendelkezik.", Harmadikgep.GyartoNevPluszKod, Harmadikgep.ar, Harmadikgep.szazalekAkcio);
             int szam = Convert.ToInt32(Console.ReadLine());

             double valasztottGep;

             switch (szam)
             {
            case 1:
                    Console.WriteLine("A gép akcióan: {0} Ft.", Elsogep.szazalekosan);
                    valasztottGep = Elsogep.szazalekosan;
                    break;
            case 2:
                    Console.WriteLine("A gép akcióan: {0} Ft.", Masodikgep.szazalekosan);
                    valasztottGep = Masodikgep.szazalekosan;
                    break;
            case 3:
                    Console.WriteLine("A gép akcióan: {0} Ft.", Harmadikgep.szazalekosan);
                    valasztottGep = Harmadikgep.szazalekosan;
                    break;
            default:
                    Console.WriteLine("Rossz számot ütöttél be!\nÜss egy Enter-t hogy kilépj a programból.");
                    Console.ReadLine();//Ez a kilépés hasznos, és helyes, de nem strukturált megoldás.
                    return;
             }

             Console.WriteLine();
             Console.WriteLine("Regisztrált felhasználó vagy? (regisztrált/nem regisztrált) ");
             string regisztracio = Console.ReadLine();

             if (regisztracio == "regisztrált" && valasztottGep > 150000)
            Console.WriteLine("1000 Ft-nyi bónuszt fogsz kapni. ");
             else
            if (regisztracio == "nem regisztrált" && valasztottGep > 150000)
                    Console.WriteLine("1000 Ft-nyi bónuszt kaptál volna ha regisztrálsz. ");

             Console.Write("Elfogadod ezeket a feltételeket? (true/false) ");
             bool log = Convert.ToBoolean(Console.ReadLine());

            if (!log)//Ez a kilépés hasznos, és helyes, de nem strukturált megoldás.
            return;
 //Ha nem lett volna kilépés, a lentieknek egy else ágban kellene lenni.
             Console.Write("Szeretnéd megadni a neved és a lakcímed? (true/false)");
             bool adatok = Convert.ToBoolean(Console.ReadLine());

             if (adatok)
             {
            Console.Write("Név: ");
            string nev = Console.ReadLine();
            Console.Write("Lakcím: ");
            string lakcim = Console.ReadLine();

            Console.WriteLine("Tisztelt {0}, felvettük a rendelését és az ön által megadott, {1} címre postázzuk.", nev, lakcim);
             }
             else
            Console.WriteLine("Reméljük, nemsokára ellátogat újra hozzánk!");

             Console.ReadLine();