2021.04.12. Struktúra: Ford márkakereskedés továbbfejlesztés

Továbbfejlesztés:
Oldjuk meghogy az autók árait struktúrában tároljuk.
Új anyag:
namespace strukturaBevezetes
{
    class Program
    {
        public struct auto
        {
            public int ar//ft
            public int motor//cm3
            public int szemely//fő
            public int teljesitmeny//lóerő
        }
        static void Main(string[] args)
        {
            auto auto1 = new auto();
            auto1.ar = 6000000;
            auto1.motor = 1600;
            auto1.szemely = 5;
            auto1.teljesitmeny = 150;
        }
    }
}
--------------------------------------------------
Magyarázat:
A struktúrát a Main fölötta program osztályban definiáljuk.
publicmódosítószóami befolyásolja az adott elem láthatóságátplhogy mennyire 
legyen nyilvánosA public azt jelentihogy mindenhol látható.
 (A private plrejtettet jelent majd.)
struct: a struktúra adatszerkezet kulcsszava.
 A struktúra a procedurális nyelvekben (pl. Pascal) a rekordnak felel meg. 
Ebben összefogunk egy szerkezetbe összetartozó adatokat. 
A struktúra a definiálásakor (lásd a Main felett) még csak egy váz, egy üres szerkezet,
 ami megmutatja, milyen adatokat fogunk tárolni a példányosításkor.
auto: a struktúra neve
public int ar;: adattag, más néven mező a struktúrában. Olyan, mint egy változó,
 de ez a struktúra törzsében van, és gyakran nem adunk neki kezdőértéket.
auto auto1 = new auto();  Itt definiálunk egy auto típusú változót auto1 néven,
 és a new kulcsszóval helyet foglalunk neki a memóriában az auto() konstruktor
 segítségével. Ezt hívjuk példányosításnak (létrehozunk egy példányt).
auto1.ar = 6000000;  Az auto1 változón belül elérjük az ar mezőt (adattagot),
 ennek értékül adjuk a jobb oldalon levő értéket.
