[ C++ ] Chữa bài thi thử môn Lập trình hướng đối tượng với C++

Chữa bài thi thử môn Lập trình hướng đối tượng với C++ 

Đề bài:
Sử dụng ngôn ngữ lập trình C++ viết chương trình tính lương cho công ty TOTO. Công ty có 2 loại lao động: Lao động thời vụ  và công nhân chính thức (trả lương theo tháng).
Tính lương tháng của công nhân như sau:
+ Lao động thời vụ: Lương tháng = số ngày công * đơn giá ngày công + thưởng
Trong đó: Thưởng = 2500000 nếu số ngày công lơn hơn hoặc bằng 25.
Thưởng = 2000000 nếu số ngày công nhỏ hơn 25 và lớn hơn 10.
Thường =0 nếu số ngày công nhỏ hơn hoặc bằng 10.
+ Công nhân chính thức: Lương tháng = lương cơ bản * Hệ số lương + phụ cấp
Trong đó: Phụ cấp = lương cơ bản * 1.2 nếu thâm niên công tác từ 3 năm trở nên
Phụ cấp = lương cơ bản * 1.0 nếu thâm niên công tác nhỏ hơn 3 năm

Yêu cầu:
1. Xây dựng lớp trừu tượng TOTO bao gồm:
+ Thuộc tính: Mã NV, Họ tên, loại hợp đồng (lao động thời vụ hay công nhân chính thức).
+ Phương thức:
- NhapThongTin để nhập thông tin cho người lao động gồm: Họ tên, địa chỉ, loại hợp đồng
- Khởi tạo thông tin ban đầu cho người lao động.
- TinhLuong để tính lương tháng cho người lao động (trừu tượng).
- InThongTin để in thông tin người lao động gồm:
*Mã NV
*Họ tên: …
*Loại hợp đồng: …
*Lương tháng: …
2. Xây dựng hai lớp LDThoiVu và CNChinhThuc kế thừa từ lớp TOTO (bổ sung thêm các thuộct tính cần thiết cho từng lớp)
- Khởi tạo giá trị ban đầu về thông tin cho từng loại công nhân (mỗi loại đối tượng).
- Cài đặt phương thức TinhLuong cho từng loại lao động.
- Nhập giá trị cho các thuộc tính mới được bổ sung.
3. Trong phương thức main thực hiên:
- Khởi tạo các đối tượng (mỗi loại lao động một đối tượng)
- Nhập thông tin cho đối tượng
- In thông tin đối tượng
Biết rằng: lương cơ bản = 1,050,000 (VNĐ).

---------------------------------
// Code Turbo C++ 3.0 / 4.5 //
--------------------------------

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


// class TOTO

class TOTO{
// khai bao cac thuoc tinh
public:
char manv[10],ht[30],lhd[30];
public:
// khai bao cac phuong thuc
TOTO(char *manv,char *ht,char *lhd) //phuong thuc khoi tao
{
strcpy(this->manv,manv);
strcpy(this->ht,ht);
strcpy(this->lhd,lhd);
}
virtual void NhapTT() // phuong thuc ao
{
 fflush(stdin);
 cout<<"\n Nhap thong tin nguoi lao dong:\n";
 cout<<"\n Ma nhan vien: "; gets(manv);
 cout<<"\n Ho ten: "; gets(ht);
 cout<<"\n Loai hop dong: "; gets(lhd);
}
virtual double TinhLuong()=0; // phuong thuc thuan ao
virtual void InTT()
{
 cout<<"\n Ma nhan vien: "<<manv;
 cout<<"\n Ho ten: "<<ht;
 cout<<"\n Loai hop dong: "<<lhd;
 cout<<"\n Luong thang: "<<TinhLuong();
}
};

// class LDThoiVu

class LDThoiVu: public TOTO{
// bo sung them cac thuoc tinh
public:
int soNgayCong;
float donGia;
// Phuong thuc
public:
 // phuong thuc khoi tao
LDThoiVu(char manv[],char ht[],char lhd[], int soNgayCong, float donGia):TOTO(manv,ht,lhd)
{
 this->soNgayCong=soNgayCong;
 this->donGia=donGia;
}
void NhapTT(){
 TOTO::NhapTT(); // goi phuong thuc nhap cua lop cha
 cout<<"\n So ngay cong: "; cin>>soNgayCong;
 cout<<"\n Don gia: "; cin>>donGia;
}
double TinhLuong(){
 double thuong;
 if (soNgayCong>25) thuong=2500000.0;
 else if(soNgayCong>10) thuong=2000000.0;
 else thuong=0.0;

 return (donGia*soNgayCong+thuong);
}

};


// class CNChinhThuc

class CNChinhThuc: public TOTO{
// bo sung them cac thuoc tinh
public:
float heSoLuong,LCB;
int soNamCT;
// Phuong thuc
public:
 // phuong thuc khoi tao
CNChinhThuc(char manv[],char ht[],char lhd[], float heSoLuong, int soNamCT):TOTO(manv,ht,lhd)
{
    this->LCB=1050000.0;
 this->heSoLuong=heSoLuong;
 this->soNamCT=soNamCT;
}
void NhapTT(){
 TOTO::NhapTT(); // goi phuong thuc nhap cua lop cha
 cout<<"\n He so luong: "; cin>>heSoLuong;
}
double TinhLuong(){
 double phuCap;
 if (soNamCT>3) phuCap=LCB*1.2;
 else  phuCap=LCB*1.0;


 return (LCB*heSoLuong+phuCap);
}

};

// ham main
void main(){
 clrscr();
 // khai bao doi tuong LDThoiVu
 LDThoiVu t=LDThoiVu("","","",1,1.0);
 t.NhapTT();
 t.InTT();
 // khai bao doi tuong CNChinhThuc
 CNChinhThuc t1=CNChinhThuc("","","",1.0,1);
 t1.NhapTT();
 t1.InTT();

 getch();
}

//-----------------------------
// Đề nghị các bạn chuyển code sang ngôn ngữ Java


Chúc các bạn thành công!

 



Categories

AI (13) AI programming (1) ASP (1) Android (32) App Honeygain (4) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (108) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (6) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (6) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (3) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (4) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (3) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)