SharpDevelop - Fallunterscheidung Bausparen

Ein herzliches hallo erstmal an alle (:
Im Infounterricht letztens hatten wir eine Aufgabe bekommen, bezüglich von SharpDevelop. Da wir noch nicht fertig wurden, sollen wir das vor der nächsten Stunde abgeben, sprich es ist Hausaufgabe. Von dem Zeug verstehe ich allerdings nur Bahnhof. Das einzige was ich hinbekomme ist das Design aber mehr i.wie nicht.
Die aufgabe lautet wie folgt:

Beim Bausparen erhalten Verheiratete für jährliche Sparbeträge (Einzahlungen) bis zu 800€ eine Prämie, Alleinstehende nur für Sparleistungen bis zur Hälfte dieses Betrages. Die Prämie beträgt 14% des Sparbetrages. Für jedes Kind wird die Prämie um je 2% erhöht.

–> Analysieren sie den mathematischen Hintergrund des Programms. Schreiben sie ein Programm, das nach Eingabe von Sparbetrag, Familienstand und Kinderanzahl die Bausparprämie ermittelt. Das Programm wird bewertet

a) Design - Eingaben erfolgen über RadioButton oder CheckBox, TextBox und ComboBox (Zahlen = KInderanzahl festlegen)

b) Quelltext - Die Obergrenzen der Sparbeträge sind im Falle einer Eingabe über 800€/400€ mit dem Sparbetrag gleichzusetzen. Arbeiten sie mit if-else-if Anweisungen und mit switch für die Berechnung der Prämie in Abhängigkeit von der Kinderanzahl.