--------------------------------------------------
A struktúra nélkül, hagyományosan, változókkal megoldott teljes feladat:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace auto
{
    class Program
    {
        static void Main(string[] args)
        {
            //Többágú szelekció gyakorlása
            //A feladat megoldásában szelekcióból csak többágút használj.
            //A hibás adatbevitelekre írj ki hibaüzenetet.
            //Ford márkakereskedő vagy. Jön a vevő, és érdeklődik a készleten levő autók iránt.
            //A feladat megoldásában szelekcióból csak többágút használj.
            //A hibás adatbevitelekre írj ki hibaüzenetet.
            //Ford márkakereskedő vagy. Jön a vevő, és érdeklődik a készleten levő autók iránt.
            //Feladat:
            //-Kérdezd meg tőle, hogy milyen típus érdekli (legalább 3 típus van készleten).
            double MustangAra = 13020000;
            int MustangMotor = 5000;
            int MustangSzemelyek = 2;
            int MustangTeljesitmeny = 4000;
            double MondeoAra = 10020000;
            int MondeoMotor = 4000;
            int MondeoSzemelyek = 5;
            int MondeoTeljesitmeny = 3000;
            double BMaxAra = 12020000;
            int BMaxMotor = 3000;
            int BMaxSzemelyek = 4;
            int BMaxTeljesitmeny = 2000;
            Console.WriteLine("Ford Mondeo");
            Console.WriteLine("ár: {0}"MondeoAra);
            Console.WriteLine("motor: {0}"MondeoMotor);
            Console.WriteLine("személyek: {0}"MondeoSzemelyek);
            Console.WriteLine("teljesítmény: {0}"MondeoTeljesitmeny);
            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("Ford Bmax");
            Console.WriteLine("ár: {0}"BMaxAra);
            Console.WriteLine("motor: {0}"BMaxMotor);
            Console.WriteLine("személyek: {0}"BMaxSzemelyek);
            Console.WriteLine("teljesítmény: {0}"BMaxTeljesitmeny);
            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("Ford Mustang");
            Console.WriteLine("ár: {0}"MustangAra);
            Console.WriteLine("motor: {0}"MustangMotor);
            Console.WriteLine("személyek: {0}"MustangSzemelyek);
            Console.WriteLine("teljesítmény: {0}"MustangTeljesitmeny);
            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("Milyen autó érdekli? (Ford Mustang (1), Ford Mondeo (2), Ford B-Max (3))");
            int auto = Convert.ToInt32(Console.ReadLine());
            //-A típustól függően adj neki tájékoztatást az autó fontos paramétereiről
            //(pl. ár, motor térfogata, személyek száma, teljesítmény, stb.,).
            double ar = 0;
            switch (auto)
            {
                case 1:
                    Console.WriteLine("{0} Ft-tól, {1} cm3, {2} személyes, {3} lóerős."MustangAraMustangMotorMustangSzemelyekMustangTeljesitmeny);
                    ar = MustangAra;
                    break;
                case 2:
                    Console.WriteLine("{0} Ft-tól, {1} cm3, {2} személyes, {3} lóerős."MondeoAraMondeoMotorMondeoSzemelyekMondeoTeljesitmeny);
                    ar = MondeoAra;
                    break;
                case 3:
                    Console.WriteLine("{0} Ft-tól, {1} cm3, {2} személyes, {3} lóerős."BMaxAraBMaxMotorBMaxSzemelyekBMaxTeljesitmeny);
                    ar = BMaxAra;
                    break;
                default:
                    Console.WriteLine("Nem jó számot írtál be.");
                    break;
            }
            Console.ReadLine();
            //-Meggyőzted a vevőt, meg akarja venni azt a típusú autót, ami iránt érdeklődött - programban ehhez nem kapcsolódik feladat.
            //-Kérdezd meg tőle, milyen módon akar fizetni.
            Console.WriteLine("Átutalással (a), Készpénzzel (k) vagy hitellel (h) fizet?");
            char fizet = Convert.ToChar(Console.ReadLine());
            double kedvezmeny = 0;
            switch (fizet)
            {
                case 'k':
                    kedvezmeny = ar - ((ar / 100.0) * 5.0);
                    break;
                case 'a':
                    kedvezmeny = ar - ((ar / 100.0) * 3.0);
                    Console.WriteLine("Összesen {0} Ft-be fog kerülni az autó."kedvezmeny);
                    break;
                case 'h':
                    kedvezmeny = ar + ((ar / 100.0) * 5.0);
                    Console.WriteLine("Összesen {0} Ft-be fog kerülni az autó."kedvezmeny);
                    break;
                default:
                    Console.WriteLine("Nem jó betűt írtál be");
                    break;
            }
            Console.WriteLine("Összesen {0} Ft-be fog kerülni az autó."kedvezmeny);
            //ha készpénzzel, akkor adj neki 5% kedvezményt,
            //ha azonnal átutalással, akkor adj neki 3% kedvezményt,
            //ha pedig hitelt vesz föl rá, akkor tegyél az árra 5% felárat.
            //-Ezek után írd ki a rá vonatkozó árat.
            //Továbbfejlesztés:
            //1. Oldjuk meg, hogy az autók árait konstansokban tároljuk.
            //2. Oldjuk meg, hogy az autók árait rekordban tároljuk.
        }
    }
}
 ------------------------------------------------------------------------------------------
A struktúrával megoldott teljes feladat:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace auto
{
    class Program
    {
        public struct auto
        {
            public double ar//ft
            public int motorter//cm3
            public int szemszam//fő
            public int telj//lóerő
        }
        static void Main(string[] args)
        {
            //A feladat megoldásában szelekcióból csak többágút használj.
            //A hibás adatbevitelekre írj ki hibaüzenetet.
            //Ford márkakereskedő vagy. Jön a vevő, és érdeklődik a készleten levő autók iránt.
            //Feladat:
            //-      Kérdezd meg tőle, hogy milyen típus érdekli (legalább 3 típus van készleten).
            //-      A típustól függően adj neki tájékoztatást az autó fontos paramétereiről
            //    (pl. ár, motor térfogata, személyek száma, teljesítmény, stb.,).
            //-      Meggyőzted a vevőt, meg akarja venni azt a típusú autót, ami iránt érdeklődött - programban ehhez nem kapcsolódik feladat.
            //-      Kérdezd meg tőle, milyen módon akar fizetni.
            //       ha készpénzzel, akkor adj neki 5% kedvezményt,
            //       ha azonnal átutalással, akkor adj neki 3% kedvezményt,
            //       ha pedig hitelt vesz föl rá, akkor tegyél az árra 5% felárat.
            //-      Ezek után írd ki a rá vonatkozó árat.
            //Továbbfejlesztés:
            //1. Oldjuk meg, hogy az autók árait konstansokban tároljuk.
            //2. Oldjuk meg, hogy az autók árait rekordban tároljuk.
            Console.WriteLine("Milyen típusú autó érdekli önt ? (Mustang, Mondeo, Fiesta");
            string tipus = Console.ReadLine();
            auto mustang = new auto();
            mustang.ar = 1127000;
            mustang.motorter = 5000;
            mustang.szemszam = 2;
            mustang.telj = 418;
            auto mondeo = new auto();
            mondeo.ar = 7750000;
            mondeo.motorter = 2500;
            mondeo.szemszam = 4;
            mondeo.telj = 250;
            auto fiesta = new auto();
            fiesta.ar = 5550000;
            fiesta.motorter = 1600;
            fiesta.szemszam = 4;
            fiesta.telj = 210;
            double ar = 0;
            switch (tipus)
            {
                case "Mustang":
                    Console.WriteLine("Mustang ára {0}"mustang.ar);
                    Console.WriteLine("Mustang motortérfogata {0} köbcenti "mustang.motorter);
                    Console.WriteLine("Mustang személyek száma {0}"mustang.szemszam);
                    Console.WriteLine("Mustang teljesítménye {0}LE"mustang.telj);
                    ar = mustang.ar;
                    break;
                case "Mondeo":
                    Console.WriteLine(" Mondeo ára {0}"mondeo.ar);
                    Console.WriteLine(" Mondeo motortérfogata {0} köbcenti "mondeo.motorter);
                    Console.WriteLine(" Mondeo személyek száma {0}"mondeo.szemszam);
                    Console.WriteLine(" Mondeo teljesítménye {0}LE"mondeo.telj);
                    ar = mondeo.ar;
                    break;
                case "Fiesta":
                    Console.WriteLine("Fiesta ára {0}"fiesta.ar);
                    Console.WriteLine("Fiesta motortérfogata {0} köbcenti "fiesta.motorter);
                    Console.WriteLine("Fiesta személyek száma {0}"fiesta.szemszam);
                    Console.WriteLine("Fiesta teljesítménye {0}LE"fiesta.telj);
                    ar = fiesta.ar;
                    break;
                default:
                    Console.WriteLine("Rossz típust adtál meg.");
                    break;
            }
            Console.WriteLine("Milyen módon akar fizetni? (készpénz,átutalás,hitel) ");
            string valasz = Console.ReadLine();
            double aktar = 0;
            switch (valasz)
            {
                case "készpénz":
                    aktar = ar - (ar / 100.0 * 5.0);
                    Console.WriteLine("Készpénz fizetés esetén 5% kezdvezmény jár.");
                    break;
                case "átutalás":
                    aktar = ar - (ar / 100.0 * 3.0);
                    Console.WriteLine("Azonnali átutalás esetén 3% kezdvezmény jár.");
                    break;
                case "hitel":
                    aktar = ar + (ar / 100.0 * 5.0);
                    Console.WriteLine("Hitel felvétel esetén +5% felárat számítunk fel.");
                    break;
            }
            Console.WriteLine("Az aktuális ár {0}"aktar);
            Console.ReadLine();
        }
    }
}

2024.02.15.-16. Helyettesítés

 Adatbázis: vizsgaremek adatbázisának befejezése teljesen készre, dokumentáció kiegészítése, befejezése. Vizsgaremek felületének megvalósítá...