Övning – Beräkna medelvärdet av elevens tilldelningspoäng

Slutförd

I den här övningen beräknar och lagrar du medelvärdet av tilldelningspoängen från varje elev. Eftersom du känner till antalet poängsatta tilldelningar för varje elev beräknas medelvärdet genom att summan av tilldelningspoängen divideras med antalet tilldelningar. Om du vill lagra medelvärdena använder du datatypen Decimal.

Skapa variabler för att lagra medelvärdet

I den här uppgiften skapar du en variabel för varje elev som kan användas för att lagra genomsnittspoängen för deras graderade tilldelningar.

  1. Leta upp de Console.WriteLine() instruktioner som används för att visa varje elevs summerade poäng i .NET-redigeraren.

  2. Skapa en tom kodrad ovanför uttrycken Console.WriteLine() .

  3. På den tomma kodraden som du skapade anger du följande kod för att deklarera de decimalvariabler som ska användas för elevernas aktuella poäng:

    decimal sophiaScore;
    decimal nicolasScore;
    decimal zahirahScore;
    decimal jeongScore;
    
    

    Observera att du bara deklarerar variablerna decimal och inte initierar dem. Du valde decimal typen eftersom du representerar ett genomsnittligt betyg och vill inkludera en decimal som inte skulle vara tillgänglig om du använde ett heltal. På så sätt kan du se om en student gjorde en poäng på 89,9 och stöter upp dem från ett B till ett A.

    I föregående övning initierade du heltalsvariablerna så att du omedelbart kunde använda dem i konsolens utdata. I det här fallet initieras dessa decimal variabler i nästa steg med hjälp av beräkningar med dina befintliga data, från och med Sophias poäng.

  4. Om du vill tilldela Sophias aktuella poäng i klassen till decimalen sophiaScoreuppdaterar du variabeln med följande kod:

    decimal sophiaScore = sophiaSum / currentAssignments;
    
    

    Om du vill beräkna en elevs aktuella poäng för klassen delar du upp summan av tilldelningspoängen med det totala antalet tilldelningar. Varje elev i klassen har fem tilldelningar, som representeras av currentAssignments att du initierade under installationen.

  5. Om du vill tilldela resten av elevernas poäng anger du följande kod:

    decimal nicolasScore = nicolasSum / currentAssignments;
    decimal zahirahScore = zahirahSum / currentAssignments;
    decimal jeongScore = jeongSum / currentAssignments;
    
    

    Slutligen vill du visa betygen för varje elev i det här programmet. I nästa steg ändrar du koden så att den visar varje elevs poäng i stället för deras tilldelningssumma.

  6. Om du vill visa varje elevs aktuella poäng ersätter du sumvariablerna i visningsinstruktionerna med poängvariablerna:

    Console.WriteLine("Sophia: " + sophiaScore);
    Console.WriteLine("Nicolas: " + nicolasScore);
    Console.WriteLine("Zahirah: " + zahirahScore);
    Console.WriteLine("Jeong: " + jeongScore);
    
    
  7. Ta en minut att tänka på den inkrementella metod som du använder för att utveckla det här programmet.

    Att dela upp ett problem i mindre delar är en viktig färdighet för utvecklare. Genom att skapa koden stegvis och kontrollera ditt arbete ofta kan du snabbt utveckla tillförlitliga program. I det här fallet kan du återanvända för Console.WriteLine() att kontrollera att dina beräkningar är korrekta när du slutför varje fas i processen.

  8. Om du vill visa värdena för varje elevs aktuella betyg väljer du Kör.

    Du bör se följande utdata:

    Sophia: 94
    Nicolas: 83
    Zahirah: 83
    Jeong: 95
    
  9. Observera att poängen visas som heltal i stället för decimaler.

    När du vill att resultatet av en divisionsberäkning ska vara ett decimalvärde måste antingen utdelningen eller deltecknet vara av typen decimal (eller båda). När du använder heltalsvariabler i beräkningen måste du använda en teknik som kallas gjutning för att "konvertera" ett heltal till ett decimaltal.

    För poängberäkningen kan du få ett decimalresultat genom att antingen ange sumvariabeln eller currentAssignments som en decimaltyp. I det här fallet omvandlar du summan som en decimal.

  10. Om du vill omvandla en heltalsvariabel som decimal i dina divisionsåtgärder uppdaterar du koden på följande sätt:

    decimal sophiaScore = (decimal) sophiaSum / currentAssignments;
    decimal nicolasScore = (decimal) nicolasSum / currentAssignments;
    decimal zahirahScore = (decimal) zahirahSum / currentAssignments;
    decimal jeongScore = (decimal) jeongSum / currentAssignments;
    

    Du behöver bara att utdelningen eller divisorn är en decimaltyp för divisionen för att resultera i ett decimalvärde. Här castar du bara den summavariabel som används som utdelning.

  11. Granska följande graderingsskala som läraren använder för att tilldela bokstavsbetyg:

    97 - 100    A+
    93 - 96     A
    90 - 92     A-
    87 - 89     B+
    83 - 86     B
    

    Nästa steg är att inkludera ett bokstavsbetyg för varje elev baserat på deras totala poäng. Att lägga till bokstavsbetyget i de utdata som visas blir en manuell process.

  12. Om du vill fastställa värdet för varje elevs aktuella betyg väljer du Kör.

    Använd det aktuella betyget för varje elev för att fastställa rätt bokstavsbetyg och avrunda uppåt eller nedåt efter behov.

  13. Om du vill lägga till bokstavsbetyg efter varje elevs numeriska poäng uppdaterar du koden enligt följande:

    Console.WriteLine("Sophia: " + sophiaScore + " A");
    Console.WriteLine("Nicolas: " + nicolasScore + " B");
    Console.WriteLine("Zahirah: " + zahirahScore + " B");
    Console.WriteLine("Jeong: " + jeongScore + " A");
    

