13. FELADAT · FORRÁSKÓD

Kuponkód-generátor

Program.cs letöltése
namespace Feladat13_KuponkodGenerator
{
    internal class Program
    {
        static void Main(string[] args)
        {
            const int KODOK_SZAMA = 10;
            const int BETUK_SZAMA = 3;
            const int SZAMJEGYEK_SZAMA = 4;

            Random random = new Random();

            Console.WriteLine("=== Webshop – egyszer használatos kuponkódok ===");
            Console.WriteLine();

            double szamjegyOsszegekOsszege = 0;
            int legnagyobbJegyOsszeg = -1;
            int legnagyobbSorszama = 0;

            for (int kod = 1; kod <= KODOK_SZAMA; kod++)
            {
                Console.Write($"{kod}. kupon: ");

                for (int i = 0; i < BETUK_SZAMA; i++)
                {
                    Console.Write(VeletlenNagybetu(random));
                }

                Console.Write('-');

                int jegyekOsszege = 0;

                for (int i = 0; i < SZAMJEGYEK_SZAMA; i++)
                {
                    int jegy = random.Next(0, 10);
                    Console.Write(jegy);
                    jegyekOsszege += jegy;
                }

                Console.Write('-');
                Console.WriteLine(EllenorzoBetu(jegyekOsszege));

                szamjegyOsszegekOsszege += jegyekOsszege;

                if (jegyekOsszege > legnagyobbJegyOsszeg)
                {
                    legnagyobbJegyOsszeg = jegyekOsszege;
                    legnagyobbSorszama = kod;
                }
            }

            double atlag = szamjegyOsszegekOsszege / KODOK_SZAMA;

            Console.WriteLine();
            Console.WriteLine("--- Statisztika ---");
            Console.WriteLine($"A számjegyek összegének átlaga: {atlag:F2}");
            Console.WriteLine($"A legnagyobb számjegyösszeg a(z) {legnagyobbSorszama}. kuponé: {legnagyobbJegyOsszeg}");
        }

        // Az 'A' karakterhez 0 és 25 közötti értéket adunk, majd az eredményt
        // visszaalakítjuk karakterré: így kapunk véletlen nagybetűt A és Z között.
        static char VeletlenNagybetu(Random random)
        {
            return (char)('A' + random.Next(0, 26));
        }

        // Az ellenőrző betű a négy számjegy összegéből képződik.
        static char EllenorzoBetu(int jegyekOsszege)
        {
            return (char)('A' + jegyekOsszege % 26);
        }
    }
}