Mitenkäs saan toimimaan kys. ohjelman?:
Tee Videovuokraamo-ohjelma, joka käsittelee videoiden tietoja. Dynaaminen linkitetty lista koostuu video-olioista. Jokaisesta videosta tiedetään nimi, ohjaaja, ja luokka(jännitys, seikkailu, piirretty). talleta listaan viisi tälläistä alkiota. Kysy pääohjelmassa minkä nimisen videon asiakas haluaa vuokrata ja tarkista onko tämä video listassa. Kerro pääohjelmassa asiakkaalle tieto siitä löytyykö video vai ei.
..Ongelma on siinä että osaan kyllä tehdä ohjelman jossa switch case:lla kysytään video-oliota, ja luodaan niitä ohjelman ajon aikana, mutta en perkeleelläkään saa valmista taulukkoa(alkioita) toimimaan kyselyn kanssa.
Tee Videovuokraamo-ohjelma, joka käsittelee videoiden tietoja. Dynaaminen linkitetty lista koostuu video-olioista. Jokaisesta videosta tiedetään nimi, ohjaaja, ja luokka(jännitys, seikkailu, piirretty). talleta listaan viisi tälläistä alkiota. Kysy pääohjelmassa minkä nimisen videon asiakas haluaa vuokrata ja tarkista onko tämä video listassa. Kerro pääohjelmassa asiakkaalle tieto siitä löytyykö video vai ei.
..Ongelma on siinä että osaan kyllä tehdä ohjelman jossa switch case:lla kysytään video-oliota, ja luodaan niitä ohjelman ajon aikana, mutta en perkeleelläkään saa valmista taulukkoa(alkioita) toimimaan kyselyn kanssa.
Vastaukset 3
Vanhimmat
koostuu viidestä solusta. Tietorakenteessa on kentät prev,nimi,ohjaaja,luokka,next
prev kentässä on osoitin edelliseen videoon ja next kentässä osoitin seuraavaan videoon.
Linkitetyn listan alkuosoite on sulla jossain pointterissa ja alkioita menet läpi niin kauan, että alkion next-kentän arvo on null.
Miten hukassa sulla on tuo linkitetyn listan tekeminen ja käyttö?
tuolla on esimerkkejä toteutuksesta, mutta C:llä
http://users.evtek.fi/~hannuvl/sy03/algoritm_tp.htm
Tässä yksinkertainen dynaamisen oliolistan käsittely:
--- video.h
class Video
{
public:
Video();
virtual ~Video();
void SetNext(Video* pVideo);
Video* GetNext();
private:
Video* m_Next;
};
---video.cpp
Video::Video()
: m_Next(NULL)
{
}
Video::~Video()
{
}
void Video::SetNext(Video* pVideo)
{
m_Next = pVideo;
}
Video* Video::GetNext()
{
return m_Next;
}
---main
Video* pVideoEdellinen = NULL;
Video* pVideoEnsimmainen = pVideoEdellinen = new Video();
// < Laita videon lainaustiedot paikalleen (nimi, ohjaaja, ja luokka) >
Video* pVideoSeuraava = new Video();
// < Laita videon lainaustiedot paikalleen (nimi, ohjaaja, ja luokka) >
pVideoEdellinen->SetNext(pVideoSeuraava);
pVideoEdellinen = pVideoSeuraava;
pVideoSeuraava = new Video();
// < Laita videon lainaustiedot paikalleen (nimi, ohjaaja, ja luokka) >
pVideoEdellinen->SetNext(pVideoSeuraava);
//
// Käydään videolista läpi:
Video* pVideoNyt = pVideoEnsimmainen;
while (pVideoNyt != NULL)
{
// < ...Käytä pVideoNyt tietoja... >
pVideoNyt = pVideoNyt->GetNext ();
}