1
0

Compare commits

..

No commits in common. "0040965d2f693d3b91ad1516cc7bae70a2215bd2" and "1460e820ee11b5e7e933882d8f627999e4a2a1a7" have entirely different histories.

View File

@ -20,15 +20,15 @@ using namespace std;
class Date class Date
{ {
private: private:
short day_; short day;
short month_; short month;
unsigned int year_; unsigned int year;
public: public:
Date() : day_(1), month_(1), year_(1900) Date() : day(1), month(1), year(1900)
{ {
} }
Date(short day, short month, unsigned int year) : day_(day), month_(month), year_(year) Date(short day, short month, unsigned int year) : day(day), month(month), year(year)
{ {
} }
@ -39,18 +39,16 @@ public:
tm date{}; tm date{};
localtime_s(&date, &timestamp); localtime_s(&date, &timestamp);
const auto current_year = date.tm_year + 1900; const auto current_year = date.tm_year + 1900;
return current_year - year_; return current_year - year;
} }
string get_birthday() const string get_birthday() const
{ {
return std::to_string(day_) + "." + to_string(month_) + "." + to_string(year_); return std::to_string(day) + "." + to_string(month) + "." + to_string(year);
} }
bool operator ==(const Date& d) const { return day_ == d.day_ && month_ == d.month_ && year_ == d.year_; }
bool operator !=(const Date& d) const { return !operator==(d); }
}; };
class employee class employee
{ {
private: private:
@ -84,13 +82,6 @@ public:
return false; return false;
} }
bool operator ==(const employee& e) const
{
return name == e.name && first_name == e.first_name && day_of_birth == e.day_of_birth;
}
bool operator !=(const employee& e) const { return !operator==(e); }
string name; string name;
string first_name; string first_name;
Date day_of_birth; Date day_of_birth;
@ -99,12 +90,12 @@ public:
}; };
static list<employee> employees; static list<employee> employees;
void create_employee(); void create_employee();
employee* search_employee();
employee search_employee();
void list_employees(); void list_employees();
void modify_employee();
void print_employee(employee employee);
void enter_holidays(employee& employee);
int main() int main()
{ {
@ -115,8 +106,10 @@ int main()
cout << "Urlaubsverwaltung (" << employees.size() << " Mitarbeiter)" << endl << endl; cout << "Urlaubsverwaltung (" << employees.size() << " Mitarbeiter)" << endl << endl;
cout << "Bitte w\x84hlen Sie eine Option:" << endl; cout << "Bitte w\x84hlen Sie eine Option:" << endl;
cout << "1: Mitarbeiter anlegen" << endl; cout << "1: Mitarbeiter anlegen" << endl;
cout << "2: Mitarbeiter bearbeiten" << endl; cout << "2: Mitarbeiter l\x94schen" << endl;
cout << "3: Alle Mitarbeiter auflisten" << endl; cout << "3: Urlaub eingeben" << endl;
cout << "4: Mitarbeiter suchen" << endl;
cout << "5: Alle Mitarbeiter auflisten" << endl;
cout << "0: Programm beenden" << endl; cout << "0: Programm beenden" << endl;
cout << "ihre Eingabe:"; cout << "ihre Eingabe:";
auto input = 0; auto input = 0;
@ -128,9 +121,13 @@ int main()
create_employee(); create_employee();
break; break;
case 2: case 2:
modify_employee();
break; break;
case 3: case 3:
break;
case 4:
search_employee();
break;
case 5:
list_employees(); list_employees();
break; break;
case 0: case 0:
@ -171,100 +168,40 @@ void create_employee()
} }
} }
void modify_employee(employee employee);
employee* search_employee() employee search_employee()
{ {
if (employees.empty()) throw 1;
string name; string name;
cout << "Bitte einen Namen eingeben: "; cout << "Bitte einen Namen eingeben: ";
cin >> name; cin >> name;
string first_name; string first_name;
cout << "Bitte einen Vornamen eingeben: "; cout << "Bitte einen Vornamen eingeben: ";
cin >> first_name; cin >> first_name;
for (auto& e : employees) for (auto e : employees)
{ {
if (e.first_name._Equal(first_name) && e.name._Equal(name)) if (e.first_name._Equal(first_name) && e.name._Equal(name))
{ {
return &e; return e;
} }
} }
throw 0; return employee{};
} }
void list_employees() void list_employees()
{ {
for (auto& employee : employees) for (const auto& employee : employees)
{ {
print_employee(employee); cout << " First name: " << employee.first_name << " Name: " << employee.name << endl;
} cout << " Birthday: " << employee.day_of_birth.get_birthday() << endl;
system("pause"); cout << " Holidays: " << employee.holidays << " Taken Holidays: " << employee.taken_holidays << endl;
}
void modify_employee()
{
auto end_program = false;
try
{
const auto current = search_employee();
while (!end_program)
{
system("cls");
print_employee(*current);
cout << "Bitte w\x84hlen Sie eine Option:" << endl;
cout << "1: Urlaub eingeben" << endl;
cout << "2: Mitarbeiter l\x94schen" << endl;
cout << "0: Zurueck" << endl;
cout << "Ihre Eingabe:";
auto input = 0;
cin >> input;
switch (input)
{
case 1:
enter_holidays(*current);
break;
case 2:
employees.remove(*current);
cout << "Benutzer gel\x94scht";
system("pause");
end_program = true;
break;
case 0:
end_program = true;
break;
default:
cout << "Unerlaubte Eingabe" << endl;
system("pause");
}
}
}
catch (int ex)
{
switch (ex)
{
case 0:
cout << "Benutzer nicht gefunden. Code: " << ex << endl;
break;
case 1:
cout << "Es gibt keine Benutzer in der Datenbank. Code: " << ex << endl;
break;
default:
cout << "Unbekannter Fehler. Code: " << ex << endl;
}
system("pause");
}
}
void print_employee(employee employee)
{
cout << " " << employee.first_name << employee.name << endl;
cout << " Geburtstag: " << employee.day_of_birth.get_birthday() << endl;
cout << " Urlaub: " << employee.holidays << " Genehmigter Urlaub: " << employee.taken_holidays << endl;
cout << "--------------------------------" << endl; cout << "--------------------------------" << endl;
}
system("pause");
} }
void enter_holidays(employee& employee) void modify_employee(employee employee)
{ {
while (true) while (true)
{ {