Permalänk

Metoder & arrays

Tjena folket! (C#)

Jag ska skriva ett program som sparar en elevs poäng i alla ämnen och sen göra en utskrift av elevens betyg.

Jag ska jobba lite i metoder. En metod ska heta LäsPoäng, för att läsa elevens betygpoäng i olika ämnen

Nästa metod ska omvandla poängen till betyg enligt A-F.
Betyget A = 100P osv.
Betygen ska jag lagra i en array.

Sen ska jag göra en till metod som skriver ut betygen. Tänkte nämna den till skrivUtBetyg.
Sen en till metod ''Statistik'' som ska beräkna antal ''A'', ''C", "F'' betyg och antal betygspoäng.

static void Main(string[] args) { string[] ämnen = { "Matematik", "Svenska", "Engelska", "Historia", "Fysik" }; int[] poäng = new int[5]; char[] betyg = new char[6]; poäng[0] = 100; poäng[1] = 80; poäng[2] = 70; poäng[3] = 60; poäng[4] = 0; Console.WriteLine("Hej! Här kommer du kunna se dina betyg"); Console.WriteLine("Tryck på enter för att fortsätta"); Console.ReadLine(); Läspoäng(); } static void Läspoäng() { string[] ämnen = { "Matematik", "Svenska", "Engelska", "Historia", "Fysik" }; Console.WriteLine("Vad har du för poäng i " + ämnen[0] + "?"); int Matematik = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(ämnen[1]); int Svenska = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(ämnen[2]); int Engelska = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(ämnen[3]); int Historia = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(ämnen[4]); int Fysik = Convert.ToInt32(Console.ReadLine()); PoängTillBetyg(); } static void PoängTillBetyg() { string[] ämnen = { "Matematik", "Svenska", "Engelska", "Historia", "Fysik" }; int[] poäng = new int[5]; poäng[0] = 100; poäng[1] = 80; poäng[2] = 70; poäng[3] = 60; poäng[4] = 0; char[] betyg = new char[6]; betyg[0] = 'A'; betyg[1] = 'B'; betyg[2] = 'C'; betyg[3] = 'D'; betyg[4] = 'E'; betyg[5] = 'F'; poäng[0] = betyg[0] = 'A'; poäng[1] = betyg[1] = 'B'; poäng[2] = betyg[2] = 'C'; poäng[3] = betyg[3] = 'D'; poäng[4] = betyg[4] = 'E'; Console.WriteLine("Du har betyg " + betyg[4]); Console.ReadLine();

Jag är inte klar ännu. Men jag sitter fast på en sak.

När jag ska omvandla poängen till betyg.
Jag skulle vilja ha inmatningen från användaren

Console.WriteLine("Vad har du för poäng i " + ämnen[0] + "?"); int Matematik = Convert.ToInt32(Console.ReadLine());

som ett värde ner i nästa metod vilket jag inte förstår hur man gör. Är det rätt hur jag tänker?
Eller ska jag sätta nya värden nere i nästa metod?
Mvh!

Permalänk
Medlem

Ditt poängsystem fungerar inte riktigt. Du behöver kolla emellan t.ex. 0-50 och att det då är ett F. Dvs

if(grade >= 0 && grade< 50) { return "F" }

Du kan göra det i en metod likt detta:
Detta kallas "shortened if" som du kan googla om du vill se mer hur det fungerar.
Men fungerar likt en massa if-else-if-else utan att jag behöver explicit skriva ut det.

public string convertGradeToLetter(int grade) { return (grade >= 0 && grade < 50) ? "F" : (grade >= 50 && grade < 60) ? "E" : (grade >= 60 && grade < 70) ? "D" : (grade >= 70 && grade < 80) ? "C" : (grade >= 80 && grade < 90) ? "B" : (grade >= 90 && grade <= 100)? "A" : "Something went wrong..."; }

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk
Medlem
Skrivet av kwame:

Ditt poängsystem fungerar inte riktigt. Du behöver kolla emellan t.ex. 0-50 och att det då är ett F. Dvs

if(grade >= 0 && grade< 50) { return "F" }

Du kan göra det i en metod likt detta:
Detta kallas "shortened if" som du kan googla om du vill se mer hur det fungerar.
Men fungerar likt en massa if-else-if-else utan att jag behöver explicit skriva ut det.

public string convertGradeToLetter(int grade) { return (grade >= 0 && grade < 50) ? "F" : (grade >= 50 && grade < 60) ? "E" : (grade >= 60 && grade < 70) ? "D" : (grade >= 70 && grade < 80) ? "C" : (grade >= 80 && grade < 90) ? "B" : (grade >= 90 && grade <= 100)? "A" : "Something went wrong..."; }

Det går korta lite till. Men jag kan inte ny C# så syntaxen är nog lite fel.

public string convertGradeToLetter(int grade) { // kontrollera att grade är mellan 0 och 100 först och kasta annars exception return (grade < 50) ? "F" : (grade < 60) ? "E" : (grade < 70) ? "D" : (grade < 80) ? "C" : (grade < 90) ? "B" : "A" }