2020.12.03./2 Szelekció gyakorlása: Dolgozat értékelése - feladat

 

            //Dolgozat értékelés

            //1. Kérd be egy 100 pontos dolgozat 5 feladatának pontszámait.

            //Lehetnek fél pontok is.

            //2. Összesítsd a pontokat, írd is ki.

            //3. Ezután írd ki, hányast kapott a user.

            //25%-ig egyes, 40%-ig kettes, 60%-ig hármas, 80%-ig négyes, afölött ötös.

            //4. Építsd bele a programba az összpontszám-ellenőrzést:

            //ha a kiszámolt összpontszám nem a nulla és 100

            //közé esik, akkor hangjelzés kíséretében írj ki hibaüzenetet,

            //és szakítsd meg a programot.

            //Kérdés1: Hogyan kezelnéd a hibás érték bevitelét?

            //Kérdés2: Mi a hátránya annak, hogy egymás után

            //minden feltételt kiértékel a program?

            //5. feladat: Építsd bele a programba a feladatonkénti

            //pontszámellenőrzést a következők alapján:

            //első feladat: 20 pont

            //második feladat: 15 pont

            //harmadik feladat: 25 pont

            //negyedik feladat: 10 pont

            //ötödik feladat: 30 pont

            //Ha a bekért pontszám nem a nulla és a megfelelő

            //pontszám közé esik, akkor hangjelzés kíséretében

            //írj ki hibaüzenetet, és szakítsd meg a programot.

            //6. feladat: Légy jó szívű! Add meg a jobb jegyet, ha

            //csak fél pont hiányzik.

            //(Vagy inkább kegyetlen akarsz lenni?:)

            //Szorgalmi: Add meg a pontok bekérésénél

            //az összetett feltételeket kétféleképpen:

            //úgy, hogy ne legyen benne tagadás, és

            //úgy, hogy legyen benne egy tagadás.

  


using System;
using System.Threading; 


namespace szelekcioGyakorlas
{
    class Program
    {
        static void Main(string[] args)
        {
            //int szam = 10;
            //if (szam==10)
            //{
            //    Console.WriteLine("igaz");
            //} 


            //Dolgozat értékelés
            //1. Kérd be egy 100 pontos dolgozat 5 feladatának pontszámait.
            //Lehetnek fél pontok is.
            Console.Write("Kérem az 1. feladat elért pontszámát (max. 20): ");
            double elso = Convert.ToDouble(Console.ReadLine());
            //Ez a feltétel VAGY művelettel oldja meg az ellenőrzést:
                        //if (elso < 0 || elso > 20)
            //{
            //    Console.WriteLine("Rossz a feladat pontszáma!");
            //    Console.Beep();
            //    Thread.Sleep(1000);
            //    return;
            //} 


            //Ez a feltétel tagadott ÉS művelettel oldja meg ugyanazt az ellenőrzést.
            //A két megoldás egyenértékű.
            //Figyeljük meg, hogy a VAGY művelet ÉS-re változott, amikor tagadtuk.
            if (!(elso >= 0 && elso <= 20))    //összetett feltétel, hiszen VAGY/ÉS van benne
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000); //1 másodperc (1000 ezredmásodperc) késleltetés
                return; //azonnal kilép a programból
            }


            Console.Write("Kérem az 2. feladat elért pontszámát (max. 15): ");
            double masodik = Convert.ToDouble(Console.ReadLine());
            if (masodik < 0 || masodik > 15) //összetett feltétel, hiszen VAGY/ÉS van benne
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }


            Console.Write("Kérem az 3. feladat elért pontszámát (max. 25):");
            double harmadik = Convert.ToDouble(Console.ReadLine());
            if (harmadik < 0 || harmadik > 25)
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }


            Console.Write("Kérem az 4. feladat elért pontszámát (max. 10):");
            double negyedik = Convert.ToDouble(Console.ReadLine());
            if (negyedik < 0 || negyedik > 10)
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }


            Console.Write("Kérem az 5. feladat elért pontszámát (max. 30): ");
            double otodik = Convert.ToDouble(Console.ReadLine());


            if (otodik < 0 || otodik > 30)
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }
        


            //2. Összesítsd a pontokat, írd is ki.
            double osszesen = elso + masodik + harmadik + negyedik + otodik;
            Console.WriteLine("Összpontszám: {0}", osszesen);
            //3. Ezután írd ki, hányast kapott a user.


            if (osszesen < 0 || osszesen > 100)
            {
                Console.WriteLine("Rossz az összpontszám!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }


            // A következő 5 szelekció hátránya, hogy ha bármelyik igaz,
            //attól még kiértékeli a többit is, ezek így fölösleges utasítás-végrehajtások.
            //Ezt a kétágú szelekcióval fogjuk tudni elkerülni.          


            //Kiértékelés: megvizsgálja, igaz-e vagy hamis a feltétel


            if (osszesen <= 60)
            {
                Console.WriteLine("Egyest kaptál.");
            }


            if (osszesen >= 60.5 && osszesen <= 70)
            {
                Console.WriteLine("Kettest kaptál.");
            }


            if (osszesen >= 70.5 && osszesen <= 80)
            {
                Console.WriteLine("Hármast kaptál.");
            }


            if (osszesen >= 80.5 && osszesen <= 90)
            {
                Console.WriteLine("Négyest kaptál.");
            }


            if (osszesen >= 90.5 && osszesen <= 100)
            {
                Console.WriteLine("Ötöst kaptál.");
            }


            //4 feladat: Építsd bele a programba az összpontszám-ellenőrzést:
            //ha a kiszámolt összpontszám nem a nulla és 100
            //közé esik, akkor hangjelzés kíséretében írj ki hibaüzenetet,
            //és szakítsd meg a programot.
            //EZT FÖNT OLDOTTUK MEG A PONTSZÁMBEKÉRÉSEKNÉL 


            //Kérdés1: Hogyan kezelnéd a hibás érték bevitelét?
            //Válasz: megoldottuk, amennyire tudtuk.
            //Ha majd megtanuljuk a ciklusokat, akkor majd
            //addig kérjük be újra és újra a pontszámot, amíg jó nem lesz.
 
            //Kérdés2: Mi a hátránya annak, hogy egymás után
            //minden feltételt kiértékel a program?
            //A válasz a szelekcióknál van. 


            //5. feladat: Építsd bele a programba a feladatonkénti
            //pontszámellenőrzést a következők alapján:
            //első feladat: 20 pont
            //második feladat: 15 pont
            //harmadik feladat: 25 pont
            //negyedik feladat: 10 pont
            //ötödik feladat: 30 pont 


            //Ha a bekért pontszám nem a nulla és a megfelelő
            //pontszám közé esik, akkor hangjelzés kíséretében
            //írj ki hibaüzenetet, és szakítsd meg a programot.
            //Ezt fent megoldottuk.


            //6. feladat: Légy jó szívű! Add meg a jobb jegyet, ha
            //csak fél pont hiányzik.
            //(Vagy inkább kegyetlen akarsz lenni?:)
            //Fent megoldottuk. 


            //Szorgalmi: Add meg a pontok bekérésénél
            //az összetett feltételeket kétféleképpen:
            //úgy, hogy ne legyen benne tagadás, és
            //úgy, hogy legyen benne egy tagadás.
            //Az első feladat pontszámának bekérésénél megoldottuk. 


            Console.ReadLine();
        }
    }

}

Nincsenek megjegyzések:

Megjegyzés küldése

Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.

2023.04.26. Javító feladatsor