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 Guru
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 Guru
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 Guru
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 Guru
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 Guru
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 Guru
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 Guru
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 Guru
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
Dansk sikkerhedsfirma slår alarm: "Jeg har fundet et atomkraftværk, hvor man kunne hæve strålingsniveauet og et fængsel, hvor fængselsdørene kan åbnes fra en server"
Dansk sikkerhedsfirma finder hidtil ukendt fejl, der kan udløse en katastrofe, hvis data havner i de forkerte hænder. Men der findes en løsning.
CIO
It-sikkerhed skal tænkes helt om: Det forkromede overblik er en mangelvare
Klumme: It-sikkerhed og bekæmpelse af cybercrime er kommet øverst på to-do-listen på direktionsgangene. Men hvis virksomhederne for alvor skal forstærke det digitale forsvarsværk, skal sikkerhedsbranchen se anderledes på it-løsningerne.
Comon
25.000 danskere gået i kuponsvindel-fælde på Facebook på blot seks timer: "Det spredte sig som en steppebrand"
Fakta, Netto, Aldi, Lidl, Lego og flere andre varemærker bliver lige nu udnyttet i forbindelse med kuponsvindel på Facebook, og danskerne klikker i hobetal. Læs hvad der sker, hvis du klikker.
Channelworld
Dansk hosting-direktør: På disse tre områder banker danske hosting-firmaer Microsoft og Amazon af banen
Den danske hostingbranche er godt polstret til at modstå konkurrencen fra globale cloud-spillere som Amazon og Microsoft. Her er tre grunde til, at danske hostingudbydere ikke blæser omkuld i konkurrencen.
White paper
Støt produktiviteten med virtuelt samarbejde
Virtuelle samarbejdsløsninger kan være med til at øge produktivitet og samarbejde internt i virksomheden og eksternt med kunder og samarbejdspartnere. Bliv klogere på collaboration i dette White paper, skrevet af Computerworld.