PERTEMUAN KE 12 (KUIS)

Soal Kasus 1: Pengelolaan Nilai Mahasiswa Sebuah program akan digunakan untuk mengelola nilai mahasiswa dalam satu kelas. Program harus mampu: Menerima input jumlah mahasiswa (maksimal 50 orang). Harus diuji. Untuk setiap mahasiswa, input: a. Nama (string) b. Nilai tugas, UTS, dan UAS (tipe float) Hitung nilai akhir dengan rumus: NilaiAkhir = 0.3 × Tugas + 0.3 × UTS + 0.4 × UAS dimana: A : > 85 B : 70 – 84 C : 55 – 69 D : 40 – 54 E : < 40 Tampilkan daftar mahasiswa dalam bentuk tabel: No | Nama | Nilai Akhir | Grade -------------------------------- 1 | Andi | 83.5 | B 2 | Budi | 90.2 | A ... Hitung dan tampilkan: Rata-rata nilai akhir seluruh mahasiswa Jumlah mahasiswa yang lulus (grade A, B, C) dan tidak lulus (D, E) Materi yang diuji: Tipe data: string, float, integer Percabangan: menentukan grade dan status kelulusan Pengulangan: input data mahasiswa dan perhitungan rata-rata Array: menyimpan nilai mahasiswa

#include 
#include 
using namespace std;

int main() {
    const int MAX = 50;
    string nama[MAX];
    float tugas[MAX], uts[MAX], uas[MAX], nilaiAkhir[MAX];
    char grade[MAX];

    int jumlah;
    int lulus = 0, tidakLulus = 0;
    float totalNilai = 0;

    // Input jumlah mahasiswa (validasi)
    do {
        cout << "Masukkan jumlah mahasiswa (maksimal 50): ";
        cin >> jumlah;
        if (jumlah <= 0 || jumlah > MAX) {
            cout << "Input tidak valid, coba lagi!\n";
        }
    } while (jumlah <= 0 || jumlah > MAX);

    // Input data mahasiswa
    for (int i = 0; i < jumlah; i++) {
        cout << "\nMahasiswa ke-" << i + 1 << endl;
        cout << "Nama        : ";
        cin >> nama[i];
        cout << "Nilai Tugas : ";
        cin >> tugas[i];
        cout << "Nilai UTS   : ";
        cin >> uts[i];
        cout << "Nilai UAS   : ";
        cin >> uas[i];

        // Hitung nilai akhir
        nilaiAkhir[i] = 0.3 * tugas[i] + 0.3 * uts[i] + 0.4 * uas[i];
        totalNilai += nilaiAkhir[i];

        // Tentukan grade
        if (nilaiAkhir[i] > 85) {
            grade[i] = 'A';
            lulus++;
        } else if (nilaiAkhir[i] >= 70) {
            grade[i] = 'B';
            lulus++;
        } else if (nilaiAkhir[i] >= 55) {
            grade[i] = 'C';
            lulus++;
        } else if (nilaiAkhir[i] >= 40) {
            grade[i] = 'D';
            tidakLulus++;
        } else {
            grade[i] = 'E';
            tidakLulus++;
        }
    }

    // Tampilkan tabel
    cout << "\n============================================\n";
    cout << "No  Nama        Nilai Akhir   Grade\n";
    cout << "============================================\n";

    for (int i = 0; i < jumlah; i++) {
        cout << setw(2) << i + 1 << "  "
             << setw(10) << nama[i] << "      "
             << fixed << setprecision(2) << nilaiAkhir[i] << "        "
             << grade[i] << endl;
    }

    cout << "============================================\n";

    // Rata-rata
    cout << "Rata-rata nilai akhir : " << totalNilai / jumlah << endl;
    cout << "Jumlah lulus          : " << lulus << endl;
    cout << "Jumlah tidak lulus    : " << tidakLulus << endl;

    return 0;
}

Tidak ada komentar:

Posting Komentar