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

Zadanie 7.9 "Język C++, Szkoła Programowania"

VPS Starter Arubacloud
0 głosów
964 wizyt
pytanie zadane 16 czerwca 2017 w C i C++ przez Kamil Paradowski Użytkownik (620 p.)

Witam, mam pytanie. Robię zadanie 7.9 z książki Stephen'a Prata'y i mam pewien problem. Treść zadania wygląda następująco:

Mianowicie ten szkielet programu wydaje mi się trochę bezsensowny, a mianowicie np. ta pętla w funkcji main, która na przemian wywołuje funkcję display1 oraz display2. Gdy np. wprowadzę 2 uczniów (np. Kowalski, Nowak) to wyświetli mi program 2x nazwisko Kowalski i Nowak, gdzie moim zdaniem jest to bezsensowne, ale jako, że jest to szkielet z treści programu to raczej nie mogę go modyfikować. Tak samo zawartość funkcji display1, display2 oraz display3 są takie mało sprecyzowane, domyślam się, że na każdą funkcje po prostu przypada jeden element struktury (Nazwisko do 1, hobby do 2 i ocena do 3), ale to tylko mój domysł.

Czy ktoś z Was ma pomysł jak można/powinno prawidłowo rozwiązać te zadanie? Ewentualnie ktoś mógłby podrzucić mi jakąś część swojego kodu i wyjaśnić gdzie leży mój błąd w rozumowaniu. Może to trochę nietypowy post jak na forum, ale nie wiem jak inaczej mogę sprecyzować mój problem.

komentarz 17 czerwca 2017 przez Szahid Pasjonat (20,930 p.)
Pierwsze zdjęcie jest nieczytelne

2 odpowiedzi

0 głosów
odpowiedź 16 czerwca 2017 przez Dexterim Dyskutant (8,370 p.)
Jak dla mnie wszystko jest sensowne i jasne. Masz rozdział funkcje i w tym przypadku ćwiczysz obsługę danych po przez wykorzystanie  wskaźników i przekazywanie kopii. To, że wyświetli dwa razy tę samą wartość jest tu drugorzędną sprawą.
0 głosów
odpowiedź 27 sierpnia 2018 przez Hu Lee Nowicjusz (140 p.)
#include <iostream>
const int SLEN = 30;
struct student {
    char name[SLEN];
    char hobby[SLEN];
    int ooplevel;
};
int getinfo(student pa[], int n);
void display(student st);
void display2(const student * ps);
void display3(const student pa[], int n);
int main()
{
    std::cout << "Podaj wilekosc grupy: ";
    int class_size;
    std::cin >> class_size;
    while (std::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++)
    {
        std::cout << "Dane studenta nr : " << i + 1 << " normalne przekazanie wartosci\n";
        display(ptr_stu[i]);
        std::cout << "Dane studenta nr : " << i + 1 << " przekazanie wartosci przez wskaznik\n";
        display2(&ptr_stu[i]);

    }
    display3(ptr_stu, entered);
    delete[] ptr_stu;
    std::cout << "Gotowe \n";
    
    std::cin.get();
    std::cin.get();
        return 0;
}
int getinfo(student pa[], int n)
{
    int d = 0;
    for (int i = 0; i < n; i++)
    {
        std::cout << "Podaj imie i nazwisko studenta\n";
        std::cin.getline(pa[i].name, SLEN);
        std::cin.clear();
        std::cout << "Podaj hobby \n";
        std::cin.getline(pa[i].hobby, SLEN);
        std::cin.clear();
        std::cout << "Podaj na jakim jest pozomie\n";
        std::cin >> pa[i].ooplevel;
        std::cin.get();
        std::cin.clear();
        
        d++;
    }
    return d;
}
void display(student st)
{
        std::cout <<"Imie studenta " << st.name << std::endl;
        std::cout << "Hobby studenta " << st.hobby << std::endl;
        std::cout << "Poziom studenta " << st.ooplevel << std::endl;
}
void display2(const student * ps)
{
    std::cout << "Imie studenta " << ps->name << std::endl;
    std::cout << "Hobby studenta " << ps->hobby << std::endl;
    std::cout << "Poziom studenta " << ps->ooplevel << std::endl;
}
void display3(const student pa[], int n)
{
    for (int i = 0; i < n; i++)
    {
        std::cout << "Imie studenta " << pa[i].name << std::endl;
        std::cout << "Hobby studenta " << pa[i].hobby << std::endl;
        std::cout << "Poziom studenta " << pa[i].ooplevel << std::endl;
    }
}

Podobne pytania

0 głosów
2 odpowiedzi 931 wizyt
0 głosów
1 odpowiedź 389 wizyt
pytanie zadane 9 września 2017 w C i C++ przez Modferno Początkujący (400 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...