GradeBook Alıştırma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üye
Katılım
1 Ocak 2021
Mesajlar
22
Tepki puanı
5
Yaş
32
5 HİZMET YILI
C++ ile Programla Paul&Harvey Deitel :

Kendimi geliştirmek için çalışmakta olduğum kitaptan yararlı gördüğüm bir örneği sizlerle paylaşmak istedim.


- Bir GradeBook Sınıfı oluşturuyoruz. Bu sınıfa <array> sınıf şablonu ile 10 elemanlı bir dizi tanımlıyoruz . Bu dizi ders notlarını saklayan containers olsun.
Karşılama mesajı yazdırın.
Girilen notları yazdıran bir fonksiyon yazın.
Girilen notların en yükseğini ve en düşüğünü bulan fonksiyonu yazın.
Girilen notların ortalamasını bulan fonksiyonu yazın.
Girilen notları not aralıklarında not barı oluşturun.

C++:
#ifndef _GDB_H_
#define _GDB_H_
#include <string>
#include <array>
using std::array;
using std::string;
class GDB {
public:
    
    static const size_t Asize = 10; // not erişilebilir verisi
    GDB(const string&, const array<int, Asize>&); //Constructor
    void setCourseName(string&); // Ders ismi ata
    string getCourseName()const; // Ders ismini Döndür.
    void processGrades()const; // not veri işlevlerini gerçekleştir.
    int getMinimum()const; // Minumum notu bul ve döndür.
    int getMaximum()const; // Maximum notu bul ve döndür.
    double getAvarage()const; // Not ortalamasını bul ve döndür.
    void OutputBarChart()const; // Sınıf Not Ortalaması Barı oluştur.
    void OutputGrades()const; // Notları Sırala.
    void DisplayMessage()const; // Karşılama Mesajı.
    ~GDB(); // Destructor

private:

    std::string CourseName;
    array<int, Asize> arrayx;
    

};

#endif // !_GDB_H_
Kod:
 << std::endl;
    }

}

void GDB::OutputBarChart()const {

    const size_t FrekanSize = 11;
    array <unsigned int, FrekanSize> frekans = {};  // tüm indexlere 0 ata;

    cout << "\nGrade Distribution: " << endl;

    for (size_t item : arrayx) {

        ++frekans[item / 10];

    }
    for (size_t x = 0; x < FrekanSize; ++x) {

        if (0 == x) {

            cout << "0 - 9 :";
        }
        else if (10 == x) {

            cout << setw(7) << "100 :";
        }
        else {
            cout << x * 10 << "-" << (x * 10) + 9 << " :";
        }

        for (unsigned int stars = 0; stars < frekans[x]; ++stars) {
            cout << "*";
            
        }
        cout << endl;
    }
    


}

void GDB::DisplayMessage()const {

    cerr << "Welcome to the grade book for " << getCourseName() << "!" << endl;
}

void GDB::processGrades()const {

    OutputGrades();
    cout << setprecision(2) << fixed; //ondalık kısım için.
    cout << "\nLowest Grade is " << getMinimum() << "\nHighest Grade is " << getMaximum() << endl;
    cout << "\nClass Avarage is " << getAvarage() << endl;
    OutputBarChart();

}

GDB::~GDB() {

    CourseName = "";

    for (size_t item : arrayx) {

        item = NULL;
    }

}
Kod:
 
Uzman Üye
Katılım
9 Şub 2016
Mesajlar
259
Tepki puanı
11
Ödüller
10
10 HİZMET YILI
iyiymiş hocam not barı oluşturunca import oluyor mu?
 
Üye
Katılım
6 Şub 2019
Mesajlar
13
Tepki puanı
0
Ödüller
6
Yaş
26
7 HİZMET YILI
çok işime yaradı adamsın fakat biraz daha gelse yapsan iyi olur
 
Banlı Üye
Katılım
13 Şub 2021
Mesajlar
13
Tepki puanı
1
5 HİZMET YILI
Konularının hepsine baktım neredeyse hepsi alıntı kendine ait bir kod bile yok :d o yüzden -rep

Zar oyunuda üstün körü yapmışsın dedin ama kodda tek değişen outputlardaki çıktılar olabilir :d
 
Üye
Katılım
1 Ocak 2021
Mesajlar
22
Tepki puanı
5
Yaş
32
5 HİZMET YILI
Konularının hepsine baktım neredeyse hepsi alıntı kendine ait bir kod bile yok :d o yüzden -rep

Zar oyunuda üstün körü yapmışsın dedin ama kodda tek değişen outputlardaki çıktılar olabilir :d

Herhangi bir yerde ben yaptım yazılı bir açıklama var mı konunun başında zaten yazmışım oraya bu kitapta yararlı gördüğüm bir örneği paylaşıyorum diye
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst