Oprettet ons. d. 26. februar 2003 kl. 20:14:09

tingna
tingna (21.515 point. Point ude: 130)


hvordan laver man en metode der tilskriver 5% rente til en konto?

Hej eksperter, jeg skal udvide klassen Ungdomskonto, så den får en metode, der tilskriver 5% i studiebonus, hvis saldoen er over et vist grundbeløb. Hvad gør jeg galt?
/**
* Write a description of class Ungdomskonto here.
*
* @author Trine
* @version 26.02.03
*/
public class Ungdomskonto extends Konto{
   
    private long grundbeløb;
   
   
    public Ungdomskonto(String navn, long grund){
        super(navn);
        grundbeløb = grund;
    }
   
    public boolean hæv(long beløb){
        // put your code here
        if (super.saldoen() < 0)return false;
        if (super.saldoen() == 100)return super.hæv(beløb);
        if (beløb > (super.saldoen()/ 2))return false;
        return super.hæv(beløb);
    }
   
    public long getBonus(){
            return grundbeløb;
            }
    public boolean rente(){
        if(super.saldoen() > getbonus()){
            long bonus = (long)(super.saldoen() * 0.05);
            return super.indsæt(bonus);
            }
        else return false;
       
        }
   
  public String toString() {
        return super.toString() + "(Grundbeløb=" + grundbeløb + ")";
        }   
}





/**
* @author JCC
* @version 20 feb 03
*/

public class KontoDemo {

    private static Konto kassekredit;
    private static Konto pensionskonto;
    private static Konto ungdomskonto;
   
    public static void main(String[] args) {
        boolean ok;
        kassekredit = new Kassekredit("Hans Petersen", 100000);
        pensionskonto = new Pensionskonto("Birte Petersen", 50000);
        ungdomskonto = new Ungdomskonto("Martin Fisher", 1000);
       
        tjek("initialisering");
        ok = kassekredit.indsæt(12000);
        tjek(ok, "indsætte 12000 på kassekredit");
        ok = kassekredit.hæv(115000);
        tjek(ok, "hæve 115000 på kassekredit");
        ok = pensionskonto.hæv(115000);
        tjek(ok, "hæve 15000 på pensionskonto");
        ok = pensionskonto.indsæt(51000);
        tjek(ok, "indsætte 51000 på pensionskonto");
        ok = ungdomskonto.indsæt(500);
        tjek(ok,"indsætte 500 på ungdomskonto");
        ok = ungdomskonto.hæv (250);
        tjek(ok, "hæve 250 på ungdomskonto");
        ok = ungdomskonto.hæv (100);
        tjek(ok, "hæve 100 på ungdomskonto");
        ok = ungdomskonto.indsæt (1100);
        tjek(ok, "indsætte 1100 på ungdomskonto");
    }
   
    public static void tjek(String forklaring) {
        System.out.println();
        System.out.println("--- " + forklaring + " ---");
        System.out.println(kassekredit.toString());
        System.out.println(pensionskonto.toString());
        System.out.println(ungdomskonto.toString());
    }
   
    public static void tjek(boolean ok, String forklaring) {
        if (ok) {
            tjek(forklaring + ": ok");
        } else {
            tjek(forklaring + ": GIK GALT !!!");
        }
    }
}

Skrevet ons. d. 26. februar 2003 kl. 20:23:09| #1

riversen
riversen (62.116 point)
blog.riversen.dk/
public void tilskrivStudiebonus()
{
if( super.saldoen() > grundbeløb )
// tilskriv rente her
}

Skrevet ons. d. 26. februar 2003 kl. 20:23:28| #2

arne_v
arne_v (1.075.384 point)
Du kalder ikke rente metoden.

Skrevet ons. d. 26. februar 2003 kl. 20:23:37| #3

riversen
riversen (62.116 point)
blog.riversen.dk/
evt. returner boolsk om der er tilskrevet rente eller ej hvis nødvendigt

Skrevet ons. d. 26. februar 2003 kl. 20:24:09| #4

riversen
riversen (62.116 point)
blog.riversen.dk/
nå jeg har nok misforstået

Skrevet ons. d. 26. februar 2003 kl. 20:55:28| #5

tingna
tingna (21.515 point)
kan I uddybe det lidt? hvordan kalder jeg rentemetoden? og hvordan tilskriver jeg renten?

Skrevet ons. d. 26. februar 2003 kl. 21:00:28| #6

arne_v
arne_v (1.075.384 point)
Du sætter:

      ok = ungdomskonto.rente();
      tjek(ok, "rente beregning");

ind et sted i din main og så vil den tilskrive renter,
hvis den skal.

Skrevet ons. d. 26. februar 2003 kl. 21:11:55| #7

tingna
tingna (21.515 point)
Jamen, der er noget galt i selve metoden!!? hvordan tilskriver jeg renten?

Skrevet ons. d. 26. februar 2003 kl. 21:36:57| #8

arne_v
arne_v (1.075.384 point)
Som jeg læser rente metoden så indsætter den 5% af saldoen, hvis
saldo > grundbeløb.

SÅ det vil sige at bare ved at kalde rente metoden, så tilskrives renterne på
kontoen.

Skrevet ons. d. 26. februar 2003 kl. 21:37:23| #9

arne_v
arne_v (1.075.384 point)
Giver den ikke det rigtige resultat ?

Skrevet ons. d. 26. februar 2003 kl. 21:49:13| #10

tingna
tingna (21.515 point)
Den siger: tjek(ok, "rente beregning"); Cannot resolve symbol. Mangler der ikke noget i String toString? Eller i rentemetoden?

Skrevet ons. d. 26. februar 2003 kl. 21:51:58| #11

arne_v
arne_v (1.075.384 point)
Hvor har du sat den ind henne ?

Den skal sætte sind i main sammen med alle de andre kald !

Skrevet ons. d. 26. februar 2003 kl. 21:55:45| #12

tingna
tingna (21.515 point)
/**
* @author JCC
* @version 20 feb 03
*/

public class KontoDemo {

    private static Konto kassekredit;
    private static Konto pensionskonto;
    private static Konto ungdomskonto;
   
    public static void main(String[] args) {
        boolean ok;
        kassekredit = new Kassekredit("Hans Petersen", 100000);
        pensionskonto = new Pensionskonto("Birte Petersen", 50000);
        ungdomskonto = new Ungdomskonto("Martin Fisher", 1000);
       
        tjek("initialisering");
        ok = kassekredit.indsæt(12000);
        tjek(ok, "indsætte 12000 på kassekredit");
        ok = kassekredit.hæv(115000);
        tjek(ok, "hæve 115000 på kassekredit");
        ok = pensionskonto.hæv(115000);
        tjek(ok, "hæve 15000 på pensionskonto");
        ok = pensionskonto.indsæt(51000);
        tjek(ok, "indsætte 51000 på pensionskonto");
        ok = ungdomskonto.indsæt(500);
        tjek(ok,"indsætte 500 på ungdomskonto");
        ok = ungdomskonto.hæv (250);
        tjek(ok, "hæve 250 på ungdomskonto");
        ok = ungdomskonto.hæv (100);
        tjek(ok, "hæve 100 på ungdomskonto");
        ok = ungdomskonto.indsæt (1100);
        tjek(ok, "indsætte 1100 på ungdomskonto");
        ok = ungdomskonto.rente();
        tjek(ok, "rente beregning");
    }
   
    public static void tjek(String forklaring) {
        System.out.println();
        System.out.println("--- " + forklaring + " ---");
        System.out.println(kassekredit.toString());
        System.out.println(pensionskonto.toString());
        System.out.println(ungdomskonto.toString());
    }
   
    public static void tjek(boolean ok, String forklaring) {
        if (ok) {
            tjek(forklaring + ": ok");
        } else {
            tjek(forklaring + ": GIK GALT !!!");
        }
    }
}

Skrevet ons. d. 26. februar 2003 kl. 21:59:12| #13

arne_v
arne_v (1.075.384 point)
On den compiler ikke ?

Skrevet ons. d. 26. februar 2003 kl. 22:01:58| #14