Boahr, ich komm echt nicht klar mit der Aufgabe. Völlig überfordert :confused:
Ich hoffe ihr könnt mir weiter helfen. Ich wäre euch dafür echt wahnsinnig dankbar, schließlich geht es um meine Infonote (:

Ich hoffe, dass die Berechnung richtig ist :smile:

Na dann.

//*
Die Source
//*

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FileOperations
{
public enum FamilienStand
{
ledig,
verheiratet
}

#region Person Definition
class Person
{
public double Erziel = 0.00;

//Untersuchung
//–> Familienstand und Kinderanzahl die Bausparprämie ermittelt.
private string name;
public string Name
{
get { return name;}
set { name = value;}
}

private string vorname;

public string Vorname
{
get { return vorname; }
set { vorname = value; }
}

private FamilienStand status;

public FamilienStand Status
{
get { return status; }
set { status = value; }
}

private int kinderzahl;

public int Kinderzahl
{
get { return kinderzahl; }
set { kinderzahl = value; }
}

private Double einzahlung;
public double Einzahlung
{
get { return einzahlung; }
set {
einzahlung = value;
BerechnenDenErzielenPrämieBetrag();
}
}

public void BerechnenDenErzielenPrämieBetrag()
{
double Berechnungsbetrag = einzahlung;
double DadurchErhöhteMaximalPrämie = 14;

if (status == FamilienStand.ledig)
{
// Für alleinstehende ist so oder so nur eine Einzahlung bis 400€ Maximale
if (einzahlung > 400.00)
{
Console.WriteLine(„Er bekommt eine Prämie höchst 14% von seiner Einzahlung (maximal {0:00.00 EUR}“, 400.00);
Berechnungsbetrag = 400.00;
}
}
else
// Er ist verheiratet (Kindr???)
{
double MaximalEinzahlungsbetrag = 800.00;

// 800/ 100 = 8
// 2% von 800 = 16
DadurchErhöhteMaximalPrämie = 14 + (2 * kinderzahl);
// wenn er keine Kinder hat, dann hat er sowieso 14%
//:smile: OK!!!
if (einzahlung > MaximalEinzahlungsbetrag)
{
Console.WriteLine(„Prämie höchst {1}% von seiner Einzahlung (maximal {0:00.00 EUR}“, 800.00, DadurchErhöhteMaximalPrämie);
Berechnungsbetrag = MaximalEinzahlungsbetrag;
// Also maximal kann er nur 800.00€ einzahlen
// oder wird nur 800€ angerechnet
}

}
//Nun wird berechnet
Erziel = DadurchErhöhteMaximalPrämie * (Berechnungsbetrag / 100);
}
}
#endregion

// Beim Bausparen erhalten Verheiratete für jährliche Sparbeträge (Einzahlungen) bis zu 800€ eine Prämie, Alleinstehende nur für Sparleistungen bis zur Hälfte dieses Betrages. Die Prämie beträgt 14% des Sparbetrages. Für jedes Kind wird die Prämie um je 2% erhöht.

//–> Analysieren sie den mathematischen Hintergrund des Programms.
//–> Schreiben sie ein Programm, das nach Eingabe von Sparbetrag,
// Das Haupprogramm
class Program
{
static void Main(string[] args)
{
string Eingabe;

Person Er = new Person();

BEGIN:
Console.WriteLine(„Bitte geben Sie die Eckdaten der Person ein“);

Console.Write (" Name : „) ; Er.Name = Console.ReadLine();
Console.Write (“ VorName : „) ; Er.Vorname = Console.ReadLine();
Console.WriteLine (“ Familienstand (0 = ledig) / (1 = verheiratet) ");

int WiederholungZähler = 0;
Wiederholung:
Console.Write (" Familienstand : ") ; string c = Console.ReadLine();
switch ©
{
case „0“:
Er.Status = FamilienStand.ledig;
break;
case „1“:
Er.Status = FamilienStand.verheiratet;
break;
default:
if (WiederholungZähler == 3) {goto ENDE;}
WiederholungZähler++;

goto Wiederholung;
}

Console.Write(" Kind(er) : ") ; Eingabe = Console.ReadLine();
Er.Kinderzahl = int.Parse(Eingabe);

Console.Write(" Einzahlung : "); Eingabe = Console.ReadLine();
Er.Einzahlung = Convert.ToDouble(Eingabe);

Console.WriteLine( " Erziele Prämie = {0:00.00 EUR}", Er.Erziel);
Console.WriteLine("");
Console.WriteLine(„Wollen Sie noch ein Mal“);
Eingabe = Console.ReadLine();
if (
(Eingabe.StartsWith(„J“)) ||
(Eingabe.StartsWith(„j“))
)
{
Console.Clear();
goto BEGIN;
}
ENDE:
Console.WriteLine(„Aufwiedersehen“);
}
}
}

Hallo,

die Berechnung von dem Zeugs ist gar nicht so schwer, nur ein bißchen Prozentrechnung.

Hier mal eine Beispiellösung ohne Oberfläche für die Prämienberechnung:

private const double MAX_AMOUNT_MARRIED = 800.0;
private const double MAX_AMOUNT_SINGLE = MAX_AMOUNT_MARRIED / 2;
private const double BONUS_RATE = 0.14;
private const double ADDITIONAL_BONUS_PER_CHILD = 0.02;

///
/// Berechnung einer Bausparpraemie
///
/// Der Sparbetrag als Ausgangswert
/// Der Familienstand des Kunden
/// Die Anzahl der Kinder
/// Die berechnete Bausparpraemie
private double calcBonus(double savedValue, bool isMarried, int numChildren)
{
if ((!isMarried) && (savedValue > MAX_AMOUNT_SINGLE))
{
savedValue = MAX_AMOUNT_SINGLE;
}
else if ((isMarried) && (savedValue > MAX_AMOUNT_MARRIED))
{
savedValue = MAX_AMOUNT_MARRIED;
}

double rate = BONUS_RATE;

if (numChildren > 0)
{
rate += (numChildren * ADDITIONAL_BONUS_PER_CHILD);
}

return (savedValue * rate);
}

Hoffe, das hilft dir weiter.

Viele Grüße!