Ćwiczenie — obliczanie średniej wyników przydziału ucznia

Ukończone

W tym ćwiczeniu obliczysz i zapiszesz średnią wyników przydziału z każdego ucznia. Ponieważ znasz liczbę ocenianych przydziałów dla każdego ucznia, średnia jest obliczana przez podzielenie sumy wyników przydziału według liczby przydziałów. Aby przechowywać średnie, użyjesz typu danych Dziesiętnych.

Tworzenie zmiennych do przechowywania średniej

W tym zadaniu utworzysz zmienną dla każdego ucznia, który może służyć do przechowywania średniego wyniku dla swoich ocen.

  1. W edytorze .NET znajdź Console.WriteLine() instrukcje używane do wyświetlania sumowanych wyników każdego ucznia.

  2. Utwórz pusty wiersz kodu nad instrukcjami Console.WriteLine() .

  3. W pustym wierszu kodu, który został utworzony, aby zadeklarować zmienne dziesiętne, które będą używane dla bieżących wyników uczniów, wprowadź następujący kod:

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

    Zwróć uwagę, że deklarujesz tylko zmienne i nie inicjujesz decimal ich. decimal Wybrano typ, ponieważ reprezentujesz średnią klasę i chcesz uwzględnić miejsce dziesiętne, które nie będzie dostępne, jeśli użyto liczby całkowitej. W ten sposób można sprawdzić, czy uczeń zdobył wynik 89,9 i podbił je z B do A.

    W poprzednim ćwiczeniu zainicjowano zmienne całkowite, aby można było natychmiast użyć ich w danych wyjściowych konsoli. W takim przypadku te decimal zmienne zostaną zainicjowane w następnym kroku przy użyciu obliczeń z istniejącymi danymi, zaczynając od wyniku Sophia.

  4. Aby przypisać bieżący wynik Sophia w klasie do liczby dziesiętnej sophiaScore, zaktualizuj zmienną przy użyciu następującego kodu:

    decimal sophiaScore = sophiaSum / currentAssignments;
    
    

    Aby obliczyć bieżący wynik ucznia dla klasy, należy podzielić sumę wyników przydziału na łączną liczbę przydziałów. Każdy uczeń w klasie ma pięć zadań reprezentowanych przez currentAssignments zainicjowane podczas konfiguracji.

  5. Aby przypisać pozostałe wyniki uczniów, wprowadź następujący kod:

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

    Ostatecznie chcesz wyświetlić oceny każdego ucznia w tej aplikacji. W następnym kroku zmodyfikujesz kod, aby wyświetlić wynik każdego ucznia, a nie sumę przydziału.

  6. Aby wyświetlić bieżący wynik każdego ucznia, zastąp zmienne sum w instrukcjach wyświetlania zmiennymi oceny:

    Console.WriteLine("Sophia: " + sophiaScore);
    Console.WriteLine("Nicolas: " + nicolasScore);
    Console.WriteLine("Zahirah: " + zahirahScore);
    Console.WriteLine("Jeong: " + jeongScore);
    
    
  7. Pośmiń chwilę, aby rozważyć podejście przyrostowe, którego używasz do tworzenia tej aplikacji.

    Podzielenie problemu na mniejsze elementy jest ważną umiejętnością dla deweloperów. Tworzenie kodu przyrostowo i sprawdzanie pracy często umożliwia szybkie tworzenie niezawodnych aplikacji. W takim przypadku można ponownie zaadeksować Console.WriteLine() , aby sprawdzić, czy obliczenia są poprawne podczas wykonywania każdego etapu w procesie.

  8. Aby wyświetlić wartości bieżącej klasy każdego ucznia, wybierz pozycję Uruchom.

    Powinny zostać wyświetlone następujące dane wyjściowe:

    Sophia: 94
    Nicolas: 83
    Zahirah: 83
    Jeong: 95
    
  9. Zwróć uwagę, że wyniki są wyświetlane jako liczby całkowite, a nie dziesiętne.

    Jeśli chcesz, aby wynik obliczenia podziału był wartością dziesiętną, dywidenda lub dzielnika musi być typu dziesiętna (lub oba). W przypadku używania zmiennych całkowitych w obliczeniach należy zastosować technikę znającą rzutowanie w celu konwersji liczby całkowitej na liczbę dziesiętną.

    W przypadku obliczenia wyniku można uzyskać wynik dziesiętny, rzutując zmienną sumową lub currentAssignments jako typ dziesiętny. W takim przypadku sumę należy rzutować jako dziesiętną.

  10. W operacjach dzielenia, aby rzutować zmienną całkowitą jako dziesiętną, zaktualizuj kod w następujący sposób:

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

    Wystarczy, że dywidenda lub dzielnika będzie typem dziesiętnym dla dzielenia, aby spowodować powstanie wartości dziesiętnej. W tym miejscu rzutujesz tylko zmienną sum, która jest używana jako dywidenda.

  11. Przejrzyj następującą skalę klasyfikacji używaną przez nauczyciela do przypisywania klas listowych:

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

    Następnym krokiem jest dołączenie klasy listowej dla każdego ucznia na podstawie ich całkowitego wyniku. Dodanie klasy litery do wyświetlanych danych wyjściowych będzie procesem ręcznym.

  12. Aby określić wartość bieżącej klasy każdego ucznia, wybierz pozycję Uruchom.

    Użyj bieżącej klasy dla każdego ucznia, aby określić odpowiednią ocenę listu, zaokrąglając w górę lub w dół w razie potrzeby.

  13. Aby dołączyć ocenę liter po wyniku liczbowym każdego ucznia, zaktualizuj kod w następujący sposób:

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

Sprawdź swoją pracę

W tym zadaniu uruchomisz kod i sprawdzisz, czy dane wyjściowe są poprawne.

  1. Porównaj kod z następującymi elementami:

    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. Aby uruchomić kod i wyświetlić wyniki uczniów z ocenami listów, wybierz pozycję Uruchom.

  3. Aby sprawdzić, czy kod działa zgodnie z oczekiwaniami, porównaj dane wyjściowe aplikacji z następującymi danymi wyjściowymi:

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

    Kod powinien teraz wyświetlać wyniki ucznia jako wartość dziesiętną i powinien zostać wyświetlona przypisana klasa litera.

    Jeśli kod wyświetla różne wyniki, musisz przejrzeć kod, aby znaleźć błąd i wprowadzić aktualizacje. Uruchom ponownie kod, aby sprawdzić, czy problem został rozwiązany. Kontynuuj aktualizowanie i uruchamianie kodu, dopóki kod nie generuje oczekiwanych wyników.

Ważne

Pamiętaj, aby nie usunąć żadnego z napisanych do tej pory kodu. W następnym ćwiczeniu utworzysz ten kod.