[C++] Lista jednokierunkowa przechowująca studentów
-
- Użytkownik
- Posty: 66
- Rejestracja: 2 sty 2013, o 20:30
- Płeć: Kobieta
- Lokalizacja: słupsk
- Podziękował: 1 raz
- Pomógł: 1 raz
[C++] Lista jednokierunkowa przechowująca studentów
Mam takie zadanie:
Napisać program, który pozwala wpisać ze standardowego wejścia dane o studentach (imię, nazwisko, album), następnie posortuje dane narastająco wg albumu.
Dane zorganizować w postaci dynamicznej struktury listy jednokierunkowej. Utworzyć odpowiednie funkcje dodawania, wyszukiwania i usuwania elementu listy.
Nie wiem jak się za to zabrać, proszę o pomoc. Z góry dziękuję:)
Napisać program, który pozwala wpisać ze standardowego wejścia dane o studentach (imię, nazwisko, album), następnie posortuje dane narastająco wg albumu.
Dane zorganizować w postaci dynamicznej struktury listy jednokierunkowej. Utworzyć odpowiednie funkcje dodawania, wyszukiwania i usuwania elementu listy.
Nie wiem jak się za to zabrać, proszę o pomoc. Z góry dziękuję:)
Ostatnio zmieniony 18 kwie 2013, o 19:09 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
- MichalPWr
- Użytkownik
- Posty: 1625
- Rejestracja: 29 wrz 2010, o 15:55
- Płeć: Mężczyzna
- Lokalizacja: Leszno
- Podziękował: 7 razy
- Pomógł: 387 razy
[C++] Lista jednokierunkowa przechowująca studentów
Oczywiście sposobów rozwiązania tego problemu jest masa. Jednak jeśli ma to być na strumieniach to proponowałbym wykorzystać trochę mechanizmy które daje nam C++.
Po pierwsze stwórzmy klasę student która przechowuje nam (imię, nazwisko, album), plus wszystkie konieczne metody, akcesory i konstruktory/destruktory. Jako listę możemy stworzyć w main
Poczytaj sobie co nieco o to na pewno wszystko Ci się rozjaśni.
Podkreślam jeszcze raz, jest to jeden z możliwych sposobów rozwiązania. Według mnie dość zgrabny.
PS. Jak to zrobisz, o ile zdecydujesz się na ten sposób, pomyślimy nad reszt, tj obsługą wyjątków i uodpornieniem kodu na wprowadzenie niepopranych danych.
Po pierwsze stwórzmy klasę student która przechowuje nam (imię, nazwisko, album), plus wszystkie konieczne metody, akcesory i konstruktory/destruktory. Jako listę możemy stworzyć w main
Żeby było elegancko możemy przeciążyć operator wczytywania który z marszu wczytuje nam ze standardowego strumienia imię, nazwisko i nr albumu. Podobnie uczynić z wczytywaniem. Jeżeli ma to być lista, a więc mamy mieć możliwość dostania się do każdego elementu naszego wektora, należy przeciążyć operator [] który umożliwi nam szukanie konkretnego elementu wektora.vector<student> osoba;
Poczytaj sobie co nieco o to na pewno wszystko Ci się rozjaśni.
Podkreślam jeszcze raz, jest to jeden z możliwych sposobów rozwiązania. Według mnie dość zgrabny.
PS. Jak to zrobisz, o ile zdecydujesz się na ten sposób, pomyślimy nad reszt, tj obsługą wyjątków i uodpornieniem kodu na wprowadzenie niepopranych danych.
-
- Użytkownik
- Posty: 1406
- Rejestracja: 6 maja 2012, o 22:46
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 107 razy
- Pomógł: 145 razy
[C++] Lista jednokierunkowa przechowująca studentów
MichalPWr, w zadaniu jest napisan,e ze chodzi o listę, nie o wektor ^^
studentka ap, uzyj struktury lub klasy, czegos na wzór
poczytaj jeszcze o takim nagłówku
musisz tylko pomyśleć jak zrobić kontruktor tej klasy i jak zrobić funkcję sortującą, cała reszta jest zawrta w powyższej bibliotece
studentka ap, uzyj struktury lub klasy, czegos na wzór
Kod: Zaznacz cały
class wezel
{
int nr_indeksu;
string imie, nazwisko;
}
Kod: Zaznacz cały
#include <forward_list>
-
- Użytkownik
- Posty: 66
- Rejestracja: 2 sty 2013, o 20:30
- Płeć: Kobieta
- Lokalizacja: słupsk
- Podziękował: 1 raz
- Pomógł: 1 raz
[C++] Lista jednokierunkowa przechowująca studentów
Dzisiaj miałam zajęcia z programowania i wykładowca dał nam program prezentujący listę jednokierunkową, kazał nam go przerobić na program, który mowa w zadaniu, ale ja niestety nie wiem o co chodzi:(. To jest zbyt trudne, a facet niezbyt dobrze tłumaczy. Pomożecie? Poniżej program, który mamy przerobić na listę jednokierunkową:
o ile dobrze zrozumialam wykladowce to to jest struktura:
a tutaj są zdefiniowane funkcje ( ale co do tego to pewności nie mam, moge sie mylic):
o ile dobrze zrozumialam wykladowce to to jest struktura:
Kod: Zaznacz cały
#include <iostream>
struct Rekord
{
float dana;
Rekord *next;
};
Rekord *begin = NULL;
extern void DodajnaPoczatek (Rekord * *);
extern void UsunPierwszy (Rekord * &);
extern void DodajnaKoniec (Rekord * &);
extern void PokazListe (Rekord *);
int main(int argc, char *argv[])
{
DodajnaPoczatek (&begin);
DodajnaPoczatek (&begin);
DodajnaPoczatek (&begin);
DodajnaKoniec (begin);
PokazListe (begin);
while (begin != NULL)//usuwanie calej zwalnianie pamieci
{
UsunPierwszy(begin);
PokazListe (begin);}
return 0;
}
Kod: Zaznacz cały
#include <iostream>
using namespace std;
struct Rekord
{
float dana;
Rekord *next;
};
void DodajnaPoczatek ( Rekord * * lista)
{
Rekord *el = new Rekord;
cout<<"podaj liczbe:";
cin >> el -> dana;
el -> next = *lista;
*lista = el;
}//DodajnaPoczatek
void UsunPierwszy ( Rekord *&lista)
{
if(lista != NULL) //lista nie jest pusta
{
Rekord *pierwszy = lista;
lista = lista->next;
delete pierwszy;
cout<< "Usuniety rekord pierwszy : " << endl;
};
}//usun pierwszy
void DodajnaKoniec ( Rekord * & lista)
{
Rekord *el = new Rekord;
cout<< "podaj liczbe:";
cin >> el -> dana;
el -> next= NULL;
Rekord * wsk = lista;
if (wsk == NULL)//lista jest pusta
{
lista = el ;
}
else
{
while ( wsk -> next != NULL)//znalezienie przedostatmniego elementu
wsk = wsk -> next;
wsk -> next = el;
};
}//dadaj na koniec
void PokazListe (Rekord *lista)
{
if (lista == NULL)
cout << "Lista pusta !
";
else{
cout<<endl;
Rekord * r = lista;
while (r!= NULL)
{
cout << r-> dana << endl;
r=r -> next;
}//while
}//else
}//pokaz liste
-
- Użytkownik
- Posty: 66
- Rejestracja: 2 sty 2013, o 20:30
- Płeć: Kobieta
- Lokalizacja: słupsk
- Podziękował: 1 raz
- Pomógł: 1 raz
[C++] Lista jednokierunkowa przechowująca studentów
na poczatek to wykladowca powiedzial ze mam w strukturze zadeklarowac funkcje ktora bedzie mi umozliwiala dopisywanie studenta do listy, nie wiem jak sie za to zabrac,
-
- Użytkownik
- Posty: 1406
- Rejestracja: 6 maja 2012, o 22:46
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 107 razy
- Pomógł: 145 razy
[C++] Lista jednokierunkowa przechowująca studentów
... ward_list/
... B472%3B263
tutaj jest wszystko, zasada działania jest naprawdę łatwa, to tylko źle wygląda na pierwszy rzut oka
... B472%3B263
tutaj jest wszystko, zasada działania jest naprawdę łatwa, to tylko źle wygląda na pierwszy rzut oka