Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <iomanip>
- using namespace std;
- class Mahasiswa {
- private:
- string nim, nama;
- char jk;
- double ipk;
- public:
- Mahasiswa() { nim=nama=""; jk=' '; ipk=0; }
- void set(string id, string nam, char jenis, double grade) {
- nim=id; nama=nam; jk=jenis; ipk=grade;
- }
- string getNIM() { return nim; }
- string getNama() { return nama; }
- char getJK() { return jk; }
- double getIPK() { return ipk; }
- };
- class daftarMahasiswa {
- private:
- map<string, Mahasiswa> list_mahasiswa;
- public:
- daftarMahasiswa() { list_mahasiswa.clear(); }
- void add(string nim, Mahasiswa m) { list_mahasiswa.insert({nim, m}); }
- char checkGender(string nim) { return list_mahasiswa.at(nim).getJK(); }
- double checkIPK (string nim) { return list_mahasiswa.at(nim).getIPK(); }
- };
- int main(void) {
- int n, m;
- string nim, nama; char jk; double ipk;
- daftarMahasiswa daftar;
- cin >> n;
- for (int i=0; i<n; i++) {
- cin >> nim >> nama >> jk >> ipk;
- Mahasiswa temp; temp.set(nim, nama, jk, ipk);
- daftar.add(nim, temp);
- }
- cin >> m;
- int total_L = 0, total_P = 0, paralel_size = 0;
- double ipk_sum = 0.00, avg_ipk;
- for (int i=0; i<m; i++) {
- cin >> nim;
- if (daftar.checkGender(nim) == 'L') total_L++;
- else if (daftar.checkGender(nim) == 'P') total_P++;
- ipk_sum += daftar.checkIPK(nim);
- paralel_size++;
- }
- avg_ipk = ipk_sum/paralel_size;
- cout << setprecision(2) << fixed;
- cout << total_L << " " << total_P << endl;
- cout << avg_ipk << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement