Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <Windows.h>
- #include <conio.h>
- #include <string.h>
- class uniBody
- {
- protected:
- std::string nama;
- public:
- uniBody()
- {
- nama = "Nico";
- }
- void setNama(std::string _nama)
- {
- nama = _nama;
- }
- std::string getNama()
- {
- return nama;
- }
- };
- class Mahasiswa : public uniBody
- {
- std::string nrp;
- public:
- Mahasiswa(std::string _nama = "Marcellino", std::string _nrp = "0")
- {
- nama = _nama;
- nrp = _nrp;
- }
- void setNRP(std::string _nrp)
- {
- nrp = _nrp;
- }
- std::string getNRP()
- {
- return nrp;
- }
- };
- class Dosen : public uniBody
- {
- std::string nip;
- public:
- Dosen(std::string _nama = "Andreas", std::string _nip = "0")
- {
- nama = _nama;
- nip = _nip;
- }
- void setNIP(std::string _nip)
- {
- nip = _nip;
- }
- std::string getNIP()
- {
- return nip;
- }
- };
- class Kelas
- {
- Dosen _dosen;
- std::vector<Mahasiswa> _mhs;
- int kode;
- std::string matKul;
- public:
- Kelas()
- {
- kode = 0;
- matKul = "PBO";
- }
- void setKode(int _kode)
- {
- kode = _kode;
- }
- int getKode()
- {
- return kode;
- }
- void setMatKul(std::string _matKul)
- {
- matKul = _matKul;
- }
- std::string getMatKul()
- {
- return matKul;
- }
- void setDosen(std::string _nama, std::string _nip)
- {
- _dosen.setNama(_nama);
- _dosen.setNIP(_nip);
- }
- void addMhs(std::string _nama, std::string _nrp)
- {
- _mhs.push_back(Mahasiswa(_nama, _nrp));
- }
- void removeMhs(int index)
- {
- if (_mhs.size() == 0)
- {
- std::cout << "Data masih kosong\n";
- return;
- }
- if (index >= _mhs.size() || index < 0)
- {
- std::cout << "Invalid Index\n";
- return;
- }
- for (int i = index; i < _mhs.size() - 1; i++)
- {
- _mhs[i] = _mhs[i + 1];
- }
- _mhs.pop_back();
- std::cout << "Data di index " << index << " berhasil dihapus\n";
- }
- void removeMhs(std::string _value, int _mode)
- {
- bool remove = false;
- if (_mhs.size() == 0)
- {
- std::cout << "Data masih kosong\n";
- return;
- }
- for (int i = 0; i < _mhs.size(); i++)
- {
- if (_mode == 0)
- {
- if (_mhs[i].getNama() == _value)
- {
- for (int j = i; j < _mhs.size() - 1; j++)
- {
- _mhs[i] = _mhs[i + 1];
- }
- _mhs.pop_back();
- remove = true;
- }
- }
- else if (_mode == 1)
- {
- if (_mhs[i].getNRP() == _value)
- {
- for (int j = i; j < _mhs.size() - 1; j++)
- {
- _mhs[i] = _mhs[i + 1];
- }
- _mhs.pop_back();
- remove = true;
- }
- }
- }
- if (!remove)
- {
- std::cout << "Mahasiswa dengan data tersebut tidak dapat ditemukan\n";
- }
- else
- {
- std::cout << "Berhasil menghapus mahasiswa dengan ";
- if (_mode == 0)
- {
- std::cout << "nama " << _value << "\n";
- }
- else if (_mode == 1)
- {
- std::cout << "NRP " << _value << "\n";
- }
- }
- }
- void findMhs(std::string _value, int _mode)
- {
- bool find = false;
- std::string lowered, loweredVal;
- char temp[512], get[512];
- strcpy(temp, _value.c_str());
- loweredVal = strlwr(temp);
- for (int i = 0; i < _mhs.size(); i++)
- {
- if (_mode == 0)
- {
- strcpy(get, _mhs[i].getNama().c_str());
- lowered = strlwr(get);
- if (lowered.find(loweredVal) != std::string::npos)
- {
- std::cout << _mhs[i].getNama() << " / " << _mhs[i].getNRP() << "\n";
- find = true;
- }
- }
- else if (_mode == 1)
- {
- if (_mhs[i].getNRP().find(_value) != std::string::npos)
- {
- std::cout << _mhs[i].getNama() << " / " << _mhs[i].getNRP() << "\n";
- find = true;
- }
- }
- }
- if (!find)
- {
- std::cout << "Mahasiswa dengan data tersebut tidak dapat ditemukan\n";
- }
- }
- void viewAll()
- {
- std::cout << "Kode Kelas : " << kode << "\n";
- std::cout << "Mata Kuliah : " << matKul << "\n";
- std::cout << "Dosen : " << _dosen.getNama() << " / " << _dosen.getNIP() << "\n";
- std::cout << "Mahasiswa : " << "\n";
- for (int i = 0; i < _mhs.size(); i++)
- {
- std::cout << (i + 1) << ". " << _mhs[i].getNama() << " / " << _mhs[i].getNRP() << "\n";
- }
- }
- };
- void main()
- {
- Kelas _kelas;
- int choice;
- int temp;
- std::string stemp, stemp2;
- do
- {
- system("CLS");
- std::cout << "Menu :\n";
- std::cout << "1. Set Kode Kelas\n";
- std::cout << "2. Set Mata Kuliah\n";
- std::cout << "3. Set Dosen\n";
- std::cout << "4. Add Mahasiswa\n";
- std::cout << "5. Remove Mahasiswa\n";
- std::cout << "6. Find Mahasiswa\n";
- std::cout << "7. View Data\n";
- std::cout << "8. Exit\n";
- std::cout << "Choice : ";
- std::cin >> choice;
- fflush(stdin);
- if (choice == 1)
- {
- std::cout << "Masukkan Kode Kelas : ";
- std::cin >> temp;
- _kelas.setKode(temp);
- }
- else if (choice == 2)
- {
- std::cout << "Masukkan Mata Kuliah : ";
- std::getline(std::cin, stemp);
- _kelas.setMatKul(stemp);
- }
- else if (choice == 3)
- {
- std::cout << "Masukkan Nama Dosen : ";
- std::getline(std::cin, stemp);
- std::cout << "Masukkan NIP Dosen : ";
- std::getline(std::cin, stemp2);
- _kelas.setDosen(stemp, stemp2);
- }
- else if (choice == 4)
- {
- std::cout << "Masukkan Nama Mahasiswa : ";
- std::getline(std::cin, stemp);
- std::cout << "Masukkan NRP Mahasiswa : ";
- std::getline(std::cin, stemp2);
- _kelas.addMhs(stemp, stemp2);
- }
- else if (choice == 5)
- {
- std::cout << "Remove By :\n";
- std::cout << "1. Index\n";
- std::cout << "2. Nama\n";
- std::cout << "3. NRP\n";
- std::cout << "4. Back\n";
- std::cout << "Choice : ";
- std::cin >> temp;
- fflush(stdin);
- if (temp == 1)
- {
- std::cout << "Masukkan Index yang ingin dihapus : ";
- std::cin >> temp;
- _kelas.removeMhs(temp);
- }
- else if (temp == 2)
- {
- std::cout << "Masukkan Nama Mahasiswa yang ingin dihapus : ";
- std::getline(std::cin, stemp);
- _kelas.removeMhs(stemp, 0);
- }
- else if (temp == 3)
- {
- std::cout << "Masukkan NRP Mahasiswa yang ingin dihapus : ";
- std::getline(std::cin, stemp);
- _kelas.removeMhs(stemp, 1);
- }
- }
- else if (choice == 6)
- {
- std::cout << "Search By :\n";
- std::cout << "1. Nama\n";
- std::cout << "2. NRP\n";
- std::cout << "3. Back\n";
- std::cout << "Choice : ";
- std::cin >> temp;
- fflush(stdin);
- if (temp == 1)
- {
- std::cout << "Masukkan Nama dari Mahasiswa yang dicari : ";
- std::getline(std::cin, stemp);
- _kelas.findMhs(stemp, 0);
- }
- else if (temp == 2)
- {
- std::cout << "Masukkan NRP dari Mahasiswa yang dicari : ";
- std::getline(std::cin, stemp);
- _kelas.findMhs(stemp, 1);
- }
- }
- else if (choice == 7)
- {
- _kelas.viewAll();
- }
- if (choice != 8)
- {
- getch();
- }
- } while (choice != 8);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement