Advertisement
ghifarazka

kelas

Mar 25th, 2023
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. class Mahasiswa {
  6.     private:
  7.         string nim, nama;
  8.         char jk;
  9.         double ipk;
  10.     public:
  11.         Mahasiswa() { nim=nama=""; jk=' '; ipk=0; }
  12.         void set(string id, string nam, char jenis, double grade) {
  13.             nim=id; nama=nam; jk=jenis; ipk=grade;
  14.         }
  15.         string getNIM() { return nim; }
  16.         string getNama() { return nama; }
  17.         char getJK() { return jk; }
  18.         double getIPK() { return ipk; }
  19. };
  20.  
  21. class daftarMahasiswa {
  22.     private:
  23.         map<string, Mahasiswa> list_mahasiswa;
  24.     public:
  25.         daftarMahasiswa() { list_mahasiswa.clear(); }
  26.         void add(string nim, Mahasiswa m) { list_mahasiswa.insert({nim, m}); }
  27.         char checkGender(string nim) { return list_mahasiswa.at(nim).getJK(); }
  28.         double checkIPK (string nim) { return list_mahasiswa.at(nim).getIPK(); }
  29. };
  30.  
  31. int main(void) {
  32.     int n, m;
  33.     string nim, nama; char jk; double ipk;
  34.     daftarMahasiswa daftar;
  35.  
  36.     cin >> n;
  37.     for (int i=0; i<n; i++) {
  38.         cin >> nim >> nama >> jk >> ipk;
  39.         Mahasiswa temp; temp.set(nim, nama, jk, ipk);
  40.         daftar.add(nim, temp);
  41.     }
  42.  
  43.     cin >> m;
  44.     int total_L = 0, total_P = 0, paralel_size = 0;
  45.     double ipk_sum = 0.00, avg_ipk;
  46.     for (int i=0; i<m; i++) {
  47.         cin >> nim;
  48.         if (daftar.checkGender(nim) == 'L') total_L++;
  49.         else if (daftar.checkGender(nim) == 'P') total_P++;
  50.         ipk_sum += daftar.checkIPK(nim);
  51.         paralel_size++;
  52.     }
  53.  
  54.     avg_ipk = ipk_sum/paralel_size;
  55.  
  56.     cout << setprecision(2) << fixed;
  57.     cout << total_L << " " << total_P << endl;
  58.     cout << avg_ipk << endl;
  59.  
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement