Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » alles ok ? *nochmal hilfe*

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.04.2006, 18:26 Uhr
mauralix



Schreib Klassennamen groß.
Die Notation von Microdoof ist aber auch schon übertrieben....
--
nur olfaktorisch fassbar....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.04.2006, 18:30 Uhr
Pablo
Supertux
(Operator)



Zitat von mauralix:
Schreib Klassennamen groß.


wieso?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 01.04.2006 um 18:30 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.04.2006, 19:20 Uhr
Spacelord
Hoffnungsloser Fall



Zitat von mauralix:
Schreib Klassennamen groß.
Die Notation von Microdoof ist aber auch schon übertrieben....



Welche Notation von Microdoof kannst du denn da erkennen?
Und vegiss nicht dem C++ Standardkommitee mitzuteilen das Klassennamen groß geschrieben werden müssen........vector,map,list.....alles total falsch!!!

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.04.2006, 21:54 Uhr
xXx
Devil



C++:
if(!bFound)
{
    std::cout << "\nEs konnte leider kein Mitarbeiter mit dieser Personalnummer gefunden werden!";
}

std::cout << "\n\nZu welcher Tarifgruppe soll dieser Mitarbeiter zukuenftig gehoeren?";


Ich finds komsich... wenn der Mitarbeiter nicht gefunden werden konnte soll trotzdem noch dem eine neue Tarifgruppe zugewiesen werden?! mach nen break; rein damit de aus der case rauskommst... dann stimmts

Dieser Post wurde am 01.04.2006 um 21:56 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: