ist das so richtig???
-
// konsum.cpp: Hauptprojektdatei. //***********************************************// // konsum.cpp : Berechnung der Rückzahlung // // eines Konsumentenkredits // //-----------------------------------------------// // Projekt : Praktikumsaufgabe 1 // // Autorinnen : Jacqueline Sternberg und // // Jennifer Warmulla // // Version : 1.0 // // Datum : 29.10.2010, // // letzte Aenderung am : 8.11.2010// // Kurzbeschreibung: // // ----------------- // // Berechnung der Rückzahlung eines Konsumenten- // // kredites. Die Berechnung läuft in einer // // Schleife ab und endet bei Return-Eingabe. // // Compiler : MS Visual Studio - C++ // //***********************************************// //Einfügen benötigter Programmdateien //=================================== #include "stdafx.h" #include <stdio.h> //C-Standard-I/O-Bibliothek #include <math.h> //C Mathe-Bibliothek #include "vsconio.h" //Borland spezifische I/O-Bibliothek int main() { //Variablenvereinbarung //===================== double Kbedarf, k; //Var für Kreditbetrag double nz; //Var für Nominalzins double zf; //Zinsfaktor pro Monat double rmin, r; //Var für monatliche Rate double z; //Var für Zinsen double rest; //Var für Restschuld double tilg; //Var für Tilgung double monat; //Var für Ratennr double zbetrag; //Var für Zinsbetrag double zk; double effektivz; double i, h, f; //Hilfsvariable int x,y, a, b, l; //Var für wherex und wherey int zeichen; //Variable für Entereingabe char dummy [81]; //Programmanweisungen //=================== do { clrscr(); //Bildschirm löschen monat = 0; printf("Bankhaus Kauf & Rausch -> Berechnung von" "Konsumentenkrediten J.S. & J.W.\n" "*****************************************" "**************************************\n\n\n" "Kreditbedarf [500..10T] : "); scanf("%lf", &Kbedarf); //Kreditbedarf wird erzeugt k =((int)Kbedarf+99) / 100*100; //Kredtibedarf wird auf nächsten 100er gerundet if(Kbedarf < 500.00) k = 500.0; //Kreditlimit wird eingeschränkt else if(Kbedarf > 10000) k = 10000.0; printf("Kreditbetrag [Euro] : %.0lf \n" "Nominalzinsen [%%] : ",k); scanf("%lf", &nz); if( nz >= 100 ) nz = 100; zf = 1 + (nz/100/12); //dient zur Berechnung der monatlichen Mindestraten rmin = k * pow(zf,60.0) * ((zf-1)/(pow(zf,60.0)-1)); //Die monatliche Mindestrate wird berechnet// printf("monatl. Rate [R > %5.2lf Euro] : ",rmin); a = wherex(); b = wherey(); //Cursorposition merken scanf("%lf", &r); gets(dummy); if( r < rmin ) { r = rmin; gotoxy(a,b); //Der eingegebene Wert r wird gelöscht und printf("%.2lf",r); //durch rmin ersetzt wenn dieser größer r ist } printf("\n\nRatenNr Zinsen Tilgung Restschulden\n" "-------------------------------------------\n"); x = wherex(); y = wherey(); //Cursorposition merken rest = k; for ( h = 0; h != 6; h = rest + (2*3) ) { z = rest * (30.0/360.0) * (nz/100.0); //Zinsberechnung zbetrag = zbetrag + z; //Summe der Zinsen erzeugen if( (r-z) >= rest ) tilg = rest; //Tilgung = Restbetrag, damit der else tilg = r - z; //Restbetrag nicht negativ wird rest = rest - tilg; //Restbetrag berechnen if( rest <= 0.01 ) rest = 0; printf(" %3.0lf %8.2lf %8.2lf %12.2lf\n" , ++monat, z, tilg, rest); //Ausgabe der monatlichen Zahlungen if( monat == 1 ) effektivz = z/rest *12 *100; //Effektivzinsberechnung if( monat == 12 || monat == 24 || monat == 36 || monat == 48 ) { printf("weiter [Return] ->"); gets(dummy); gotoxy(x, y); } }//for-Schleife zk = zbetrag/k * 100; //Zinsen/Kredit berechnen gotoxy(x + 45,y); //Cursor in Spalte(x+45) & Zeile y setzen printf("Gesamtuebersicht\n"); gotoxy(x + 45,y+1); //Cursor in Spalte(x+45) & Zeile(y+1) setzen printf("------------------------------\n"); gotoxy(x + 45,y+2); //Cursor in Spalte(x+45) & Zeile(y+2) setzen printf("Kreditbetrag [Euro] : %5.2lf\n",k); gotoxy(x + 45,y+3); //Cursor in Spalte(x+45) & Zeile(y+3) setzen printf("Zinsbetrag [Euro] : %3.2lf\n",zbetrag); gotoxy(x + 45,y+4); //Cursor in Spalte(x+45) & Zeile(y+4) setzen printf("Zinsen/Kredit [%%] : %3.2lf\n",zk); gotoxy(x + 45,y+5); //Cursor in Spalte(x+45) & Zeile(y+5) setzen printf("Effektivzins [%%] : %2.2lf\n",effektivz); gotoxy(x + 45,y+6); //Cursor in Spalte(x+45) & Zeile(y+6) setzen printf("Laufzeit [Monate] : %2.0lf",monat); gotoxy(x ,y+11); printf("\nNeue Berechnung [Return] ->"); } while(( zeichen=getchar() ) == '\n'); gets(dummy); return 0; }//main(void)
-
lizzty schrieb:
#include "stdafx.h"
Was ist denn das?
-
Und wenn du auch noch sagst, was das Problem mit deinem Code ist, könnte man vielleicht eine Antwort geben. Gehe bitte davon aus, dass hier nicht jeder deinen Code durch den Compiler schickt.
-
lizzty schrieb:
// Compiler : MS Visual Studio - C++ //
Warum ist das eigentlich im C-Forum?
-
mngbd schrieb:
lizzty schrieb:
// Compiler : MS Visual Studio - C++ //
Warum ist das eigentlich im C-Forum?
Weil sie ausschließlich C verwendet?
-
HighLigerBiMBam schrieb:
mngbd schrieb:
lizzty schrieb:
// Compiler : MS Visual Studio - C++ //
Warum ist das eigentlich im C-Forum?
Weil sie ausschließlich C verwendet?
naja aber gespickt mit windows spezifischen sachen ists schon..
-
Nachdem wir im Forum schon einige Threads hatten, finde ich es zweifelhaft, dass double für die Berechnung von Geldbeträgen verwendet wird. Wenn die ersten Kunden wegen falsch berechneten Beträgen anklopfen wird es interessant.
-
HighLigerBiMBam schrieb:
Nachdem wir im Forum schon einige Threads hatten, finde ich es zweifelhaft, dass double für die Berechnung von Geldbeträgen verwendet wird. Wenn die ersten Kunden wegen falsch berechneten Beträgen anklopfen wird es interessant.
daran hab ich grad gar nicht gedacht
-
Wenn es um Anwendungen geht die mit heiklen Daten rechnen, sollte das nicht passieren:
char dummy [81];
gets(dummy);Ich weiss nicht was passiert wenn man mehr als 80 char eingibt, aber ich kanns mir vorstellen, dass geübte Finger das Resultat verändern können...