Strona 1 z 1

[C++]Tablice w strukturach

: 12 sty 2016, o 19:54
autor: koralina19
Witam mam takie zadanie, że muszę stworzyć bazę danych. Mam problem z tablicami. Chciałabym by w funkcji kobietki program zliczał kobiety za pomocą ostatniej litery w imieniu. Do tego użyłam lenght() i zadeklarowałam w strukturze tablice string imie. Niestety wywala mi cały czas błąd i już sama nie wiem dlaczego?

Kod: Zaznacz cały

#include <iostream>

using namespace std;
int pracownicy;

struct pracownik{
string imie[10];
char nazwisko[20];
char pesel[9];
int pensja_netto;
int ilosc_czlonkow_rodziny;
};
pracownik tablica[10];


void menu()
{
cout<<"[0] Wpisz pracownika do bazy"<<endl;
cout<<"[1] Wyswietl konkretnego pracownika"<<endl;
cout<<"[2] Wyswietl ilosc kobiet w firmie"<<endl;
cout<<"[3] Wyswietl pracownika, ktory ma w imieniu litere:"<<endl;
cout<<"[4] Wyswietl prcownikow, ktorym nalezy sie premia i w jakiej wysokosci"<<endl;
cout<<"[5] Wyswietl pracownikow starszych niz data urodzenia:"<<endl;
cout<<"[6] Wyswietl posortowanych pracownikow wzgledem wieku"<<endl;
cout<<"[7] Wyswietl srednia pensje kobiet"<<endl;
cout<<"[8] Wyswietl srednia pensje mezczyzn"<<endl;
cout<<"[9] Wyswietl pracownika z najwieksza iloscia czlonkow w rodzinie"<<endl;
cout<<"[10] Edycja danych konkretnego pracownika"<<endl;
cout<<endl;

}

int wpisz();
int drukuj();
int kobietki();


int main()
{

    int Wybor_Z_Menu;


    cout << "  BAZA DANYCH PRACOWNIKOW" << endl;
    cout<<"----------------------------------------------------------------"<<endl;
    menu();
    cout<<"----------------------------------------------------------------"<<endl;

    cout<<"Wybierz numer:"<<endl;
    cin>>Wybor_Z_Menu;



    switch(Wybor_Z_Menu)
    {
    case 0:
        {

           wpisz();
           break;
        }

    case 1:
        {
            drukuj();
            break;
            }
    case 2:
        {
            kobietki();
            break;
        }
    default :
{
    cout<<"Zla liczba, podaj jeszcze raz :("<<endl;

    break;
}
    }






    return 0;
}
int wpisz()
{

    cout<<"Ilu pracownikow chcesz wpisac?"<<endl;
    cin>>pracownicy;

    for(int i=0;i<pracownicy;i++)
    {
        cout<<"Podaj imie:"<<i+1<<" pracownika"<<endl;
        cin>>tablica[i].imie;
        cout<<"Podaj nazwisko:"<<i+1<<" pracownika"<<endl;
        cin>>tablica[i].nazwisko;
        cout<<"Podaj pesel:"<<i+1<<" pracownika"<<endl;
        cin>>tablica[i].pesel;
        cout<<"Podaj pensje netto:"<<i+1<<" pracowika"<<endl;
        cin>>tablica[i].pensja_netto;
        cout<<"Podaj ilosc czlonkow rodziny:"<<i+1<<" pracownika"<<endl;
        cin>>tablica[i].ilosc_czlonkow_rodziny;

    }
    return main();
}

int drukuj()
{
    int b;
    cout<<"Podaj nr pracownika, ktorego dane chcesz wydrukowac"<<endl;
    cin>>b;
    cout<<"Dane pracownika nr: "<<b<<endl;
    cout<<"************************"<<endl;
    cout<<"Imie: "<<tablica[b].imie<<endl;
    cout<<"Nazwisko: "<<tablica[b].nazwisko<<endl;
    cout<<"Pesel: "<<tablica[b].pesel<<endl;
    cout<<"Pensja netto: "<<tablica[b].pensja_netto<<endl;
    cout<<"Ilosc czlonkow rodziny: "<<tablica[b].ilosc_czlonkow_rodziny<<endl;
return main();

}
int kobietki()
{
    int pracownicy;
    int nazwa=tablica[pracownicy].imie;
    int ilosc_kobiet=0;
    int dlugosc_imienia=nazwa.length();
    for(int i=0;i=pracownicy;i++)
    {
        if(imie[dlugosc_imienia]=='a')
            ilosc_kobiet++;
    }
cout<<"W firmie pracuje "<<ilosc_kobiet<<" kobiet";
return main();
}

Bardzo dziękuję za jakiekolwiek wskazówki :)

[C++]Wyświetlanie konkretnej zmiennej zapisanej w strukturze

: 12 sty 2016, o 22:15
autor: BKDev
Wywołujesz metodę drukuj, jako argument dajesz zmienną "dane", której nie definiujesz wcześniej.

[C++]Tablice w strukturach

: 13 sty 2016, o 20:10
autor: jarzabek89
1) Nie dołączasz biblioteki:

Kod: Zaznacz cały

<string>
2) Próbujesz zapisać stringa do inta

Kod: Zaznacz cały

int nazwa = tablica[pracownicy].imie;
3) Niezadeklarowana zmienna:

Kod: Zaznacz cały

if (imie[dlugosc_imienia] == 'a')
Nie edytuj postu jeśli uzyskałaś odpowiedź. Teraz wypowiedź kolegi BKDev nie ma sensu.

[C++]Tablice w strukturach

: 13 sty 2016, o 21:29
autor: liu
Ponadto:
1. Powinnaś użyć raczej std::vector, a nie tablicy, przecież to C++, nie C.
2. Nie chcę wiedzieć, jak wygląda stos wywołań po tych return main(), to jest jakiś horror.
Słyszałaś kiedyś o pętlach? (Chodzi mi o ich zastosowanie do realizacji tego całego menu). Co najciekawsze twój program po podaniu złej pozycji menu wyświetla komunikat, aby 'podać go jeszcze razem', po czym kończy pracę. To jak program już nie działa, to gdzie mam podać numer jeszcze raz? W SMSie za 3 PLN? ;)