Advertisement
czlowiekzgon

Untitled

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