tingna
tingna (21.515 point)
nej desværre!

Skrevet ons. d. 26. februar 2003 kl. 22:04:02| #15

tingna
tingna (21.515 point)
Rente metoden er sådan her, mangler der ikke noget i den?:

public long getBonus(){
            return grundbeløb;
            }
    public boolean rente(){
        if(super.saldoen() > getBonus()){
            long bonus = (long)(super.saldoen() * 0.05);
            return super.indsæt(bonus);
            }
        else return false;
       
        }

   
  public String toString() {
        return super.toString() + "(Grundbeløb=" + grundbeløb + ")";
        }

Skrevet ons. d. 26. februar 2003 kl. 22:15:34| #16

arne_v
arne_v (1.075.384 point)
Ah.

Jeg har fundet den.

rente er en metod ei klassen UngdomsKonto, men du laver

    private static Konto ungdomskonto;
 
    ungdomskonto = new Ungdomskonto("Martin Fisher", 1000);

Hvis du erstatter det med:

    private static UngdomsKonto ungdomskonto;
 
    ungdomskonto = new Ungdomskonto("Martin Fisher", 1000);

så bør det compile !

Skrevet ons. d. 26. februar 2003 kl. 22:15:59| #17

arne_v
arne_v (1.075.384 point)
(du har allerede selv fået rettet getbonus til getBonus)

Skrevet tor. d. 27. februar 2003 kl. 06:43:55| #18

=maddog=
=maddog= (37.078 point)
public class Ungdomskonto extends Konto{
   
    private long grund;
    private boolean hasCashedBonus = false;
   
    public Ungdomskonto(String navn, long grund){
        super(navn);
        this.grund = grund;
    }
   
    public getGrund() { return grund; }
    public setGrund(long grund) { this.grund = grund; }
   
    public void indsæt(long value) {
        super.indsæt(long value);
        if (!hasCashedBonus&&(saldoen()>getGrund())) {
            // vor studieven har ikke fået gryn endnu
            // og hun har kontanter nok
            super.indsæt(saldoen()*0.05d);
            hasCashedBonus = true;
        }
    }
}

løser det ikke problemet? Denne vil opføre sig som Konto, men blot indsætte 5% af kontoen første gang saldoen er over grund.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Android - Bluetooth data

Oprettet den 21. september 2014 kl. 12.11
SandraNielsen giver 100 point for svar | Giv et svar »

Udvikle apps med NetBeans

Oprettet den 16. september 2014 kl. 03.22
heyn giver 30 point for svar | Giv et svar »

LinkedList opgave

Oprettet den 12. september 2014 kl. 23.24
frankedrengen giver 200 point for svar | Giv et svar »






Computerworld

Teaser billede

Her er de så: Alle anmeldelserne af Apples nye iPhone 6

Apples iPhone 6 er på vej ud i butikkerne, og nu offentliggøres anmeldelserne af den nye iPhone i en lind strøm. Få overblikket her.

CIO

Teaser billede

Kæmpe cloud-satsning hos DSB: Flytter data til SAP og Microsoft

DSB er i gang med at luge kraftigt ud i antallet af applikationer og modernisere hele it-miljøet. Det betyder blandt andet en satsning på cloud-services fra SAP og Microsoft.

Comon

Teaser billede

Nyt actionkamera filmer 360 grader rundt - film din hverdag a la Google StreetView

Med et lille frø-lignende kamera vil du inden længe for en lille penge kunne filme 360 rundt nøjagtigt som Googles StreetView-kamera. Sammen med virtual reality-brillen Oculus Rift kan kameraet...

Channelworld

Teaser billede

Kommune droppede iPads: De var for billige - og for besværlige

En klar pædagogisk strategi og hensynet til det eksisterende it-setup fik lærere og politikere i Nordfyn Kommune til at dumpe iPads, da der skulle købes tablet-computere til eleverne - også selv om...

White paper

Teaser billede

It-ledelse i trange tider

Læs her hvordan it-ledelsen kan skabe omkostningsbesparelser og optimere virksomhedens arbejdsgange.



Udgiver · © 2014 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger