OOP (Đa hình) Quản lý nhân viên

////////////////////////////////Nhân viên .h #pragma once #include<iostream> using namespace std; #include<string> class Nhanvien { protected: string ten, ngaysinh, ma; int id; public: int getterid(); string getterma(); void setterma( string); virtual void nhap(); virtual void xuat(); virtual double Tinhluong(); Nhanvien(); ~Nhanvien(); }; /////////////////////////////nhân viên .cpp #include "Nhanvien.h" Nhanvien::Nhanvien() { } void Nhanvien::nhap() { fflush(stdin); cin.ignore(); cout << "\nNhap ten: "; getline(cin, ten); cout << "\nNhap ngay sinh: "; getline(cin,ngaysinh); id = 0; } void Nhanvien::xuat() { cout << "\nMa: "<<ma; cout << "\nTen: "<<ten; cout << "\nNgay sinh: "<<ngaysinh; } double Nhanvien::Tinhluong() { return 0; } int Nhanvien::getterid() { return id; } Nhanvien::~Nhanvien() { } string Nhanvien::getterma() { return ma; } void Nhanvien::setterma(string xma) { ma = xma; } /////////////////////////////////Nhân viên quản lý.h #pragma once #include"Nhanvien.h" class Nhanvienquanly: public Nhanvien { private: double hesoluong, luongcanban; public: void nhap(); void xuat(); double Tinhluong(); Nhanvienquanly(); ~Nhanvienquanly(); }; /////////////////////////////////Nhân viên quản lý.cpp #include "Nhanvienquanly.h" void Nhanvienquanly::nhap() { Nhanvien::nhap(); cout << "\nNhap luong can ban: "; cin >> luongcanban; cout << "\nNhap he so luong: "; cin >> hesoluong; id = 1; } void Nhanvienquanly::xuat() { Nhanvien::xuat(); cout << "\nLuong can ban: "<< size_t(luongcanban); cout << "\nHe so luong: "<<size_t(hesoluong); } double Nhanvienquanly::Tinhluong() { return luongcanban*hesoluong; } Nhanvienquanly::Nhanvienquanly() { } Nhanvienquanly::~Nhanvienquanly() { } ///////////////////////////////Nhân viên công nhập.h #pragma once #include"Nhanvienquanly.h" class Nhanviencongnhap:public Nhanvien { private: int songaycong; public: void nhap(); void xuat(); double Tinhluong(); Nhanviencongnhap(); ~Nhanviencongnhap(); }; ///////////////////////////////Nhân viên công nhập.cpp #include "Nhanviencongnhap.h" void Nhanviencongnhap::nhap() { Nhanvien::nhap(); cout << "\nNhap so ngay cong:"; cin >> songaycong; id = 3; } void Nhanviencongnhap::xuat() { Nhanvien::xuat(); cout << "\nSo ngay cong: "<<songaycong; } double Nhanviencongnhap::Tinhluong() { return songaycong*120000; } Nhanviencongnhap::Nhanviencongnhap() { } Nhanviencongnhap::~Nhanviencongnhap() { } ////////////////////////Nhân viên sản Xuất .h #pragma once #include"Nhanviencongnhap.h" class Nhanviensanxuat :public Nhanvien { private: int sosanpham; public: void nhap(); void xuat(); double Tinhluong(); Nhanviensanxuat(); ~Nhanviensanxuat(); }; ////////////////////////Nhân viên sản Xuất .cpp #include "Nhanviensanxuat.h" void Nhanviensanxuat::nhap() { Nhanvien::nhap(); cout << "\nNhap so san pham: "; cin >> sosanpham; } void Nhanviensanxuat::xuat() { Nhanvien::xuat(); cout << "\nSo san pham"<<sosanpham; id = 2; } double Nhanviensanxuat::Tinhluong() { return sosanpham * 55000; } Nhanviensanxuat::Nhanviensanxuat() { } Nhanviensanxuat::~Nhanviensanxuat() { } /////////////////////////////////////////////công ty .h #pragma once #include"Nhanviensanxuat.h" #include<vector> class Congty { private: vector<Nhanvien *> list; public: void Nhap(); void Xuat(); double tinhluongcongty(); double tinhtongluongquanly(); Congty(); ~Congty(); }; ///////////////////////////công ty .cpp #include "Congty.h" void Congty::Nhap() { int chon; Nhanvien *a=new Nhanvien; do { cout << "-------------MENU-------------------"; cout << "\n1.---Nhap nhan vien quan ly----------"; cout << "\n2.---Nhap nhan vien san xuat---------"; cout << "\n3.---Nhap nhan vien cong nhap--------"; cout << "\n------------------------------------\n"; cout << "Nhap lua chon:"; cin >> chon; if (chon == 1) { a = new Nhanvienquanly; } else if (chon == 2) { a = new Nhanviensanxuat; } else if(chon==3) { a = new Nhanviencongnhap; } if (chon != 0) { bool check; string ma; do { fflush(stdin); cin.ignore(); cout << "\nNhap ma: "; getline(cin, ma); int size = list.size(); check = true; for (int i = 0; i < size; i++) { if (ma==list[i]->getterma()) { check = false; break; } } if (check == false) { cout << "\nMa nay bi trung xin kiem tra lai!"; } } while (check == false); a->setterma(ma); a->nhap(); list.push_back(a); } } while (chon != 0); } void Congty::Xuat() { int pos = list.size(); for (int i = 0; i < pos; i++) { list[i]->xuat(); } } double Congty::tinhluongcongty() { int tong=0; int pos = list.size(); for (int i = 0; i < pos; i++) { tong += list[i]->Tinhluong(); } return tong; } double Congty::tinhtongluongquanly() { int tong=0; int pos = list.size(); for (int i = 0; i < pos; i++) { if (list[i]->getterid() == 1) { tong += list[i]->Tinhluong(); } } return tong; } Congty::Congty() { } Congty::~Congty() { }

3 Responses

Admin cho mình hỏi sao bài k có hàm main() ạ

Write a 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.