Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // lab2_po.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
- #include "pch.h"
- #include <iostream>
- #include <string.h>
- using namespace std;
- class Gang {
- private:
- char * name_gang;
- char * name_boss;
- int year;
- public:
- Gang();
- Gang(const char *name_ga, const char *name_bo, int yr);
- void init(const char *name_ga, const char *name_bo, int yr);
- void init();
- void show();
- };
- class Assassin {
- private:
- char * nickname;
- char * gun;
- public:
- Assassin();
- Assassin(const char * nick, const char * g);
- void init(const char * nick,const char * g);
- void init();
- void show();
- };
- Gang::Gang()
- {
- }
- Gang::Gang(const char *name_ga, const char *name_bo, int yr)
- {
- name_gang = (char *)malloc(sizeof(char)*(strlen(name_ga) + 1));
- strcpy_s(name_gang, strlen(name_ga) + 1, name_ga);
- name_boss = (char *)malloc(sizeof(char)*(strlen(name_bo) + 1));
- strcpy_s(name_boss, strlen(name_bo) + 1, name_bo);
- year = yr;
- }
- void Gang::init() {
- name_gang = (char *)malloc(sizeof(char)*50);
- name_boss = (char *)malloc(sizeof(char) * 50);
- cout<<"podaj nazwe grupy : ";
- cin.getline(name_gang, 50);
- cout << "podaj imie bossa : ";
- cin.getline(name_boss, 50);
- cout<<"podaj date zalozenia organizacji : ";
- cin >> year;
- cin.get();
- }
- void Gang::init(const char *name_ga, const char * name_bo, int yr) {
- name_gang = (char *)malloc(sizeof(char)*(strlen(name_ga) + 1));
- strcpy_s(name_gang, strlen(name_ga) + 1, name_ga);
- name_boss = (char *)malloc(sizeof(char)*(strlen(name_bo) + 1));
- strcpy_s(name_boss, strlen(name_bo) + 1, name_bo);
- year = yr;
- }
- void Gang::show() {
- cout << "Nazwa organizacji : " << name_gang << endl;
- cout << "Rok zalozenia : " << year << endl;
- cout << "Boss : " << name_boss << endl;
- }
- Assassin::Assassin(){
- }
- Assassin::Assassin(const char * nick, const char * g) {
- nickname = (char *)malloc(sizeof(char)*(strlen(nick) + 1));
- strcpy_s(nickname, strlen(nick) + 1, nick);
- gun = (char *)malloc(sizeof(char)*(strlen(g) + 1));
- strcpy_s(gun, strlen(g) + 1, g);
- }
- void Assassin::init(const char * nick, const char * g) {
- nickname = (char *)malloc(sizeof(char)*(strlen(nick) + 1));
- strcpy_s(nickname, strlen(nick) + 1, nick);
- gun = (char *)malloc(sizeof(char)*(strlen(g) + 1));
- strcpy_s(gun, strlen(g) + 1, g);
- }
- void Assassin::init() {
- nickname = (char *)malloc(sizeof(char) * 50);
- gun = (char *)malloc(sizeof(char) * 50);
- cout << "Podaj pseudonim zabojcy : ";
- cin.getline(nickname, 50);
- cout << "Podaj nazwe broni jaka sie posluguje : ";
- cin.getline(gun, 50);
- }
- void Assassin::show() {
- cout << "Pseudonim : " <<nickname<<endl;
- cout << "Bron : " << gun << endl;
- }
- void create(Gang *&ptr) {
- ptr = (Gang*)malloc(sizeof(Gang) * 1);
- *ptr = Gang();
- }
- void create(Assassin *&ptr) {
- ptr = (Assassin*)malloc(sizeof(Assassin) * 1);
- *ptr = Assassin();
- }
- void create(Assassin **&ptr, int n) {
- ptr = (Assassin **)malloc(sizeof(Assassin *)*n);
- for (int i = 0; i < n; i++) {
- ptr[i] = (Assassin*)malloc(sizeof(Assassin));
- *ptr[i] = Assassin();
- }
- }
- void create(Gang **&ptr, int n) {
- ptr = (Gang **)malloc(sizeof(Gang *)*n);
- for (int i = 0; i < n; i++) {
- ptr[i] = (Gang*)malloc(sizeof(Gang));
- *ptr[i] = Gang();
- }
- }
- void delete_memory(Gang *&ptr) {
- if (ptr == nullptr) {
- return;
- }
- else {
- free(ptr);
- ptr = nullptr;
- }
- }
- void delete_memory(Gang **&ptr, int n) {
- if (ptr == nullptr) {
- return;
- }
- else {
- for (int i = 0; i < n; i++) {
- free(ptr[i]);
- }
- free(ptr);
- ptr = nullptr;
- }
- }
- void delete_memory(Assassin *&ptr) {
- if (ptr == nullptr) {
- return;
- }
- else {
- free(ptr);
- ptr = nullptr;
- }
- }
- void delete_memory(Assassin **&ptr, int n) {
- if (ptr == nullptr) {
- return;
- }
- else {
- for (int i = 0; i < n; i++) {
- free(ptr[i]);
- }
- free(ptr);
- ptr = nullptr;
- }
- }
- void menu(Gang *&ptr_gang,Gang **&ptr_gangs,Assassin *&ptr_assassin,Assassin **&ptr_assassins) {
- int wybor = 0;
- int ile = 0;
- 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;
- cin >> wybor;
- while (wybor != 0) {
- switch (wybor) {
- case 1:
- cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- cin >> wybor;
- cin.get();
- while (wybor != 0){
- switch (wybor) {
- case 1:
- create(ptr_gang);
- ptr_gang->init();
- break;
- case 2:
- cout << "ile chcesz stworzyc obiktow ? ";
- cin >> ile;
- cin.get();
- create(ptr_gangs, ile);
- for (int i = 0; i < ile; i++) {
- ptr_gangs[i]->init();
- }
- break;
- case 0:
- break;
- default:
- cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- break;
- }
- cout << "[1] aby dodac pojedynycz obiekt klasy Gang" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Gang" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- cin >> wybor;
- cin.get();
- }
- break;
- case 2:
- cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
- cin >> wybor;
- cin.get();
- while (wybor != 0) {
- switch (wybor) {
- case 1:
- create(ptr_assassin);
- ptr_assassin->init();
- break;
- case 2:
- cout << "ile chcesz stworzyc obiktow ? ";
- cin >> ile;
- cin.get();
- create(ptr_assassins, ile);
- for (int i = 0; i < ile; i++) {
- ptr_assassins[i]->init();
- }
- break;
- case 0:
- break;
- default:
- cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Zabojcow "<< endl;
- cout << "[0] aby zaknocznyc" << endl;
- break;
- }
- cout << "[1] aby dodac pojedynycz obiekt klasy Zabojca" << endl;
- cout << "[2] aby dodac wiele obiektow klasy Zabojca" << endl;
- cout << "[0] aby zaknocznyc" << endl;
- cin >> wybor;
- cin.get();
- }
- break;
- case 3:
- if (ptr_gang != nullptr) {
- ptr_gang->show();
- cout << endl;
- }
- if (ptr_gangs != nullptr) {
- for (int i = 0; i < ile; i++) {
- ptr_gangs[i]->show();
- }
- cout << endl;
- }
- if (ptr_assassin != nullptr) {
- ptr_assassin->show();
- cout << endl;
- }
- if (ptr_assassins != nullptr) {
- for (int i = 0; i < ile; i++) {
- ptr_assassins[i]->show();
- }
- cout << endl;
- }
- break;
- case 0:
- break;
- default:
- 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;
- break;
- }
- 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;
- cin >> wybor;
- }
- }
- int main(int argc, char** argv)
- {
- Gang *ptr_gang = nullptr;
- Gang **ptr_gangs = nullptr;
- Assassin *ptr_assassin = nullptr;
- Assassin **ptr_assassins= nullptr;
- menu(ptr_gang, ptr_gangs, ptr_assassin, ptr_assassins);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement