000
11.12.2017, 13:32 Uhr
Melero
|
Hallo zusammen,
ich bringe mir gerade aus reinem Interesse C++ bei (seit etwa 2 wochen), man möge mir also große Unwissenheiten nachsehen.
Ich versuche mir dann immer selber Aufgaben auszudenken, mit den verschiedenen Dingen, die ich so neu lerne. Also, ich find einfach den Fehler nicht, er spuckt mir bei der Abfrage, nach der Art der Kosten die Zeile 2mal hinterheinander aus und ich begreif nicht warum. Vielleicht hat jemand Lust mal drüber zu schauen und mich an seiner Weisheit teilhaben zu lassen. Vielen Dank.
C++: |
#include <iostream> #include <iomanip> #include <vector> #include <string>
using namespace std;
double sekundenkosten(const double &k, const int &t = 31536000) { double kostenfaktor; kostenfaktor = k / t; return kostenfaktor; }
int main() {
vector<double> insgesamtKosten; double eingabe= 0.00, kostenfaktor =0.00; string weiter, def; do { cout << "Kostenpunkt eingeben (j/n): "; getline(cin, def); }while (def !="j" && def !="n");
while(def == "j") { cout <<"Betrag: "; cin >> eingabe; do{ cout << "Sind: " << eingabe <<" monatliche(m), Jaehrliche(j)"; //das erscheint 2mal??? cout << ", oder Taegliche Kosten(t)"; getline(cin,weiter); }while(weiter != "m" && weiter != "j" && weiter != "t"); if(weiter == "m"){ eingabe *= 12; kostenfaktor = sekundenkosten(eingabe); insgesamtKosten.push_back(kostenfaktor); }
else if(weiter == "t"){ eingabe *=365.25; kostenfaktor = sekundenkosten(eingabe); insgesamtKosten.push_back(kostenfaktor); } else if(weiter =="j"){ kostenfaktor = sekundenkosten(eingabe); insgesamtKosten.push_back(kostenfaktor); } do{ cout << "Kostenpunkt eingeben (j/n): "; getline(cin, def); }while (def !="j" && def !="n"); } if(insgesamtKosten.empty()) return 0;
array<int,5> verrechneteKosten = {31536000, 2628000, 86400, 3600, 1 }; vector<vector<double>> tabelle; tabelle.resize(insgesamtKosten.size()); for(unsigned int i=0; i<tabelle.size(); i++) tabelle.at(i).resize(verrechneteKosten.size()); for(unsigned int i=0; i<tabelle.size(); i++) for(unsigned int k=0; k<tabelle.at(i).size(); k++) tabelle.at(i).at(k) = insgesamtKosten.at(i)* verrechneteKosten.at(k); cout << left << setw(17) << "Jahr" << setw(17) << "Monat" << setw(17) << "Tag" << setw(17) << "Stunde" << setw(17) << "Sekunde" << endl; for(vector<double> &zeile:tabelle) { for(double &wert:zeile) cout <<fixed << setprecision(2) <<left << setw (17) << wert << setw(17); cout << endl; } }
|
|