Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- //VisualStudio compatibility
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_DEPRECATE
- #pragma warning (disable : 4996)
- #endif
- //
- struct ship {
- char shipname[15];
- int maxSpace;
- };
- struct person {
- int number;
- ship* team;
- };
- ship* FindShip(person* osobyTab, int liczbaOsob, char szukanaDruzyna[25])
- {
- for (int i = 0; i < liczbaOsob; i++)
- {
- for (int j = 0; j < 25; j++)
- {
- if (osobyTab[i].team->shipname[j] != szukanaDruzyna[j])
- break;
- if (szukanaDruzyna[j] == '\0' && osobyTab[i].team->shipname[j] == '\0')
- return osobyTab[i].team;
- }
- }
- }
- bool TeamExist(person* osobyTab, int liczbaOsob, char szukanaDruzyna[25])
- {
- for (int i = 0; i < liczbaOsob; i++)
- {
- if (osobyTab[i].team != nullptr)
- {
- for (int j = 0; j < 25; j++)
- {
- if (osobyTab[i].team->shipname[j] != szukanaDruzyna[j])
- break;
- if (szukanaDruzyna[j] == '\0' && osobyTab[i].team->shipname[j] == '\0')
- return true;
- }
- }
- }
- return false;
- }
- int main() {
- int liczbaOsob;
- cin >> liczbaOsob;
- person* osobyTab = new person[liczbaOsob];
- ship* currentShip= NULL;
- for (int j = 0; j < liczbaOsob; j++)
- {
- osobyTab[j].number = j;
- osobyTab[j].team = NULL;
- }
- char key = ' ';
- int peopleInCurrentTeam = 0;
- while (key != 'Q')
- {
- cin >> key;
- if (key == 'A')
- {
- char nazwaDruzyny[15];
- cin >> nazwaDruzyny;
- if (TeamExist(osobyTab, liczbaOsob, nazwaDruzyny))
- {
- currentShip = FindShip(osobyTab, liczbaOsob, nazwaDruzyny);
- }
- else
- {
- if (currentShip == NULL)
- {
- currentShip = new ship;
- for (int i = 0; i < 25; i++)
- {
- currentShip->shipname[i] = nazwaDruzyny[i];
- }
- currentShip->teamSize = 0;
- }
- else
- {
- if (currentShip->teamSize == 0)
- delete currentShip;
- currentShip = new ship;
- for (int i = 0; i < 25; i++)
- {
- currentShip->shipname[i] = nazwaDruzyny[i];
- }
- currentShip->teamSize = 0;
- }
- }
- }
- else if (key == 'B')
- {
- int indeksOsoby;
- cin >> indeksOsoby;
- osobyTab[indeksOsoby].team = currentShip;
- currentShip->teamSize++;
- }
- else if (key == 'C')
- {
- for (int i = 0; i < liczbaOsob; i++)
- {
- cout << "Osoba " << i << " o numerze " << osobyTab[i].number;
- if (osobyTab[i].team == NULL)
- {
- cout << " osoba nie jest przypisana do zadnej druzyny" << endl;
- }
- else
- {
- cout << " druzyna: " << osobyTab[i].team->shipname << " osob w druzynie: " << osobyTab[i].team->teamSize << endl;
- }
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement