Advertisement
czlowiekzgon

Untitled

Oct 24th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.69 KB | None | 0 0
  1. // lab2_po.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.h>
  5.  
  6.  
  7.  
  8. using namespace std;
  9.  
  10. class Gang {
  11. private:
  12. char * name_gang;
  13. char * name_boss;
  14. int year;
  15. public:
  16. Gang();
  17. Gang(const char *name_ga, const char *name_bo, int yr);
  18. void init(const char *name_ga, const char *name_bo, int yr);
  19. void init();
  20. void show();
  21.  
  22.  
  23. };
  24.  
  25.  
  26. class Assassin {
  27. private:
  28. char * nickname;
  29. char * gun;
  30. public:
  31. Assassin();
  32. Assassin(const char * nick, const char * g);
  33. void init(const char * nick,const char * g);
  34. void init();
  35. void show();
  36.  
  37. };
  38.  
  39.  
  40.  
  41. Gang::Gang()
  42. {
  43. }
  44.  
  45. Gang::Gang(const char *name_ga, const char *name_bo, int yr)
  46. {
  47. name_gang = (char *)malloc(sizeof(char)*(strlen(name_ga) + 1));
  48. strcpy_s(name_gang, strlen(name_ga) + 1, name_ga);
  49.  
  50. name_boss = (char *)malloc(sizeof(char)*(strlen(name_bo) + 1));
  51. strcpy_s(name_boss, strlen(name_bo) + 1, name_bo);
  52.  
  53. year = yr;
  54. }
  55.  
  56.  
  57.  
  58. void Gang::init() {
  59. name_gang = (char *)malloc(sizeof(char)*50);
  60. name_boss = (char *)malloc(sizeof(char) * 50);
  61. cout<<"podaj nazwe grupy : ";
  62. cin.getline(name_gang, 50);
  63. cout << "podaj imie bossa : ";
  64. cin.getline(name_boss, 50);
  65.  
  66. cout<<"podaj date zalozenia organizacji : ";
  67. cin >> year;
  68. cin.get();
  69.  
  70. }
  71.  
  72.  
  73.  
  74. void Gang::init(const char *name_ga, const char * name_bo, int yr) {
  75.  
  76. name_gang = (char *)malloc(sizeof(char)*(strlen(name_ga) + 1));
  77. strcpy_s(name_gang, strlen(name_ga) + 1, name_ga);
  78.  
  79. name_boss = (char *)malloc(sizeof(char)*(strlen(name_bo) + 1));
  80. strcpy_s(name_boss, strlen(name_bo) + 1, name_bo);
  81.  
  82. year = yr;
  83.  
  84. }
  85.  
  86. void Gang::show() {
  87.  
  88. cout << "Nazwa organizacji : " << name_gang << endl;
  89. cout << "Rok zalozenia : " << year << endl;
  90. cout << "Boss : " << name_boss << endl;
  91. }
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98. Assassin::Assassin(){
  99.  
  100. }
  101.  
  102. Assassin::Assassin(const char * nick, const char * g) {
  103.  
  104. nickname = (char *)malloc(sizeof(char)*(strlen(nick) + 1));
  105. strcpy_s(nickname, strlen(nick) + 1, nick);
  106.  
  107. gun = (char *)malloc(sizeof(char)*(strlen(g) + 1));
  108. strcpy_s(gun, strlen(g) + 1, g);
  109.  
  110. }
  111.  
  112.  
  113. void Assassin::init(const char * nick, const char * g) {
  114.  
  115. nickname = (char *)malloc(sizeof(char)*(strlen(nick) + 1));
  116. strcpy_s(nickname, strlen(nick) + 1, nick);
  117.  
  118. gun = (char *)malloc(sizeof(char)*(strlen(g) + 1));
  119. strcpy_s(gun, strlen(g) + 1, g);
  120. }
  121.  
  122. void Assassin::init() {
  123. nickname = (char *)malloc(sizeof(char) * 50);
  124. gun = (char *)malloc(sizeof(char) * 50);
  125. cout << "Podaj pseudonim zabojcy : ";
  126. cin.getline(nickname, 50);
  127. cout << "Podaj nazwe broni jaka sie posluguje : ";
  128. cin.getline(gun, 50);
  129. }
  130.  
  131.  
  132.  
  133. void Assassin::show() {
  134. cout << "Pseudonim : " <<nickname<<endl;
  135. cout << "Bron : " << gun << endl;
  136. }
  137.  
  138.  
  139.  
  140.  
  141.  
  142. void create(Gang *&ptr) {
  143. ptr = (Gang*)malloc(sizeof(Gang) * 1);
  144. *ptr = Gang();
  145. }
  146. void create(Assassin *&ptr) {
  147. ptr = (Assassin*)malloc(sizeof(Assassin) * 1);
  148. *ptr = Assassin();
  149.  
  150. }
  151.  
  152. void create(Assassin **&ptr, int n) {
  153. ptr = (Assassin **)malloc(sizeof(Assassin *)*n);
  154. for (int i = 0; i < n; i++) {
  155. ptr[i] = (Assassin*)malloc(sizeof(Assassin));
  156. *ptr[i] = Assassin();
  157. }
  158.  
  159. }
  160.  
  161. void create(Gang **&ptr, int n) {
  162. ptr = (Gang **)malloc(sizeof(Gang *)*n);
  163. for (int i = 0; i < n; i++) {
  164. ptr[i] = (Gang*)malloc(sizeof(Gang));
  165. *ptr[i] = Gang();
  166. }
  167.  
  168. }
  169.  
  170.  
  171. void delete_memory(Gang *&ptr) {
  172. if (ptr == nullptr) {
  173. return;
  174. }
  175. else {
  176.  
  177. free(ptr);
  178. ptr = nullptr;
  179. }
  180. }
  181.  
  182. void delete_memory(Gang **&ptr, int n) {
  183. if (ptr == nullptr) {
  184. return;
  185. }
  186. else {
  187. for (int i = 0; i < n; i++) {
  188. free(ptr[i]);
  189. }
  190. free(ptr);
  191. ptr = nullptr;
  192. }
  193. }
  194.  
  195. void delete_memory(Assassin *&ptr) {
  196. if (ptr == nullptr) {
  197. return;
  198. }
  199. else {
  200.  
  201. free(ptr);
  202. ptr = nullptr;
  203. }
  204. }
  205.  
  206. void delete_memory(Assassin **&ptr, int n) {
  207. if (ptr == nullptr) {
  208. return;
  209. }
  210. else {
  211. for (int i = 0; i < n; i++) {
  212. free(ptr[i]);
  213. }
  214. free(ptr);
  215. ptr = nullptr;
  216. }
  217. }
  218.  
  219. void menu(Gang *&ptr_gang,Gang **&ptr_gangs,Assassin *&ptr_assassin,Assassin **&ptr_assassins) {
  220. int wybor = 0;
  221. int ile = 0;
  222. cout << "Wpisz : " << endl;
  223. cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
  224. cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
  225. cout<< "[3] aby wyswietlic stworzone obiekty" << endl;
  226. cout << "[0] aby zaknocznyc" << endl;
  227. cin >> wybor;
  228.  
  229. while (wybor != 0) {
  230. switch (wybor) {
  231.  
  232. case 1:
  233. cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
  234. cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
  235. cout << "[0] aby zaknocznyc" << endl;
  236. cin >> wybor;
  237. cin.get();
  238. while (wybor != 0){
  239. switch (wybor) {
  240. case 1:
  241. create(ptr_gang);
  242. ptr_gang->init();
  243. break;
  244. case 2:
  245. cout << "ile chcesz stworzyc obiktow ? ";
  246.  
  247. cin >> ile;
  248. cin.get();
  249. create(ptr_gangs, ile);
  250. for (int i = 0; i < ile; i++) {
  251. ptr_gangs[i]->init();
  252. }
  253. break;
  254.  
  255. case 0:
  256.  
  257. break;
  258.  
  259. default:
  260. cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
  261. cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
  262. cout << "[0] aby zaknocznyc" << endl;
  263. break;
  264. }
  265. cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
  266. cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
  267. cout << "[0] aby zaknocznyc" << endl;
  268. cin >> wybor;
  269. cin.get();
  270. }
  271. break;
  272. case 2:
  273. cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
  274. cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
  275. cin >> wybor;
  276. cin.get();
  277. while (wybor != 0) {
  278. switch (wybor) {
  279. case 1:
  280. create(ptr_assassin);
  281. ptr_assassin->init();
  282. break;
  283. case 2:
  284. cout << "ile chcesz stworzyc obiktow ? ";
  285.  
  286. cin >> ile;
  287. cin.get();
  288. create(ptr_assassins, ile);
  289. for (int i = 0; i < ile; i++) {
  290. ptr_assassins[i]->init();
  291. }
  292. break;
  293.  
  294. case 0:
  295.  
  296. break;
  297.  
  298. default:
  299. cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
  300. cout << "[2] aby dodac wiele obiektow klasy Zabojcow "<< endl;
  301. cout << "[0] aby zaknocznyc" << endl;
  302. break;
  303. }
  304. cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
  305. cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
  306. cout << "[0] aby zaknocznyc" << endl;
  307. cin >> wybor;
  308. cin.get();
  309. }
  310. break;
  311. case 3:
  312. if (ptr_gang != nullptr) {
  313. ptr_gang->show();
  314. cout << endl;
  315. }
  316. if (ptr_gangs != nullptr) {
  317. for (int i = 0; i < ile; i++) {
  318. ptr_gangs[i]->show();
  319. }
  320. cout << endl;
  321. }
  322. if (ptr_assassin != nullptr) {
  323. ptr_assassin->show();
  324. cout << endl;
  325. }
  326. if (ptr_assassins != nullptr) {
  327. for (int i = 0; i < ile; i++) {
  328. ptr_assassins[i]->show();
  329. }
  330. cout << endl;
  331. }
  332.  
  333.  
  334. break;
  335. case 0:
  336. break;
  337.  
  338. default:
  339. cout << "Wpisz : " << endl;
  340. cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
  341. cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
  342. cout << "[3] aby wyswietlic stworzone obiekty" << endl;
  343. cout << "[0] aby zaknocznyc" << endl;
  344. break;
  345. }
  346. cout << "Wpisz : " << endl;
  347. cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
  348. cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
  349. cout << "[3] aby wyswietlic stworzone obiekty" << endl;
  350. cout << "[0] aby zaknocznyc" << endl;
  351. cin >> wybor;
  352. }
  353.  
  354. }
  355.  
  356.  
  357. int main(int argc, char** argv)
  358. {
  359. Gang *ptr_gang = nullptr;
  360. Gang **ptr_gangs = nullptr;
  361. Assassin *ptr_assassin = nullptr;
  362. Assassin **ptr_assassins= nullptr;
  363.  
  364. menu(ptr_gang, ptr_gangs, ptr_assassin, ptr_assassins);
  365.  
  366.  
  367.  
  368. return 0;
  369. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement