Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Struktury w C++

Ostatnio zmodyfikowano 2014-02-09 15:46
Autor Wiadomość
Avaliable
Temat założony przez niniejszego użytkownika
Struktury w C++
» 2014-02-08 10:35:17
Siemka.

Mam taki pewnie dla niektórych głupi problem ze strukturami.

Mam takie coś:

C/C++
...

Mógłby ktoś podpowiedzieć/napisać/pokierować (wybierz poprawną odpowiedz :D) co zrobić, żeby można było wprowadzać dane np "miejscowosc"? Nie wiem jak napisać funkcje, która umożliwi utworzenie nowej tablicy danych wszystkich osób z Opola, które otrzymują stypendium.
P-104228
MrPoxipol
» 2014-02-08 10:44:40
Najlepiej by było utworzyć vector, który przechowywałby wskaźniki do struktur, które przechodziłyby przez kryteria.
Pseudokod:
C/C++
void OpoleStypendium( student & studenci[], vector < student *>& opoleStypendium )
{
    // Tutaj przechodzenie po rekordach
    if( strcmp( studenci[ i ].miejscowosc, "Opole" ) && studenci[ i ].stypendium )
         opoleStypendium.push_back( & studenci[ i ] );
    //..
}

student studenci[ 20 ];
vector < student *> opoleStypendium; // Kontener ze wskaźnikami na uczniów, którzy mieszkają w Opolu i otrzymumą stypendium,
// pobieranie danych
//..
OpoleStypendium( studenci, opoleStypendium );
P-104230
alixir
» 2014-02-08 10:46:48
Dostęp do pól struktury uzyskujesz przez użycie '.'
W twoim przykładzie posiadasz tablicę struktur, w której jednym z pól jest kolejna struktura.
Dostęp zatem do elementów struktury w strukturze wygląda tak:
Studenci[ 0 ].osoby.miejscowosc;
P-104231
Avaliable
Temat założony przez niniejszego użytkownika
» 2014-02-08 11:22:48
@MrPoxipol
Utworzyłem ale teraz mi wyskakują takie błędy:

[Error] declaration of 'Studenci' as array of references
[Error] expected ')' before ',' token
[Error] invalid declarator before 'OpoleStypendium'
Dodałem bibliotekę <vector> i dalej to samo.

@alixir
Dzięki właśnie o to mi chodziło :).
P-104233
MrPoxipol
» 2014-02-08 11:23:55
Kod.
P-104234
Avaliable
Temat założony przez niniejszego użytkownika
» 2014-02-08 11:25:01
P-104235
alixir
» 2014-02-08 12:19:00
Ogólnie widzę kilka podstawowych błędów.

1) Przekazując tablicę jako argument nie wpisujemy znaku referencji. Tablica zawsze przekazywana jest przez adres
student Studenci[]
 lub tak
student * Studenci


2) Dwa razy deklarujesz tą samą funkcję

3) Wewnątrz funkcji nieprawidłowo zapisany dostęp do miejscowości. Powinno być
Studenci[ i ].osoby.miejscowosc


4) 'i' jest niezadeklarowane w funkcji

Pewnie coś tam jeszcze jest, ale to mi się rzuciło od razu
P-104236
MrPoxipol
» 2014-02-08 12:20:55
A, zapomniałem Ci napisać, żebyś przekazywał vector przez referencje.
PS Ja napisałem Ci pseudokod..nie masz robić kopiuj wklej.
P-104237
« 1 » 2
  Strona 1 z 2 Następna strona