3 votes

Classe d'employés C++ saisissant les informations.

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

class Employee {
private:
    string employee_firstname;
    string employee_lastname;
    string idnumber;
    string address;
    string phonenumber;
    string tenure;

public:
    Employee() {
        employee_firstname = "";
        employee_lastname = "";
        idnumber = "";
        address = "";
        phonenumber = "";
        tenure = "0";
    }
    Employee(string fn, string ln, string id, string ad, string ph, string ten) {
        employee_firstname = fn;
        employee_lastname = ln;
        idnumber = id;
        address = ad;
        phonenumber = ph;
        tenure = ten;

    }
    string getFirstName();
    string getLastName();
    string getidnumber();
    string getAddress();
    string getPhone();
    string getTenure();

    void setFirstname(string fn) {
        employee_firstname = fn;
    }
    void setLastname(string ln) {
        employee_lastname = ln;
    }
    void setidnumber(string id) {
        idnumber = id;
    }
    void setaddress(string ad) {
        address = ad;
    }
    void setphonenumber(string ph) {
        phonenumber = ph;
    }
    void settenure(string ten) {
        tenure = ten;
    }
};
string Employee::getFirstName() {
    return employee_firstname;
}
string Employee::getLastName() {
    return employee_lastname;
}
string Employee::getidnumber() {
    return idnumber;
}
string Employee::getAddress() {
    return address;
}
string Employee::getPhone()
{
    return phonenumber;
}
string Employee::getTenure() {
    return tenure;
}

const int employee_num = 3;

int main()
{
    Employee num[employee_num] = {
        ("John", "Smith", 4752, "8971 herlo st", "916-628-8452", 8),
        ("Cathy", "Guringo", 5826, "538 reed ct", "310-852-6654", 5),
        ("Kyle", "Ford", 7856, "292 murrietta st", "323-547-7423", 3),
    };

    for (int i = 0; i < employee_num; i++)
    {
        cout << num[i].getFirstName() << " ";
        cout << num[i].getLastName() << " ";
        cout << num[i].getidnumber() << " ";
        cout << num[i].getAddress() << " ";
        cout << num[i].getPhone() << " ";
        cout << num[i].getTenure() << " ";
    }
    return 0;
}

Je vais être complètement honnête. Je ne comprends pas comment récupérer et afficher les informations de l'employé ici. J'ai demandé au professeur et la façon dont il l'explique n'a pas vraiment de sens pour moi. Il ne peut pas vraiment l'expliquer d'une manière différente.

Le message de mon professeur est le suivant :

Écrivez une classe Employé qui contient les champs suivants :

  • Nom de famille
  • Prénom
  • ID de l'employé
  • Adresse
  • Numéro de téléphone
  • Années d'emploi

La classe doit avoir deux constructeurs : - Un constructeur par défaut qui définit les champs comme des chaînes vides ("") et 0 pour les années employées. - Un constructeur qui accepte les trois champs en tant qu'arguments et leur attribue les valeurs Nom, Prénom et ID de l'employé.

Écrivez les méthodes de mutateur appropriées pour stocker les valeurs dans les champs et les méthodes d'accesseur pour retourner les valeurs dans les champs.

Dans la fonction principale, créez trois objets Employés en saisissant les champs de chaque objet à l'aide du clavier.

3voto

HMD Points 1862

Votre initialisation a quelques problèmes :

  1. que vous attribuez int à string
  2. en utilisant () au lieu de {}

Changez-le comme ceci :

Employee num[employee_num] = {
    {"John", "Smith", "4752", "8971 herlo st", "916-628-8452", "8"},
    {"Cathy", "Guringo", "5826", "538 reed ct", "310-852-6654", "5"},
    {"Kyle", "Ford", "7856", "292 murrietta st", "323-547-7423", "3"}
};

Si vous voulez obtenir ces données de l'utilisateur, vous pouvez utiliser std::getline et votre fonction setter pour attribuer des chaînes de caractères aux membres de votre classe.

Ou vous pouvez surcharger operator >> pour obtenir l'entrée de l'utilisateur comme vous le souhaitez, comme ceci :

friend istream& operator>>(istream& is, Employee& emp)
{
    std::cout << "Enter employee first name :";
    std::getline(is, emp.employee_firstname);
    std::cout << "Enter employee last name :";
    std::getline(is, emp.employee_lastname);
    std::cout << "Enter employee id number :";
    std::getline(is, emp.idnumber);
    std::cout << "Enter employee address :";
    std::getline(is, emp.address);
    std::cout << "Enter employee phone number :";
    std::getline(is, emp.phonenumber);
    std::cout << "Enter employee tenure :";
    std::getline(is, emp.tenure);

    return is;
}

Une autre chose est que vous pouvez surcharger operator << pour que votre classe fasse l'impression comme vous le voulez, comme ceci :

friend ostream& operator<<(ostream& os, Employee const & emp)
{
    return os << emp.employee_firstname << " " << emp.employee_lastname << " " << emp.idnumber << " "
        << emp.address << " " << emp.phonenumber << " " << emp.tenure << " " << endl;
}

et en main fonction l'utiliser comme ceci :

for(int i = 0; i < employee_num; i++)
{
    cout << num[i];
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X