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
De 30 største danske it-virksomheder: Her er antallet af ansatte - og hvor mange penge, der bruges på løn
Top 100: Computerworld har nærstuderet årsregnskaberne fra 499 danske it- og televirksomheder og kan her bringe listen med de 30 største arbejdspladser. Se antallet af ansatte og få et indblik i, hvor mange penge virksomhederne bruger på løn til medarbejderne.
CIO
Du risikerer at blive hægtet helt af, hvis ikke dit netværk bliver fremtidssikret - og det haster
Klumme: Hver dag går mere 168,1 petabyte gennem netværket hos AT&T, hvilket svarer til 130 millioner timers video i HD. Det viser, hvor store krav der i dag stilles til en virksomheds netværk. Er du klar til det?
Comon
Oversigt: Her er de bedste Android-smartphones der kan købes i Danmark
Det vrimler med spændende Android-smartphones på markedet. Vi har samlet en oversigt over de bedste Android-telefoner, du kan købe herhjemme netop nu.
Job & Karriere
Se listen: Disse it-folk bliver ansat på stedet - cheferne skriger efter helt bestemte it-kompetencer
Der er en markant mangel på it-folk med helt bestemte kompetencer samtidig med, at it-cheferne er i gang med at øge bemandingen i it-organisationerne. Se listen med de mest efterspurgte it-kompetencer netop nu.
White paper
Undersøgelse: Digital succes kræver opgør med statisk it-infrastruktur - men det er ikke uden problemer
Det digitale kapløb er i fuld sving i erhvervslivet, og mange toneangivende virksomheder søger den nødvendige fleksibilitet ved at skifte til tredieparts-datacentre og hybrid cloud-infrastruktur. Det viser en stor undersøgelse blandt 752 europæiske virksomheder, som analysehuset IDC har foretaget for Interxion. Men flere virksomheder har samtidig betydelige bekymringer i forhold til stabilitet og sikkerhed i sådan en grad, at det hæmmer de digitale ambitioner. Læs i dette whitepaper om undersøgelsens resultater og nogle af svarene på de udfordringer, digitale virksomheder aktuelt står over for. 24 sider på engelsk.