Bitte um Hilfe, habe nur noch 4 Tage Zeit

Viperextrem

Grünschnabel
Hallo!

Ich muß ein Programm abgeben( einen Tilgungsplan der schon geschrieben ist), den ich erweitern soll mit GUI, so das ich Summe, Prozentsatz und Laufzeit darüber eingebe, es berechnet wird, und über einer Textarea ausgegeben wird.

Ich komme einfach nicht weiter....sitze von Tag bis Nacht dran, und es klappt nicht.

Danke für evtl. Hilfe.....

Mit freundlichen Grüßen
Viperextrem
 
Hallo!

Hier mal ein kleines Beispeil:

Wir behandeln eine spezielle Form der Tilgung nämlich die der Annuitätentilgung. Annuitäten sind Konstante jährliche Velastungsbeträge die einen Tilgungs- und Zinsanteil beinhalten wobei die Tilgungsanteile mit der Zeit immer größer und die Zins anteile immer kleiner werden.

Eingaben: Start Kapital, Zinssatz, Laufzeit
Ausgabe: Annuität, Tilgungsplan

Es werden keinerlei gültigkeitsprüfungen für die Eingegebenen Werte durchgeführt, d.h. das solltest du noch selbst machen... Stichwort (InputVerifier)

Normalerweise sollte man in echten Anwendungen keine Primitiven Typen (double etc.) für Monetäre Berechnungen verwenden sondern eher Typen mit garantierter Genaugkeit (BigDecimal, etc.)

Code:
/*
 * Created on 09.01.2005@15:28:11
 *
 * TODO Licence info
 */
package de.tutorials;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 * @author Administrator
 * 
 * TODO Explain me...
 */
public class TilgungsRechnung extends JFrame {

	private JButton btnCalc;

	private JTextArea txtResults;

	private JTextField txtInterestRate, txtSeedCapital, txtMaturity,
			txtAnnuity;

	private JLabel lblInterestRate, lblSeedCaptial, lblMaturity, lblAnnuity;

	public TilgungsRechnung() {
		super("TilgungsRechnung");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		JPanel controlPanel = new JPanel(new GridLayout(4, 2));
		lblSeedCaptial = new JLabel("Startkaptial: ");
		txtSeedCapital = new JTextField(10);

		controlPanel.add(lblSeedCaptial);
		controlPanel.add(txtSeedCapital);

		lblInterestRate = new JLabel("Zinssatz: (%) ");
		txtInterestRate = new JTextField(6);

		controlPanel.add(lblInterestRate);
		controlPanel.add(txtInterestRate);

		lblMaturity = new JLabel("Laufzeit: (Jahre)");
		txtMaturity = new JTextField(4);

		controlPanel.add(lblMaturity);
		controlPanel.add(txtMaturity);

		lblAnnuity = new JLabel("Annuität");
		txtAnnuity = new JTextField(10);

		controlPanel.add(lblAnnuity);
		controlPanel.add(txtAnnuity);

		txtResults = new JTextArea(10, 50);

		btnCalc = new JButton("Berechne Tilgungsplan");
		btnCalc.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double interestRate = Double.valueOf(txtInterestRate.getText())
						.doubleValue();
				double seedCapital = Double.valueOf(txtSeedCapital.getText())
						.doubleValue();
				int maturity = Integer.valueOf(txtMaturity.getText())
						.intValue();

				double balance = seedCapital;

				double p = interestRate / 100.0D;
				double q = 1 + p;
				double n = maturity;

				double annuity = seedCapital * (Math.pow(q, n) * (q - 1))
						/ (Math.pow(q, n) - 1);

				DecimalFormat df = new DecimalFormat("#.00");

				txtAnnuity.setText(df.format(annuity));

				StringBuffer buffer = new StringBuffer();

				String header = "Jahr   Restschuld(Jahresanfang)    Zinsen   Tilgungsrate   Annuität\n\n";
				n = 0;
				while (n++ < maturity) {

					double interest = balance * p;
					buffer.append((int) n);
					buffer.append("  ");
					buffer.append(balance);
					buffer.append("  ");
					buffer.append(interest);
					buffer.append("  ");
					buffer.append(annuity - interest);
					buffer.append("  ");
					buffer.append(annuity);

					balance -= annuity;
					buffer.append('\n');
				}

				buffer.insert(0, header);
				txtResults.setText(buffer.toString());

			}
		});

		Container c = getContentPane();
		c.add(controlPanel, BorderLayout.CENTER);
		c.add(new JScrollPane(txtResults), BorderLayout.EAST);
		c.add(btnCalc, BorderLayout.SOUTH);

		pack();
		setVisible(true);
	}

	public static void main(String[] args) {
		new TilgungsRechnung();
	}
}

HTH,
Gruß Tom
 

Anhänge

  • tilgungsrechnung.jpg
    tilgungsrechnung.jpg
    19,5 KB · Aufrufe: 143
Hallo @Tom,

genau sowas soll ich schreiben...Danke für deine Hilfe!
Welches Buch empfiehlst Du, um Java zu lernen?
Hast Du dieses Prog selbst geschrieben?

MFG
Andreas
 
Zurück