Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // programowanie_obiektowe.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
- #include "pch.h"
- #include <iostream>
- #include <string>
- #include "Assassin.h"
- #include "Gang.h"
- using namespace std;
- void create(Gang *&ptr, int size = 1) {
- ptr = new Gang[size];
- for (int i = 0; i < size; i++) {
- ptr[i].init();
- }
- }
- void create(Assassin *&ptr, int size = 1) {
- ptr = new Assassin[size];
- for (int i = 0; i < size; i++) {
- ptr[i].init();
- }
- }
- void create(Gang **&ptr, int size) {
- ptr = new Gang *[size];
- for (int i = 0; i < size; i++) {
- ptr[i] = new Gang;
- ptr[i]->init();
- }
- }
- void create(Assassin **&ptr, int size) {
- ptr = new Assassin *[size];
- for (int i = 0; i < size; i++) {
- ptr[i] = new Assassin;
- ptr[i]->init();
- }
- }
- void delete_memory(Gang *&ptr) {
- if (ptr == nullptr) {
- return;
- }
- else {
- delete ptr;
- ptr = nullptr;
- }
- }
- void delete_memory(Gang **&ptr, int n) {
- if (ptr == nullptr) {
- return;
- }
- else {
- for (int i = 0; i < n; i++) {
- delete[] ptr[n];
- }
- delete[] ptr;
- ptr = nullptr;
- }
- }
- void delete_memory(Assassin *&ptr) {
- if (ptr == nullptr) {
- return;
- }
- else {
- delete ptr;
- ptr = nullptr;
- }
- }
- void delete_memory(Assassin **&ptr, int n) {
- if (ptr == nullptr) {
- return;
- }
- else {
- for (int i = 0; i < n; i++) {
- delete[] ptr[n];
- }
- delete[] ptr;
- ptr = nullptr;
- }
- }
- void add(Assassin *&ptr, int &size, int where = -1) {
- Assassin *sup_ptr = new Assassin[size + 1];
- for (int i = 0; i < size + 1; i++) {
- if (i == where) {
- sup_ptr[i].init();
- }
- else if (i > where && where >= 0) {
- sup_ptr[i] = ptr[i - 1];
- }
- else if (i == size && where < 0) {
- sup_ptr[i].init();
- }
- else {
- sup_ptr[i] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- ++size;
- }
- void add(Assassin **&ptr, int &size, int where = -1) {
- Assassin **sup_ptr = new Assassin *[size + 1];
- for (int i = 0; i < size + 1; i++) {
- if (i == where) {
- sup_ptr[i] = new Assassin;
- sup_ptr[i]->init();
- }
- else if (i > where && where >= 0) {
- sup_ptr[i] = ptr[i - 1];
- }
- else if (i == size && where < 0) {
- sup_ptr[i]->init();
- }
- else {
- sup_ptr[i] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- ++size;
- }
- void add(Gang *&ptr, int &size, int where = -1) {
- Gang *sup_ptr = new Gang[size + 1];
- for (int i = 0; i < size + 1; i++) {
- if (i == where) {
- sup_ptr[i].init();
- }
- else if (i > where && where >= 0) {
- sup_ptr[i] = ptr[i - 1];
- }
- else if (i == size && where < 0) {
- sup_ptr[i].init();
- }
- else {
- sup_ptr[i] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- ++size;
- }
- void add(Gang **&ptr, int &size, int where = -1) {
- Gang **sup_ptr = new Gang *[size + 1];
- for (int i = 0; i < size + 1; i++) {
- if (i == where) {
- sup_ptr[i] = new Gang;
- sup_ptr[i]->init();
- }
- else if (i > where && where >= 0) {
- sup_ptr[i] = ptr[i - 1];
- }
- else if (i == size && where < 0) {
- sup_ptr[i]->init();
- }
- else {
- sup_ptr[i] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- ++size;
- }
- void remove(Assassin **&ptr, int &size, int where) {
- Assassin **sup_ptr = new Assassin *[size - 1];
- for (int i = 0; i < size; i++) {
- if (i == where) {
- delete ptr[i];
- }
- else if (i < where) {
- sup_ptr[i] = ptr[i];
- }
- else {
- sup_ptr[i - 1] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- --size;
- }
- void remove(Gang **&ptr, int &size, int where) {
- Gang **sup_ptr = new Gang *[size - 1];
- for (int i = 0; i < size; i++) {
- if (i == where) {
- delete ptr[i];
- }
- else if (i < where) {
- sup_ptr[i] = ptr[i];
- }
- else {
- sup_ptr[i - 1] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = nullptr;
- ptr = sup_ptr;
- --size;
- }
- void remove(Assassin *&ptr, int &size, int where) {
- Assassin *sup_ptr = new Assassin[size - 1];
- for (int i = 0; i < size; i++) {
- if (i < where) {
- sup_ptr[i] = ptr[i];
- }else if(i == where) {
- }
- else {
- sup_ptr[i - 1] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- --size;
- }
- void remove(Gang *&ptr, int &size, int where) {
- Gang *sup_ptr = new Gang[size - 1];
- for (int i = 0; i < size; i++) {
- if (i < where) {
- sup_ptr[i] = ptr[i];
- }else if(i == where) {
- }
- else {
- sup_ptr[i - 1] = ptr[i];
- }
- }
- delete[] ptr;
- ptr = sup_ptr;
- --size;
- }
- void showMenu() {
- cout << "Wpisz : " << endl;
- cout << "[1] aby stworzyc obiket/obiekty klasy Gang" << endl;
- cout << "[2] aby stworzyc obiekt/obikety klasy Zabojca" << endl;
- cout << "[3] aby wyswietlic stworzone obiekty" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- }
- void showGangMenu() {
- cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
- cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy gang" << endl;
- cout << "[4] aby dodac obiekt do istniejacej tablicy wskaznikow klasy gang" << endl;
- cout << "[5] aby usunac obiekt z istniejacej tablicy obiektow klasy gang" << endl;
- cout << "[6] aby usunac obiekt z istniejacej tablicy wskaznikow klasy gang" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- }
- void showAssassinMenu() {
- cout << "[1] aby dodac wiele obiektow na pojedynczy wskaznik klasy Zabojca" << endl;
- cout << "[2] aby dodac wiele obiektow na podwojny wskaznik klasy Zabojca" << endl;
- cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy Zabojca" << endl;
- cout << "[4] aby dodac obiekt do istniejacej tablicy wskaznikow klasy Zabojca" << endl;
- cout << "[5] aby usunac obiekt z istniejacej tablicy wskaznikow klasy Zabojca" << endl;
- cout << "[6] aby usunac obiekt z istniejacej tablicy obiektow klasy Zabojca" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- }
- void gangMenu(Gang *&ptr_gang,Gang **&ptr_gangs,int &sizeArrayGang,int &sizeArrayGangs) {
- int gangChoice = 0;
- int where = 0;
- do {
- showGangMenu();
- cin >> gangChoice;
- switch (gangChoice)
- {
- case 1:
- cout << "ile chcesz stworzyc obiektow" << endl;
- cin >> sizeArrayGang;
- create(ptr_gang, sizeArrayGang);
- break;
- case 2:
- cout << "ile chcesz stworzyc obiektow" << endl;
- cin >> sizeArrayGangs;
- create(ptr_gangs, sizeArrayGangs);
- break;
- case 3:
- cout << "w ktorym miejscu chcesz dodac element " << endl;
- cin >> where;
- add(ptr_gang, sizeArrayGang, where);
- break;
- case 4:
- cout << "w ktorym miejscu chcesz dodac element " << endl;
- cin >> where;
- add(ptr_gangs, sizeArrayGangs, where);
- break;
- case 5:
- cout << "w ktorym miejscu chcesz usunac element " << endl;
- cin >> where;
- remove(ptr_gang, sizeArrayGang, where);
- break;
- case 6:
- cout << "w ktorym miejscu chcesz usunac element " << endl;
- cin >> where;
- remove(ptr_gangs, sizeArrayGangs, where);
- break;
- case 0:
- break;
- default:
- cout << "Nie ma takiej opcji" << endl;
- break;
- }
- } while (gangChoice != 0);
- }
- void assassinMenu(Assassin *&ptr_assassin,Assassin **&ptr_assassins,int &sizeArrayAssassin,int &sizeArrayAssassins) {
- int assassinChoice = 0;
- int where = 0;
- do {
- showAssassinMenu();
- cin >> assassinChoice;
- switch (assassinChoice)
- {
- case 1:
- cout << "ile chcesz stworzyc obiektow" << endl;
- cin >> sizeArrayAssassin;
- create(ptr_assassin, sizeArrayAssassin);
- break;
- case 2:
- cout << "ile chcesz stworzyc obiektow" << endl;
- cin >> sizeArrayAssassins;
- create(ptr_assassins, sizeArrayAssassins);
- break;
- case 3:
- cout << "w ktorym miejscu chcesz dodac element " << endl;
- cin >> where;
- add(ptr_assassin, sizeArrayAssassin, where);
- break;
- case 4:
- cout << "w ktorym miejscu chcesz dodac element " << endl;
- cin >> where;
- add(ptr_assassins, sizeArrayAssassins, where);
- break;
- case 5:
- cout << "w ktorym miejscu chcesz usunac element " << endl;
- cin >> where;
- remove(ptr_assassin, sizeArrayAssassin, where);
- break;
- case 6:
- cout << "w ktorym miejscu chcesz usunac element " << endl;
- cin >> where;
- remove(ptr_assassins, sizeArrayAssassins, where);
- break;
- case 0:
- break;
- default:
- cout << "Nie ma takiej opcji" << endl;
- break;
- }
- } while (assassinChoice != 0);
- }
- void showGangArray(Gang *&ptr_gang, int sizeArrayGang) {
- if (ptr_gang != nullptr && sizeArrayGang != 0) {
- for (int i = 0; i < sizeArrayGang; i++) {
- ptr_gang[i].show();
- }
- }
- else cout << "nie zalokowano pamieci dla tablic obiektow Gang" << endl;
- cout << endl;
- }
- void showGangsArray(Gang **&ptr_gangs,int sizeArrayGangs) {
- if (ptr_gangs != nullptr && sizeArrayGangs != 0) {
- for (int i = 0; i < sizeArrayGangs; i++) {
- ptr_gangs[i]->show();
- }
- }
- else cout << "nie zalokowano pamieci dla tablic wskaznikow obiektu Gang" << endl;
- cout << endl;
- }
- void showAssassinArray(Assassin *&ptr_assassin,int sizeArrayAssassin) {
- if (ptr_assassin != nullptr && sizeArrayAssassin != 0) {
- for (int i = 0; i < sizeArrayAssassin; i++) {
- ptr_assassin[i].show();
- }
- }
- else cout << "nie zalokowano pamieci dla tablic obiektow Assassin" << endl;
- cout << endl;
- }
- void showAssassinsArray(Assassin **&ptr_assassins,int sizeArrayAssassins) {
- if (ptr_assassins != nullptr && sizeArrayAssassins != 0) {
- for (int i = 0; i < sizeArrayAssassins; i++) {
- ptr_assassins[i]->show();
- }
- }
- else cout << "nie zalokowano pamieci dla tablic wskaznikow obiektu Assassin" << endl;
- cout << endl;
- }
- void mainMenu(Gang *&ptr_gang, Gang **&ptr_gangs, Assassin *&ptr_assassin, Assassin **&ptr_assassins) {
- int choiceMenu = 0;
- int sizeArrayGang = 0;
- int sizeArrayGangs = 0;
- int sizeArrayAssassin = 0;
- int sizeArrayAssassins = 0;
- do {
- showMenu();
- cin >> choiceMenu;
- switch (choiceMenu)
- {
- case 1:
- gangMenu(ptr_gang, ptr_gangs,sizeArrayGang,sizeArrayGangs);
- break;
- case 2:
- assassinMenu(ptr_assassin, ptr_assassins,sizeArrayAssassin,sizeArrayAssassins);
- break;
- case 3:
- showGangArray(ptr_gang, sizeArrayGang);
- showGangsArray(ptr_gangs, sizeArrayGangs);
- showAssassinArray(ptr_assassin, sizeArrayAssassin);
- showAssassinsArray(ptr_assassins, sizeArrayAssassins);
- break;
- case 0:
- break;
- default:
- cout << "Nie ma takiej opcji" << endl;
- break;
- }
- } while (choiceMenu != 0);
- }
- int main(int argc, char** argv)
- {
- Gang *ptr_gang = nullptr;
- Gang **ptr_gangs = nullptr;
- Assassin *ptr_assassin = nullptr;
- Assassin **ptr_assassins = nullptr;
- int size = 2;
- mainMenu(ptr_gang, ptr_gangs, ptr_assassin, ptr_assassins);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement