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

tingna
tingna (21.705 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.306 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.076.944 point)
Du kalder ikke rente metoden.

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

riversen
riversen (62.306 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.306 point)
blog.riversen.dk/
nå jeg har nok misforstået

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

tingna
tingna (21.705 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.076.944 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.705 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.076.944 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.076.944 point)
Giver den ikke det rigtige resultat ?

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

tingna
tingna (21.705 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.076.944 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.705 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.076.944 point)
On den compiler ikke ?

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

tingna
tingna (21.705 point)
nej desværre!

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

tingna
tingna (21.705 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.076.944 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.076.944 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.268 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

Tvinge program til at benytte java 7.x når java 8 også er...

Oprettet den 29. oktober 2014 kl. 15.52
peterkrog giver 200 point for svar | Giv et svar »

Tvinge program til at benytte java 7.x når java 8 også er...

Oprettet den 29. oktober 2014 kl. 15.39
peterkrog giver 200 point for svar | Giv et svar »

Captcha jsp

Oprettet den 28. oktober 2014 kl. 11.35
Rashid1403 giver 30 point for svar | Giv et svar »

Seneste guides

Find ejeren af et vilkårligt domæne
Undgå reklamerne på iPad
Opret BOOTBAR USB pen ...





Computerworld

Teaser billede

Da Google overskred min grænse

Jeg accepterer betingelser på et splitsekund, deler personlige data på Facebook uden at se mig tilbage og forfølges gerne af reklamer. Men jeg har fundet min grænse. Den hedder Google Glass - og...

CIO

Teaser billede

Gode jobsøgningsråd: Skriv en ansøgning, der får dig til jobsamtale

En ekspert giver seks gode råd til, hvordan du skriver den perfekte ansøgning.

Comon

Teaser billede

Test: Mini-computer fra Gigabyte har overraskende meget kraft

Gigabyte's Brix Pro (GB-BXi7-4770R) har overraskende meget kraft i så lille et chassis, men størrelsen giver også problemer.

Channelworld

Teaser billede

Dansk it-direktør frikendt i kæmpesag om momssvindel - lang næse til Skat

Dansk it-direktør frikendt i en af de seneste 10 års største sager om momssvindel herhjemme. Skat havde forlangt 144 millioner kroner, men får nu en lang næse.

White paper

Teaser billede

Spar med en moderniseringsplan

BluePhoenix tilbyder et 'Modernization Roadmap Study', som viser præcist hvilken it, der bør moderniseres, og hvor mange penge du kan spare.



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