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
.png)
Komentar
Posting Komentar