ďťż

Ładny brzuch

Przepraszam że was nachodzę, ale chyba już nie mam gdzie prosić o pomoc. Może ktoś z was mi pomoże. Mószę oddać projekt w c++, którego jak narazie za bardzo nie rozumiem.

Temat projektu 1 - dynamiczne wiązane struktury danych.

Na ocenę 3:
Napisać klasę implementującą kolejkę FIFO (dla liczb całkowitych).

Prywatne składniki klasy:
wskaźnik na początek kolejki;
wskaźnik na koniec kolejki.
Publiczne metody klasy:
konstruktor;
konstruktor kopiujący; (na ocenę 3+)
funkcja dopisująca element przekazany jako argument na końcu kolejki;
funkcja usuwająca element z początku kolejki;
funkcja wypisująca zawartość kolejki na ekranie;
destruktor.
Uwagi:
Ostrożnie z konstruktorem kopiującym! Nie chodzi o to, aby były takie same wskaźniki na początki i końce kolejek, ale aby nowa kolejka zawierała takie same elemnty w tej samej kolejności jak kolejka kopiowana.
Napisać też krótki (prosty!) program demonstrujący działanie klasy.

Na ocenę 4:
Napisać klasę implementującą dwukierunkową listę posortowaną (dla liczb całkowitych).

Prywatny składnik klasy:
wskaźnik na początek listy;
Publiczne metody klasy:
konstruktor;
konstruktor kopiujący;
funkcja dopisująca element przekazany jako argument w odpowiednim miejscu listy, tzn tak aby lista była posortowana;
funkcja usuwająca element z pozycji przekazanej jako argument;
funkcja wypisująca zawartość listy na ekranie;
destruktor.
Uwagi:
Ostrożnie z konstruktorem kopiującym! Nie chodzi o to, aby były takie same wskaźniki na początki list, ale aby nowa lista zawierała takie same elemnty w tej samej kolejności jak lista kopiowana.
Napisać też krótki (prosty!) program demonstrujący działanie klasy.

Na ocenę 5:
To, co na ocenę 4 oraz dodatkowo napisać funkcję, która na podstawie dwóch list posortowanych zwróci jako wynik listę posortowaną zawierającą wszystkie ich elementy. Wymóg: nie wolno tworzyć nowych komórek pamięci; jedyne, co jest dozwolone, to manipulacja wskaźnikami.

Ostateczny termin oddania projektu - 7 listopada 2003.

POMOCY



W ekspecrie klasy to przy tym tempie będą pewnie dopiero za rok. No ale. Podam ci ogólny szkielet klasy

#include<iostream.h>
class kolejka //nie pamiętam czy mósi być średnik
{
public:
void dopisz(int a) ;
void usun();
void wypisz();
kolejka(); //konstruktor mósi nazywać się tak samo jak klasa

private:
int *poczontek;
int *koniec;

};

void kolejka::dopisz(int a) //tak depiniujemy obiekty klasy
{
}

int main()
{
kolejka nowy; //tak inicjalizujemy klase kolejka
nowy.dopisz(123); //a tak się odwołujemy do zmiennej nowy

}

Dalej mósisz poradzić sobie sama, bo nie jestem aż takim kozakiem z c++ żeby tłumaczyć komukolwiek wskaźniki, i dynamiczne przydzielanie pamięci. Powodzenia

Temat powinien polecieć do kategorii programowanie:!

Pomagaj i zdobywaj wiedzę :)!
Chcemy obiecany przez administratorów system moderacji:!
Chcemy więcej moderatorów! Polecam: Th0mas, Qwas...

I już leci do innego działu:! :chemik:

------------------------
Jutro nie istnieje:! ... kiedy budzisz sie rano jest dzis:!



cytat:ANIOŁEK napisał:

Temat powinien polecieć do kategorii programowanie:!

Zgadza się;)

Tylko jak to zrobić:?

----------------
Zawsze jest schemat
----------------

Pojemnik implementujący FIFO (First In First Out), to tak zwana sterta. Przykładowy kod:

/*Klasa wezel reprezentuje obiekt przechowywany na liscie. Zwracam uwage, ze to, co zaraz napisze, jest to po prostu prezentacja dzialania list w ogole. Wersja bez szablonow. W jakichkolwiek innych pracach zalecam uzywanie standardowych std::list czy std::heap*/

struct wezel //struct, bo dzieki temu wszystkie skladniki
//beda publiczne - oszczednosc jednej linijki :D
{
//te dwie zmienne lacza wezly w liste
wezel * poprzedni;
wezel * nastepny;
int * wskObj; //wskaznik na obiekt, w tym przypadku int
//funkcje skladowe
wezel() //konstruktor
{
//wskazniki niech na razie nie pokazuja na nic
nastepny = poprzedni = NULL;
wskObj = NULL;
}
};

//teraz deklaracja wlasciwej listy
class sterta_na_int
{
private:
wezel * pierwszy;
wezel * ostatni;
wezel * aktualny; //ten wskaznik bedzie uzywany przy przegladaniu listy

public:
//funkcje skladowe
sterta_na_int(); //konstruktor zwykly
sterta_na_int(const sterta_na_int& inna);//kopiujacy
~sterta_na_int();//destruktor
void push(int co);//dopisuje element do konca
int pop(); //usuwa z konca
void drukuj(); //drukuje zawartosc na ekran
};

Implementacji nie będę zamieszczał, bo znacznie przedłużyła by ona ten post; to, jak i pozostałe zadania, mogę omówić z Tobą przez GG, lub mailem (oba w podpisie na dole :) )

//================================================
KĄESACP: Komputer Ąwiat - Expert Society Against Crap Posting
To join: Put these lines in your signature and don't post crap!
"E = mc... dolen taken my notepad!" - Terran Science Vessel (StarCraft)
GG: 1488052 | temporal@poczta.fm | [url]http://www.temporal-software.prv.pl

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •