Avatar billede kasper19 Nybegynder
14. maj 2003 - 11:38 Der er 12 kommentarer og
1 løsning

Spørgsmål til projektopgave

Vi har følgende problemstilling i vores projekt, som vi håber på at kunne få lidt kommentarer til :)

En vekseler har nogle kunder, og hver kunde har et depot (med aktierne), en konto (med penge) og så en historik. Det er historikken der volder os lidt problemer, da vi ikke helt ved hvordan det kodes smartest. Det kunne gøres ret simpelt, fx bare med en tekststreng der beskriver hver handel, men da vi gerne skal kunne lave statistik, skal vi nok ud i en lidt mere avanceret løsning :). Det ville ikke være det store problem at lave en klasse der indeholder ting som dato, kurs osv, men det egentlige problem er at vi jo gerne skulle kunne hive historik ud for enkelte aktier, beregne forrentningsgrad osv. Vi har overvejet 2 lønsinger: Den ene hvor hver aktie har én post i historikken, hvor der så både skal være købsdato, salgsdato, købskurs, salgskurs osv. Den anden, som vi måske føler er mere rigtig, men som vi ikke helt ved hvordan skal implementeres, er noget med en ny post for hver ting der tilføjes. Når en aktie købes, ryger den på, og når den evt. sælges, så ryger det på som et nyt punkt osv.

Vi vil helst lave en løsning hvor man ikke har objekter som har værdier der muligvis ikke skal bruges, eller som først skal udfyldes senere. Måske er der en meget bedre måde at gøre det på end dem vi har overvejet? En masse feedback ville være rart :)
Avatar billede jakoba Nybegynder
14. maj 2003 - 11:44 #1
Lyder som en typisk opgave for en database. Har i haft om databaser og simpel normalisering?
Avatar billede kasper19 Nybegynder
14. maj 2003 - 11:46 #2
Vi har haft om det, dog ikke i forbindelse med programmering :). Vi kunne muligvis godt implementere det med en database (det ville helt sikkert give nogle fordele), men da vi intet har haft om det endnu, og det ikke rigtigt er en del af vores opgave (det er systemudvikling/programmerings-projekt), vil vi helst holde os kun til Java.
Avatar billede disky Nybegynder
14. maj 2003 - 11:50 #3
Lav databasen i form af flade filer istedet.
Avatar billede kasper19 Nybegynder
14. maj 2003 - 11:54 #4
Vi har ikke rigtigt så meget brug for at gemme det. Vi har bare en testklasse der opretter alle vores objekter, samt testdata. Det er ud fra dette at vi skal kunne lave statistik. Database ville have nogle fordele, da vi så kunne bruge noget SQL til let at hive det ud, men flade filer kan vi ikke rigtigt se en ide i :)
Avatar billede jakoba Nybegynder
14. maj 2003 - 11:56 #5
I kan evt implementere 'principperne' i en relationsdatabase ved at bruge objekter (for rækkerne) og så gemme de objekter i vektorer (for tabellerne). men selvom i kun implementerer en brøkdel af sådan en 'pseudo SQL' vil det være et pænt stort projekt (1-2 måneder).
Avatar billede kasper19 Nybegynder
14. maj 2003 - 11:59 #6
Ja, og vi har kun ca. 2 uger tilbage :). Vi skal sådan set også kun implementere de vigtigste dele. Vi har også objekter der skal i vectorer, dog i en simpel form. Det er når vi skal til at hive tingene ud, at det bliver lidt besværligt :)
Avatar billede jakoba Nybegynder
14. maj 2003 - 12:07 #7
med al respekt. hvis skyld er det at det først er med 2 uger tilbage i begynder at tænke over hvordan historikken skal håndteres?
Avatar billede jakoba Nybegynder
14. maj 2003 - 12:08 #8
men det kan da godt gøres på den tid. Det bliver blot ikke tid til nogetsomhelst andet i de 2 uger.
Avatar billede kasper19 Nybegynder
14. maj 2003 - 12:13 #9
Jeg kan ikke rigtigt se hvorfor der skal placeres en skyld :). Vi er her sådan set ikke for at forsvare os selv, men for at se om der var nogen her på Eksperten der havde nogle kommentarer til de tanker vi har gjort os. At historikken først er blevet et "problem" nu, er fordi at vi i første omgang havde tænkt det lidt for simpelt. Opgaven er naturligvis lidt mere omfangsrig end vi beskrev den i første indlæg, og det er ikke fordi der ikke også har været andre ting at tænke på :). Vi er ikke interesseret i at bruge de 2 uger på at lave det sådan, da det er lidt uden for formålet med det her projekt. Vi forventer ikke at du har et gyldent svar der kan skaffe os videre, men vi har egentlig heller ikke lyst til at skulle forsvare os selv - det virker lidt irrelevant for dette forum? Men tak for dine forslag indtil videre :)
Avatar billede arne_v Ekspert
14. maj 2003 - 13:33 #10
Jeg formoder at I allerede har en data model for "nu" med
depot, konto og aktie objekt. Depot indeholder så nogle aktie
objekter.

Det vil være meget forkert at ligge historikken ind i selve
aktion objektet. Fordi det reelt ikke er en del af det objekt.

Jeg foreslår at I laver:
  - en klasse transaktions liste som indeholder et antal transaktioner
    og som man kun kan tilføje til ikke slette
  - en klasse transaktion som er en abstrakt klasse med kun de ting
    der er fælles for alle transaktioner
  - et antal klasser der arver fra transaktions klassen: en køb klasse,
    en salg klasse etc.

Hvis I vil lave det meget avanceret så skal I kunne tage depot
og konto objekterne fra start og re eksekvere alle transaktionerne og nå
frem til depot og konto slut objekterne.

Jeg mener at det er det der bedst afspejler virkeligheden.

[og ja - i virkeligheden skulle objekterne naturligvis persisteres]
Avatar billede jakoba Nybegynder
14. maj 2003 - 13:33 #11
Ok, så vil jeg nøjes med at anbefale jeres forslag 1, dvs et konto-objekt for hver 'konto' (dvs aktietype, kunde, bankkonto, etc) hvor transaktionerne på den konto akkumuleres. Hvis der bliver tid kan den rimeligt hurtigt udvides med en transaktionsliste tilknyttet til objektet så der er mulighed for revision og mere detailleret statistik.
Avatar billede arne_v Ekspert
02. juni 2003 - 20:25 #12
kasper>

Tid at lukke spørgsmålet ?
Avatar billede kasper19 Nybegynder
02. juni 2003 - 20:35 #13
Jeps, vi har også afleveret.. Vi fik desværre ikke så meget ud af svarene, men arne_v var den der gav det umiddelbart bedste, så han får sgu pointene :)

Thanks anyway..
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
Kategori
Kurser inden for grundlæggende programmering

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