• 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

42 Warsaw Coding Academy
0 głosów
679 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,020 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,020 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ź 223 wizyt
pytanie zadane 6 marca 2019 w C i C++ przez dziubi21 Początkujący (310 p.)
+1 głos
5 odpowiedzi 842 wizyt
pytanie zadane 26 marca 2017 w C i C++ przez Programeł Gaduła (3,500 p.)
0 głosów
2 odpowiedzi 510 wizyt

93,383 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,744 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...