Yhteydet luokkien välillä?

Olen opettelemassa C ohjelmointia, ja jonkin verran tainnut jo edistyäkin, mutta pulmanani on vielä luokkien väliset yhteydet. Selostan hieman tarkemmin:

Pulmana on siis: Minulla on kaksi yhtenä luokkana videovuokraamo ja kaksi siihen liittyvää luokkaa nimeltään "asiakas" ja "filmit". Tiedän jo ainakin teoriassa, miten voin rakentaa listat asiakkaista ja filmeistä. Pääpulma on: Miten yhdistän näiden kahden luokan tiedot?

Haluan siis saada käyttäjän näkyville tiedot, että missä mikäkin filmi kullakin hetkellä on. Siis filmi olisi hyllyssä tai lainassa. Jos se on lainassa, niin näkyville tieto kenellä se on. Siis esim tällain:

Filmi Tila Asiakas
Miami vice Hyllyssä -
Tähtien sota Lainassa Masa Meikäläinen

Toisaalta asiakkaista seuraavanlaista tulostetta:

Asiakas Vuokraus
Masa Meikäläinen Tähtien sota
Masa Meikäläinen Hulk
Maija Meikäläinen Muistojen polku
Mikko Meikäläinen -

jne. Pulmana siis on, että miten saan luotua tarvittavat yhteydet luokkien välille. Tosi hienoa kun vain joku osais auttaa. Vinkit hyvistä kirjoista aiheeseen liittyen kelpaavat myös.
3398
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

1. tapa

Lisää kirjaan jäsen boolean lainassa, ja Stringi lainaajan nimi (tai referensi lainaajaan)

2. Tapa

Lisää asiakas luokkaan lista kirjoista (std:list) ja videovuokraamoon myös, kun lainaus tapahtuu siiretään videovuokraamon listasta kirja asiakaan listaan, palautuksessa kirja otetaan lainaajalta ja siiretään videovuokraamoon.

3. Tapa

Tee luokka nimeltä Lainaus joka yhdistää lainaajan ja kirjan. Lainaus luokkat ovat videovuokraamon sisällä.

Äänestä
  • Sikasiistiä! :) Rupeankin heti kokeilemaan. Nuo ajatukset selkiyttivät omia ajatuksia huomattavasti. Varmaan näillä eväillä homma hoituu pitkälle eteenpäin.

    Äänestä

  • Sanottakoon heti alkuun, etten osaa juurikaan yhtään C . Mitä nyt tuosta selostuksesta tajusin, niin mielestäni järkevintä olisi tehdä ihan tietokannan tapainen ilmeisesti struct/list? tai käyttää suosiolla tietokantaa esim SQLite, jota sitten käskyttäs eri luokkien kautta. Siis varsinainen tieto ei olisi kyseisissä luokissa.

    Tietokanta tauluina

    Asiakkaat:
    asiakas_nro
    nimi...

    Kirjat:
    kirja_id
    nimi
    ISBN

    Lainat:
    laina_id
    asiakas_nro
    kirja_id

    Tällöin tuota olisi helppo laajentaa tarpeenvaatiessa ja käyttää tietoja muualtakin kuin tuon ohjelman kautta perus SQL:llä.


    Toki tuota voi sitten yksinkertaistaa,mutta siitä saattaa tulla myöhemmin ongelmia.

    Asiakkaat:
    asiakas_nro
    lainat = array
    tietoa..

    Kirjat:
    kirja_id
    nimi
    ISBN
    lainassa = bool

    Äänestä

Kommentoi aloitusta


Yhteyttäjä kirjoitti:

Olen opettelemassa C ohjelmointia, ja jonkin verran tainnut jo edistyäkin, mutta pulmanani on vielä luokkien väliset yhteydet. Selostan hieman tarkemmin:

Pulmana on siis: Minulla on kaksi yhtenä luokkana videovuokraamo ja kaksi siihen liittyvää luokkaa nimeltään "asiakas" ja "filmit". Tiedän jo ainakin teoriassa, miten voin rakentaa listat asiakkaista ja filmeistä. Pääpulma on: Miten yhdistän näiden kahden luokan tiedot?

Haluan siis saada käyttäjän näkyville tiedot, että missä mikäkin filmi kullakin hetkellä on. Siis filmi olisi hyllyssä tai lainassa. Jos se on lainassa, niin näkyville tieto kenellä se on. Siis esim tällain:

Filmi Tila Asiakas
Miami vice Hyllyssä -
Tähtien sota Lainassa Masa Meikäläinen

Toisaalta asiakkaista seuraavanlaista tulostetta:

Asiakas Vuokraus
Masa Meikäläinen Tähtien sota
Masa Meikäläinen Hulk
Maija Meikäläinen Muistojen polku
Mikko Meikäläinen -

jne. Pulmana siis on, että miten saan luotua tarvittavat yhteydet luokkien välille. Tosi hienoa kun vain joku osais auttaa. Vinkit hyvistä kirjoista aiheeseen liittyen kelpaavat myös.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu