CPP101 Hausaufgabe

Algorithmus, Baumdurchlauf, Compiler, Interpreter...; Cobol, Pascal, C/C++, Java & Co.
Antworten
Benutzeravatar
Viper
Forums-Profi
Forums-Profi
Beiträge: 174
Registriert: 04.11.07 13:30

Hallo zusammen,

ich bin hier total am verzweifeln.
Kann mir jemand sagen, warum das Programm immer abbricht?
Ich weiß, dass es noch nicht vollständig ist, aber normalerweise müsste es mir doch wenigstens die Werte ausgeben?
Bin C++ Einsteiger und momentan total ratlos.

#include <windows.h>
#include <iostream>
#include <cmath>

int main ()
{
int menge;
double preis;
double zEP;



double rabattbetrag = (zEP/100 *11);

double bruttowarenwert ;
double nettowarenwert;


double mehrwertsteuersatz = 1/100 * 16;

using namespace std;

cout << "Geben Sie die Menge ein :"; cin >> menge;
cout << "Geben Sie den Preis ein = "; cin >> preis;
cout << "Nettowarenwert =" << zEP; zEP = menge * preis;

cout <<"Sie erhalten einen Rabatt in Höhe von =" << rabattbetrag; if (rabattbetrag = zEP/100*11);

if (menge < 180) bruttowarenwert = zEP + zEP*mehrwertsteuersatz;


mfg
Viper
Benutzeravatar
Chandini
Forums-Scout
Forums-Scout
Beiträge: 314
Registriert: 03.03.08 15:32
Wohnort: Feucht

Hi Viper

Du hast nach int main () die Klammer { zwar geöffnet, aber nicht mehr geschlossen.

Außerdem brauchst du noch den Rückgabewert.

Also am Schluss noch folgendes anhängen:

system("PAUSE");
return EXIT_SUCCESS;
}

Vor dem int main () brauchst du noch folgende Zeile:
using namespace std;

Damit kannst du dann die cout und cin Befehle verwenden.

Dann sollte es eigentlich funktionieren.

Nimmst du zum Programmieren Visual C++ von Microsoft? Bin mittlerweile auf den Dev-C++ umgestiegen. Der schreibt das nämlich automatisch rein, wenn man ein neues Projekt öffnet :D


Viele Grüße
Ines
Andere zu beherrschen, erfordert Kraft. Sich selbst zu beherrschen, erfordert Stärke.
Benutzeravatar
Viper
Forums-Profi
Forums-Profi
Beiträge: 174
Registriert: 04.11.07 13:30

Hallo Ines,

danke für Deine Hilfe ich werde das gleich probieren.
Ja ich nehme Dev C++, da die Programme in Visual C++ unter Vista 64 Bit auch nicht fehlerfrei laufen.

So wenigstens schließt er das Programm nun nicht mehr ;)
Aber wie kann ich die Ausgabe des Nettowarenwertes so definieren, dass z.B. 200,50€ ausgegeben werden?
Ich habe CPP101 nun mehrmals durchsucht aber leider nichts gefunden

Mfg
Melanie
Benutzeravatar
Chandini
Forums-Scout
Forums-Scout
Beiträge: 314
Registriert: 03.03.08 15:32
Wohnort: Feucht

Hi Melanie

Du berechnest den Nettowarenwert an der falschen Stelle:
cout << "Nettowarenwert =" << zEP; zEP = menge * preis;

Damit gibst du erst den Wert aus und berechnest ihn aber erst hinterher. Da kommt also im Prinzip nur Datenmüll raus.

Wenn man in C++ die Variablen nur deklariert, aber nicht initialisiert, dann haben die einfach irgendeinen Wert. Du gibst bei dir also eigentlich nur den Datenmüll aus.

Probiers mal so:
zEP = menge * preis;
cout << "Nettowarenwert =" << zEP;

Beim Rabattbetrag hast du das gleiche Problem:
double rabattbetrag = (zEP/100 *11);

Du initialisierst den Rabattbetrag mit dem errechneten Wert. Du weißt aber den Wert von zEP an der Stelle noch gar nicht. Du kannst den Rabattbetrag also erst berechnen, wenn du zEP berechnet hast.

Du musst also die Variable so initialisieren:
double rabattbetrag = 0.;

Und im Code nach der Berechnung von zEP fügst du ein:
rabattbetrag = (zEP/100 * 11);

Die Werte, die rauskommen, musst du dann noch auf zwei Nachkommastellen runden:
zEP = (int(zEP * 100 + 0.5)) / 100.;

Du nimmst den Wert zuerst mit 100 mal und addierst 0,5, damit auch richtig auf- bzw. abgerundet wird. Dann wandelst du den Datentyp in integer um, damit alle anderen Nachkommastellen abgeschnitten werden. Am Schluss teilst du es dann durch 100 und wandelst es damit wieder zurück in eine Nachkommazahl mit zwei Stellen.


Viele Grüße
Ines
Andere zu beherrschen, erfordert Kraft. Sich selbst zu beherrschen, erfordert Stärke.
Benutzeravatar
Viper
Forums-Profi
Forums-Profi
Beiträge: 174
Registriert: 04.11.07 13:30

Hi Ines,

super, Deine Antwort hat mir sehr geholfen.
Ich habe es mittlerweile (bis aufs Runden, was jetzt auch kein Problem mehr ist) hinbekommen :)

Vielen Dank.

Mfg
Melanie
Benutzeravatar
Chandini
Forums-Scout
Forums-Scout
Beiträge: 314
Registriert: 03.03.08 15:32
Wohnort: Feucht

Gern geschehen...
Viel Spaß noch damit :wink:
Andere zu beherrschen, erfordert Kraft. Sich selbst zu beherrschen, erfordert Stärke.
Timon
Forums-Scout
Forums-Scout
Beiträge: 319
Registriert: 09.03.08 08:40

Ich habe auch mal eine Frage zu dieser Hausaufgabe. Muss leider zugeben, dass ich Kostenrechnung überhaupt nicht drauf habe, da ich es nie wissentlich anwenden musste - bis jetzt :P

Bruttowarenwert: ist das Menge * Preis oder kommt da auch noch die Mehrwertsteuer hinzu?

Rabattbetrag: ((Menge * Preis)/100) *11?

Nettowarenwert: Ist das der Wert minus Brutto und minus Rabatt?

Mehrwertsteuerbetrag: (Brutto * 16)/116?

Rechnungssumme: was ist das?

Hoffentlich kann mir einer das alles erklären oder eine Webseite mit Erklärungen nennen ...

Ein (peinliches) Danke :roll:
B.Sc. Wirtschaftsinformatik
Benutzeravatar
Chandini
Forums-Scout
Forums-Scout
Beiträge: 314
Registriert: 03.03.08 15:32
Wohnort: Feucht

Hab damals auch nachfragen müssen. Hier die Antwort von Fr. Schröder (korrigiert die Aufgaben):

Menge * Preis = Bruttowarenwert
Bruttowarenwert - Erlösschmälerung (Rabatt) = Nettowarenwert
Nettowarenwert + MwSt = Rechnungssumme


Viele Grüße
Ines
Andere zu beherrschen, erfordert Kraft. Sich selbst zu beherrschen, erfordert Stärke.
Antworten