Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Kế thừa trên C++ | Quản lý và tính lương nhân viên. Giúp đỡ mình với?

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    17

    Mặc định Kế thừa trên C++ | Quản lý và tính lương nhân viên. Giúp đỡ mình với?

    PHP Code:
    Một công ty sản xuất có 2 loại nhân viên:    
       - 
    Nhân viên sản xuấtlương sản phẩm x 10000.
       
    Nhân viên văn phònglương mức lượng – ngày nghỉ x 10000.
    Thông tin chung của nhân viên công ty gồm
    :    
       - 
    Họ tên.
       - 
    Năm vào làm.
    Ngoài lương được tính như trênmỗi nhân viên còn được phụ cấp một khoảng tiền là 100000. 
    Và khoảng tiền này cứ tăng thêm 20000 cho mỗi năm công tác ở công ty
    .
    Viết chương trình:    
       - 
    Nhập vào danh sách nhân viên công ty.
       - 
    Tính tổng số tiền công ty phải trả cho nhân viên mỗi tháng
    đề bài là vậy, các pro giúp e viết hàm dựng, hàm dựng sao chép, toán tử =, hàm hủy đc kô, e làm woai mà nó cứ báo lỗi hic hic làm ơn giúp e với, thanks nhìu
    Đã được chỉnh sửa lần cuối bởi tunglong123 : 21-05-2009 lúc 10:44 PM.

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    178

    cậu up cái code lỗi lên đây tớ sửa cho.up mấy cái lỗi được rồi đừng up nguyên bài nha

  3. #3
    Ngày gia nhập
    04 2009
    Bài viết
    17

    đây là class CongTy
    PHP Code:
    #pragma once
    #include "NhanVien1.h"

    class CongTy1
    {
        
    int m_iSoNV;
        
    NhanVien1 *nv[100];
    public:
        
    void Nhap();
        
    void Xuat();
        
    void tongLuong();
        
    CongTy1(void);
        ~
    CongTy1(void);
    };

    CongTy1::CongTy1(void)
    {
    }

    CongTy1::~CongTy1(void)
    {
    }
    void CongTy1::Nhap()
    {
        
    cout << "nhap so nhan vien : ";
        
    cin >> m_iSoNV;
        for(
    int i 0m_iSoNVi++)
        {
            
    int temp;
            
    cout << endl << "tuyen nhan vien : " << endl;
            
    cout << " 1. nhan vien van phong." << endl;
            
    cout << " 2. nhan vien san xuat." << endl;
            
    cout << "chon : ";
            
    cin >> temp;
            if(
    temp 1)
            {
                
    cout << "nhan vien van phong" << endl;
                
    nv[i] = new VanPhong;
            }
            if(
    temp == 2)
            {
                
    cout << "nhan vien san xuat" << endl;
                
    nv[i] = new SanXuat;
            }
            
    nv[i]->Nhap();
            
        }
    }
    void CongTy1::Xuat()
    {
        
    cout << endl << "DANH SACH NHAN VIEN CONG TY" << endl;
        for(
    int i 0m_iSoNVi++)
            
    nv[i]->Xuat();

    còn đây là class NhanVien1
    PHP Code:
    #pragma once
    #include "string"
    #include "iostream"
    using namespace std;

    class 
    NhanVien1
    {
    protected:
        
    char *m_pHoTen;
        
    int m_iNamVao;
    public:
        
    virtual void Nhap() = 0;
        
    virtual void Xuat() = 0;
        
    virtual int tinhLuong() = 0;
        
    int troCap();
        
    NhanVien1(const NhanVien1 &nv);
        
    NhanVien1(char *pHoTenint iNamVao);
        ~
    NhanVien1(void);
    };

    NhanVien1::NhanVien1(char *pHoTenint iNamVao)
    {
        
    m_pHoTen = new char[strlen(pHoTen) + 1];
        
    strcpy(m_pHoTenpHoTen);
        
    m_iNamVao iNamVao;
    }

    NhanVien1::~NhanVien1(void)
    {
        
    delete[]m_pHoTen;
    }
    int NhanVien1::troCap()
    {
        return (
    100 + (2009 m_iNamVao) * 20);
    }
    NhanVien1 ::NhanVien1(const NhanVien1 &nv)
    {
        
    m_pHoten = new char[strlen(nv.m_pHoTen) + 1];
        
    m_iNamVao nv.m_iNamVao;

    đây là class nhân viên sản xuất
    PHP Code:

    #pragma once
    #include "NhanVien1.h"

    class SanXuat:public NhanVien1
    {
    protected:
        
    int m_iSanPham;
    public:
        
    void Nhap();
        
    void Xuat();
        
    int tinhLuong();
        
    SanXuat(const SanXuat &sx);
        
    SanXuat operator =(const SanXuat &sx);
        
    SanXuat(char *pHoTenint iNamVaoint iSanPham);
        ~
    SanXuat(void);
    };

    SanXuat::SanXuat(char *pHoTenint iNamVaoint iSanPham):NhanVien1(pHoTeniNamVao)
    {
        
    m_iSanPham iSanPham;
    }
    SanXuat SanXuat ::operator =(const SanXuat &sx)
    {
        
    m_pHoTen = new char[strlen(sx.m_pHoTen) + 1];
        
    m_iNamVao sx.m_iNamVao;
        
    m_iSanPham sx.m_iSanPham;
        return *
    this;
    }
    SanXuat::~SanXuat(void)
    {
    }
    void SanXuat::Nhap()
    {
        
    cout << "nhap ten nhan vien : ";
        
    cin.ignore();
        
    cin.getline(m_pHoTen);
        
    cout << "nhap nam vao lam viec : ";
        
    cin >> m_iNamVao;
        
    cout << "nhap so san pham lam dc : ";
        
    cin >> m_iSanPham;
    }
    void SanXuat::Xuat()
    {
        
    cout << "Ho Ten : " << m_pHoTen << endl;
        
    cout << "Nam vao : " << m_iNamVao << endl;
    }
    int SanXuat::tinhLuong()
    {
        return (
    m_iSanPham 10 troCap());

    đây là class nhân viên văn phòng
    PHP Code:
    #pragma once
    #include "NhanVien1.h"
    class VanPhong:public NhanVien1
    {
    protected:
        
    int m_iMucLuong;
        
    int m_iNgayNghi;
    public:
        
    void Nhap();
        
    void Xuat();
        
    int tinhLuong();
        
    VanPhong(const VanPhong &vp);
        
    VanPhong operator =(const VanPhong &);
        
    VanPhong(char *pHoTenint iNamVaoint iMucLuongint iNgayNghi);
        ~
    VanPhong(void);
    };

    VanPhong VanPhong ::operator =(const VanPhong &vp)
    {
        
    m_pHoten = new char[strlen(vp.m_pHoTen) + 1];
        
    m_iNamVao vp.m_iNamVao;
        
    m_iMucLuong vp.m_iMucLuong;
        
    m_iNgayNghi vp.m_iNgayNghi;
        return *
    this;
    }
    VanPhong::VanPhong(char *pHoTenint iNamVaoint iMucLuongint iNgayNghi):NhanVien1(pHoTeniNamVao)
    {
        
    m_iMucLuong iMucLuong;
        
    m_iNgayNghi iNgayNghi;
    }

    VanPhong::~VanPhong(void)
    {
        
    delete[]m_pHoTen;
    }
    void VanPhong::Nhap()
    {
        
    cout << "nhap ten nhan vien : ";
        
    cin.ignore();
        
    cin.getline(m_pHoTen);
        
    cout << "nhap nam vao lam viec : ";
        
    cin >> m_iNamVao;
        
    cout << "nhap muc luong : ";
        
    cin >> m_iMucLuong;
        
    cout << "nhap so ngay nghi : ";
        
    cin >> m_iNgayNghi;
    }
    void VanPhong::Xuat()
    {
        
    cout << "Ho Ten : " << m_pHoTen << endl;
        
    cout << "Nam vao : " << m_iNamVao << endl;

    }
    int VanPhong::tinhLuong()
    {
        return (
    m_iMucLuong m_iNgayNghi 10 troCap());

    xin mấy pro fix giùm e hix
    loi của chương trình nà
    PHP Code:
    nv[i] = new VanPhong
    error C2512: 'VanPhong' : no appropriate default constructor available

    PHP Code:
    nv[i] = new SanXuat
    error C2512: 'SanXuat' : no appropriate default constructor available

    PHP Code:
    strcpy(m_pHoTenpHoTen); 
    warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

    PHP Code:
    m_pHoten = new char[strlen(nv.m_pHoTen) + 1]; 
    error C2065: 'm_pHoten' : undeclared identifier

    PHP Code:
    SanXuat::SanXuat(char *pHoTenint iNamVaoint iSanPham):NhanVien1(pHoTeniNamVao
    error C2143: syntax error : missing ')' before ';'
    error C2761: '{ctor}' : member function redeclaration not allowed
    error C2059: syntax error : ')'
    error C2470: 'iSanPham' : looks like a function definition, but there is no parameter list; skipping apparent body

    PHP Code:
    cin.getline(m_pHoTen); 
    error C2661: 'std::basic_istream<_Elem,_Traits>::getline' : no overloaded function takes 1 arguments

  4. #4
    Ngày gia nhập
    03 2008
    Nơi ở
    Hồ chí minh
    Bài viết
    134

    Nhìn bài của bạn chóng mặt quá,Mình dich mấy cái lỗi của bạn sang tiếng việt,bạn có thể tham khảo để hiểu chỗ sai của mình:
    error C2512: 'VanPhong' : no appropriate default constructor available
    ->lỗi C2512: 'VanPhong': không có hàm tạo mặc định thích hợp có sẵn.

    warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details
    ->cảnh báo C4996: 'strcpy': Chức năng này có thể được thay đổi hoặc không an toàn. Strcpy_s cân nhắc việc sử dụng để thay thế. Để vô hiệu hoá deprecation, hãy sử dụng _CRT_SECURE_NO_WARNINGS. Xem phần trợ giúp trực tuyến để biết chi tiết.

    error C2065: 'm_pHoten' : undeclared identifier
    ->lỗi C2065: 'm_pHoten': định dạng không được khai báo

    error C2143: syntax error : missing ')' before ';'
    ->C2143 lỗi: lỗi cú pháp: thiếu ')' trước ';'
    error C2761: '{ctor}' : member function redeclaration not allowed
    ->lỗi C2761: '(ctor)': thành viên không được cho phép khai báo hơn 1 lần

    error C2059: syntax error : ')'
    lỗi C2059:lỗi cú pháp ‘)’

    error C2470: 'iSanPham' : looks like a function definition, but there is no parameter list;skipping apparent body
    ->lỗi C2470: 'iSanPham': nhìn giống như một chức năng xác định, nhưng không có tham số nào trong danh sách, rõ ràng thân đã bị bỏ qua.
    error C2661: 'std::basic_istream<_Elem,_Traits>::getline' : no overloaded function takes 1 arguments
    lỗi C2661: 'std:: basic_istream <_Elem,_Traits>:: getline': không được quá tải chức năng mang 1 đối số.
    Every step I'm taking
    Every move I make
    Feels lost with no direction
    My faith is shaking
    But I gotta keep trying.

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    17

    hịc dịch thì mình cũng dịch rùi nhưng mình kô bít sửa sao hết mới post bài này mà hịc

  6. #6
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Mặc định Kế thừa trên C++ | Quản lý và tính lương nhân viên. Giúp đỡ mình với?

    khi trong 1 class có viết bất cứ hàm khởi tạo nào kể cả copy constructor thì cũng phải viết thêm cho class đó 1 cái default constructor.mình sửa jup hai cái class NhanVien1 &Sanxuat .cái văn phong viết tương tự.
    PHP Code:
    #include "iostream"
    #include "string.h"
    using namespace std;
    class 
    NhanVien1
    {
    protected:
        
    char *m_pHoTen;
        
    int m_iNamVao;
    public:
        
    virtual void Nhap();
        
    virtual void Xuat();
        
    virtual int tinhLuong() = 0;
        
    int troCap();
        
    NhanVien1(const NhanVien1 &nv);
        
    NhanVien1 &operator = (const NhanVien1 &nv);
        
    NhanVien1(char *pHoTenint iNamVao);
        ~
    NhanVien1(void);
        
    NhanVien1(void);
    };
    void NhanVien1::Nhap()
    {
        
        
    cout << "nhap ten nhan vien : ";
        
    m_pHoTen = new char[30];
        
    cin.getline(m_pHoTen30);
        
    cout << "nhap nam vao lam viec : ";
        
    cin >> m_iNamVao;
        
    }
    void NhanVien1::Xuat()
    {
        
    cout << "Ho Ten : " << m_pHoTen << endl;
        
    cout << "Nam vao : " << m_iNamVao << endl;
    }
    NhanVien1::NhanVien1(const NhanVien1 &nv)
    {
        
    m_pHoTen = new char[strlen(nv.m_pHoTen) + 1];
        
    m_iNamVao nv.m_iNamVao;
    }  
    NhanVien1 &NhanVien1::operator =(const NhanVien1 &nv)
    {
        if (
    this->m_pHoTen == nv.m_pHoTen)
        {
            return *
    this;
        }
        if (
    this->m_pHoTen)
        {
            
    delete[]m_pHoTen;
        }
        
    int n strlen(nv.m_pHoTen);
        
    this->m_pHoTen = new char[1];
        
    strcpy(this->m_pHoTennv.m_pHoTen);
        
    this->m_iNamVao nv.m_iNamVao;
        return *
    this;
    }
    NhanVien1::NhanVien1(char *pHoTenint iNamVao)
    {
        
    m_pHoTen = new char[strlen(pHoTen) + 1];
        
    strcpy(m_pHoTenpHoTen);
        
    m_iNamVao iNamVao;
    }

    NhanVien1::~NhanVien1(void)
    {
        
    delete[]m_pHoTen;
    }
    int NhanVien1::troCap()
    {
        return (
    100 + (2009 m_iNamVao) * 20);
    }

    NhanVien1::NhanVien1()
    {

    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////
    class SanXuat:public NhanVien1
    {
    protected:
        
    int m_iSanPham;
    public:
        
    void Nhap();
        
    void Xuat();
        
    int tinhLuong();
        
    SanXuat(const SanXuat &sx);
        
    SanXuat &operator =(const SanXuat &sx);
        
    SanXuat(char *pHoTenint iNamVaoint iSanPham);
        ~
    SanXuat(void);
        
    SanXuat(void);
    };
    SanXuat::SanXuat(const SanXuat &sx):NhanVien1(sx), m_iSanPham(sx.m_iSanPham)
    {
    }
    SanXuat::SanXuat()
    {
        
    }
    SanXuat::SanXuat(char *pHoTenint iNamVaoint iSanPham):NhanVien1(pHoTeniNamVao), m_iSanPham(iSanPham)
    {
        
    }
    SanXuat &SanXuat ::operator =(const SanXuat &sx)
    {
        
    NhanVien1::operator =(sx);
        
    this->m_iSanPham sx.m_iSanPham;
        return *
    this;
    }
    SanXuat::~SanXuat(void)
    {
    }
    void SanXuat::Nhap()
    {
        
    NhanVien1::Nhap();
        
    cout << "nhap so san pham lam dc : ";
        
    cin >> m_iSanPham;
    }
    void SanXuat::Xuat()
    {
        
    NhanVien1::Xuat();
        
    cout << "so san pham lam dc : " << m_iSanPham << endl;
    }
    int SanXuat::tinhLuong()
    {
        return (
    m_iSanPham 10 troCap());


  7. #7
    Ngày gia nhập
    04 2009
    Bài viết
    17

    thanks rua con nhiều , sao diễn đàn kô có nút thanks nhỉ

  8. #8
    Ngày gia nhập
    12 2009
    Bài viết
    28

    Ủa.
    Code:
    nv[i] = new VanPhong;
    nv là kiểu NhanVien1 sao ở đây là new VanPhong.
    Mình bị lỗi:
    Code:
    error C2243: 'type cast' : conversion from 'NVVP *' to 'NV *' exists, but is inaccessible

  9. #9
    Ngày gia nhập
    01 2011
    Bài viết
    3

    Thằng châu đào mộ hả .....

  10. #10
    Ngày gia nhập
    12 2009
    Bài viết
    28

    Up.

    Mình muốn hỏi trong bài này nv là mảng thuộc kiểu NV để lưu danh sách NV (bao gồm NVVP và NVSX)
    Vậy sao có thể cài đặt NVVP hoặc NVSX vào mảng nv
    Đoạn code trên
    Code:
    nv[i] = new VanPhong;
    là sai

Các đề tài tương tự

  1. Bài tập C ai giúp e với bài quản lý học viên cái :(
    Gửi bởi danganhhao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 27-02-2012, 02:00 PM
  2. Bài tập về quản lý Nhân viên cần giúp đỡ !
    Gửi bởi wanbimonkeyuit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 10-02-2011, 06:10 PM
  3. Kế thừa trên C++ | Chương trình tính tiền lương cho các nhân viên. Giúp mình làm với?
    Gửi bởi conghanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 23-10-2009, 04:12 PM
  4. Bài quản lí nhân viên. Giúp mình sửa lỗi với?
    Gửi bởi tphucle trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 03-06-2009, 11:37 PM
  5. Bài quản lý nhân viên, giúp mình tìm lỗi bài này với?
    Gửi bởi tuananh88 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 11-05-2009, 08:56 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn