//Bài tập đa hình
//Chương trình quan lý nhân viên console c++
//--by a POsgia.com--------------------------------------->|
//https://www.facebook.com/chuc.tiensinh*******************|
//nhanvien.h
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<ctime>
using namespace std;
#include<string>
class NhanVien
{
protected:
string ten;
int namvaolam;
public:
virtual void nhap();
virtual void xuat();
virtual double Tinhluong();
NhanVien();
~NhanVien();
};
//nhanvien.cpp
#include "NhanVien.h"
NhanVien::NhanVien()
{
ten = "\nLe Van Chuc";
namvaolam = 2000;
}
void NhanVien::nhap()
{
time_t t = time(0);// Reset l?i th?i gian b?ng 0
struct tm *POs = localtime(&t); // Trong Struct tm có các class nh? th?i gian , ngày , tháng n?m ...v.
int namhientai = POs->tm_year + 1900;// dòng này t?c là l?y n?m tr??c n?m 1900 nên ta ph?i c?ng thên 1900 nó m?i b?ng th?i gian ??u
fflush(stdin);
cout << "\nNhap ten nhan vien: "; getline(cin, ten);
do {
cout << "\nNhap nam vao lam "; cin >> namvaolam;
if (namvaolam < 1900 || namvaolam>namhientai)
{
cout << "\nNam vao lam phai nam trong khoan: 1900---->" << namhientai << "\nxin kiem tra lai";;
}
} while (namvaolam<1900||namvaolam>namhientai);
}
void NhanVien::xuat()
{
cout << "\nTen nhan vien: "<<ten;
cout << "\nNam vao lam: "<<namvaolam;
}
double NhanVien::Tinhluong()
{
return 0;
}
NhanVien::~NhanVien()
{
return;
}
//nhanviensanxuat.h
#pragma once
#include"NhanVien.h"
class NhanVienSanXuat :public NhanVien
{
private:
int sosanpham;
public:
void nhap();
void xuat();
double Tinhluong();
NhanVienSanXuat();
~NhanVienSanXuat();
};
//nhanviensanxuat.cpp
#include "NhanVienSanXuat.h"
NhanVienSanXuat::NhanVienSanXuat()
{
}
void NhanVienSanXuat::nhap()
{
NhanVien::nhap();
cout << "\nNhap so luong san pham"; cin >> sosanpham;
}
void NhanVienSanXuat::xuat()
{
NhanVien::xuat();
cout << "\nSo luong san pham: " << sosanpham;
}
double NhanVienSanXuat::Tinhluong()
{
time_t t = time(0);// Reset l?i th?i gian b?ng 0
struct tm *POs = localtime(&t); // Trong Struct tm có các class nh? th?i gian , ngày , tháng n?m ...v.
int namhientai = POs->tm_year + 1900;// dòng này t?c là l?y n?m tr??c n?m 1900 nên ta ph?i c?ng thên 1900 nó m?i b?ng th?i gian ??u
return (sosanpham * 10000) + 100000 + ((namhientai - namvaolam) * 20000);
}
NhanVienSanXuat::~NhanVienSanXuat()
{
return;
}
//nhanvienvanphong.h
#pragma once
#include"NhanVienSanXuat.h"
class NhanVienVanPhong :public NhanVien
{
private:
double luongcanban, ngaynghi;
public:
void nhap();
void xuat();
double Tinhluong();
NhanVienVanPhong();
~NhanVienVanPhong();
};
//nhanvienvanphong.cpp
#include "NhanVienVanPhong.h"
NhanVienVanPhong::NhanVienVanPhong()
{
}
void NhanVienVanPhong::nhap()
{
NhanVien::nhap();
cout << "\nNhap muc luong can ban: "; cin >> luongcanban;
cout << "\nNhap so ngay nghi: "; cin >> ngaynghi;
}
void NhanVienVanPhong::xuat()
{
NhanVien::xuat();
cout << "\nLuong can ban: "<<size_t(luongcanban);
cout << "\nSo ngay nghi: "<<ngaynghi;
}
double NhanVienVanPhong::Tinhluong()
{
time_t t = time(0);// Reset l?i th?i gian b?ng 0
struct tm *POs = localtime(&t); // Trong Struct tm có các class nh? th?i gian , ngày , tháng n?m ...v.
int namhientai = POs->tm_year + 1900;// dòng này t?c là l?y n?m tr??c n?m 1900 nên ta ph?i c?ng thên 1900 nó m?i b?ng th?i gian ??u
return luongcanban-(ngaynghi * 10000) + 100000 + ((namhientai - namvaolam) * 20000);
}
NhanVienVanPhong::~NhanVienVanPhong()
{
return;
}
//congty.h
#pragma once
#include"NhanVienVanPhong.h"
#include<vector>
class CongTy
{
private:
vector<NhanVien *> Mangnhanvien;
public:
void Nhapmangnhanvien();
void Xuatmangnhanvien();
double Tinhluongnhanviencongtymoithang();
CongTy();
~CongTy();
};
//congty.cpp
#include "CongTy.h"
#include<Windows.h>
CongTy::CongTy()
{
}
void CongTy::Nhapmangnhanvien()
{
int chon;
NhanVien *POs = NULL;
do {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 5);
cout << "\n. - -._. - -. - - _______?_¤? ... ?¤ -._. - -. - -._. - -. - -._. - -. - -._. - -..";
cout << "\n. Love.you! - Love.you!-._. - Love.you!-..Love.you!Love.you!";
cout << "\n. - -._. - -. - -._______?_¤? ... ?¤ _______?_¤? ... ?¤ _______?_¤? ... ?¤ ";
cout << "\n|C-h-u-o-n-g---T-r-i-n-h---Q-u-a-n---L-y---N-h-a-n---V-i-e-n|";
cout << "\n|<-------*Nhap so tuong ung trong menu----------------->|";
cout << "\n|1.------*Nhap nhan vien san xuat*--------------------------|";
cout << "\n|2.------*Nhap nhan vien van phong--------------------------|";
cout << "\n|0.------*T-h-o-a-t'---C-h-u-o-n-g---T-r-i`-n-h-------------|";
cout << "\n|<--by a POsgia.com---------------------------------------->|";
cout << "\n|**https://www.facebook.com/chuc.tiensinh*******************|";
cout << "\n. - -._. - -. - -._. - -. - -._. - -. - _______?_¤? ... ?¤ _______?_¤? ... ?¤ - -.";
cout << "\n. Love.you! - Love.you!-._. - Love.you!-..Love.you!Love.you!";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
do {
cout << "\nNhap lua chon: "; cin >> chon;
if (chon < 0 || chon>2)
{
cout << "\nCo 2 lua chon xin kiem tra lai!";
}
} while (chon < 0 || chon>2);
if (chon == 1)
{
POs = new NhanVienSanXuat;
}
else if (chon == 2)
{
POs = new NhanVienVanPhong;
}
if (chon != 0)
{
POs->nhap();
Mangnhanvien.push_back(POs);
}
} while (chon != 0);
}
void CongTy::Xuatmangnhanvien()
{
int POscout = Mangnhanvien.size();
for (int i = 0; i < POscout; i++)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 5);
cout << "\nThong tin nhan vien thu: " << i + 1;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
Mangnhanvien[i]->xuat();
cout << "\nTien luong cua ban la: "<<size_t(Mangnhanvien[i]->Tinhluong());
}
}
/// t?ng s? ti?n pah? tr? cho nhân viên m?i tháng
double CongTy::Tinhluongnhanviencongtymoithang()
{
double tong = 0;
int POscout = Mangnhanvien.size();
for (int i = 0; i < POscout; i++)
{
tong += Mangnhanvien[i]->Tinhluong();
}
return tong;
}
CongTy::~CongTy()
{
}
//main()
#include<iostream>
#include"CongTy.h"
using namespace std;
int main()
{
CongTy *a=new CongTy;
a->Nhapmangnhanvien();
a->Xuatmangnhanvien();
cout << "\nSo tien phai tra cho nhan vien trong cong ty moi thang la: ";
cout << "\n"<<size_t(a->Tinhluongnhanviencongtymoithang()/12);
system("pause");
return 0;
}
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.