2020. március 3., kedd

2020.03.03. Struktúra, többágú szelekció gyakorlá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.

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