| Startseite | Tagebuch | Bücher | Impressum | ||
![]() |
![]() ![]() |
![]() |
|||
Anbei der Quellcode zur praktischen Klausuraufgabe im Fach Anwendungsentwicklung.
Diesmal ohne vorkompilierte *.EXE-Datei.
/*
Programm zur Anlageberechnung.
Klausur im Lernbereich Anwendungsentwicklung
am 23.09.2005
*/
// Inkludieren der Headerdateien
#include<conio .h>
#include<iostream .h>
#include<iomanip .h>
// Aufrufen der Hauptfunktion
int main() {
// Variablendeklaration fuer Tage, Kapital, Zinsen und der Prozente
int ianlagetage;
float fanlagekapital, fprozente, fzinsen;
// Begruessung und Eingabe der Werte fuer Kapital und anzulegende Tage
cout< <"A n l a g e b e r e c h n u n g\n";
cout<<"-------------------------------\n\n";
cout<<"Geben Sie bitte den anzulegenden Geldbetrag ein: ";
cin>>fanlagekapital;
cout< <"\nGeben Sie bitte die gewuenschte Anlagedauer in Tagen ein: ";
cin>>ianlagetage;
// Berechnung des Ganzen
// Ueberpruefung, ob Werte im Rahmen liegen
if ( (fanlagekapital >= 1) && ((ianlagetage == 30) | (ianlagetage == 60) | (ianlagetage == 90)) ) {
// Unterscheidung zwischen den beiden Anlagekapitalgroessen
if (fanlagekapital < 100000) {
// Entsprechende Verteilung der Prozente
switch (ianlagetage) {
case 30: fprozente = 3.25;
break;
case 60: fprozente = 3.3;
break;
case 90: fprozente = 3.35;
break;
default: fprozente = 0;
}
} else {
// Entsprechende Verteilung der Prozente
switch (ianlagetage) {
case 30: fprozente = 3.3;
break;
case 60: fprozente = 3.35;
break;
case 90: fprozente = 3.5;
break;
default: fprozente = 0;
}
}
// Berechnung der anfallenden Zinsen fuer angegebene Anlagetage
fzinsen = fanlagekapital * fprozente * ianlagetage / 360 / 100;
// Verkuerzung der Nachkommastellen
cout.setf(ios::fixed);
cout.precision(2);
// Ausgabe der Rechnung und anschliessendes Beenden des Programms
cout<<"Die Zinsen betragen bei dieser Anlage: "<<fzinsen<<" EUR"<<endl;
} else {
// Falls Rahmenwerte nicht eingehalten wurden, Ausgabe einer Fehlermeldung und Beenden des Programms
cout<<"Anlagedauer von "<<ianlagetage<<" Tagen bei "<<fanlagekapital<<" EUR leider nicht moeglich."<<endl;
}
getch();
return 0; // Gibt den Wert 0 an das OS zurueck um ein makelloses Beenden zu gewaehrleisten
}
cout ist ein Objekt aus der Datei iostream.h
getch ist ein Objekt aus der conio.h
Funktionsaufruf mit void sagt an, dass es keinen Rückgabewert bei dieser Funktion gibt.
Wird die Funktion mit int aufgerufen, so gibt es einen ganzzahligen Rückgabewert, dieser lautet bei einfachen Funktionen meist return 0; (am Ende der Funktion).
Man sollte sich beim Programmieren an die ungarische Namenskonvention bei Variablen bezüglich deren Datentypen halten.
Quellcodedateien: *.cpp
Ergebnis der Kompilierung: *.obj
Headerdateien werden beim Kompilieren mit einbezogen (*.h)
Die *.obj-Dateien werden durch den Linker im Linkingprozess verknüpft mit den Bibliotheken (*.lib)
Variablen nicht länger als 255 Zeichen und keine Ziffer zu Beginn.
Mathematische Operatoren in C-PlusPlus + – / * %
Elementare Datentypen: int (2^16), char (2^8), float (2^32), double (2^64).
Variablen lassen sich statt mit izahl = izahl +1; auch bequemer und kürzer inkrementieren.
Man unterscheidet hierbei zwischen der postfixen und der präfixen Inkrementierung.
Postfix: izahl++;
Präfix: ++izahl;
Beide liefern prinzipiell das selbe Ergebnis, die Variable izahl wird um einen erhöht, jedoch liegt der Pudel im Detail.
Denn diese beiden Rechnungen liefern unterschiedliche Ergebnisse:
izahl = 2;
iergebnis = 3 * izahl++;
Die Variable iergebnis enthält den Wert 6.
izahl = 2;
iergebnis = 3 * ++izahl;
Die Variable iergebnis enthält den Wert 9.
An diesem Beispiel erkennt man leicht den Unterschied zwischen dem postfixen und präfixen inkrementieren von Zahlenwerten.
Aufgabenstellung:
Es ist ein Programm zu erstellen, mit dem man mit der kaufmännischen Zinsformel unter Berücksichtigung von Zinseszinsen das Endkapital nach einer vom Benutzer einzugebenden Laufzeit berechnen kann. Am Ende eines Jahres werden die Zinsen dem jeweiligen Kapital zugeschlagen. Der sich daraus ergebende Betrag wird dann im nächsten Jahr verzinst usw…
Quelltext:
//includes:
#include<conio .h>
#include<iostream .h>
int main()
{
// Variablendeklarationen
int kapital, laufzeit, n;
float zinssatz, zinssumme=0, zinsen;
// Hallo und Eingabe:
cout< <"Guten Tag! Herzlich willkommen bei Ihrer persoenlichen Zinsberechnung.\n";
cout<<"______________________________________________________________________\n\n";
cout<<"Bitte geben Sie die anzulegende Summe ein: ";
cin>>kapital;
cout< <"\nBitte geben Sie die angepeilte Laufzeit an: ";
cin>>laufzeit;
cout< <"\nWie hoch ist der Zinssatz (Angabe bitte in Prozent)? ";
cin>>zinssatz;
// Berechnung
if ( (laufzeit >= 1) && (kapital >= 1) && (zinssatz > 1) ) {
for (n=1; n< =laufzeit; n++) {
zinsen = kapital * zinssatz / 100;
zinssumme = zinssumme + zinsen;
kapital = kapital + zinssumme;
}
// Ausgabe
cout<<"\n====================================================================\n\n";
cout<<"Nach "<<laufzeit<<" Jahr(en) haben Sie "<<zinssumme<<" EUR angespart,\nund erhalten somit "<<kapital<<" EUR ausgezahlt.";
} else {
cout<<"\n\nMit den angegebenen Werte kann keine\nsinnvolle Zinsberechnung durchgefuehrt werden.\nBitte korrigieren Sie Ihre Eingaben."<<endl;
}
getch();
return 0;
}
Und das Programm als kompilierte *.EXE-Datei zum Download.
Manipulatoren über die Headerdatei #include <iomanip .h></iomanip> einbinden.
cout.setf(ios:fixed); Dezimalpunkt verwenden
cout.precision(2) Angabe der Nachkommastellen
In C++ darf nur Integer (int) als Datentyp benutzt werden.
Aufgabenstellung:
Ein Händler gewährt seinen Kunden einen Treuerabatt. Hierfür hat er alle Kunden in Kategorien eingeteilt und gewährt Rabatte.
Das Problem ist auch mit einer Schachtelung mehrerer Auswahlstrukturen lösbar. Bei sehr vielen Alternativen wird die mehrseitige Auswahl jedoch schnell unübersichtlich. Deshalb wird man in solchen Fällen als Kontrollstruktur die Fallunterscheidung verwenden.
Quelltext:
//includes:
#include<conio .h>
#include<iostream .h>
// Programm zur Fallunterscheidung
int main()
{
// Variablendeklarationen
int anzahl, kategorie;
float nettoeinzelpreis, nettopreis, gesamtpreis, rabatt, rabattstufe;
// Zum Programmstart notwendige Eingaben
cout< <"Programm zur Berechnung der Transportpauschale\n";
cout<<"______________________________________________\n\n";
cout<<"\nBitte geben Sie die Anzahl der bestellten Maeuse ein: ";
cin>>anzahl;
cout< <"\nBitte geben Sie den Nettopreis pro Maus an: ";
cin>>nettoeinzelpreis;
cout< <"\nBitte geben Sie die Kundenkategorie an: ";
cin>>kategorie;
// Pruefung ob mehr als keine Maeuse bestellt wurden.
if (anzahl < = 0) {
cout<<"Keine Maeuse zu bestellen macht keinen Sinn!\n";
} else {
// Kategoriepruefung
switch (kategorie) {
case 1: rabattstufe = 10;
break;
case 2: rabattstufe = 12;
break;
case 3: rabattstufe = 15;
break;
case 4: rabattstufe = 20;
break;
case 5: rabattstufe = 30;
break;
default: rabattstufe = 0;
}
// Reine Preisberechnung
nettopreis=(anzahl * nettoeinzelpreis);
// Berechnung des endgueltigen Gesamtpreises
// Rabatt abziehen
rabatt = nettopreis * (rabattstufe/100);
nettopreis = nettopreis - rabatt;
// Mwst. aufschlagen
gesamtpreis = nettopreis + (nettopreis * 0.16);
// Ausgabe
cout<<"\nSie haben "<<anzahl<<" Maeuse zu je "<<nettoeinzelpreis<<" EUR bestellt.";
cout<<"\nDas macht VOR Abzug des Rabatts "<<nettopreis+rabatt<<" EUR.";
cout<<"\nSie erhalten "<<rabattstufe<<"% bzw. "<<rabatt<<" EUR Rabatt.";
cout<<"\n\nDer Nettobetrag ist "<<nettopreis<<" EUR";
cout<<"\n\nGesamt inkl. 16% Mwst. ist zu zahlen: "<<gesamtpreis<<" EUR\n";
cout<<"==================================================="<<endl;
}
getch();
return 0;
}
Und das Programm als kompilierte *.EXE-Datei zum Download.