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[1];
- ptr[i][1].init();
- }
- }
- void create(Assassin **&ptr, int size) {
- ptr = new Assassin *[size];
- for (int i = 0; i < size; i++) {
- ptr[i] = new Assassin[1];
- ptr[i][1].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][1].init();
- }
- else if (i > where && where >= 0) {
- sup_ptr[i][1] = ptr[i - 1][1];
- }
- else if (i == size && where < 0) {
- sup_ptr[i][1].init();
- }
- else {
- sup_ptr[i][1] = ptr[i][1];
- }
- }
- 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][1].init();
- }
- else if (i > where && where >= 0) {
- sup_ptr[i][1] = ptr[i - 1][1];
- }
- else if (i == size && where < 0) {
- sup_ptr[i][1].init();
- }
- else {
- sup_ptr[i][1] = ptr[i][1];
- }
- }
- 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 {
- 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 {
- 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 usunac obiekt z istniejacej tablicy obiektow klasy gang" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- }
- void showAssassinMenu() {
- cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
- cout << "[3] aby dodac obiekt do istniejacej tablicy obiektow klasy Zabojca" << endl;
- cout << "[4] aby usunac obiekt z istniejacej tablicy obiektow klasy Zabojca" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- }
- //
- //void gangMenu() {
- // switch (wybor) {
- // case 1:
- // create(ptr_gang);
- // ptr_gang->init();
- // break;
- // case 2:
- // cout << "ile chcesz stworzyc obiektow ? ";
- //
- // cin >> ile;
- // cin.get();
- // create(ptr_gangs, ile);
- // for (int i = 0; i < ile; i++) {
- // ptr_gangs[i]->init();
- // }
- // break;
- // case 3:
- // cout << "w ktorym miejscu chcesz dodac obkiet : ";
- // cin >> wybor;
- // add(ptr_gangs, ile, wybor);
- // break;
- // case 4:
- // cout << "w ktorym miejscu chcesz usunac obiekt : ";
- // cin >> wybor;
- // remove(ptr_gangs, ile, wybor);
- // break;
- // case 0:
- //
- // break;
- //
- // default:
- // showGangMenu();
- // break;
- // }
- //}
- void gangMenu() {
- int gangChoice = 0;
- int size = 1;
- int where = 0;
- do {
- showGangMenu();
- cin >> gangChoice;
- switch (gangChoice)
- {
- case 1:
- cout << "ile chcesz stworzyc obiektow" << endl;
- cin >> size;
- create(ptr_gang, size);
- break;
- case 2:
- cout << "ile chcesz stworzyc obiektow" << endl;
- cin >> size;
- create(ptr_gangs, size);
- break;
- case 3:
- cout << "w ktorym miejscu chcesz dodac element " << endl;
- cin >> where;
- add(ptr_gang, size, where);
- break;
- case 4:
- cout << "w ktorym miejscu chcesz dodac element " << endl;
- cin >> where;
- add(ptr_gangs, size, where);
- break;
- case 0:
- break;
- default:
- cout << "Nie ma takiej opcji" << endl;
- break;
- }
- }while(gangChoice != 0)
- }
- void chooseMenu(int choice, ) {
- switch (choice)
- {
- case 1:
- gangMenu(ptr_gang,ptr_gangs);
- break;
- case 2:
- assassinMenu(ptr_assassins,ptr_assassins);
- break;
- case 3:
- showCreateObjects();
- break;
- case 0;
- break;
- default:
- cout << "Nie ma takiej opcji" << endl;
- showMenu();
- break;
- }
- }
- 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 >> wybor;
- choiceMenu(Gang *&ptr_gang, Gang **&ptr_gangs, Assassin *&ptr_assassin, Assassin **&ptr_assassins)
- } while (wybor != 0);
- }
- int main(int argc, char** argv)
- {
- Gang *ptr_gang = nullptr;
- Gang **ptr_gangs = nullptr;
- Assassin *ptr_assassin = nullptr;
- Assassin **ptr_assassins = nullptr;
- mainMenu(ptr_gang, ptr_gangs, ptr_assassin, ptr_assassins);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement