Avatar billede sandra26 Nybegynder
05. januar 2001 - 02:12 Der er 39 kommentarer og
1 løsning

metode

hvordan laver jeg resten af opgaven, som lyder sådan her: Modificer metoden overfør således at det hævede beløb overføres til kreditoren.
Udarbejd en main-metode der opretter en konto- og et kreditor objekt som foretager en overførsel til kreditor?
public class Opgave9
{
    public static void main (String[] args)
    {
        ConsoleReader console = new ConsoleReader(System.in);
       
        Bankkonto minKonto = new Bankkonto (\"Lønkonto\", 10000);
        Kreditor minKreditor = new Kreditor (1, 50000);
       
        minKonto.overfør(minKreditor, 3000);
        System.out.println(\"Saldo på lønkontoen er: \" + minKonto.visSaldo());
       
        System.out.println(\"Saldo hos kreditoren er: \" + minKreditor.visTilgodehavende());
        System.out.print(\"Hvor mange penge ønsker De at hæve: \");
        double input = console.readDouble();
        minKonto.hæv(input);
        if (minKonto.visSaldo() < input)
        {
            System.out.println(\"Desværre var det kun muligt at hæve \" + minKonto.visMaxOtræk());
            System.out.println(\"Saldo på lønkontoen er: \" + minKonto.visSaldo());
            System.out.println(\"Saldo hos kreditoren er: \" + minKreditor.visTilgodehavende());

        }
        else
        {
            System.out.println(\"Saldo på lønkontoen er: \" + minKonto.visSaldo());
        }
           
           
        }
}

class Bankkonto
{
    // Konstruktor
    public Bankkonto (String akontoType, double asaldo)
    {
        kontoType = akontoType;
        saldo = asaldo;
        nysaldo = 0;
    }
   
    // Konstruktor: benyttes når der skal tilknyttes en overtræksgrænse
    public Bankkonto (String akontoType, double asaldo, double amaxOtræk, double agebyr)
    {
        kontoType = akontoType;
        saldo = asaldo;
        maxOtræk = amaxOtræk;
        gebyr = agebyr;
    }
   
    // Metoder
    public String hentNavn()
    {
        return kontoType;
    }
   
    public double visSaldo()
    {
        return saldo;
    }
   
    public void indsæt (double beloeb)
    {
        saldo = saldo + beloeb;
    }
   
    public double hæv (double beloeb)
    {
        if (beloeb > saldo)
            {
                maxOtræk = saldo;
            saldo =  saldo - maxOtræk;
            }
        else
            saldo = saldo - beloeb;
    }
   
    public double visMaxOtræk()
    {
        return maxOtræk;
    }
   
    public void overfør (Kreditor k, double beloeb)
    {   
       
        hæv (beloeb);
        k.indbetal (beloeb);           
    }
    private String kontoType;
    private double saldo;
    private double maxOtræk;
    private double gebyr;
    private double nysaldo;
}

class Kreditor
{
    private int kreditor;
    private double tilgode;
   
    // Konstruktor
    public Kreditor (int akreditor, double atilgodehavende)
    {
        kreditor = akreditor;
        tilgode = atilgodehavende;
    }
   
    // Metoder
    public void indbetal (double beløb)
    {
        tilgode = tilgode - beløb;
    }
   
    public double visTilgodehavende()
    {
        return tilgode;
    }
   
    public int visKreditornr()
    {
        return kreditor;
    }
}
Avatar billede pstric Nybegynder
05. januar 2001 - 02:25 #1
05/01 2001 02:12:17 Skal du ikke til eksamen i morgen - øh, i dag ???

overfør ser korrekt ud, men hvad er det med hæv, er det en metode, du selv har skrevet?
Avatar billede pstric Nybegynder
05. januar 2001 - 02:37 #2
/**
* hæv penge på kontoen. returnerer det beløb, der blev hævet og justerer saldoen.
*/
public double hæv(double beløb) {
  double resultat;
  if (beløb > (saldo + maxOtræk)) {
    resultat = saldo + maxOtræk;
    saldo = -maxOtræk;
  } else {
    resultat = beløb;
    saldo -= beløb;
  }
  return resultat;
}

Nu bliver kontoindehaverens maksimale bevilligede overtræk i hvert fald ikke forhøjet ved at hæve mere end der er til rådighed.

Det ville være pænere at bruge en exception her, men hvis I først lærer det på næste semester, så går det jo ikke.
Avatar billede pstric Nybegynder
05. januar 2001 - 02:44 #3
double input = console.readDouble();
double hævet = minKonto.hæv(input);
if (hævet < input) {
  System.out.println(\"Desværre var det kun muligt at hæve \" + hævet);
  System.out.println(\"Saldo på lønkontoen er: \" + minKonto.visSaldo());
  System.out.println(\"Saldo hos kreditoren er: \" + minKreditor.visTilgodehavende());
} else {
  System.out.println(\"Saldo på lønkontoen er: \" + minKonto.visSaldo());
}           

Når du angiver kontotype i constructoren, bør du også bruge den, men lad nu det ligge...

Resten ser OK ud.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:00 #4
jamen...hvis jeg indtaster at jeg vil hæve 7000, skulle så kreditorens saldo ikke stige med 7000?
Avatar billede pstric Nybegynder
05. januar 2001 - 03:03 #5
Det kommer da an på om det er banken, der er kreditoren. Hvis det er en ekstern kreditor, så bliver kreditorens saldo ikke påvirket af, om du hæver penge i banken.
Avatar billede pstric Nybegynder
05. januar 2001 - 03:06 #6
Hvis du derimod vil overføre 7000, så falder kreditorens saldo med 7000, men du har ikke nogen metoder, der muliggør at du kan låne flere penge af din kreditor via banken. Du kan kun oprette en kreditor med en bestemt saldo, som så bliver nedskrevet hver gang du overfører penge.

Men måske burde du sikre dig, at du ikke overfører flere penge til kreditoren, end du skylder.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:07 #7
jamen...der står at hævede penge skal overføres til kreditoren......
så skulle saldoen stige...\'ik?
Avatar billede pstric Nybegynder
05. januar 2001 - 03:08 #8
Nu har du jo ingen konto, der repræsenterer kreditoren, men hvis det var det ønskede, så er der meget der skal laves om.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:08 #9
det forstår jeg slet ikke....
det eneste der står i resten af opgaven er de to sætninger jeg har skrevet i starten
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:10 #10
du skal ikke lave det om.....der står bare at man skal modificere metoden overfør så det hævede beløb overføres til kreditoren.........
Avatar billede pstric Nybegynder
05. januar 2001 - 03:11 #11
jamen har kreditoren en konto i banken?
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:12 #12
Hvor skulle jeg vide det fra....det står der ikke noget om.......
Avatar billede pstric Nybegynder
05. januar 2001 - 03:14 #13
Nej, det er jo ret almindeligt med skoleopgaver :))

Jeg går ud fra, at Kreditor klassen bare er tænkt som information til bankkunden, der via den klasse kan holde styr på hvor meget han/hun skylder til sin kreditor.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:15 #14
her er hele opgaven:
Opstil et program (en main-metode) som opretter en lønkonto og en kreditor, hvor lønkontoen oprettes med et typenavn og et begyndelsesbeløb på 10000 kr.  og hvor kreditoren oprettes med et nummer og beløb, som kreditor har til gode på 50000 kr.
betal fra lønkontoen et afdrag på 3000 kr. til kreditor og udskriv herefter saldo-attributten og tilgode-attributen fra henholdsvis lønkonto-objektet og kreditor-objektet....
der kommer mere
Avatar billede pstric Nybegynder
05. januar 2001 - 03:19 #15
Så er det vel også godt nok, at nedskrive kreditorens tilgodehavende med det overførte beløb.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:19 #16
For at undgå overtræk på lønkontoen skal du lave attributtten maxOtræk. Denne overtræksgrænse kan under ingen omstændigheder overskrides.
Modificer KOnto-klassens hæve-metode så der sikres mod overtræk, og så der ved forsøg på overtræk kun hæves det maksimalt mulige. Beløbet der kan hæves skal returneres.

Modificer dernest metoden overfør således at det hævede beløb overføres til kreditoren.
Udarbejd en main-metode der opretter en konto- og et kreditor objekt og som foretager en overførsel til kreditor.
Bemærk: overfør metoden skal naturligvis kun kunne indsætte det beløb på kreditor-kontoen der kunne hæves på kontoen.

Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:20 #17
forresten......sover du aldrig om natten?
Avatar billede pstric Nybegynder
05. januar 2001 - 03:20 #18
look who\'s talking !!!
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:22 #19
*ggg*....
ja, men du skal da ikke op til eksamen i morgen....
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:23 #20
stakkels mig skal op om 3 timer.....
Avatar billede pstric Nybegynder
05. januar 2001 - 03:24 #21
Modifikationen af hæv passer vist meget godt til opgavens formulering.

Derudover kan jeg ikke se nogen fejl i din besvarelse.

Jo, overfør skal forresten lige tilpasses til den nye hæv

public void overfør (Kreditor k, double beløb) {
  double hævet = hæv(beløb);
  k.indbetal(beløb);
}
Avatar billede pstric Nybegynder
05. januar 2001 - 03:26 #22
Jeg startede vist med at advare dig mht. den eksamen. Skal vi ikke stoppe nu, og så lover du ikke at stille flere spørgsmål før du har været til eksamen.

Sluk for computeren NU !!!
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:29 #23
jamen....jeg har slet ikke rørt ved overfør metoden i min besvarelse
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:31 #24
ja. og tænk jeg kommer op i sådan noget her og kan ikke lave det hele og får 8?
Avatar billede pstric Nybegynder
05. januar 2001 - 03:32 #25
nå, men nu er den i hvert fald modificeret, så kreditorens tilgodehavende kun nedskrives med det beløb, der faktisk blev hævet.
Avatar billede pstric Nybegynder
05. januar 2001 - 03:34 #26
Jeg har på fornemmelsen at du nok skal klare det bedre end til et 8-tal, men hvis du sidder/står til eksamen med lukkede øjne, så kan det da godt være at det ikke går så godt.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:36 #27
hos mig er hans konto altid 47000
Avatar billede pstric Nybegynder
05. januar 2001 - 03:38 #28
Jamen, det er jo godt nok, ikk?
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:41 #29
skulle den ikke forandres når der er hævet nogle penge fra lønkontoen?
Avatar billede pstric Nybegynder
05. januar 2001 - 03:44 #30
Kreditor starter med at have et tilgodehavende på 50000,-
Kontoindehaveren overfører 3000,- til kreditoren
Kreditorens tilgodehavende er nu 47000,-

Kontoindehaverens saldo starter med at være 10000,-
Kontoindehaveren overfører 3000,- til kreditoren
Kontoindehaverens saldo er nu 7000,-
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:46 #31
ja.....det gør den.....
men så bliver man bedt om at indtaste hvor mange penge man kan hæve...og det beløb skal også trækkes fra lønkkontoen (og det gør det også) og overføres til kreditoren...
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:47 #32
det er nok bedst hvis jeg smutter i seng..skal op kl. 6.....
nu kan jeg slet ikke huske noget, har glemt det hele.......
kan du sove godt når du kommer så langt.....*ss*
Avatar billede pstric Nybegynder
05. januar 2001 - 03:49 #33
Sov godt, og god eksamen.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 03:50 #34
takker.......*ss*
Avatar billede pstric Nybegynder
05. januar 2001 - 03:51 #35
Tro mig, dit program virker nu. Kreditoren har ikke nogen saldo, men et tilgodehavende. Jeg tror, at det er det du har stirret dig blind på.
Avatar billede sandra26 Nybegynder
05. januar 2001 - 11:50 #36
det kan godt være at jeg har misforstået spørgsmålet.......
har lige været oppe til eksamen og har fået 11..*sss*
Avatar billede pstric Nybegynder
05. januar 2001 - 11:52 #37
Tillykke!!!
Avatar billede sandra26 Nybegynder
05. januar 2001 - 14:49 #38
tak...:-))))
Avatar billede pstric Nybegynder
15. januar 2001 - 21:52 #39
Øh, lukker du snart her?
Avatar billede sandra26 Nybegynder
17. januar 2001 - 14:30 #40
jo jo ......sorry....*s*
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