000
28.03.2006, 21:09 Uhr
~HelpFile
Gast
|
hi habe vor einiger zeit so einen ähnlichen thread gehabt. hab jetzt das prog fertig und würde mich freuen wenn ihr euch das mal anschaut. vorallem case 5, das scheint noch net ok zu sein. kann mir da einer vll helfen?! danke im vorraus!
C++: |
#include <iostream.h> #include <stdio.h> #include <conio.h> #include <string.h> #include <math.h>
//Name: //Klassenarbeit, HBFI05B, 17.03.06
typedef char string[30];
class angestellter { private: string nachname; string vorname; char sex; // Das Geschlecht des Mitarbeiters int personalnummer; // Die Personalnummer des Mitarbeiters int tarifgruppe; // zu welcher Tarifgruppe der Mitarbeiter gehört float tariflohn[4]; // Die Stundenlöhne für die vier Tarifgruppen float gehalt; // Monatsarbeitszeit * Stundenlohn + Überstundenlohn float monatsarbeitszeit; // ist der gleiche Wert für alle Mitarbeiter float ueberstunden; // muß zw. 0 und max-ueberstunden liegen float max_ueberstunden; // max. zulässige Anzahl an Überstunden float zuschlag; // Prozentangabe: So viel Zuschlag gibt es für // Überstunden
public: // Konstruktor angestellter(); // Methoden void init(string, string, char, int); void ausgeben(); int getPersonalnummer(); int getAnzahlTarifgruppen(); int tarifgruppe_aendern(int); int ueberstunden_eingeben(); void gehalt_berechnen();
}; // end of class angestellter
int main() { const int anzahl_mitarbeiter = 5; int auswahl, i; angestellter mitarbeiter[anzahl_mitarbeiter]; mitarbeiter[0].init("Jens","Berger",'m', 4001); mitarbeiter[1].init("Klaus","Ritter",'m', 4002); mitarbeiter[2].init("Annette","Peters",'f', 4003); mitarbeiter[3].init("Isabelle","Sturm",'f', 4004); mitarbeiter[4].init("Karin","Fink",'f', 4005);
do { cout<<"\n\n\tDas Menue\n";
cout<<"\nAlle Mitarbeiter ausgeben (1)"; cout<<"\nEinen Mitarbeiter ausgeben (2)"; cout<<"\nAlle Ueberstunden eingeben (3)"; cout<<"\nAlle Gehaelter berechnen (4)"; cout<<"\nTarifgruppe eines Mitarbeiters aendern (5)"; cout<<"\nBeenden (6)"; cout<<"\n\nIhre Wahl: "; cin>>auswahl; switch(auswahl) { case 1: //Alle Mitarbeiter ausgeben (1) { for (i=0; i<anzahl_mitarbeiter; i++) { mitarbeiter[i].ausgeben(); } } break;
case 2: //Einen Mitarbeiter ausgeben (2)" { int nummer; bool gefunden = false; cout<<"\nBitte geben Sie die Personalnummer des Mitarbeits ein: "; cin>>nummer;
for (i=0; i<anzahl_mitarbeiter && !gefunden; i++) { if (nummer == mitarbeiter[i].getPersonalnummer() ) { gefunden = true; mitarbeiter[i].ausgeben(); } } if (gefunden == false) { cout<<"\nEs konnte leider kein Mitarbeiter mit dieser Personalnummer gefunden werden!"; } } break;
case 3: //Alle Ueberstunden eingeben (3) { int ergebnis;
for (i=0; i<anzahl_mitarbeiter; i++) { ergebnis = mitarbeiter[i].ueberstunden_eingeben();
if (ergebnis == -2) cout<<"\nSie haben eine zu grosse Anzahl Ueberstunden eingegeben!"; if (ergebnis == -1) cout<<"\nSie haben eine negative Zahl eingegeben. Das ist nicht zulaessig!"; if (ergebnis == 0) cout<<"\nBestaetigung: Die Ueberstunden wurden eingetragen!"; } } break;
case 4: //Alle Gehaelter berechnen (4) { for (i=0; i<anzahl_mitarbeiter; i++) { mitarbeiter[i].gehalt_berechnen(); } cout<<"\n\nEs sind die Gehaelter fuer alle Mitarbeiter berechnet worden!"; } break;
case 5: //Tarifgruppe eines Mitarbeiters aendern (5) { int nummer, gruppe; bool gefunden = false; cout<<"\nBitte geben Sie die Personalnummer des Mitarbeits ein: "; cin>>nummer;
for (i=0; i<anzahl_mitarbeiter && !gefunden; i++) { if (nummer == mitarbeiter[i].getPersonalnummer() ) { gefunden = true; mitarbeiter[i].ausgeben(); } } if (gefunden == false) { cout<<"\nEs konnte leider kein Mitarbeiter mit dieser Personalnummer gefunden werden!"; }
cout<<"\n\nZu welcher Tarifgruppe soll dieser Mitarbeiter zukuenftig gehoeren?"; cout<<"\nHinweis: Es kommen die Tarifgruppen 1 bis "<<mitarbeiter[i].getAnzahlTarifgruppen()<<" in Frage"; cout<<"\n\nIhre Auswahl: "; cin>>gruppe;
if (gruppe == -1) cout<<"\nFehlerhafte Eingaben. Die Tarifgruppe wurde nicht geaendert!";
if (gruppe == 0) cout<<"\nBestaetigung: Die Aenderung der Tarifgruppe wurde vorgenommen!"; } break;
case 6: { cout<<"\nAuf Wiedersehen!\n"; } break;
default: { cout<<"Ihre Eingabe war leider ungueltig!\n"; cout<<"Weiter mit beliebiger Taste\n"; getch(); } break; } // end of switch } while (auswahl != 6); getch(); return 0; }
// Der Konstruktor
angestellter::angestellter() { tarifgruppe = 2; monatsarbeitszeit = 168; gehalt = 0; ueberstunden = 0; max_ueberstunden = 50; tariflohn[0] = 9.0; tariflohn[1] = 11.0; tariflohn[2] = 13.0; tariflohn[3] = 15.0; zuschlag = 20.0; }
// Methoden
void angestellter::init(string Vorname, string Nachname, char Sex, int Nummer) { strcpy(vorname,Vorname); strcpy(nachname,Nachname); sex = Sex; personalnummer = Nummer; tarifgruppe = 2; monatsarbeitszeit = 168; gehalt = 0; ueberstunden = 0; max_ueberstunden = 50; tariflohn[0] = 9.0; tariflohn[1] = 11.0; tariflohn[2] = 13.0; tariflohn[3] = 15.0; zuschlag = 20.0; }
void angestellter::ausgeben() { cout<<"\n\nPersonalnummer: \t"<<personalnummer; cout<<"\n\nName: \t\t\t"<<vorname<<" "<<nachname; cout<<"\nTarifgruppe: \t\t"<<tarifgruppe; cout<<"\nStundenlohn: \t\t"<<tariflohn[tarifgruppe - 1]<<" Euro/h"; cout<<"\nArbeitszeit: \t\t"<<monatsarbeitszeit<<" h/Woche"; if (gehalt == 0) cout<<"\nDas Gehalt ist noch nicht berechnet worden"; else cout<<"\nGehalt: \t\t"<<gehalt; cout<<"\nUeberstunden: \t\t"<<ueberstunden; cout<<"\nUeberstundenzuschlag: \t"<<zuschlag<<" %\n"; }
int angestellter::getPersonalnummer() { return personalnummer; }
int angestellter::getAnzahlTarifgruppen() { return(sizeof(tariflohn)/sizeof(int)); }
int angestellter::tarifgruppe_aendern(int gruppe) { if (gruppe > 4 || gruppe < 1) return (-1); else tarifgruppe = gruppe; return (0); }
int angestellter::ueberstunden_eingeben() { int stunden; cout<<"\n\nHinweis: Die maximale Anzahl Ueberstunden betraegt: "<<max_ueberstunden; cout<<"\n\nGeben Sie bitte die Uberstunden fuer "; if (sex == 'm') cout<<"\n Mann"; if (sex == 'f') cout<<"\n Frau"; cout<<"\n"<<vorname<<" "<<nachname<<" ein"; cin>>stunden;
if (stunden > max_ueberstunden) return (-2);
if (stunden < 0) return (-1);
ueberstunden = stunden; return (0); }
void angestellter::gehalt_berechnen() { gehalt = monatsarbeitszeit * tariflohn[4] * zuschlag; }
|
Bearbeitung von Pler: |
Tags berichtigt
|
Dieser Post wurde am 28.03.2006 um 21:14 Uhr von Pler editiert. |