4 svar
83 visningar
Hyper99 4
Postad: 24 jan 22:41

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;

                }
            }
            

        }
    }
}
Laguna Online 30497
Postad: 25 jan 07:45

Jag tror du ska anropa KonverteraPoang varje gång du har gjort LasPoang.

Hyper99 4
Postad: 25 jan 18:21
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 :/

Laguna Online 30497
Postad: 25 jan 19:32

Du gör det ju redan före loopen, för första inmatningen.

Hyper99 4
Postad: 25 jan 22:16
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"

Svara
Close