tingna Nybegynder
26. februar 2003 - 20:14 Der er 16 kommentarer og
2 løsninger

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 !!!");
        }
    }
}
riversen Nybegynder
26. februar 2003 - 20:23 #1
public void tilskrivStudiebonus()
{
if( super.saldoen() > grundbeløb )
// tilskriv rente her
}
arne_v Ekspert
26. februar 2003 - 20:23 #2
Du kalder ikke rente metoden.
riversen Nybegynder
26. februar 2003 - 20:23 #3
evt. returner boolsk om der er tilskrevet rente eller ej hvis nødvendigt
riversen Nybegynder
26. februar 2003 - 20:24 #4
nå jeg har nok misforstået
tingna Nybegynder
26. februar 2003 - 20:55 #5
kan I uddybe det lidt? hvordan kalder jeg rentemetoden? og hvordan tilskriver jeg renten?
arne_v Ekspert
26. februar 2003 - 21:00 #6
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.
tingna Nybegynder
26. februar 2003 - 21:11 #7
Jamen, der er noget galt i selve metoden!!? hvordan tilskriver jeg renten?
arne_v Ekspert
26. februar 2003 - 21:36 #8
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.
arne_v Ekspert
26. februar 2003 - 21:37 #9
Giver den ikke det rigtige resultat ?
tingna Nybegynder
26. februar 2003 - 21:49 #10
Den siger: tjek(ok, "rente beregning"); Cannot resolve symbol. Mangler der ikke noget i String toString? Eller i rentemetoden?
arne_v Ekspert
26. februar 2003 - 21:51 #11
Hvor har du sat den ind henne ?

Den skal sætte sind i main sammen med alle de andre kald !
tingna Nybegynder
26. februar 2003 - 21:55 #12
/**
* @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 !!!");
        }
    }
}
arne_v Ekspert
26. februar 2003 - 21:59 #13
On den compiler ikke ?
tingna Nybegynder
26. februar 2003 - 22:01 #14
nej desværre!
tingna Nybegynder
26. februar 2003 - 22:04 #15
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 + ")";
        }
arne_v Ekspert
26. februar 2003 - 22:15 #16
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 !
arne_v Ekspert
26. februar 2003 - 22:15 #17
(du har allerede selv fået rettet getbonus til getBonus)
=maddog= Nybegynder
27. februar 2003 - 06:43 #18
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.
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

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





Computerworld
Advarsel til Gmail-brugerne: Lumsk phishing-mail på spil netop nu - sådan spotter du den
Gmail-brugerne skal være på vagt: It-kriminelle forsøger sig i øjeblikket med en udspekuleret phishing-mail. Se her, hvordan du spotter fupnummeret.
CIO
Coop på jagt efter afløser til den 49 år gamle mainframe: "Systemet er ikke længere tilstrækkeligt til vores vision for Coop"
Coop Danmark er i gang med en støre digitalisering af hele forretningen, og det kommer ikke til at gå stille for sig i 2017. Blandt andet skal Coop have fundet en erstatning for den 49 år gamle mainframe.
Comon
Undgå passwordet: Smart tilbehør til at låse og åbne din computer med Windows Hello
Windows Hello kan mere end blot låse din computer op med dit ansigt. Der findes en lang række muligheder af tilbehør, som kan være med til at sikre din computer mod indtrængere. Se fem af dem her.
Channelworld
Ny EG-direktør har en plan: Sådan skal EG vokse sig større og endnu mere profitabel
Interview: Mikkel Bardram er ny administrerende direktør i EG. Selvom EG nu har 2.000 ansatte og en omsætning på 1,8 milliarder kroner, er der potentiale for endnu mere, mener den nye direktør.
White paper
Telefoni i skyen - få mere ud af Office 365
Dette whitepaper sætter fokus på, hvordan I kan komme godt i gang med cloud-telefoni via O365, samt udnytte de nye kommunikationsmuligheder optimalt.