Programmet vill ej ta input för en av mina metoder
Jag får inte inputen att ändras i metoden "ListaBetyg" efter att användaren väljer "([A] Skriv in poäng för respektive kurs") i menyn. Statistik fungerar bra men lyckas inte lista ut varför den inte ändras efter man skriver in ("[B] Skriv ut betyg"); ... Den visar betygen som skrivs in från början när programmet startas ovasett.
internal class Program
{
static void LasPoang(string[] kurs, int[] poang)
{
int poang2;
bool summa = true;
do
for (int i = 0; i < kurs.Length; i++)
{
Console.Write("Vänligen skriv in poäng mellan 0-100 för: " + kurs[i] + ": ");
poang2 = int.Parse(Console.ReadLine());
poang[i] = poang2;
if (poang[i] > 100 || poang[i] < 0)
{
summa = false;
Console.WriteLine("Fel summa angivet, vänligen försök igen.");
break;
}
else
{
summa = true;
}
} while (!summa);
}
static void KonverteraPoang(string[] kurs, int[] poang, string[] betyg)
{
for (int i = 0; i < kurs.Length; i++)
{
if (poang[i] > 90 && poang[i] <= 100)
betyg[i] = "A";
else if (poang[i] > 80)
betyg[i] = "B";
else if (poang[i] > 70)
betyg[i] = "C";
else if (poang[i] > 60)
betyg[i] = "D";
else if (poang[i] >= 50)
betyg[i] = "E";
else if (poang[i] >= 0)
betyg[i] = "F";
else
betyg[i] = "";
}
}
static void ListaBetyg(string[] kurs, string[] betyg)
{
Console.WriteLine("");
Console.WriteLine("");
for (int i = 0; i < kurs.Length; i++)
Console.WriteLine("Betyg för ämnet " + kurs[i] + " : " + betyg[i]);
}
static void Statistik(string[] betyg, int[] poang)
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;
int total = 0;
for (int i = 0; i < poang.Length; i++)
{
if (poang[i] > 90 && poang[i] <= 100)
a ++;
else if (poang[i] > 80)
b ++;
else if (poang[i] > 70)
c ++;
else if (poang[i] > 60)
d ++;
else if (poang[i] >= 50)
e ++;
else if (poang[i] >= 0)
f ++;
else
betyg[i] = "";
}
Console.WriteLine("");
Console.WriteLine("Antal A: " + a);
Console.WriteLine("Antal C: " + c);
Console.WriteLine("Antal F: " + f);
for (int i = 0;i < poang.Length; i++)
{
total = total + poang[i];
}
Console.WriteLine();
Console.WriteLine("Totala poäng: " + total);
}
static void Main(string[] args)
{
Console.WriteLine("Välkommen till mitt program för betygsstatistik!");
Console.WriteLine();
string[] kurs = { "Matematik", "Svenska", "Engelska", "Historia", "Fysik" };
int[] poang = new int[5];
string[] betyg = new string[6];
LasPoang(kurs, poang);
KonverteraPoang(kurs, poang, betyg);
ListaBetyg(kurs, betyg);
Statistik(betyg, poang);
bool quit = false;
while (!quit)
{
Console.WriteLine();
Console.WriteLine("Meny Val: ");
Console.WriteLine("[A] Skriv in poäng för respektive kurs");
Console.WriteLine("[B] Skriv ut betyg");
Console.WriteLine("[C] Statistik");
Console.WriteLine("[D] Avsluta");
Console.WriteLine();
string meny;
meny = Console.ReadLine();
switch (meny)
{
case "a":
case "A":
LasPoang(kurs, poang);
break;
case "b":
case "B":
ListaBetyg(kurs, betyg);
break;
case "c":
case "C":
Statistik(betyg, poang);
break;
case "d":
case "D":
quit = true;
Console.WriteLine();
Console.WriteLine("Programmet avslutas!");
Console.WriteLine();
break;
default:
quit = true;
Console.WriteLine("Något gick fel, programmet avslutas");
break;
}
}
}
}
}
Jag tror du ska anropa KonverteraPoang varje gång du har gjort LasPoang.
Laguna skrev:Jag tror du ska anropa KonverteraPoang varje gång du har gjort LasPoang.
Förstår inte riktigt vart och på vilket sätt :/
Du gör det ju redan före loopen, för första inmatningen.
Laguna skrev:Du gör det ju redan före loopen, för första inmatningen.
Gud va dum jag är... nu inser jag varför det inte fungera, precis som du sa att anropa den när användaren skriver in "a"