Cvičení – výpočet průměru skóre zadání studenta

Dokončeno

V tomto cvičení vypočítáte a uložíte průměr skóre zadání od každého studenta. Vzhledem k tomu, že znáte počet vyhodnocených zadání pro každého studenta, vypočítá se průměr vydělením součtu skóre zadání počtem zadání. K uložení průměrů použijete datový typ Decimal.

Vytvoření proměnných pro uložení průměru

V tomto úkolu vytvoříte proměnnou pro každého studenta, který se dá použít k uložení průměrného skóre pro jejich známkovaná zadání.

  1. V editoru .NET vyhledejte Console.WriteLine() příkazy, které se používají k zobrazení součtových skóre jednotlivých studentů.

  2. Vytvořte prázdný řádek kódu nad Console.WriteLine() příkazy.

  3. Na prázdném řádku kódu, který jste vytvořili, deklarujte desetinné proměnné, které budou použity pro aktuální skóre studentů, zadejte následující kód:

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

    Všimněte si, že deklarujete decimal pouze proměnné a neicializujete je. Zvolili decimal jste typ, protože jste představovali průměrnou známku a chcete zahrnout desetinné místo, které by nebylo dostupné, pokud jste použili celé číslo. Tímto způsobem můžete zjistit, jestli student udělal skóre 89,9 a zmářil z B na A.

    V předchozím cvičení jste inicializovali celočíselné proměnné, abyste je mohli okamžitě použít ve výstupu konzoly. V tomto případě se tyto decimal proměnné inicializují v dalším kroku pomocí výpočtů s vašimi existujícími daty, počínaje skóre Sophia.

  4. Chcete-li přiřadit aktuální skóre Sophia ve třídě desetinné číslo sophiaScore, aktualizujte proměnnou následujícím kódem:

    decimal sophiaScore = sophiaSum / currentAssignments;
    
    

    Pokud chcete vypočítat aktuální skóre studenta pro předmět, vydělíte součet skóre zadání celkovým počtem zadání. Každý student v předmětu má pět zadání, které currentAssignments jste inicializovali během instalace.

  5. Pokud chcete přiřadit zbývající skóre studentů, zadejte následující kód:

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

    Nakonec chcete zobrazit známky každého studenta v této aplikaci. V dalším kroku upravíte kód tak, aby zobrazoval skóre každého studenta místo součtu zadání.

  6. Pokud chcete zobrazit aktuální skóre každého studenta, nahraďte proměnné součtu v zobrazovaných příkazech proměnnými skóre:

    Console.WriteLine("Sophia: " + sophiaScore);
    Console.WriteLine("Nicolas: " + nicolasScore);
    Console.WriteLine("Zahirah: " + zahirahScore);
    Console.WriteLine("Jeong: " + jeongScore);
    
    
  7. Zvažte přírůstkový přístup, který používáte k vývoji této aplikace.

    Rozdělení problému na menší části je pro vývojáře důležitou dovedností. Vytváření kódu přírůstkově a kontrola práce často umožňuje rychle vyvíjet spolehlivé aplikace. V takovém případě můžete změnit účel Console.WriteLine() a ověřit správnost výpočtů při dokončení každé fáze procesu.

  8. Pokud chcete zobrazit hodnoty aktuální známky každého studenta, vyberte Spustit.

    Měl by se zobrazit následující výstup:

    Sophia: 94
    Nicolas: 83
    Zahirah: 83
    Jeong: 95
    
  9. Všimněte si, že skóre se místo desetinných míst zobrazuje jako celá čísla.

    Pokud chcete, aby výsledkem výpočtu dělení byla desetinná hodnota, musí být dělitel typu desetinné číslo (nebo obojí). Pokud ve výpočtu použijete celočíselné proměnné, musíte použít techniku, která se označuje jako přetypování na "převod" celého čísla na desetinné číslo.

    Pro výpočet skóre můžete získat desetinný výsledek přetypováním proměnné součtu nebo currentAssignments jako typ desetinné čárky. V tomto případě přetypujete součet jako desítkové číslo.

  10. Pokud chcete v operacích dělení přetypovat celočíselnou proměnnou jako desítkové číslo, aktualizujte kód následujícím způsobem:

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

    Potřebujete, aby dělitel nebo dělitel byl pouze desetinným typem dělení, aby výsledkem byla desetinná hodnota. Tady přetypujete pouze proměnnou součtu, která se používá jako dividenda.

  11. Zkontrolujte následující stupnici známkování, které učitel používá k přiřazování známek:

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

    Dalším krokem je zahrnutí známky pro každého studenta na základě celkového skóre. Přidání známky dopisu do zobrazeného výstupu bude ruční proces.

  12. Pokud chcete určit hodnotu aktuální známky každého studenta, vyberte Spustit.

    Aktuální známku pro každého studenta použijte k určení odpovídající známky dopisu, zaokrouhlování nahoru nebo dolů podle potřeby.

  13. Pokud chcete přidat známky z dopisu za číselné skóre každého studenta, aktualizujte kód následujícím způsobem:

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

Kontrola práce

V této úloze spustíte kód a ověříte správnost výstupu.

  1. Porovnejte kód s následujícím kódem:

    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. Pokud chcete spustit kód a zobrazit skóre studentů s známkami dopisu, vyberte Spustit.

  3. Pokud chcete ověřit, že váš kód funguje podle očekávání, porovnejte výstup aplikace s následujícím výstupem:

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

    Váš kód by teď měl zobrazovat skóre studenta jako desetinnou hodnotu a měl by se zobrazit stupeň dopisu, který jste přiřadili.

    Pokud váš kód zobrazuje různé výsledky, budete muset zkontrolovat kód, abyste našli chybu a aktualizovali ji. Spusťte kód znovu, abyste zjistili, jestli jste problém vyřešili. Pokračujte v aktualizaci a spouštění kódu, dokud váš kód nevygeneruje očekávané výsledky.

Důležité

Nezapomeňte odstranit žádný kód, který jste zatím napsali. Tento kód vytvoříte v dalším cvičení.