MEMPERBAIKI KHS

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

class MataKuliah {
public:
    string nama;
    int sks;
    int nutst;
    int nuast;
    int nutsp;
    int nuasp;
    int ntugas;
    string tptp;
    char skor;

    void inputData() {
        cout << "Masukkan Mata kuliah: " << endl;
        getline(cin, nama);
        cout << "SKS " << nama << " : ";
        cin >> sks;
        cin.ignore(); // Ignore the newline character left by cin
        cout << nama << " Teori/Praktek/TP(T/P/TP)" << endl;
        cin >> tptp;
        cout << "Masukkan nilai (Jika tidak ada isi saja 0)" << endl;
        cout << "Nilai UTS Teori: ";
        cin >> nutst;
        cout << "Nilai UAS Teori: ";
        cin >> nuast;
        cout << "Nilai UAS Praktek: ";
        cin >> nuasp;
        cout << "Nilai UTS Praktek: ";
        cin >> nutsp;
        cout << "Nilai Tugas: ";
        cin >> ntugas;
        cin.ignore(); // Ignore the newline character left by cin
    }

    void calculateScore() {
        if (tptp == "T") {
            int total = nutst + nuast + ntugas;
            int avg = total / 3;
            if (avg >= 85 && avg <= 100)
                skor = 'A';
            else if (avg >= 80 && avg < 85)
                skor = 'B';
            else if (avg >= 70 && avg < 80)
                skor = 'C';
            else if (avg >= 60 && avg < 70)
                skor = 'D';
            else
                skor = 'E';
        } else if (tptp == "P") {
            int total = nutsp + nuasp + ntugas;
            int avg = total / 3;
            if (avg >= 85 && avg <= 100)
                skor = 'A';
            else if (avg >= 80 && avg < 85)
                skor = 'B';
            else if (avg >= 70 && avg < 80)
                skor = 'C';
            else if (avg >= 60 && avg < 70)
                skor = 'D';
            else
                skor = 'E';
        } else if (tptp == "TP") {
            int total = nutsp + nuasp + ntugas + nutst + nuast + ntugas;
            int avg = total / 6;
            if (avg >= 85 && avg <= 100)
                skor = 'A';
            else if (avg >= 80 && avg < 85)
                skor = 'B';
            else if (avg >= 70 && avg < 80)
                skor = 'C';
            else if (avg >= 60 && avg < 70)
                skor = 'D';
            else
                skor = 'E';
        } else {
            skor = 'E'; // Invalid input, set the score to E
        }
    }
};

class KartuHasilStudi {
public:
    string nama;
    string nim;
    string prodi;
    MataKuliah matkuls[8];
    int jumlahMatkul;

    void inputJumlahMatkul() {
        cout << "Masukkan jumlah mata kuliah (maksimum 8): ";
        cin >> jumlahMatkul;
        cin.ignore(); // Ignore the newline character left by cin
        jumlahMatkul = max(0, min(8, jumlahMatkul)); // Ensure the value is between 0 and 8
    }

    void inputData() {
        cout << "\t\t\t\t\t=================================" << endl;
        cout << "\t\t\t\t\t* MEMBUAT PROGRAM KARTU HASIL STUDI *" << endl;
        cout << "\t\t\t\t\t=================================" << endl;
        cout << "---------------------------------------------------------------" << endl;
        cout << "Isi Identitas anda Terlebih Dahulu" << endl;
        cout << "Nama Mahasiswa     : ";
        getline(cin, nama);
        cout << "NIM Mahasiswa(Isi dengan Huruf kapital)   : ";
        getline(cin, nim);

        if (nim[0] == 'A' && nim[1] == '1' && nim[2] == '1') {
            prodi = "teknik informatika";

            inputJumlahMatkul();
            for (int i = 0; i < jumlahMatkul; i++) {
                matkuls[i].inputData();
                matkuls[i].calculateScore();
            }
        } else {
            cout << "Tidak Ada Dalam Pilihan, Silakan Inputkan Ulang NIM Anda" << endl;
        }
    }

    void displayKHS() {
        cout << "\t\t\t\t\t=================================" << endl;
        cout << "\t\t\t\t\t\t* KARTU HASIL STUDI *" << endl;
        cout << "\t\t\t\t\t=================================" << endl;
        cout << "---------------------------------------------------------------" << endl;
        cout << "Nama Mahasiswa: " << setw(23) << nama << endl;
        cout << "NIM Mahasiswa: " << setw(24) << nim << endl;
        cout << "Program Studi: " << setw(22) << prodi << endl;
        cout << "---------------------------------------------------------------" << endl;
        cout << "   Mata Kuliah" << setw(30) << "sks" << setw(9) << "nilai uts" << setw(9) << "nilai uas"
             << setw(14) << "nilai tugas" << setw(9) << "NILAI" << endl;
        cout << "\t\t\t\t\t\t" << "T" << setw(8) << "P" << setw(8) << "T" << setw(8) << "P" << endl;

        for (int i = 0; i < jumlahMatkul; i++) {
            cout << matkuls[i].nama << setw(30 - matkuls[i].nama.length()) << matkuls[i].sks << setw(9)
                 << matkuls[i].nutst << setw(9) << matkuls[i].nuast << setw(14) << matkuls[i].nutsp << setw(9)
                 << matkuls[i].ntugas << setw(9) << matkuls[i].skor << endl;
        }
        cout << "---------------------------------------------------------------" << endl;
    }
};

int main() {
    char yt;
    do {
        KartuHasilStudi khs;
        khs.inputData();
        khs.displayKHS();

        cout << "\nApakah anda ingin mengulang?" << endl;
        cout << "Ketik 'y' untuk mengulang dan ketik 't' untuk selesai" << endl;
        cin >> yt;
        cin.ignore(); // Ignore the newline character left by cin
    } while (yt == 'y' || yt == 'Y');

    cout << "Terima kasih sudah berkunjung" << endl;
    return 0;
}

Hasil Running Program 




Komentar

Postingan populer dari blog ini