Gyakorlat – A decimális kimenet formázása

Befejeződött

Ebben a gyakorlatban kiszámítja a végső GPA-t, és módosítja a konzol kimenetét a kívánt jelentésformátum eléréséhez. A GPA megegyezik az összes osztályzati pont összegével és a teljes kreditórák összegével.

A végső GPA kiszámítása

  1. A .NET-szerkesztőben keresse meg a Tanfolyam adatainak megjelenítéséhez használt Console.WriteLine() utasításokat.

  2. Távolítsa el a következő kódot az előző gyakorlatból:

    Console.WriteLine($"{totalGradePoints} {totalCreditHours}");
    

    Mivel ellenőrizte, hogy az értékek helyesek-e, erre a sorra már nincs szükség.

  3. Hozzon létre egy üres kódsort a Console.WriteLine() utasítások felett.

  4. A létrehozott üres kódsoron a végső CSOPORTHÁZIREND-t tároló változó inicializálásához írja be a következő kódot:

    decimal gradePointAverage = totalGradePoints/totalCreditHours;
    
    
  5. Szánjon egy kis időt az osztandó adattípusok figyelembevételére.

    Ha azt szeretné, hogy az osztás számításának eredménye decimális érték legyen, az osztaléknak vagy az osztónak tizedes (vagy mindkettő) típusúnak kell lennie. Ha egész szám változókat használ a számításban, az öntött operátorral ideiglenesen decimálissá kell alakítania az egész számot.

  6. Ha decimális értéket szeretne lekérni az osztásból, frissítse a kódot az alábbiak szerint:

    decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours;
    
    
  7. Lépjen az utolsó Console.WriteLine() utasításra, és hozzon létre egy új üres kódsort az utolsó utasítás után.

  8. A végső GPA megjelenítéséhez írja be a következő kódot:

    Console.WriteLine($"Final GPA: {gradePointAverage}");
    
  9. Az eredmények megtekintéséhez válassza a Futtatás lehetőséget.

    Hasonlítsa össze az alkalmazás kimenetét a következő kimenettel:

    English 101 4 3
    Algebra 101 3 3
    Biology 101 3 4
    Computer Science I 3 4
    Psychology 101 4 3
    Final GPA: 3.3529411764705882352941176471
    

A decimális kimenet formázása

Észrevehette, hogy a decimális eredmény sokkal több számjegyet tartalmaz, mint egy standard GPA. Ebben a feladatban a decimális GPA-értéket fogja módosítani, hogy csak három számjegy jelenjen meg.

Végül meg szeretné jeleníteni a GPA első számjegyét, egy tizedesvesszőt, majd az első két számjegyet a tizedesvessző után. Ezt a formátumot úgy érheti el, hogy változókkal tárolja a kezdő és záró számjegyeket, majd együtt nyomtatja őket a Console.WriteLine() használatával. A tanult matematikai műveletek segítségével kinyerheti a kezdő és záró számjegyeket.

Feljegyzés

A fejlesztői folyamat folytatásával olyan beépített műveleteket fedezhet fel, amelyek automatikusan alkalmazhatják az adatok formázását. Egyelőre ez egy nagyszerű lehetőség arra, hogy megszilárdítsa az eddig tanultakat.

  1. Lépjen a Console.WriteLine() utasítások tetejére.

  2. Hozzon létre egy üres kódsort a Console.WriteLine() utasítások felett.

  3. A létrehozott üres kódsorban a GPA kezdő számjegyét tároló változó inicializálásához írja be a következő kódot:

    int leadingDigit = (int) gradePointAverage;
    
    

    Figyelje meg, hogy a kezdő számjegy tizedesjegyből való kinyeréséhez egész számértékre irányítja. Ez egy egyszerű és megbízható módszer, mert a tört érték megadása soha nem kerekít fel eredményt. Ez azt jelenti, hogy ha a GPA 2,99, akkor a decimális értéket egy int értékre adva 2 lesz.

  4. Ha olyan változót szeretne inicializálni, amely a tizedesvessző után az első két számjegyet tárolja, írja be a következő kódot:

    int firstDigit = (int) (gradePointAverage * 10) % 10;
    

    A művelet első felében a tizedesjegyet egy helyről jobbra mozgatja, és egy egész számra öntötte. A második félidőben a maradékot vagy modulo operátort használva 10-sel kapja meg a maradék osztást, amely elkülöníti az egész szám utolsó számjegyét. Példa:

    Tegyük fel, hogy gradePointAverage = 2.994573 a művelet végrehajtása ezeken az értékeken a következő lépéseket eredményezi:

    int firstDigit = (int) (2.994573 * 10) % 10;
    int firstDigit = 29 % 10;
    int firstDigit = 9;
    

    Az eredmény pedig firstDigit 9.

    Ezután ugyanezt a műveletet fogja alkalmazni a második számjegy lekéréséhez.

  5. Egy új üres kódsorban adja meg a következő kódot:

    int secondDigit = (int) (gradePointAverage * 100 ) % 10;
    

    Ebben a sorban két tizedesjegyet mozgat, és a modulo operátorral lekéri az utolsó számjegyet.

  6. A gpa végleges kimenetének javításához frissítse az utolsó Console.WriteLine() utasítást az alábbiak szerint:

    Console.WriteLine($"Final GPA: {leadingDigit}.{firstDigit}{secondDigit}");
    

