int eine Definition, die manchmal sehr knifflig sein kann! HILFEEEEE!!!! argh!.,..



  • Hi leutz!

    Ich bin gerade dabei, ein programm für die schweizerische Post zu proggen, damit das Abrechnen auf der ABRECHNUNGSKARTE erleichtert wird. Zudem kann man schlussendlich die ganze karte bedrucken lassen, mit den totalen, die das Programm autoamtisch errechnet hat.

    Nur, der anwedner muss mehrmals Beträge in CHF eingeben. und da nahm ich INT. Und dies sieht ungefähr so aus (kleiner Ausschnitt):

    int vorschuss_hauptkasse_1;
    int vorschuss_hauptkasse_2;
    int einkass_nachnahme;
    int div_taxen;
    int einzahl;
    int total_hauptbuch_soll;
    int saldo_vortag;
    int ablieferung_hauptkasse;
    int auszahlungen;
    int total_hauptbuch_haben;
    int gleichlautent_totale;
    //Rückseite....
    int gew_vorschuss_noten_1000;
    int gew_vorschuss_noten_200;
    int gew_vorschuss_noten_100;
    int gew_vorschuss_noten_50;
    int gew_vorschuss_noten_20;
    int gew_vorschuss_noten_10;
    int gew_vorschuss_noten_total;
    int zurueck_u_gehaltene_auszahlungsbelege_1;
    int zurueck_u_gehaltene_auszahlungsbelege_2;
    int zurueck_u_gehaltene_auszahlungsbelege_3;
    int zurueck_u_gehaltene_auszahlungsbelege_4;
    int zurueck_u_gehaltene_auszahlungsbelege_5;
    int zurueck_u_gehaltene_auszahlungsbelege_6;
    int zurueck_u_gehaltene_auszahlungsbelege_7;
    int zurueck_u_gehaltene_auszahlungsbelege_8;
    int zurueck_u_gehaltene_auszahlungsbelege_9;
    int zurueck_u_gehaltene_auszahlungsbelege_10;
    int zurueck_u_gehaltene_auszahlungsbelege_11;
    int zu_stell_auszahlung_erhaltene_1;
    int zu_stell_auszahlung_erhaltene_2;
    int zu_stell_auszahlung_erhalt_vortag;
    int zu_stell_auszahlung_erhalt_total;
    int zu_stell_auszahlung_zurueckgegebene_1;
    int zu_stell_auszahlung_zurueckgegebene_1_2;
    int zu_stell_auszahlung_zurueckbehaltete;
    

    So. Ganze zahlen eingeben geht Ja! Aber dezimalzahlen nicht!
    Also momentan arbeitet man in der BETA-Version in RAPPEN. Also anstatt 10.00 schreibt man halt 1000

    Wie und was muss ich schreiben/tun, dass man 10.00 eingeben kann??
    Denn wenn ich das tue, dann springt er gleich zum schluss und lässte alle anderen AUS! ABER: mit string und char geht es nicht, da ich folgende zusammenzählung hab:

    //Abrechnung TOTAL FÜR DAS HAUPTBUCH...
    total_hauptbuch_soll = total_hauptbuch_soll + vorschuss_hauptkasse_1 + vorschuss_hauptkasse_2 + einkass_nachnahme + div_taxen + einzahl;
    //Abrechnung GLEICHlAUTENDE TOTALE
    gleichlautent_totale = gleichlautent_totale + total_hauptbuch_soll + saldo_vortag;
    //Abrechnung TOTAL ZURÜCKGEGEBENE UND ZURÜCKGEHALTENE AUSZAHLUNGEN
    total_zurueckgegebene_und_gehaltene_auszahlungen = total_zurueckgegebene_und_gehaltene_auszahlungen + zurueck_u_gehaltene_auszahlungsbelege_1 + zurueck_u_gehaltene_auszahlungsbelege_2 + zurueck_u_gehaltene_auszahlungsbelege_3 + zurueck_u_gehaltene_auszahlungsbelege_4 + zurueck_u_gehaltene_auszahlungsbelege_5 + zurueck_u_gehaltene_auszahlungsbelege_6 + zurueck_u_gehaltene_auszahlungsbelege_7+ zurueck_u_gehaltene_auszahlungsbelege_8 + zurueck_u_gehaltene_auszahlungsbelege_9 + zurueck_u_gehaltene_auszahlungsbelege_10 + zurueck_u_gehaltene_auszahlungsbelege_11;
    //Abrechnung TOTAL ERHALTENE
    zu_stell_auszahlung_erhalt_total = zu_stell_auszahlung_erhalt_total + zu_stell_auszahlung_erhaltene_1 + zu_stell_auszahlung_erhaltene_2 + zu_stell_auszahlung_erhalt_vortag;
    //Abrechnung BEZAHLT
    zu_stell_auszahlung_bezahlt = zu_stell_auszahlung_bezahlt + zu_stell_auszahlung_erhalt_total - total_zurueckgegebene_und_gehaltene_auszahlungen;
    //Abrechnung ab hier von VORDERSEITE....
    //VORabrechnung SCHLUSSTOTALE (auch Saldo zu Lasten)
    total_hauptbuch_haben = total_hauptbuch_haben + ablieferung_hauptkasse + zu_stell_auszahlung_bezahlt;
    //SCHLUSSabrechnung SCHLUSSTOTALE (auch Saldo zu lasten)
    if(gleichlautent_totale < total_hauptbuch_haben)
    {
    cout << "ABRECHNUNG FEHLGESCHLAGEN!\nDie \"Gleichlautende Totale\" sind kleiner als die \n\"Totale fuer das Hauptbuch (Haben)!!\n\nEntweder haben Sie etwas falsch eingegeben, oder es leigt ein Programmfehler vor.\n\nDruecken Sie eine taste, um zum Menu zu gelangen...";
    getch();
    goto menu;
    }
    else
    {
    saldozlasten_total_haben = gleichlautent_totale - total_hauptbuch_haben;
    goto data_ausgabe;
    }
    data_ausgabe:
    //DATEN AUSGEBEN (Das Ergebnis natürlich)
    

    Und dann die Ausgabe:

    cout << "\nTotal Hauptbuch (Soll): " << total_hauptbuch_soll << " Rappen" << endl;
    cout << "\nTotal Hauptbuch (Haben): " << total_hauptbuch_haben << " Rappen" << endl;
    cout << "\nGleichlautente Totale: " << gleichlautent_totale << " Rappen" << endl;
    cout <<  "\nAuszahlungen bezahlt: " << zu_stell_auszahlung_bezahlt << " Rappen" << endl;
    cout << "\nTotal zurueckgegebene Auszahlungen: " << total_zurueckgegebene_und_gehaltene_auszahlungen <<" Rappen" << endl;
    cout << "\nSchlusstotal (Saldo zu Lasten): " << saldozlasten_total_haben <<" Rappen" << endl;
    cout << "\n\nBeliebige Taste...";
    getch();
    

    eigentlich möchte ich nur wissen: WAS MUSS MAN ANSTATT "int" SCHREIBEN, DAMIT MAN KOMMAZAHLEN EINGEBEN KANN??? Also anstatt 1000 schreiben zu müssen, sollte man 10,00 oder 10.00 schreiben können!!!

    Aus SEEEEHR Schnelle Hilfe danke ich schon zu voraus, alle anderen danach!

    mfg
    Programmer



  • double

    Aber ich wuerde mich mal um das Codedesign kuemmern...



  • Vielen Dank! Double, das wars!!!!

    PS: www.informatik-center.5er.com wie findest du meine Page?



  • @Programmer85: Sind die ganzen Integer (ähm Double) als globale Variablen deklariert? Und wieso benützt du als C++-Programmierer nicht std::vector anstatt von 11 Variablen?

    MfG SideWinder



  • sorry aber ich fand die Seite echt erheiternd 😃 ich mein das Design findich gut aber der Inhalt exp. das Forum 🙄

    absoluter Favorit ist der FAQ Beitrag das format c: ja nicht die ganze Platte löscht und es daher die Neuinstallation von Windows 95(aber richtig!) nicht so toll wie beim Neukauf der Platte ist...... UND das ein fdisk mit Partition löschen und dann wieder neu drauf machen da irgendwas dran ändert 😃

    Das macht nichtmal für Kundendaten usw Sinn weil es dafür absolut nicht sicher genug ist(einzig sichere Methode ist da nur Platte inne Tonne kloppen) 😉 und für alles andre ist es ziemlich piepegal ob da jetzt einsen oder nullen im unbenutzten Bereich stehen 😃

    Naja aber das war nur eine Sache von so 20 😉



  • Original erstellt von dreaddy:
    **sorry aber ich fand die Seite echt erheiternd 😃 ich mein das Design findich gut aber der Inhalt exp. das Forum 🙄

    absoluter Favorit ist der FAQ Beitrag das format c: ja nicht die ganze Platte löscht und es daher die Neuinstallation von Windows 95(aber richtig!) nicht so toll wie beim Neukauf der Platte ist...... UND das ein fdisk mit Partition löschen und dann wieder neu drauf machen da irgendwas dran ändert 😃

    Das macht nichtmal für Kundendaten usw Sinn weil es dafür absolut nicht sicher genug ist(einzig sichere Methode ist da nur Platte inne Tonne kloppen) 😉 und für alles andre ist es ziemlich piepegal ob da jetzt einsen oder nullen im unbenutzten Bereich stehen 😃

    Naja aber das war nur eine Sache von so 20 ;)**

    Ähem....
    gehört das irgendwie nicht woanders hin?? 😃



  • da double und float für Geldbeträge nicht sehr sinnvoll sind, würde ich unsigned long nehmen. Füge bei Ausgabe einfach iommer an 2. Stelle ein Punkt/komma ein, und bei der Eingabe schneidest du ihn aus dem String weg und konvertierst ihn wieder in unsigned long


Anmelden zum Antworten