Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[C++] Przerobienie programu (bardzo mały) / zasosowanie Vectorów


EmoBoy

Rekomendowane odpowiedzi

Opublikowano

Krótko i na temat. Potrzeba mi zastosować do tego prostego programu Vectory.
Nie mam pojęcia jak działają i wgle jak to funkcjonuje, po prostu nie było mnie na 1 lekcji :(
Wiem tyle że działają jak tablice dynamiczne..
Aha, jeżeli ktoś nie chce mi pomóc, to prosze nie pisać głupich postów.


#include <cstdlib>
#include <iostream>

using namespace std;

struct klient
{
       string im;
       string naz;
       char klasa;
       char plec; 
};

class samolot
{
      private:
      int maks; //50% maks klasa biznes, potem ekonomiczna
      klient a[200];         
               
      public:  
      samolot();    
      void przyjmij();       
      void zwolnij();     
};

int main(int argc, char *argv[])
{
    samolot sam;
    int wybor;
    do
    {
    system("cls");
    cout<<"1. Przyjmij na poklad"<<endl;
    cout<<"2. Zwolnij miejsce"<<endl;
    cout<<"3. Koniec"<<endl;
    cout<<"Wybor [1-3]: "<<endl;
    cin>>wybor;
    switch(wybor)
          {
               case 1:
                    sam.przyjmij();
               break;
               
               case 2:
                    sam.zwolnij();
               break;    
               
               case 3:
               break;
                    
               default: {cout<<"Wybrales nieprawidlowa opcje w menu"<<endl; system("pause");} break;
          }
    }
    while(wybor!=3);
    system("PAUSE");
    return EXIT_SUCCESS;
}

samolot::samolot()
{
    do
    {              
    cout<<"Podaj ilosc miejsc w samolocie [maks 200]: ";
    cin>>maks;
    }
    while ((maks<=0)||(maks>200));         
    for(int i=0; i<=maks-1; i++)
    {
        a[i].im='@';
        a[i].naz='@';
        a[i].klasa='@';
        a[i].klasa='@';    
    }     
}

void samolot::przyjmij()
{
     char k;
     int msc;
     cout<<"Jaka klasa? [b/e]: ";
     cin>>k;
     if(k=='b')
     {
         for (int i=0; i<maks/2; i++)
         if(a[i].im=="@") cout<<i+1<<" "; 
         cout<<endl;
         do
         {
             cout<<"Podaj nr miejsca: ";
             cin>>msc;
         }
         while((msc<1)||(msc>maks/2));
         if(a[msc-1].im!="@") 
         {
             cout<<"Miejsce jest juz zajete"<<endl;
             system("pause");
         }
         else
         {
             cout<<"Nazwisko: ";
             cin>>a[msc-1].naz;
             cout<<"Imie:";
             cin>>a[msc-1].im;
             cout<<"Plec: ";
             cin>>a[msc-1].plec;
             a[msc-1].klasa='b';
         }
     }
     else
     {
         for (int i=maks/2; i<maks; i++)
         if(a[i].im=="@") cout<<i+1<<" "; 
         
          cout<<endl;
         do
         {
             cout<<"Podaj nr miejsca: ";
             cin>>msc;
         }
         while((msc<maks/2)||(msc>maks));
         if(a[msc-1].im!="@") 
         {
             cout<<"Miejsce jest juz zajete"<<endl;
             system("pause");
         }
         else
         {
             cout<<"Nazwisko: ";
             cin>>a[msc-1].naz;
             cout<<"Imie:";
             cin>>a[msc-1].im;
             cout<<"Plec: ";
             cin>>a[msc-1].plec;
             a[msc-1].klasa='e';
         }
     }
     cout<<endl;
     system("pause");
     
}

void samolot::zwolnij()
{
     char k;
     int msc;
     cout<<"Jaka klasa? [b/e]: ";
     cin>>k;
     if(k=='b')
     {
         for (int i=0; i<maks/2; i++)
         if(a[i].im!="@") cout<<i+1<<" "; 
         cout<<endl;
         do
         {
             cout<<"Podaj nr miejsca: ";
             cin>>msc;
         }
         while((msc<1)||(msc>maks/2));
         if(a[msc-1].im=="@") 
         {
             cout<<"Miejsce zostalo juz zwolnione"<<endl;
             system("pause");
         }
         else
         {
             a[msc-1].im="@";
             a[msc-1].naz="@";
             a[msc-1].plec='@';
             a[msc-1].klasa='@';
         }
     }
     else
     {
         for (int i=maks/2; i<maks; i++)
         if(a[i].im!="@") cout<<i+1<<" "; 
         
          cout<<endl;
         do
         {
             cout<<"Podaj nr miejsca: ";
             cin>>msc;
         }
         while((msc<maks/2)||(msc>maks));
         if(a[msc-1].im=="@") 
         {
             cout<<"Miejsce zostalo juz zwolnione"<<endl;
             system("pause");
         }
         else
         {
             a[msc-1].im="@";
             a[msc-1].naz="@";
             a[msc-1].plec='@';
             a[msc-1].klasa='@';
         }
     }
     cout<<endl;
     system("pause");
}
Opublikowano

Ale jak ten kod ma działać? Co chcesz z tymi vectorami robić.

Prawdopodobnie tablice Klient a[200] zamienić na vector - tablice taką ktora dodaje kolejne miejsca jeżeli jest coraz wiecej klientów.

Opublikowano

#include <vector>

std::vector <typ_danych> wektor;
push_back(); - dodaje do końca tablicy nowy element podany w nawiasie

insert(); - dodaje element do dynamicznej tablicy w podanym miejscu

begin(); - wskazuje pierwszy element dynamicznej tablicy

end(); - wskazuje na koniec dynamicznej tablicy

size(); - zwraca ilość elementów tablicy

pop_back() - usuwa ostatni element dynamicznej tablicy

resize(); - zmienia wielkość wektora do podanej w nawiasie

 

(wektor działa jak obiekt)

 

A więcej możesz znaleźć tutaj

846331404756772371599.jpeg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...