Avatar billede cblcbl Juniormester
21. oktober 2010 - 10:38 Der er 7 kommentarer og
1 løsning

Design af klasse

Hejsa,

Jeg arbejder aktuelt på at lave et program, som jeg kan anvende til at lære et fremmedsprog, f.eks. fransk.

I den forbindelse vil jeg gerne lave en Klasse der indeholder gloser, dvs. hvis jeg slår ordet voiture (bil) op, så skal jeg kunne trække følgende ud:
danske betydning (bil)
grammatisk betegnelse (substantiv)

Ovenstående kan jeg godt selv lave.
MEN, nogle gloser kan have flere betydninger, helt op til 3 betydninger.

Hvordan laver jeg så et Klasse design, hvor man i et objekt har brug for at lagre en glose der kun har en dansk betydning, men i et andet objekt har brug for at lagre en glose der har 3 danske betydninger, dvs. jeg skal kunne gemme følgende data udover det franske ord.

voiture

1. danske betydning (bil)
grammatisk betegnelse (substantiv)

2. danske betydning (bla2bla2)
grammatisk betegnelse (verbum)

3. danske betydning (blabla)
grammatisk betegnelse (stedord)

Mvh

Claus
Avatar billede arne_v Ekspert
21. oktober 2010 - 18:58 #1
Du skal vel have noget a la:

enum GrammatiskType { Substantiv, Verbum, ... };

class Betydning
{
    private:
        string betydning;
        GrammatiskType betegnelse;
    public:
        ...
};

class Ord
{
    private:
        string ord;
        vector<Betydning> betydninger;
    public:
        ...
};
Avatar billede cblcbl Juniormester
21. oktober 2010 - 20:44 #2
Hej Arne,

Godt svar. Det lader til at være en god struktur.

Aha, ja, hvorfor tænkte jeg ikke på det med en <Vector>, den kan jo udvides dynamisk efter behov.

Nå, men hvordan kan jeg så lagre disse objekter i computerens hukommelse når programmet afvikles.
Jeg mener hvordan kæder jeg et objekt af klassen Betydning sammen med et objekt af klassen Ord (hvilken container kan anvendes med fordel)?

Kan jeg anvende en list fra STL, på en sådan måde at hver item(glose) jeg gemmer i listen referer til et objekt af klassen Betyning og et af ord?

Mvh

Claus
Avatar billede arne_v Ekspert
21. oktober 2010 - 20:51 #3
Måske en:

class Ordbog
{
    private:
        map<string,Ord> data;
    public:
        ...
        void add(string ord, Betydning betydning)
        {
            data[ord].Add(betydning);
        }
        ...
};

hvor Ord så skal have en Add metode.
Avatar billede cblcbl Juniormester
23. oktober 2010 - 17:26 #4
Hej Arne,

Super, tak for input.
Du får point'ene.
mvh
claus
Avatar billede arne_v Ekspert
23. oktober 2010 - 19:26 #5
Nix. Dem tog du selv.
Avatar billede cblcbl Juniormester
23. oktober 2010 - 20:06 #6
Hej Arne,

Beklager, det var ikke meningen. Jeg har derfor oprettet et andet spørgsmål hvor du kan få dine ærligt optjente point + en bonus.

http://www.eksperten.dk/spm/922100

mvh
Claus
Avatar billede arne_v Ekspert
23. oktober 2010 - 22:17 #7
Det bliver noget rod på den måde.

Jeg vil foreslå et point overførings spørgsmål til 30 point.

Og så nedsæt point på det andet eller helt luk det, hvis du ikke skal bruge svaret.
Avatar billede cblcbl Juniormester
24. oktober 2010 - 09:57 #8
Hejsa,

Ja, det går helt i kage det her.
Beklager, der er ikke nogen box, jeg kan tjekke af for at acceptere dit svar.
mvh
Claus
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester