• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ stephen prata zadanie 7.9

Object Storage Arubacloud
0 głosów
497 wizyt
pytanie zadane 11 listopada 2019 w C i C++ przez CleaverMan Nowicjusz (140 p.)

Mam problem z zadaniem 7.9 z książki Stephena Praty "Język C++ szkoła programowanie".

Ćwiczenie brzmi "To ćwiczenie stanowi wprawkę do pisania funkcji obsługujących tablice struktury poniżej znajduje się szkielet programu uzupełnij go kodując opisane funkcje.

#include <iostream>
using namespace std;

const int SLEN = 30;
struct student {
    char fullname[SLEN];
    char hobby[SLEN];
    int ooplevel;
};

//Funkcja getinfo() ma dwa parametry: wskaźnik pierwszego elementu tablicy
//Struktur student oraz liczbę int określającą liczbę elementów w tablicy
//Funkcja pobiera i zapisuje dane o studentach Wprowadzanie danych kończy 
//się kiedy tablica jest pełna lub podane zostanie puste nazwisko studenta.
//funkcja zwraca liczbę studentów wpisanych do tablicy.
int getinfo(student pa[], int n);

//funkcja display1() pobiera jako parametr strukturę student i pokazuję jej zawartość  
void display1(student st);

//funkcja display2() pobiera jako parametr adres struktury student i pokazuje 
//zawartość tej struktury
void display2(const student * ps);

//funkcja display3() pobiera jako parametry adres pierwszego elementu tablicy 
//ze strukturami student oraz liczbę elementów w tablicy, po czym wyświetla 
//zawartość wskazanych struktur
void display3(const student pa[], int n);

int main(int argc, const char * argv[]) {
    cout << "Podaj wielkość grupy: ";
    int class_size;
    cin >> class_size;
    while(cin.get() != '\n')
        continue;
    student * ptr_stu = new student[class_size];
    int entered = getinfo(ptr_stu, class_size);
    for(int i = 0; i < entered; i++)
    {
        display1(ptr_stu[i]);
        display2(&ptr_stu[i]);
    }
    display3(ptr_stu, entered);
    delete [] ptr_stu;
    cout << "Gotowe\n";
    return 0;
}

 

komentarz 11 listopada 2019 przez tkz Nałogowiec (42,000 p.)
A jak brzmi ten problem?
komentarz 11 listopada 2019 przez CleaverMan Nowicjusz (140 p.)
Napisałem funkcje ale mi nie działają i nie wiem co poszło nie tak.
komentarz 11 listopada 2019 przez tkz Nałogowiec (42,000 p.)
A pokażesz te funkcję?
komentarz 11 listopada 2019 przez CleaverMan Nowicjusz (140 p.)
int getinfo(student pa[], int n)
{
    cout << "Podaj dane studenta: ";
    int snum = 0;
    for(int i=0; i<n;i++)
    {
        cout << "Imie ";
        cin.getline(pa[i].fullname,SLEN);
        if(pa[i].fullname[0] == 0)
            break;
        cout << "Hobby ";
        cin.getline(pa[i].hobby,SLEN);
        cout << "Ooplevel ";
        cin >> pa[i].ooplevel;
        snum++;
    }
    return snum;
}
void display1(student st)
{
    cout << "Imie: " << st.fullname << endl;
    cout << "Hobby: " << st.hobby << endl;
    cout << "OOplevel: " << st.ooplevel << endl;
}
void display2(const student * ps)
{
    cout << "Imie: " << ps->fullname << endl;
    cout << "Hobby: " << ps->hobby << endl;
    cout << "OOplevel: " << ps->ooplevel << endl;
}
void display3(const student pa[], int n)
{
    for(int i = 0; i<n; i++)
    {
        cout << "Imie: " << pa->fullname << endl;
        cout << "Hobby: " << pa->hobby << endl;
        cout << "OOplevel: " << pa->ooplevel << endl;
    }
}

 

komentarz 11 listopada 2019 przez niezalogowany
edycja 11 listopada 2019

może jakoś tak

    cin>>a;
    cin.get();

    cin.get( pa[i].fullname , SLEN ,'\n');

 

void display3(const student pa[], int n)
{
    for(int i = 0; i<n; i++)display2(pa++) ;
   // {     
   //     cout << "Imie: " << (pa++)->fullname << endl;
   //     cout << "Hobby: " <<( pa++)->hobby << endl;
   //     cout << "OOplevel: " << (pa++)->ooplevel << endl;
   // }
}

jak chcesz w C to ci podeślę,

edit::(działający przynajmniej u mnie) będziesz miał na wzór

i może jeszcze coś takiego pa[i].fullname[SLEN-1] ='\0';

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 187 wizyt
pytanie zadane 6 marca 2019 w C i C++ przez dziubi21 Początkujący (310 p.)
+1 głos
5 odpowiedzi 596 wizyt
pytanie zadane 26 marca 2017 w C i C++ przez Programeł Gaduła (3,500 p.)
0 głosów
2 odpowiedzi 374 wizyt

92,571 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...