13. FELADAT · FORRÁSKÓD
Kuponkód-generátor
Program.csAnimáció megnyitása →
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);
}
}
}