c++ Programm



  • Hallo Leute

    Hab ihr eine kleine aufgabe, die ich in c++ umsetzen soll. Vielleicht könnt ihr mir ja helfen!?

    Sie wollen ein Programm zur Verwaltung des Urlaubs der Mitarbeiter ihrer Firma
    erstellen. Jeder Mitarbeiter hat pro Jahr 30 Urlaubstage. Mitarbeiter, die zum 01.01.des
    laufenden Kalenderjahrs das 50 Lebensjahr bereits vollendet haben, erhalten 32 Tage Urlaub.
    Von jedem Mitarbeiter wird gespeichert:
    • Name
    • Vorname
    • Geburtsdatum
    • Urlaubsanspruch
    • Resturlaub
    Bei Programmstart ist die Datenbank leer, die Daten müssen erst eingegeben werden. Die
    Daten müssen nur während der Programm-Laufzeit verfügbar sein (keine permanente
    Speicherung nötig).
    Das Programm muss folgende Funktionalität leisten:
    • Verwaltung von maximal 500 Mitarbeitern
    • Anlegen und Löschen eines Mitarbeiters
    • Eingabe von Urlaubstagen
    • Suche eines Mitarbeiters mit Ausgabe seiner Daten und wie viel Resturlaub er noch
    hat.
    • Auflistung aller gespeicherten Mitarbeiterdaten
    Bitte entwickeln Sie ein objektorientiertes, dokumentiertes, lauffähiges
    C++-Programm !





  • Solche Threads sollten einfach kommentarlos geschlossen und gelöscht werden! 😡

    Würde unnötige Diskussionen ersparen... 🙄



  • möcht ja nur mal gerne wissen, wie ich die Speicherung der 500 Mitarbeiter mit einem Feld realisieren kann und wie ich diese wieder suchen und ausgeben kann!!!



  • wenn die kohle stimmt fang ich gleich an, naja vlt nicht gleich aber am donnerstag



  • ich möchte nicht das ganze programm ich möchte nur eine kleine Hilfestellung, aber wenn des schon zuviel verlangt ist und man dafür schon bezahlen muss, dann kann ich drauf verzichten!!!

    hier mein quelltext:

    //Einbinden und
    //Übersetzen von Bibliotheken
    #include<iostream>
    #include <string.h>
    using namespace std;

    //*************************Deklaration der Klasse "urlaub"**********************
    class urlaub
    {
    //Dekleration der Attribute
    private:
    char m_name[20], //Mitarbeiter Name
    m_vorname[20]; //Mitarbeiter Vorname
    int m_geb_tag, //Mitarbieter Geburtstag
    m_geb_monat, //Mitarbeiter Geburtsmonat
    m_geb_jahr, //Mitarbeiter Geburtsjahr
    h_tag, //heutiger Tag
    h_monat, //heutiger Monat
    h_jahr, //heutgies Jahr
    u_anspruch, //Urlaubsanspruch
    u_rest, //Resturlaub
    u_tage; //Urlaubstage, die schon genommen worden sind

    //Deklaration der öffent. Methoden
    public:
    urlaub (const char, char);
    char m_name_eingabe (void);
    char m_vorname_eingabe (void);
    void m_mitarbeiter_ausgabe(void);
    int h_datum (int);
    int g_datum (int);
    int berechne_urlaubstage (int);
    int berechne_resturlaub (int);
    ~urlaub();

    };

    //************************Definition der einzelnen Methoden************************************
    urlaub::urlaub(const char m_name, char m_vorname)
    {
    m_name;
    m_vorname;
    }

    char urlaub::m_name_eingabe (void) //Def. der Methode m_name_eingabe
    {
    cout<< "Namen des Mitarbeiters eingeben: ";
    cin >> m_name; //Eingabe Mitarbeiter Name
    cout<< endl;

    return (0);

    }

    char urlaub::m_vorname_eingabe (void)
    {
    cout <<"Vorname des Mitarbeiters eingeben: ";
    cin >> m_vorname; //Eingabe Mitarbeiter Vorname
    cout<< endl;
    return (0);

    }

    int urlaub::h_datum(int eingabe) //Def. der Methode h_datum
    {
    cout << "Geben Sie Bitte das heutige Datum ein:" << endl;
    cout << "TAG: "; cin >> h_tag; //Eingabe Tag des aktuellen Datums
    cout << "MONAT: "; cin >> h_monat; //Eingabe Monat des aktuellen Datums
    cout << "JAHR: "; cin >> h_jahr; //Eingabe Jahr des aktuellen Datums
    cout << "Das heutige Datum lautet: " << h_tag <<"." << h_monat <<"." << h_jahr;
    cout << endl;
    return (0);
    }

    int urlaub::g_datum(int eingabe) // Def. der Methode g_datum
    {
    cout << "Geben Sie bitte das Geburtsdatum des Mitarbeiters ein:" << endl;
    cout << "TAG: "; cin >> m_geb_tag; //Eingabe Tag des Geb.Dat.
    cout << "MONAT: "; cin >> m_geb_monat; //Eingabe Monat des Geb.Dat.
    cout << "JAHR: "; cin >> m_geb_jahr; //Eingabe Jahr des Geb.Dat.
    cout << endl;
    return (0);
    }

    int urlaub::berechne_urlaubstage(int) // Def. der Methode berechne_urlaubstage
    {
    if
    (m_geb_jahr<(h_jahr-50)) //Festlegen des Ausdruckes: Ist das Geburtsjahr kleiner als das aktuelle Jahr - 50 Jahre
    {
    u_anspruch=32; // falls ja, wird u_anspruch der Wert 32 zugewiesen
    cout << "Urlaubsanspruch:" << u_anspruch << "Tage" <<endl; // und die Urlaubstage werden durch u_anspruch angegeben
    }
    else
    { u_anspruch=30; // falls nein, wird u_anspruch der Wert 30 zugewiesen
    cout << "Urlaubsanspruch:" << u_anspruch << "Tage" <<endl; // und die Urlaubstage werden durch u_anspruch angegeben
    }
    return(0);
    }

    urlaub::~urlaub(void) //Destruktor
    {}

    urlaub::berechne_resturlaub(int eingabe) //Def. der Methode berechne_resturlaub
    {
    cout << endl;
    cout << "Geben Sie bitte die Anzahl der schon genommenen Urlaubstage ein: " ;
    cin >> u_tage; //Eingabe der schon genommenen Urlaubstage
    u_rest = u_anspruch - u_tage; //Berechnung des Resturlaubs
    cout << "Sie haben noch " << u_rest << " Tage Urlaub." << endl;
    return (0);
    }

    void urlaub::m_mitarbeiter_ausgabe (void) //Def. der Methode m_mitarbeiter_ausgeben
    {
    cout << endl;
    cout << "Mitarbeiterdaten: "<<endl;
    cout << "Name: " << m_name <<endl;
    cout << "Vorname: " << m_vorname <<endl;
    cout << "Geburtsdatum: " << m_geb_tag <<"." << m_geb_monat <<"." << m_geb_jahr<<endl;
    cout << "Urlaubsanspruch: " << u_anspruch << endl;
    cout << "Resturlaub: " << u_rest << endl;

    }

    void main () //Beginn Hauptprogramm
    {
    int wert_h = 0;
    int wert_g = 0;
    int eingabe = 0;
    int tag = 0;
    int rest = 0;
    int i = 0;

    urlaub mitarbeiter[500];

    mitarbeiter[500].h_datum(wert_h);

    do
    {
    cout << endl;
    cout << "Hallo beim Mitarbeiterverwaltungssystem 2006!" <<endl;
    cout << "---------------------------------------------" <<endl;
    cout << "Das Programmmenue:" <<endl;
    cout << "1 = Anlegen eines neuen Mitarbeiters:" << endl;
    cout << "2 = Loeschen eines bestehenden Mitarbeiters:" <<endl;
    cout << "3 = Ausgabe der Mitarbeiterdaten: " << endl;
    cout << "4 = Das Programm beenden:" << endl;
    cout << "Ihre Wahl:";
    cin >> eingabe;

    switch(eingabe)
    {
    case 1:
    i = i + 1;
    mitarbeiter[500].m_name_eingabe();
    mitarbeiter[500].m_vorname_eingabe();
    mitarbeiter[500].g_datum(wert_g);
    cout <<endl;
    mitarbeiter[500].berechne_urlaubstage(tag);
    cout << endl;
    mitarbeiter[500].berechne_resturlaub(rest);
    break;

    case 3:
    mitarbeiter[500].m_mitarbeiter_ausgabe();
    break;

    };

    }
    while (eingabe != 4);
    cout << "Vielen Dank, dass Sie das Mitarbeiterverwaltungssystem 2006 genutzt haben!" <<endl;
    cout << "Bis zum nächsten mal." << endl;

    system("pause");

    }[cpp]



  • Nu reg dich mal ja nicht auf, du hast uns schließlich nur deine Aufgabe vorgesetzt. Die zu lösen ist nicht unser Ding.
    Nun zu deinem Code:

    1. Warum gibt es keine Mitarbeiterklasse?
    2. Warum verwendest du keine C++-Strings? (Und warum kennst du nicht den Unterschied zwischen char und char*? 🙄)
    3. Was soll die Urlaubsklasse?
    4. (zu 1 und 3) Das ist keine Objektorientierte Lösung!
    5. Teil den Kram auf Header auf.
    6. Es gibt kein void main ()



  • Das hab ich ja auch nicht gefordert, aber danke dasd du mir hilfst.

    1. soll ich die klasse urlaub in mitarbeiter abändern, oder wie ist das gemeind?
    2. kann ich anstatt von char einfach string schreiben? was ist der unterschied zwischen char und char*?
    4. Aber wenn ich für die Dateneingabe Methoden definiere, ist das programm doch objektorientier, oder?
    5. soll ich dann int main () schreiben, irgendwie muss der programmteil doch einen anfang haben.



  • Du hast da ein wenig was falsch erkannt. Du musst ein Array von 500 Mitarbeitern anlegen. Für Urlaub brauchst du keinen Typ (kannst aber zusätzlich einen machen). Das eigentliche Objekt um das es geht ist ein Mitarbeiter und nicht der Urlaub.

    char ist ein Zeichen, char* ist ein Zeiger auf ein char. Normalerweise zeigt char* auf den Beginn einer Zeichenkette.
    string ist wesentlich leichter und sicherer zu verwenden als char*.

    Genau int main ist richtig in C++. Wenn du am Ende kein return machst, wird automatisch "return 0;" angenommen.

    Zu deiner Klasse könnte das etwa so aussehen:

    struct Datum {
      unsigned int Tag, Monat, Jahr;
    };
    
    class Mitarbeiter {
      string Name, Vorname; // Persoenliche Informationen
      Datum Geburtsdatum; // Datum als struct definiert, s.o.
      bool Urlaubsanspruch; // Hat Urlaubsanspruch? Ja/Nein
      int Resturlaub; // Anzahl restlicher Urlaubstage
    
      Mitarbeiter(string name, string vorname, Datum gebDat, bool urlaub); // Resturlaub ist 30 oder 32 und wird anhand des Alters festgelegt
    
      // TODO: Methoden zum Bearbeiten eines Mitarbeiters
    };
    

    Da du nur 500 Mitarbeiter haben sollst, kannst du einfach ein Array von Mitarbeiter der Größe 500 erzeugen.

    Ich denke das sollte dir vorerst ein wenig geholfen haben und für einen Denkanstoß reichen, um dein Programm nochmal zu überdenken.



  • okay,ich meld mich wieder, wenn ich weiter gekommen bin!


Anmelden zum Antworten