KHS
#include <iostream>
#include <string>
using namespace std;
struct MataKuliah {
string namaMataKuliah;
int sks;
char nilai;
};
const int MAX_MATAKULIAH = 5;
void tampilkanIPK(const MataKuliah matkul[], int jumlahMatkul) {
int totalSKS = 0;
double totalBobotNilai = 0.0;
int i = 0;
while (i < jumlahMatkul) {
int sks = matkul[i].sks;
char nilai = matkul[i].nilai;
totalSKS += sks;
switch (nilai) {
case 'A':
totalBobotNilai += 4.0 * sks;
break;
case 'B':
totalBobotNilai += 3.0 * sks;
break;
case 'C':
totalBobotNilai += 2.0 * sks;
break;
case 'D':
totalBobotNilai += 1.0 * sks;
break;
case 'E':
totalBobotNilai += 0.0 * sks;
break;
default:
cout << "Nilai tidak valid untuk mata kuliah: " << matkul[i].namaMataKuliah << endl;
return;
}
i++;
}
double ipk = totalBobotNilai / totalSKS;
cout << "IPK: " << ipk << endl;
}
int main() {
MataKuliah matkul[MAX_MATAKULIAH];
int jumlahMatkul;
cout << "Masukkan jumlah mata kuliah: ";
cin >> jumlahMatkul;
cin.ignore(); // Mengabaikan karakter newline dalam buffer input
int i = 0;
while (i < jumlahMatkul) {
cout << "Masukkan nama mata kuliah ke-" << (i + 1) << ": ";
getline(cin, matkul[i].namaMataKuliah);
cout << "Masukkan jumlah SKS mata kuliah ke-" << (i + 1) << ": ";
cin >> matkul[i].sks;
cout << "Masukkan nilai mata kuliah ke-" << (i + 1) << ": ";
cin >> matkul[i].nilai;
cin.ignore(); // Mengabaikan karakter newline dalam buffer input
i++;
}
cout << endl;
cout << "----- Kartu Hasil Studi -----" << endl;
cout << endl;
i = 0;
while (i < jumlahMatkul) {
cout << "Mata Kuliah ke-" << (i + 1) << ": " << matkul[i].namaMataKuliah << endl;
cout << "SKS: " << matkul[i].sks << endl;
cout << "Nilai: " << matkul[i].nilai << endl;
cout << endl;
i++;
}
cout << "-------------------------------" << endl;
cout << endl;
tampilkanIPK(matkul, jumlahMatkul);
return 0;
}
Komentar
Posting Komentar