Advertisement
czlowiekzgon

Untitled

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