Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Wskaznik do struktury.

kasuy 19 Cze 2013 12:47 927 1
  • #1 19 Cze 2013 12:47
    kasuy
    Poziom 1  

    Jak w temacie, mam zadanie:
    – zadeklarować strukturę o nazwie Pisarz zawierającą następujące pola: int rok_urodzenia, char
    imie[12], char nazwisko[20],
    – zadeklarować i wypełnić tablicę o nazwie Autorzy składającą się z trzech obiektów typu Pisarz,
    – zadeklarować strukturę o nazwie Ksiazka zawierającą następujące pola: char tytul[20], int
    rok_wydania, Pisarz* autor,
    – zadeklarować i wypełnić tablicę czterech obiektów typu Ksiazka. Uwaga: pole autor ma
    wskazywać na jedną z pozycji w tablicy Autorzy,

    – stworzyć funkcję typu void o nazwie getPisarz wywoływaną z parametrem typu Pisarz i
    wypisującą na konsoli komunikat zawierający dane o pisarzu (np. „Stanislaw Lem, urodzony w
    1921 roku” ),
    – stworzyć funkcję typu void o nazwie getKsiazka wywoływaną z parametrem typu Ksiazka i
    wypisującą na konsoli komunikat zawierający dane o książce i jej autorze (np. „tytul: Solaris –
    rok wydania 1961, autor: Stanislaw Lem, urodzony w 1921 roku”),
    – wypisać na konsoli zawartość obu zadeklarowanych tablic,


    Nie wiem co powinno być w kodzie w zaznaczonych miejscach.

    #include <iostream>
    #include <cstdlib>
    #include <math.h>
    #include <climits>
    #include <fstream>
    #include <cstring>

    using namespace std;

    struct pisarz{
    int rok_urodzenia;
    char imie[12];
    char nazwisko[20];
    };



    struct ksiazka{
    char tytul[20];
    int rok_wydania;
    pisarz* autor;


    };


    pisarz funkcja1(pisarz *tab, int n);
    pisarz getPisarz(pisarz *tab, int n);
    ksiazka funkcja2(pisarz *tab, int r, ksiazka *tab1);
    ksiazka getksiazka(int r, ksiazka *tab1);

    int main()
    {

    int n=2;
    int m=2;


    pisarz *Autorzy = new pisarz[n];
    ksiazka *ksiazki = new ksiazka[m];

    funkcja1(Autorzy, 2);

    for(int i=0; i<2; i++){
    getPisarz(Autorzy, i);
    }
    cout<<endl;

    funkcja2(Autorzy, 2, ksiazki);

    getksiazka(2, ksiazki);





    system("PAUSE");
    return 0;
    }




    pisarz funkcja1(pisarz *tab, int n)
    {
    cout<<"Wprowadz dane:"<<endl;
    for( int i = 0; i < n; i++ )
    {

    cout << "Podaj imie: ";
    cin >> tab[ i ].imie;

    cout << "Podaj nazwisko: ";
    cin >> tab[ i ].nazwisko;

    cout << "Podaj rok urodzenia: ";
    cin >> tab[ i ].rok_urodzenia;
    }



    }


    pisarz getPisarz(pisarz *tab, int i)
    {


    cout<<tab[i].imie<<" ";
    cout<<tab[i].nazwisko<<" ";
    cout<<tab[i].rok_urodzenia<<endl;


    }

    ksiazka funkcja2(pisarz *tab, int r, ksiazka *tab1)
    {
    int j;
    cout<<"Wprowadz dane:"<<endl;
    for( int i = 0; i < r; i++ )
    {

    cout << "Podaj tytul: ";
    cin >> tab1[ i ].tytul;

    cout << "Podaj rok wydania: ";
    cin >> tab1[ i ].rok_wydania;

    cout << "Podaj autora: ";
    cin>>j;
    tab1[ i ].autor=&tab[j];
    }



    }




    ksiazka getksiazka(int r, ksiazka *tab1)
    {
    int i;
    for(int j=0; j<r; j++){
    cout<<tab1[ j ].tytul<<" ";
    cout<<tab1[ j ].rok_wydania<<" ";
    cout<<tab1[ j ].autor<<endl;
    }



    }




    Z góry dziękuję za jakąkolwiek pomoc.

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. Proszę to poprawić! - arnoldziq

    0 1
  • #2 20 Cze 2013 12:41
    23844
    Użytkownik usunął konto