Kontrollera ditt arbete

I den här uppgiften kör du koden och kontrollerar att utdata är korrekta.

  1. Jämför koden med följande:

    int currentAssignments = 5;
    
    int sophia1 = 93;
    int sophia2 = 87;
    int sophia3 = 98;
    int sophia4 = 95;
    int sophia5 = 100;
    
    int nicolas1 = 80;
    int nicolas2 = 83;
    int nicolas3 = 82;
    int nicolas4 = 88;
    int nicolas5 = 85;
    
    int zahirah1 = 84;
    int zahirah2 = 96;
    int zahirah3 = 73;
    int zahirah4 = 85;
    int zahirah5 = 79;
    
    int jeong1 = 90;
    int jeong2 = 92;
    int jeong3 = 98;
    int jeong4 = 100;
    int jeong5 = 97;
    
    int sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5;
    int nicolasSum = nicolas1 + nicolas2 + nicolas3 + nicolas4 + nicolas5;
    int zahirahSum = zahirah1 + zahirah2 + zahirah3 + zahirah4 + zahirah5;
    int jeongSum = jeong1 + jeong2 + jeong3 + jeong4 + jeong5;
    
    decimal sophiaScore = (decimal) sophiaSum / currentAssignments;
    decimal nicolasScore = (decimal) nicolasSum / currentAssignments;
    decimal zahirahScore = (decimal) zahirahSum / currentAssignments;
    decimal jeongScore = (decimal) jeongSum / currentAssignments;
    
    Console.WriteLine("Sophia: " + sophiaScore + " A");
    Console.WriteLine("Nicolas: " + nicolasScore + " B");
    Console.WriteLine("Zahirah: " + zahirahScore + " B");
    Console.WriteLine("Jeong: " + jeongScore + " A");
    
  2. Om du vill köra koden och visa elevpoängen med bokstavsbetyg väljer du Kör.

  3. Om du vill kontrollera att koden fungerar som förväntat jämför du utdata för ditt program med följande utdata:

    Sophia: 94.6 A
    Nicolas: 83.6 B
    Zahirah: 83.4 B
    Jeong: 95.4 A
    

    Koden bör nu visa elevpoängen som ett decimalvärde och du bör se det bokstavsbetyg som du tilldelade.

    Om koden visar olika resultat måste du granska koden för att hitta felet och göra uppdateringar. Kör koden igen för att se om du har åtgärdat problemet. Fortsätt att uppdatera och köra koden tills koden ger förväntade resultat.

Viktigt!

Se till att inte ta bort någon av koden som du har skrivit hittills. Du kommer att bygga vidare på den här koden i nästa övning.