A munka ellenőrzése

Ebben a feladatban futtatja a kódot, és ellenőrzi, hogy a kimenet helyes-e.

  1. Ellenőrizze, hogy a kód a következőhöz hasonló-e:

    string studentName = "Sophia Johnson";
    string course1Name = "English 101";
    string course2Name = "Algebra 101";
    string course3Name = "Biology 101";
    string course4Name = "Computer Science I";
    string course5Name = "Psychology 101";
    
    int course1Credit = 3;
    int course2Credit = 3;
    int course3Credit = 4;
    int course4Credit = 4;
    int course5Credit = 3;
    
    int gradeA = 4;
    int gradeB = 3;
    
    int course1Grade = gradeA;
    int course2Grade = gradeB;
    int course3Grade = gradeB;
    int course4Grade = gradeB;
    int course5Grade = gradeA;
    
    int totalCreditHours = 0;
    totalCreditHours += course1Credit;
    totalCreditHours += course2Credit;
    totalCreditHours += course3Credit;
    totalCreditHours += course4Credit;
    totalCreditHours += course5Credit;
    
    int totalGradePoints = 0;
    totalGradePoints += course1Credit * course1Grade;
    totalGradePoints += course2Credit * course2Grade;
    totalGradePoints += course3Credit * course3Grade;
    totalGradePoints += course4Credit * course4Grade;
    totalGradePoints += course5Credit * course5Grade;
    
    decimal gradePointAverage = (decimal) totalGradePoints/totalCreditHours;
    
    int leadingDigit = (int) gradePointAverage;
    int firstDigit = (int) (gradePointAverage * 10 ) % 10;
    int secondDigit = (int) (gradePointAverage * 100 ) % 10;
    
    Console.WriteLine($"{course1Name} {course1Grade} {course1Credit}");
    Console.WriteLine($"{course2Name} {course2Grade} {course2Credit}");
    Console.WriteLine($"{course3Name} {course3Grade} {course3Credit}");
    Console.WriteLine($"{course4Name} {course4Grade} {course4Credit}");
    Console.WriteLine($"{course5Name} {course5Grade} {course5Credit}");
    
    Console.WriteLine($"Final GPA: {leadingDigit}.{firstDigit}{secondDigit}");
    
  2. A kód futtatásához és a formázott kimenet megjelenítéséhez válassza a Futtatás lehetőséget.

  3. Annak ellenőrzéséhez, hogy a kód a várt módon működik-e, hasonlítsa össze az alkalmazás kimenetét a következő kimenettel:

    English 101 4 3
    Algebra 101 3 3
    Biology 101 3 4
    Computer Science I 3 4
    Psychology 101 4 3
    Final GPA: 3.35
    

    Ha a kód eltérő eredményeket jelenít meg, a hiba megkereséséhez és a frissítések elvégzéséhez át kell tekintenie a kódot. Futtassa újra a kódot, és ellenőrizze, hogy kijavította-e a problémát. Folytassa a kód frissítését és futtatását, amíg a kód meg nem hozza a várt eredményeket.

Fontos

Ügyeljen arra, hogy ne törölje az eddig írt kódot. A következő gyakorlatban erre a kódra fog építeni.