Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <Windows.h>
  5. #include <conio.h>
  6. #include <string.h>
  7.  
  8. class uniBody
  9. {
  10. protected:
  11. std::string nama;
  12.  
  13. public:
  14. uniBody()
  15. {
  16. nama = "Nico";
  17. }
  18.  
  19. void setNama(std::string _nama)
  20. {
  21. nama = _nama;
  22. }
  23.  
  24. std::string getNama()
  25. {
  26. return nama;
  27. }
  28. };
  29.  
  30. class Mahasiswa : public uniBody
  31. {
  32. std::string nrp;
  33.  
  34. public:
  35. Mahasiswa(std::string _nama = "Marcellino", std::string _nrp = "0")
  36. {
  37. nama = _nama;
  38. nrp = _nrp;
  39. }
  40.  
  41. void setNRP(std::string _nrp)
  42. {
  43. nrp = _nrp;
  44. }
  45.  
  46. std::string getNRP()
  47. {
  48. return nrp;
  49. }
  50. };
  51.  
  52. class Dosen : public uniBody
  53. {
  54. std::string nip;
  55.  
  56. public:
  57. Dosen(std::string _nama = "Andreas", std::string _nip = "0")
  58. {
  59. nama = _nama;
  60. nip = _nip;
  61. }
  62.  
  63. void setNIP(std::string _nip)
  64. {
  65. nip = _nip;
  66. }
  67.  
  68. std::string getNIP()
  69. {
  70. return nip;
  71. }
  72. };
  73.  
  74. class Kelas
  75. {
  76. Dosen _dosen;
  77. std::vector<Mahasiswa> _mhs;
  78. int kode;
  79. std::string matKul;
  80.  
  81. public:
  82. Kelas()
  83. {
  84. kode = 0;
  85. matKul = "PBO";
  86. }
  87.  
  88. void setKode(int _kode)
  89. {
  90. kode = _kode;
  91. }
  92.  
  93. int getKode()
  94. {
  95. return kode;
  96. }
  97.  
  98. void setMatKul(std::string _matKul)
  99. {
  100. matKul = _matKul;
  101. }
  102.  
  103. std::string getMatKul()
  104. {
  105. return matKul;
  106. }
  107.  
  108. void setDosen(std::string _nama, std::string _nip)
  109. {
  110. _dosen.setNama(_nama);
  111. _dosen.setNIP(_nip);
  112. }
  113.  
  114. void addMhs(std::string _nama, std::string _nrp)
  115. {
  116. _mhs.push_back(Mahasiswa(_nama, _nrp));
  117. }
  118.  
  119. void removeMhs(int index)
  120. {
  121. if (_mhs.size() == 0)
  122. {
  123. std::cout << "Data masih kosong\n";
  124. return;
  125. }
  126.  
  127. if (index >= _mhs.size() || index < 0)
  128. {
  129. std::cout << "Invalid Index\n";
  130. return;
  131. }
  132.  
  133. for (int i = index; i < _mhs.size() - 1; i++)
  134. {
  135. _mhs[i] = _mhs[i + 1];
  136. }
  137. _mhs.pop_back();
  138. std::cout << "Data di index " << index << " berhasil dihapus\n";
  139. }
  140.  
  141. void removeMhs(std::string _value, int _mode)
  142. {
  143. bool remove = false;
  144. if (_mhs.size() == 0)
  145. {
  146. std::cout << "Data masih kosong\n";
  147. return;
  148. }
  149.  
  150. for (int i = 0; i < _mhs.size(); i++)
  151. {
  152. if (_mode == 0)
  153. {
  154. if (_mhs[i].getNama() == _value)
  155. {
  156. for (int j = i; j < _mhs.size() - 1; j++)
  157. {
  158. _mhs[i] = _mhs[i + 1];
  159. }
  160. _mhs.pop_back();
  161. remove = true;
  162. }
  163. }
  164. else if (_mode == 1)
  165. {
  166. if (_mhs[i].getNRP() == _value)
  167. {
  168. for (int j = i; j < _mhs.size() - 1; j++)
  169. {
  170. _mhs[i] = _mhs[i + 1];
  171. }
  172. _mhs.pop_back();
  173. remove = true;
  174. }
  175. }
  176. }
  177.  
  178. if (!remove)
  179. {
  180. std::cout << "Mahasiswa dengan data tersebut tidak dapat ditemukan\n";
  181. }
  182. else
  183. {
  184. std::cout << "Berhasil menghapus mahasiswa dengan ";
  185. if (_mode == 0)
  186. {
  187. std::cout << "nama " << _value << "\n";
  188. }
  189. else if (_mode == 1)
  190. {
  191. std::cout << "NRP " << _value << "\n";
  192. }
  193. }
  194. }
  195.  
  196. void findMhs(std::string _value, int _mode)
  197. {
  198. bool find = false;
  199. std::string lowered, loweredVal;
  200.  
  201. char temp[512], get[512];
  202.  
  203. strcpy(temp, _value.c_str());
  204. loweredVal = strlwr(temp);
  205.  
  206. for (int i = 0; i < _mhs.size(); i++)
  207. {
  208. if (_mode == 0)
  209. {
  210. strcpy(get, _mhs[i].getNama().c_str());
  211. lowered = strlwr(get);
  212. if (lowered.find(loweredVal) != std::string::npos)
  213. {
  214. std::cout << _mhs[i].getNama() << " / " << _mhs[i].getNRP() << "\n";
  215. find = true;
  216. }
  217. }
  218. else if (_mode == 1)
  219. {
  220. if (_mhs[i].getNRP().find(_value) != std::string::npos)
  221. {
  222. std::cout << _mhs[i].getNama() << " / " << _mhs[i].getNRP() << "\n";
  223. find = true;
  224. }
  225. }
  226. }
  227. if (!find)
  228. {
  229. std::cout << "Mahasiswa dengan data tersebut tidak dapat ditemukan\n";
  230. }
  231. }
  232.  
  233. void viewAll()
  234. {
  235. std::cout << "Kode Kelas : " << kode << "\n";
  236. std::cout << "Mata Kuliah : " << matKul << "\n";
  237. std::cout << "Dosen : " << _dosen.getNama() << " / " << _dosen.getNIP() << "\n";
  238. std::cout << "Mahasiswa : " << "\n";
  239.  
  240. for (int i = 0; i < _mhs.size(); i++)
  241. {
  242. std::cout << (i + 1) << ". " << _mhs[i].getNama() << " / " << _mhs[i].getNRP() << "\n";
  243. }
  244. }
  245. };
  246.  
  247. void main()
  248. {
  249. Kelas _kelas;
  250. int choice;
  251. int temp;
  252. std::string stemp, stemp2;
  253. do
  254. {
  255. system("CLS");
  256. std::cout << "Menu :\n";
  257. std::cout << "1. Set Kode Kelas\n";
  258. std::cout << "2. Set Mata Kuliah\n";
  259. std::cout << "3. Set Dosen\n";
  260. std::cout << "4. Add Mahasiswa\n";
  261. std::cout << "5. Remove Mahasiswa\n";
  262. std::cout << "6. Find Mahasiswa\n";
  263. std::cout << "7. View Data\n";
  264. std::cout << "8. Exit\n";
  265. std::cout << "Choice : ";
  266. std::cin >> choice;
  267. fflush(stdin);
  268.  
  269. if (choice == 1)
  270. {
  271. std::cout << "Masukkan Kode Kelas : ";
  272. std::cin >> temp;
  273. _kelas.setKode(temp);
  274. }
  275. else if (choice == 2)
  276. {
  277. std::cout << "Masukkan Mata Kuliah : ";
  278. std::getline(std::cin, stemp);
  279. _kelas.setMatKul(stemp);
  280. }
  281. else if (choice == 3)
  282. {
  283. std::cout << "Masukkan Nama Dosen : ";
  284. std::getline(std::cin, stemp);
  285. std::cout << "Masukkan NIP Dosen : ";
  286. std::getline(std::cin, stemp2);
  287. _kelas.setDosen(stemp, stemp2);
  288. }
  289. else if (choice == 4)
  290. {
  291. std::cout << "Masukkan Nama Mahasiswa : ";
  292. std::getline(std::cin, stemp);
  293. std::cout << "Masukkan NRP Mahasiswa : ";
  294. std::getline(std::cin, stemp2);
  295. _kelas.addMhs(stemp, stemp2);
  296. }
  297. else if (choice == 5)
  298. {
  299. std::cout << "Remove By :\n";
  300. std::cout << "1. Index\n";
  301. std::cout << "2. Nama\n";
  302. std::cout << "3. NRP\n";
  303. std::cout << "4. Back\n";
  304. std::cout << "Choice : ";
  305. std::cin >> temp;
  306. fflush(stdin);
  307.  
  308. if (temp == 1)
  309. {
  310. std::cout << "Masukkan Index yang ingin dihapus : ";
  311. std::cin >> temp;
  312. _kelas.removeMhs(temp);
  313. }
  314. else if (temp == 2)
  315. {
  316. std::cout << "Masukkan Nama Mahasiswa yang ingin dihapus : ";
  317. std::getline(std::cin, stemp);
  318. _kelas.removeMhs(stemp, 0);
  319. }
  320. else if (temp == 3)
  321. {
  322. std::cout << "Masukkan NRP Mahasiswa yang ingin dihapus : ";
  323. std::getline(std::cin, stemp);
  324. _kelas.removeMhs(stemp, 1);
  325. }
  326. }
  327. else if (choice == 6)
  328. {
  329. std::cout << "Search By :\n";
  330. std::cout << "1. Nama\n";
  331. std::cout << "2. NRP\n";
  332. std::cout << "3. Back\n";
  333. std::cout << "Choice : ";
  334. std::cin >> temp;
  335. fflush(stdin);
  336.  
  337. if (temp == 1)
  338. {
  339. std::cout << "Masukkan Nama dari Mahasiswa yang dicari : ";
  340. std::getline(std::cin, stemp);
  341. _kelas.findMhs(stemp, 0);
  342. }
  343. else if (temp == 2)
  344. {
  345. std::cout << "Masukkan NRP dari Mahasiswa yang dicari : ";
  346. std::getline(std::cin, stemp);
  347. _kelas.findMhs(stemp, 1);
  348. }
  349. }
  350. else if (choice == 7)
  351. {
  352. _kelas.viewAll();
  353. }
  354.  
  355. if (choice != 8)
  356. {
  357. getch();
  358. }
  359.  
  360. } while (choice != 8);
  361. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement