Advertisement
czlowiekzgon

Untitled

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