#include<conio.h>
#include<vector>
#include<iostream>
#include<fstream>
using namespace std;
class Pracownik {
public:
char imie[15];
char nazwisko[30];
int wiek;
char stanowisko[30];
int numer_biura;
int tel_firmowy;
int numer_tel;
char miasto[15];
char ulica[20];
int numer_domu;
int rok_zatrudnienia;
int wynagrodzenie;
char wyksztalcenie[20];
char stan_cywilny[10];
char dzieci[5];
int dlugosc_urlopu;
char samochod[5];
char delegacje[5];
void drukuj() {
cout << "DANE OSOBOWE \n";
cout << "imie i nazwisko: " << imie << " " << nazwisko << "\n";
cout << "wiek: " << wiek << "\n";
cout << "numer kontaktowy prywatny: " << numer_tel << "\n";
cout << "wyksztalcenie: " << wyksztalcenie << "\n";
cout << "adres zamieszkania: " << miasto << " " << ulica << " " << numer_domu << "\n";
cout << "stan cywilny: " << stan_cywilny << "\n";
cout << "czy posiada dzieci: " << dzieci << "\n";
cout << "DANE SLUZBOWE \n";
cout << "stanowisko: " << stanowisko << "\n";
cout << "numer zajmowanego biura: " << numer_biura << "\n";
cout << "telefon sluzbowy: " << tel_firmowy << "\n";
cout << "rok zatrudnienia: " << rok_zatrudnienia << "\n";
cout << "wysokosc wynagrodzenia: " << wynagrodzenie << "\n";
cout << "ile dni urlopu przysluguje: " << dlugosc_urlopu << "\n";
cout << "czy przysluguje samochod sluzbowy: " << samochod << "\n";
cout << "czy moze wyjezdzac w delegacje: " << delegacje << "\n";
_getch();
}
}xx;
vector <Pracownik> pracownik;
void menu() {
system("cls");
cout << "BAZA DANYCH PRACOWNIKOW FIRMY, menu:" << endl;
cout << "\t wcisnij 1 aby dodac pracownika do bazy" << endl;
cout << "\t wcisnij 2 aby przejzec liste dodanych pracownikow" << endl;
cout << "\t wcisnij 3 aby zapisac wprowadzonych pracownikow w bazie" << endl;
cout << "\t wcisnij 4 aby zmienic dane wybranego pracownika" << endl;
cout << "\t wcisnij 5 aby usunac pracownika" << endl;
cout << "\t wcisnij ESC aby wyjsc z programu" << endl;
}
void dodaj() {
system("cls");
cout << "DANE OSOBOWE" << endl;
cout << "\t imie i nazwisko: " << endl;
cin >> xx.imie >> xx.nazwisko;
cout << "\t wiek: " << endl;
cin >> xx.wiek;
cout << "\t numer kontaktowy prywatny: " << endl;
cin >> xx.numer_tel;
cout << "\t wyksztalcenie: " << endl;
cin >> xx.wyksztalcenie;
cout << "\t adres zamieszkania: " << endl;
cin >> xx.miasto>>xx.ulica>>xx.numer_domu;
cout << "\t stan cywilny:" << endl;
cin >> xx.stan_cywilny;
cout << "\t czy posiada dzieci: " << endl;
cin >> xx.dzieci;
cout << "DANE SLUZBOWE" << endl;
cout << "\t stanowisko: " << endl;
cin >> xx.stanowisko;
cout << "\t numer zajmowanego biura:" << endl;
cin >> xx.numer_biura;
cout << "\t telefon sluzbowy: " << endl;
cin >> xx.tel_firmowy;
cout << "\t rok zatrudnienia:" << endl;
cin >> xx.rok_zatrudnienia;
cout << "\t wysokosc wynagrodzenia:" << endl;
cin >> xx.wynagrodzenie;
cout << "\t ile dni urlopu przysluguje:" << endl;
cin >> xx.dlugosc_urlopu;
cout << "\t czy przysluguje samochod sluzbowy:" << endl;
cin >> xx.samochod;
cout << "\t czy moze wyjezdzac w delegacje:" << endl;
cin >> xx.delegacje;
pracownik.push_back(xx);
_getch();
}
void zapisz() {
ofstream os("baza_danych.txt");
for (int i = 0; i < pracownik.size(); i++) {
os << pracownik[i].imie << endl;
os << pracownik[i].nazwisko << endl;
os << pracownik[i].wiek << endl;
os << pracownik[i].numer_tel << endl;
os << pracownik[i].wyksztalcenie << endl;
os << pracownik[i].miasto << endl;
os << pracownik[i].ulica << endl;
os << pracownik[i].numer_domu << endl;
os << pracownik[i].stan_cywilny << endl;
os << pracownik[i].dzieci << endl;
os << pracownik[i].stanowisko << endl;
os << pracownik[i].numer_biura << endl;
os << pracownik[i].tel_firmowy << endl;
os << pracownik[i].rok_zatrudnienia << endl;
os << pracownik[i].wynagrodzenie << endl;
os << pracownik[i].dlugosc_urlopu << endl;
os << pracownik[i].samochod << endl;
os << pracownik[i].delegacje << endl;
}
os.close();
}
void edytuj(int edit) {
system("cls");
cout << "DANE OSOBOWE" << endl;
cout << "\t imie i nazwisko: " << endl;
cin >> pracownik[edit].imie >> pracownik[edit].nazwisko;
cout << "\t wiek: " << endl;
cin >> pracownik[edit].wiek;
cout << "\t numer kontaktowy prywatny: " << endl;
cin >> pracownik[edit].numer_tel;
cout << "\t wyksztalcenie: " << endl;
cin >> pracownik[edit].wyksztalcenie;
cout << "\t adres zamieszkania: " << endl;
cin >> pracownik[edit].miasto >> pracownik[edit].ulica >> pracownik[edit].numer_domu;
cout << "\t stan cywilny:" << endl;
cin >> pracownik[edit].stan_cywilny;
cout << "\t czy posiada dzieci: " << endl;
cin >> pracownik[edit].dzieci;
cout << "DANE SLUZBOWE" << endl;
cout << "\t stanowisko: " << endl;
cin >> pracownik[edit].stanowisko;
cout << "\t numer zajmowanego biura:" << endl;
cin >> pracownik[edit].numer_biura;
cout << "\t telefon sluzbowy: " << endl;
cin >> pracownik[edit].tel_firmowy;
cout << "\t rok zatrudnienia:" << endl;
cin >> pracownik[edit].rok_zatrudnienia;
cout << "\t wysokosc wynagrodzenia:" << endl;
cin >> pracownik[edit].wynagrodzenie;
cout << "\t ile dni urlopu przysluguje:" << endl;
cin >> pracownik[edit].dlugosc_urlopu;
cout << "\t czy przysluguje samochod sluzbowy:" << endl;
cin >> pracownik[edit].samochod;
cout << "\t czy moze wyjezdzac w delegacje:" << endl;
cin >> pracownik[edit].delegacje;
}
void usun(int do_usuniecia) {
for (int i = do_usuniecia; i < pracownik.size(); i++) {
for (int j = 0; j < 15; j++) pracownik[i].imie[j] = pracownik[i + 1].imie[j];
for (int j = 0; j < 30; j++) pracownik[i].nazwisko[j] = pracownik[i + 1].nazwisko[j];
pracownik[i].wiek = pracownik[i + 1].wiek;
pracownik[i].numer_tel = pracownik[i + 1].numer_tel;
for (int j = 0; j < 20; j++) pracownik[i].wyksztalcenie[j] = pracownik[i + 1].wyksztalcenie[j];
for (int j = 0; j < 15; j++) pracownik[i].miasto[j] = pracownik[i + 1].miasto[j];
for (int j = 0; j < 20; j++) pracownik[i].ulica[j] = pracownik[i + 1].ulica[j];
pracownik[i].numer_domu = pracownik[i + 1].numer_domu;
for (int j = 0; j < 10; j++) pracownik[i].stan_cywilny[j] = pracownik[i + 1].stan_cywilny[j];
for (int j = 0; j < 5; j++) pracownik[i].dzieci[j] = pracownik[i + 1].dzieci[j];
for (int j = 0; j < 30; j++) pracownik[i].stanowisko[j] = pracownik[i + 1].stanowisko[j];
pracownik[i].numer_biura = pracownik[i + 1].numer_biura;
pracownik[i].tel_firmowy = pracownik[i + 1].tel_firmowy;
pracownik[i].rok_zatrudnienia = pracownik[i + 1].rok_zatrudnienia;
pracownik[i].wynagrodzenie = pracownik[i + 1].wynagrodzenie;
pracownik[i].dlugosc_urlopu = pracownik[i + 1].dlugosc_urlopu;
for (int j = 0; j < 5; j++) pracownik[i].samochod[j] = pracownik[i + 1].samochod[j];
for (int j = 0; j < 5; j++) pracownik[i].delegacje[j] = pracownik[i + 1].delegacje[j];
}
pracownik.pop_back();
}
int main() {
menu();
do {
if (_kbhit()) {
char znak = _getch();
switch (znak) {
case (char)27:
return 0;
case '1':
dodaj();
menu();
break;
case '2':
// wczytaj();
system("cls");
for (int i = 0; i < pracownik.size(); i++)
{
pracownik[i].drukuj();
cout << "\n";
}
menu();
break;
case '3':
zapisz();
menu();
break;
case '4':
int nr_pracownika;
cout << "podaj numer wybranego pracowmika";
cin >> nr_pracownika;
edytuj(nr_pracownika);
menu();
break;
case '5':
int do_usuniecia;
cout << "podaj numer pracownika do usuniecia";
cin >> do_usuniecia;
usun(do_usuniecia);
menu();
break;
}
}
} while (1);
_getch();
}