Oplossing opgave 1
enum risicoNiveau { Laag, Verhoogd, Kritiek };
static void Main(string[] args)
{
const int arrayLengte = 100;
bool afsluiten = false;
while (!afsluiten)
{
int nummerPersoon = 0;
string[] namen = new string[arrayLengte];
string[] namenAnoniem = new string[namen.Length];
bool[] toegelatenArray = new bool[namen.Length];
for (int i = 0; i < namen.Length; i++)
{
namen[i] = "leeg";
}
Console.Clear();
bool herhalen = true;
while (herhalen)
{
Console.WriteLine($"Voer de naam in van persoon {nummerPersoon + 1}");
string naam = Console.ReadLine().ToLower();
if (naam == "stop")
{
herhalen = false;
}
else
{
namen[nummerPersoon] = naam;
bool goedAntwoord = true;
do
{
Console.WriteLine("Werd deze persoon toegelaten? j/n");
string keuze = Console.ReadLine().ToLower();
switch (keuze)
{
case "j":
goedAntwoord = true;
toegelatenArray[nummerPersoon] = true;
break;
case "n":
goedAntwoord = true;
toegelatenArray[nummerPersoon] = false;
break;
default:
goedAntwoord = false;
break;
}
} while (!goedAntwoord);
if (toegelatenArray[nummerPersoon])
{
Console.WriteLine($"De persoon met naam {namen[nummerPersoon]} werd ingevoerd. Hij werd toegelaten");
}
else
{
Console.WriteLine($"De persoon met naam {namen[nummerPersoon]} werd ingevoerd. Hij werd niet toegelaten");
}
nummerPersoon++;
}
}
ToonTracerRapport(namen, toegelatenArray);
Console.WriteLine("Moeten de gebruikersnamen anoniem gemaakt worden? j/n");
if (Console.ReadLine().ToLower() == "j")
{
namenAnoniem = MaakAnoniem(namen, toegelatenArray);
ToonTracerRapport(namenAnoniem, toegelatenArray);
}
Console.WriteLine("Wilt u afsluiten? j/n");
if (Console.ReadLine().ToLower() == "j")
{
afsluiten = true;
}
}
}
static void ToonTracerRapport(string[] namenArray, bool[] toegelatenArray)
{
int aantalPersonen = 0;
int aantalNietToegelaten = 0;
double procentNietToegelaten = 0;
risicoNiveau risico = risicoNiveau.Laag;
const double kritiek = 0.75;
const double verhoogd = 0.35;
for (int i = 0; i < toegelatenArray.Length; i++)
{
if (!toegelatenArray[i] && namenArray[i] != "leeg")
{
aantalNietToegelaten++;
}
else if (toegelatenArray[i] && namenArray[i] != "leeg")
{
aantalPersonen++;
}
}
procentNietToegelaten = Convert.ToDouble(aantalNietToegelaten) / aantalPersonen;
if (procentNietToegelaten > kritiek)
{
risico = risicoNiveau.Kritiek;
}
else if (procentNietToegelaten > verhoogd)
{
risico = risicoNiveau.Verhoogd;
}
Console.Clear();
Console.WriteLine($"Aantal ingevoerde personen = {aantalPersonen}");
Console.WriteLine($"Daarvan werden er {aantalNietToegelaten} personen niet toegelaten, dat is {procentNietToegelaten:P}.");
Console.WriteLine($"Risico : {risico}\n");
Console.WriteLine("Volgende personen werden niet toegelaten:");
for (int i = 0; i < aantalPersonen; i++)
{
if (!toegelatenArray[i] && namenArray[i] != "leeg")
{
Console.WriteLine($"- {namenArray[i]}");
}
}
}
static string[] MaakAnoniem(string[] namen, bool[] toegelatenArray)
{
string[] anoniemeNamen = new string[namen.Length];
Array.Copy(namen, anoniemeNamen, namen.Length);
for (int i = 0; i < anoniemeNamen.Length; i++)
{
if (namen[i] != "leeg")
{
if (!toegelatenArray[i] && namen[i] != "leeg")
{
anoniemeNamen[i] = "*****";
}
}
}
return anoniemeNamen;
}
Last updated
Was this helpful?