#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;
}
Materi pertemuan mata kuliah algoritma pemrograman yang di susun oleh Devina Hindriastika
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
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar