S
Sticky
Gast
hallo Leute...
ich habe ein Programm in Java geschrieben womit man auf sehrrr primitive art eine
Bank bzw die eigenschaften einer bank darstellt. Konto eröffnen, löschen, überweisen, verzinsen,
eigenes kapital bei einer anderen bank anlegen und all so ein käse. Habe das ganze in zwei klassen
gestaltet. Eine Klasse Bank wo die ganzen methoden drinstehen und eine Klasse Konto die meine Schablone
für die Konten darstellt.
Jetzt soll ich einen eigenen datentyp entwickeln mit dem ich 24 vorkommastellen und 8 nachkommastellen
genau rechnen kann welcher aus drei long bestehn soll und euros, cents und microcents darstellen muss.
habe echt kein plan wie ich da rangehen soll nicht mal einen ansatz ??? :bahnhof:
Bin voll der anfänger was programmieren angeht.
Jemand ne Idee...
Klasse Konto
Klassse Bank
Diesen Datentyp brauche ich halt für die Guthaben. Da ich als Bank bis zu 10 bzw -10 Quadrillionen und meine Kundenkontostände bis zu 1 bzw -1 Trillionen Euro ünterstützen müssen..können.
ich habe ein Programm in Java geschrieben womit man auf sehrrr primitive art eine
Bank bzw die eigenschaften einer bank darstellt. Konto eröffnen, löschen, überweisen, verzinsen,
eigenes kapital bei einer anderen bank anlegen und all so ein käse. Habe das ganze in zwei klassen
gestaltet. Eine Klasse Bank wo die ganzen methoden drinstehen und eine Klasse Konto die meine Schablone
für die Konten darstellt.
Jetzt soll ich einen eigenen datentyp entwickeln mit dem ich 24 vorkommastellen und 8 nachkommastellen
genau rechnen kann welcher aus drei long bestehn soll und euros, cents und microcents darstellen muss.
habe echt kein plan wie ich da rangehen soll nicht mal einen ansatz ??? :bahnhof:
Bin voll der anfänger was programmieren angeht.
Jemand ne Idee...
Klasse Konto
Code:
package aufgabe2;
public class Konto {
int KontoNr;
String Vorname;
String Nachname;
double Gutschreiben;
double Kontostand;
Konto(int KontoNr, String Vorname, String Nachname, double Kontostand) {
this.KontoNr = KontoNr;
this.Vorname = Vorname;
this.Nachname = Nachname;
this.Kontostand = Kontostand;
}
}
Klassse Bank
Code:
package aufgabe2;
public class Bank {
static double bankGuthaben = 1000; // Unser Startbankgutgaben
static double cashguthaben;
static double barauszahlung;
static double banko4You;
static double kundenKapital;
static double Kapital;
static double Geld;
static Konto[] kundenKonto = new Konto[2000]; // Speicherplatz für 2000 Konten
static void createAccount(String Nachname, String Vorname, long Startbetrag) {
for (int i = 0; i < kundenKonto.length; i++) {
Konto k = new Konto(i, Nachname, Vorname, (Startbetrag - 5));
if (kundenKonto[i] == null) {
if(Startbetrag > 0){
kundenKonto[i] = k;
bankGuthaben += 5;
kundenKapital += (Startbetrag - 5);
Kapital = bankGuthaben + kundenKapital;
cashguthaben = Kapital;
}
break;
}
}
if (Startbetrag < 0)
System.out.println("Sie können nicht mit einem neg. Startbetrag ein Konto eröffnen");
}
static void deleteAccount(int k) {
if (kundenKonto[k]!= null && kundenKonto[k].Kontostand >= 10)
{
bankGuthaben += 10;
kundenKonto[k].Kontostand -= 10;
Kapital = bankGuthaben + kundenKapital - (kundenKonto[k].Kontostand);
kundenKapital -= kundenKonto[k].Kontostand;
cashguthaben = Kapital;
System.out.println("KontoNr: "+k+" wurde gelöscht und der Betrag "+ kundenKonto[k].Kontostand+" wurde bar an den Kunden ausgezahlt");
kundenKonto[k] = null;
} else
System.out.println("KontoNr: "+ k+" existiert nicht oder nicht ausreichend gedeckt");
}
static void depositCash(int k, long geld) {
if (kundenKonto[k] != null && geld > 0)
{
geld /= 100;
kundenKonto[k].Kontostand = kundenKonto[k].Kontostand + geld - 0.01;
bankGuthaben += 0.01;
kundenKapital += geld - 0.01;
Kapital = bankGuthaben + kundenKapital;
cashguthaben = Kapital;
}
if(kundenKonto[k] == null || geld<0)
System.out.println("Konto existiert nicht oder negativer Betrag");
}
static void drawCash(int k, long Geld) {
if (kundenKonto[k] != null & Geld > 0){
Geld /= 100;
barauszahlung = Geld;
kundenKonto[k].Kontostand = kundenKonto[k].Kontostand - (Geld + 0.05);
bankGuthaben += 0.05;
kundenKapital -= (Geld + 0.05);
Kapital = bankGuthaben + kundenKapital;
cashguthaben -= barauszahlung ;
}
if(kundenKonto[k] == null && Geld<0)
System.out.println("Es kann keine negativer Betrag ausgezahlt werden");
}
static void transfer(int Quellkonto, int Zielkonto, long geld) {
if (kundenKonto[Quellkonto] != null && kundenKonto[Zielkonto]!= null && geld >0){
geld/=100;
kundenKonto[Quellkonto].Kontostand -= (geld+0.33);
bankGuthaben +=0.33;
kundenKapital -= 0.33;
Kapital = bankGuthaben + kundenKapital;
kundenKonto[Zielkonto].Gutschreiben += geld;
cashguthaben = Kapital;
}
if (kundenKonto[Quellkonto] == null || kundenKonto[Zielkonto]== null || geld < 0)
System.out.println("Konto existiert nicht oder Betrag negativ");
}
static void balanceDay(){
double Zinsen;
double restbetrag = 0;
if (cashguthaben > 1000){
restbetrag = cashguthaben % 1000;
banko4You = (cashguthaben - restbetrag) *1.000115;
cashguthaben = restbetrag;
}
else if (banko4You >0){
banko4You *= 1.000115;
}
else
banko4You *= 1.000297;
while(cashguthaben < 0){
cashguthaben += 1000;
banko4You -= 1000;
}
for(int i = 0; i <kundenKonto.length; i++){
if(kundenKonto[i] != null && kundenKonto[i].Kontostand > 0)
{
Zinsen = kundenKonto[i].Kontostand * 0.00009;
kundenKonto[i].Kontostand += Zinsen;
kundenKonto[i].Kontostand += kundenKonto[i].Gutschreiben;
kundenKonto[i].Gutschreiben = 0;
bankGuthaben -=Zinsen;
kundenKapital += Zinsen;
Kapital = kundenKapital+bankGuthaben;
}
if(kundenKonto[i] != null && kundenKonto[i].Kontostand < 0)
{
Zinsen = kundenKonto[i].Kontostand * 0.00033;
kundenKonto[i].Kontostand -= (-Zinsen);
kundenKonto[i].Kontostand += kundenKonto[i].Gutschreiben;
kundenKonto[i].Gutschreiben = 0;
bankGuthaben +=Zinsen;
kundenKapital -= Zinsen;
Kapital = kundenKapital+bankGuthaben;
}
}
}
static void printAccount(int i) {
if (kundenKonto[i] == null)
System.out.println("Das Konto " + i + " existiert nicht");
else
System.out.println("KontoNr: " + kundenKonto[i].KontoNr + " "
+ kundenKonto[i].Vorname + " " + kundenKonto[i].Nachname + " "
+ kundenKonto[i].Kontostand + " €");
}
static void printBank() {
System.out.println("####################################");
System.out.println("balance: " + bankGuthaben + " €");
System.out.println("cstmcap: " + kundenKapital + " €");
System.out.println("capital: " +Kapital + " €");
System.out.println("deposit: " + banko4You + " €");
System.out.println("####################################");
}
public static void main(String[] args) {
createAccount("Peter", "Pan",25000);
createAccount("Hans", "Wurst", 12250);
createAccount("Willy", "Billy", 32250);
printAccount(0);
printAccount(1);
printAccount(2);
printBank();
transfer(1, 2, 30000);
printAccount(0);
printAccount(1);
printAccount(2);
printBank();
balanceDay();
printAccount(0);
printAccount(1);
printAccount(2);
printBank();
deleteAccount(2);
printAccount(2);
System.out.println(kundenKonto[5]);
createAccount("hesap", "yeni", 250);
printAccount(2);
createAccount("Mustermann", "Max", 1000 );
createAccount("Musterfrau", "Mia", 2000 );
balanceDay();
System.out.println(cashguthaben);
printAccount(0 );
printAccount(1 );
printBank();
drawCash(1, 200000);
System.out.println(cashguthaben);
printAccount(1 );
balanceDay();
System.out.println(cashguthaben);
printBank();
printAccount(1 );
transfer(0, 1, 2400 );
balanceDay();
printAccount( 0 );
printAccount( 1 );
printBank();
createAccount("Beispielfrau", "Bea", 23000 );
transfer( 2, 1, 500000 );
balanceDay();
printAccount( 0 );
printAccount( 1 );
printAccount(2 );
printBank();
depositCash( 1, 999999 );
drawCash( 2, 200000 );
balanceDay();
printAccount( 0 );
printAccount( 1 );
printAccount( 2 );
printBank();
deleteAccount( 1 );
deleteAccount(2 );
balanceDay();
printAccount( 0 );
printAccount( 1 );
printAccount( 2 );
printBank();
}
}
Diesen Datentyp brauche ich halt für die Guthaben. Da ich als Bank bis zu 10 bzw -10 Quadrillionen und meine Kundenkontostände bis zu 1 bzw -1 Trillionen Euro ünterstützen müssen..können.