Alıştırma - Çıkış karakteri dizilerini kullanarak çıkışı biçimlendirme

Tamamlandı

Bu alıştırmada, öğretmen tarafından belirtilen raporlama biçimini elde etmek için önceki alıştırmadaki konsol çıkışını değiştireceksiniz.

Konsol çıkışını biçimlendirme

Bu görevde, bildirilen çıkışa son rötuşları uygulamak için kodunuzu güncelleştireceksiniz. İlk olarak öğretmen tarafından belirtilen sütun etiketlerini içeren bir üst bilgi satırı ekleyeceksiniz. Bundan sonra, bilgi sütunları arasına fazladan doldurma eklemek için karakter kaçış dizilerini kullanacaksınız.

  1. .NET Düzenleyicisi'nde, her öğrencinin geçerli sınıf puanını ve harf notunu görüntülemek için kullanılan Console.WriteLine() deyimlerini bulun.

  2. Deyimlerin üzerinde Console.WriteLine() boş bir kod satırı oluşturun.

  3. Oluşturduğunuz boş kod satırında, öğrenci notlarına üst bilgi eklemek için aşağıdaki kodu girin:

    Console.WriteLine("Student Grade\n");
    

    Metnin sonuna eklediğinize \n dikkat edin. "C# ile temel dize biçimlendirmesi gerçekleştirme" modülünde, kaçış karakteri dizisinin \n yeni bir satır oluşturulmasına neden olacağını öğrendinsiniz. Kaçış dizisinin konumu önemlidir. Bu durumda, \n konsola yazmak istediğiniz bilgilerin sonundadır, bu nedenle yeni satır "Öğrenci Notu" görüntülendikten sonra eklenir.

  4. Çıkışınızı metnin hizalanmış sütunları olarak biçimlendirmek için, sözcükler arasındaki boşlukları kaçış dizisiyle \t aşağıdaki gibi değiştirin:

    Console.WriteLine("Student\tGrade\n");
    Console.WriteLine("Sophia:\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t" + jeongScore + "\tA");
    

    Kaçış \t dizisi, metin öğelerinin arasına bir sekme durağı ekler. Sekme duraklarının eklenmesi, sola hizalanmış bilgi sütunlarına neden olmalıdır.

  5. Güncelleştirmelerinizin sonuçlarını görüntülemek için Çalıştır'ı seçin.

  6. Uygulamanızın çıkışını aşağıdaki çıkışla karşılaştırın:

    Student	Grade
    
    Sophia: 94.6    A
    Nicolas:    83.6    B
    Zahirah:    83.4    B
    Jeong:  95.4    A
    
  7. Boşluk karakteri yerine sekme kullanılmasına rağmen, bazı satırlarda öğrencinin adıyla sayısal puanı arasında hala fazla boşluk bulunmadığına dikkat edin.

    Bu fark, sekme aralığının uygulanma biçiminden kaynaklanır. Sekme durağı konumları dört karakterlik aralıklarla ayarlanır ve her sekme bir sonraki sekme durağı konumuna ilerler. Beş karakterden oluşan bir dizeniz ve ardından sekme kaçış diziniz varsa, çıkış dizisi sekiz karakterlik konumda sekme durağına ilerler ve çıkışta boşluk oluşturmak için boşluğu boşluk karakterleriyle doldurur. Ancak yedi karakterden oluşan bir dizeniz ve ardından sekme kaçış diziniz varsa aynı konuma ilerleyebilirsiniz. Bu, sekme kaçış sıralarını bir sonraki sekme durağı konumundan daha fazla gerçekleştiğinde daha belirgin hale getirir.

  8. İlk iki sütun arasındaki boşluğu daha belirgin hale getirmek için, daha kısa olan iki öğrenci adının arkasına aşağıdaki gibi başka bir \t ad ekleyin:

    Console.WriteLine("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
    

Çalışmanızı Denetleme

Bu görevde kodu çalıştıracak ve çıkışın doğru olduğunu doğrulayacaksınız.

  1. Kodunuzu aşağıdakilerle karşılaştırın:

    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("Student\t\tGrade\n");
    Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA");
    Console.WriteLine("Nicolas:\t" + nicolasScore + "\tB");
    Console.WriteLine("Zahirah:\t" + zahirahScore + "\tB");
    Console.WriteLine("Jeong:\t\t" + jeongScore + "\tA");
    
  2. Kodunuzu çalıştırmak ve biçimlendirilmiş çıkışı görüntülemek için Çalıştır'ı seçin.

  3. Kodunuzun beklendiği gibi çalıştığını doğrulamak için uygulamanızın çıkışını aşağıdaki çıkışla karşılaştırın:

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

    Kodunuz farklı sonuçlar görüntülüyorsa hatanızı bulmak ve güncelleştirmeler yapmak için kodunuzu gözden geçirmeniz gerekir. Sorunu düzeltip düzeltmediğinize bakmak için kodu yeniden çalıştırın. Kodunuz beklenen sonuçları elde edene kadar kodunuzu güncelleştirmeye ve çalıştırmaya devam edin.