czlowiekzgon

Untitled

Nov 8th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.43 KB | None | 0 0
  1. // programowanie_obiektowe.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
  2. #include "pch.h"
  3. #include <iostream>
  4. #include <string>
  5.  
  6.  
  7.  
  8. using namespace std;
  9.  
  10. class Gang {
  11. private:
  12. string name_gang;
  13. string name_boss;
  14. int year;
  15. public:
  16. Gang();
  17. Gang(string name_ga, string name_bo, int yr);
  18. void init(string name_ga, string name_bo, int yr);
  19. void init();
  20. void show();
  21.  
  22.  
  23. };
  24.  
  25.  
  26. class Assassin {
  27. private:
  28. string nickname;
  29. string gun;
  30. public:
  31. Assassin();
  32. Assassin(string nick, string g);
  33. void init(string nick, string g);
  34. void init();
  35. void show();
  36.  
  37. };
  38.  
  39.  
  40.  
  41. Gang::Gang()
  42. {
  43. }
  44.  
  45. Gang::Gang(string name_ga, string name_bo, int yr)
  46. {
  47. name_gang = name_ga;
  48.  
  49. name_boss = name_bo;
  50.  
  51. year = yr;
  52. }
  53.  
  54.  
  55.  
  56. void Gang::init() {
  57.  
  58. cout << "podaj nazwe grupy : ";
  59. cin >> name_gang;
  60. cout << "podaj imie bossa : ";
  61. cin >> name_boss;
  62.  
  63. cout << "podaj date zalozenia organizacji : ";
  64. cin >> year;
  65. //cin.get();
  66.  
  67. }
  68.  
  69.  
  70.  
  71. void Gang::init(string name_ga, string name_bo, int yr) {
  72.  
  73. name_gang = name_ga;
  74.  
  75. name_boss = name_bo;
  76.  
  77. year = yr;
  78.  
  79. year = yr;
  80.  
  81. }
  82.  
  83. void Gang::show() {
  84.  
  85. cout << "Nazwa organizacji : " << name_gang << endl;
  86. cout << "Boss : " << name_boss << endl;
  87. cout << "Rok zalozenia : " << year << endl;
  88.  
  89. }
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96. Assassin::Assassin() {
  97.  
  98. }
  99.  
  100. Assassin::Assassin(string nick, string g) {
  101.  
  102. nickname = nick;
  103. gun = g;
  104.  
  105. }
  106.  
  107.  
  108. void Assassin::init(string nick, string g) {
  109.  
  110. nickname = nick;
  111. gun = g;
  112. }
  113.  
  114. void Assassin::init() {
  115.  
  116. cout << "Podaj pseudonim zabojcy : ";
  117. cin >> nickname;
  118. cout << "Podaj nazwe broni jaka sie posluguje : ";
  119. cin >> gun;
  120. }
  121.  
  122.  
  123.  
  124. void Assassin::show() {
  125. cout << "Pseudonim : " << nickname << endl;
  126. cout << "Bron : " << gun << endl;
  127. }
  128.  
  129.  
  130.  
  131.  
  132.  
  133. void create(Gang *&ptr) {
  134. ptr = new Gang;
  135. }
  136.  
  137. void create(Assassin *&ptr) {
  138. ptr = new Assassin;
  139. }
  140.  
  141. void create(Gang **&ptr, int n) {
  142. ptr = new Gang *[n];
  143. for (int i = 0; i < n; i++) {
  144. ptr[i] = new Gang;
  145.  
  146. }
  147. }
  148.  
  149. void create(Assassin **&ptr, int n) {
  150. ptr = new Assassin *[n];
  151. for (int i = 0; i < n; i++) {
  152. ptr[i] = new Assassin;
  153.  
  154. }
  155. }
  156.  
  157.  
  158.  
  159.  
  160. void delete_memory(Gang *&ptr) {
  161. if (ptr == nullptr) {
  162. return;
  163. }
  164. else {
  165.  
  166. delete ptr;
  167. ptr = nullptr;
  168. }
  169. }
  170.  
  171. void delete_memory(Gang **&ptr, int n) {
  172. if (ptr == nullptr) {
  173. return;
  174. }
  175. else {
  176. for (int i = 0; i < n; i++) {
  177. delete[] ptr[n];
  178. }
  179. delete[] ptr;
  180. ptr = nullptr;
  181. }
  182. }
  183.  
  184. void delete_memory(Assassin *&ptr) {
  185. if (ptr == nullptr) {
  186. return;
  187. }
  188. else {
  189.  
  190. delete ptr;
  191. ptr = nullptr;
  192. }
  193. }
  194.  
  195. void delete_memory(Assassin **&ptr, int n) {
  196. if (ptr == nullptr) {
  197. return;
  198. }
  199. else {
  200. for (int i = 0; i < n; i++) {
  201. delete[] ptr[n];
  202. }
  203. delete[] ptr;
  204. ptr = nullptr;
  205. }
  206. }
  207.  
  208.  
  209.  
  210. void add(Assassin **&ptr, int &size, int where = -1) {
  211.  
  212.  
  213. Assassin **sup_ptr = new Assassin *[size + 1];
  214.  
  215. for (int i = 0; i < size + 1; i++) {
  216. sup_ptr[i] = new Assassin;
  217. if (i == where) {
  218. sup_ptr[i]->init();
  219. }
  220. else if (i > where && where >= 0) {
  221. sup_ptr[i] = ptr[i - 1];
  222. }
  223. else if (i == size && where < 0) {
  224. sup_ptr[i]->init();
  225. }
  226. else {
  227. sup_ptr[i] = ptr[i];
  228. }
  229.  
  230. }
  231.  
  232.  
  233. delete[] ptr;
  234. ptr = sup_ptr;
  235. ++size;
  236.  
  237. }
  238.  
  239. void add(Gang **&ptr, int &size, int where = -1) {
  240.  
  241.  
  242. Gang **sup_ptr = new Gang *[size + 1];
  243.  
  244. for (int i = 0; i < size + 1; i++) {
  245. sup_ptr[i] = new Gang;
  246. if (i == where) {
  247. sup_ptr[i]->init();
  248. }
  249. else if (i > where && where >= 0) {
  250. sup_ptr[i] = ptr[i - 1];
  251. }
  252. else if (i == size && where < 0) {
  253. sup_ptr[i]->init();
  254. }
  255. else {
  256. sup_ptr[i] = ptr[i];
  257. }
  258.  
  259. }
  260.  
  261.  
  262. delete[] ptr;
  263. ptr = sup_ptr;
  264. ++size;
  265.  
  266. }
  267.  
  268.  
  269. void remove(Assassin **&ptr, int &size, int where) {
  270. Assassin **sup_ptr = new Assassin *[size - 1];
  271.  
  272. for (int i = 0; i < size; i++) {
  273. if (i == where) {
  274. delete ptr[i];
  275. }
  276. else if (i < where) {
  277. sup_ptr[i] = new Assassin;
  278. sup_ptr[i] = ptr[i];
  279.  
  280. }
  281. else {
  282. sup_ptr[i - 1] = new Assassin;
  283. sup_ptr[i - 1] = ptr[i];
  284.  
  285. }
  286. }
  287.  
  288.  
  289. delete[] ptr;
  290. ptr = sup_ptr;
  291. --size;
  292. }
  293.  
  294. void remove(Gang **&ptr, int &size, int where) {
  295. Gang **sup_ptr = new Gang *[size - 1];
  296.  
  297. for (int i = 0; i < size; i++) {
  298. if (i == where) {
  299. delete ptr[i];
  300. }
  301. else if (i < where) {
  302. sup_ptr[i] = new Gang;
  303. sup_ptr[i] = ptr[i];
  304.  
  305. }
  306. else {
  307. sup_ptr[i - 1] = new Gang;
  308. sup_ptr[i - 1] = ptr[i];
  309.  
  310. }
  311. }
  312. delete[] ptr;
  313. ptr = nullptr;
  314. ptr = sup_ptr;
  315. --size;
  316. }
  317.  
  318. void menu(Gang *&ptr_gang, Gang **&ptr_gangs, Assassin *&ptr_assassin, Assassin **&ptr_assassins) {
  319. int wybor = 0;
  320. int ile = 0;
  321. cout << "Wpisz : " << endl;
  322. cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
  323. cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
  324. cout << "[3] aby wyswietlic stworzone obiekty" << endl;
  325. cout << "[0] aby zaknocznyc" << endl;
  326. cin >> wybor;
  327.  
  328. while (wybor != 0) {
  329. switch (wybor) {
  330.  
  331. case 1:
  332. cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
  333. cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
  334. cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy gang" << endl;
  335. cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy gang" << endl;
  336. cout << "[0] aby zaknocznyc" << endl;
  337. cin >> wybor;
  338. cin.get();
  339. while (wybor != 0) {
  340. switch (wybor) {
  341. case 1:
  342. create(ptr_gang);
  343. ptr_gang->init();
  344. break;
  345. case 2:
  346. cout << "ile chcesz stworzyc obiektow ? ";
  347.  
  348. cin >> ile;
  349. cin.get();
  350. create(ptr_gangs, ile);
  351. for (int i = 0; i < ile; i++) {
  352. ptr_gangs[i]->init();
  353. }
  354. break;
  355. case 3:
  356. cout << "w ktorym miejscu chcesz dodac obkiet : ";
  357. cin >> wybor;
  358. add(ptr_gangs, ile, wybor);
  359. break;
  360. case 4:
  361. cout << "w ktorym miejscu chcesz usunac obiekt : ";
  362. cin >> wybor;
  363. remove(ptr_gangs, ile, wybor);
  364. break;
  365. case 0:
  366.  
  367. break;
  368.  
  369. default:
  370. cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
  371. cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
  372. cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy gang" << endl;
  373. cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy gang" << endl;
  374. cout << "[0] aby zaknocznyc" << endl;
  375. break;
  376. }
  377. cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
  378. cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
  379. cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy Gang" << endl;
  380. cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy gang" << endl;
  381. cout << "[0] aby zaknocznyc" << endl;
  382. cin >> wybor;
  383. cin.get();
  384. }
  385. break;
  386. case 2:
  387. cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
  388. cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
  389. cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy Zabojca" << endl;
  390. cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy Zabojca" << endl;
  391. cout << "[0] aby zaknocznyc" << endl;
  392. cin >> wybor;
  393. cin.get();
  394. while (wybor != 0) {
  395. switch (wybor) {
  396. case 1:
  397. create(ptr_assassin);
  398. ptr_assassin->init();
  399. break;
  400. case 2:
  401. cout << "ile chcesz stworzyc obiktow ? ";
  402.  
  403. cin >> ile;
  404. cin.get();
  405. create(ptr_assassins, ile);
  406. for (int i = 0; i < ile; i++) {
  407. ptr_assassins[i]->init();
  408. }
  409. break;
  410. case 3:
  411. cout << "w ktorym miejscu chcesz dodac obkiet : ";
  412. cin >> wybor;
  413. add(ptr_assassins, ile, wybor);
  414. break;
  415. case 4:
  416. cout << "w ktorym miejscu chcesz usunac obiekt : ";
  417. cin >> wybor;
  418. remove(ptr_assassins, ile, wybor);
  419. break;
  420. case 0:
  421.  
  422. break;
  423.  
  424. default:
  425. cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
  426. cout << "[2] aby dodac wiele obiektow klasy Zabojcow " << endl;
  427. cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy Zabojca" << endl;
  428. cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy Zabojca" << endl;
  429. cout << "[0] aby zaknocznyc" << endl;
  430. break;
  431. }
  432. cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
  433. cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
  434. cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy Zabojca" << endl;
  435. cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy Zabojca" << endl;
  436. cout << "[0] aby zaknocznyc" << endl;
  437. cin >> wybor;
  438. cin.get();
  439. }
  440. break;
  441. case 3:
  442. if (ptr_gang != nullptr) {
  443. ptr_gang->show();
  444. cout << endl;
  445. }
  446. if (ptr_gangs != nullptr) {
  447. for (int i = 0; i < ile; i++) {
  448. ptr_gangs[i]->show();
  449. }
  450. cout << endl;
  451. }
  452. if (ptr_assassin != nullptr) {
  453. ptr_assassin->show();
  454. cout << endl;
  455. }
  456. if (ptr_assassins != nullptr) {
  457. for (int i = 0; i < ile; i++) {
  458. ptr_assassins[i]->show();
  459. }
  460. cout << endl;
  461. }
  462.  
  463.  
  464. break;
  465. case 0:
  466. break;
  467.  
  468. default:
  469. cout << "Wpisz : " << endl;
  470. cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
  471. cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
  472. cout << "[3] aby wyswietlic stworzone obiekty" << endl;
  473. cout << "[0] aby zaknocznyc" << endl;
  474. break;
  475. }
  476. cout << "Wpisz : " << endl;
  477. cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
  478. cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
  479. cout << "[3] aby wyswietlic stworzone obiekty" << endl;
  480. cout << "[0] aby zaknocznyc" << endl;
  481. cin >> wybor;
  482. }
  483.  
  484. }
  485.  
  486.  
  487. int main(int argc, char** argv)
  488. {
  489. Gang *ptr_gang = nullptr;
  490. Gang **ptr_gangs = nullptr;
  491. Assassin *ptr_assassin = nullptr;
  492. Assassin **ptr_assassins = nullptr;
  493.  
  494. menu(ptr_gang, ptr_gangs, ptr_assassin, ptr_assassins);
  495. //int size = 2;
  496. //create(ptr_assassins, size);
  497. //ptr_assassins[0]->init();
  498. //ptr_assassins[1]->init();
  499.  
  500. //add(ptr_assassins, size);
  501.  
  502. //ptr_assassins[0]->show();
  503. //ptr_assassins[1]->show();
  504. //ptr_assassins[2]->show();
  505.  
  506.  
  507. //remove(ptr_assassins, size, 0);
  508.  
  509. //ptr_assassins[0]->show();
  510. //ptr_assassins[1]->show();
  511.  
  512.  
  513.  
  514. /*create(ptr_gangs, size);
  515. ptr_gangs[0]->init();
  516. ptr_gangs[1]->init();
  517.  
  518. add(ptr_gangs, size,0);
  519.  
  520. ptr_gangs[0]->show();
  521. ptr_gangs[1]->show();
  522. ptr_gangs[2]->show();
  523.  
  524. remove(ptr_gangs, size, 0);
  525. ptr_gangs[0]->show();
  526. ptr_gangs[1]->show();*/
  527.  
  528. return 0;
  529. }
Add Comment
Please, Sign In to add comment