TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HỆ THỐNG THÔNG TIN KINH TẾ VÀ THƯƠNG MẠI ĐIỆN TỬ BÀI THẢO LUẬN NHÓM Học phần: Lập trình hướng đối tượng Đề tài thảo luận: Xác định và xây dựng một số lớp trên C++ phục vụ các chức năng cơ bản trong hệ thống thông tin quản lý nhân sự Nhóm thực hiện : Nhóm 1 Giảng viên : Th.s Cù Nguyên Giáp Lớp học phần : 2204INFO1931 Hà Nội, 2022 Mục lục Lời mở đầu, 7 A. Cơ sở lý thuyết 8 1. Lập trình hướng đối tượng 8 1.1 Lập trình tuyến tính 8 1.2 Lập trình hướng cấu trúc 8 1.3 Phương pháp lập trình hướng đối tượng 8 1.4 So sánh phương pháp lập trình hướng đối tượng với các phương pháp khác 9 2. Các khái niệm cơ bản trong OOP 11 2.1 Trừu tượng hóa dữ liệu 11 2.2 Đối tượng 11 2.3 Lớp đối tượng 11 2.4 Thuộc tính & Phương thức 11 3. Đối tượng và lớp trong C++ 12 3.1 Lớp 12 3.2 Hàm thiết lập và hủy bỏ 14 3.3 Các thành phần tĩnh (static) 16 3.4 Hàm bạn và lớp bạn 17 B. Xác định và xây dựng một số lớp trên C++ phục vụ các chức năng cơ bản trong hệ thống thông tin quản lý nhân sự 18 Chương 1: Bài toán 18 1. Bài toán: 18 2. Yêu cầu 18 3. Thiết kế sơ đồ các lớp 19 Chương 2: Thông tin nhân viên trong file NHANVIEN.txt 20 Chương 3: Chương trình code 27 3.1 Class date 27 3.2 Class NhanVien 28 3.3 Class NhanVienSX 30 3.4 Class NhanVienQL 31 3.5 Class NhanVienVP 32 3.6 Class CongTy 33 3.7 Hàm main 39 Lời cảm ơn, 40
Trang 1TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HỆ THỐNG THÔNG TIN KINH TẾ VÀ THƯƠNG MẠI ĐIỆN TỬ
BÀI THẢO LUẬN NHÓM
Học phần: Lập trình hướng đối tượng
Đề tài thảo luận: Xác định và xây dựng một số lớp trên C++ phục vụ các chức năng
cơ bản trong hệ thống thông tin quản lý nhân sự
Trang 2I Thời gian: 20h ngày 28 tháng 1 năm 2022
II Địa điểm: phòng họp meet
III Thành phần tham gia:
1 Bùi Thị Lan Anh
2 Đặng Ngọc Anh
3 Lê Phương Anh
4 Nguyễn Hoàng Anh
5 Nguyễn Mai Anh
6 Nguyễn Phương Anh S1
7 Nguyễn Phương Anh S2
8 Nguyễn Thị Vân Anh
9 Trần Thị Tú Anh
10 Trần Tuấn Anh
IV.Nội dung
Thảo luận chọn ra nhóm trưởng và đề tài thảo luận
Cuộc họp kết thúc vào lúc 21 giờ cùng ngày
Người viết biên bảnBùi Thị Lan Anh
Cộng hòa xã hội chủ nghĩa Việt Nam
Trang 3I Thời gian: 20h ngày 15 tháng 3 năm 2022
II Địa điểm: phòng họp meet
III Thành phần tham gia:
1 Bùi Thị Lan Anh
2 Đặng Ngọc Anh
3 Lê Phương Anh
4 Nguyễn Hoàng Anh
5 Nguyễn Mai Anh
6 Nguyễn Phương Anh S1
7 Nguyễn Phương Anh S2
8 Nguyễn Thị Vân Anh
9 Trần Thị Tú Anh
10 Trần Tuấn Anh
IV.Nội dung
Thảo luận về đề tài: Xác định và xây dựng một số lớp trên C++ phục vụ các chức năng
cơ bản trong hệ thống thông tin quản lý nhân sự Trao đổi ý kiến, mỗi người đưa ranhững góp ý của mình
Phân chia công việc và tiến hành làm thảo luận
Cuộc họp kết thúc vào lúc 21 giờ 30 phút cùng ngày
Người viết biên bảnBùi Thị Lan Anh
Cộng hòa xã hội chủ nghĩa Việt Nam
Trang 4I Thời gian: 20h ngày 15 tháng 4 năm 2022
II Địa điểm: phòng họp meet
III Thành phần tham gia:
1 Bùi Thị Lan Anh
2 Đặng Ngọc Anh
3 Lê Phương Anh
4 Nguyễn Hoàng Anh
5 Nguyễn Mai Anh
6 Nguyễn Phương Anh S1
7 Nguyễn Phương Anh S2
8 Nguyễn Thị Vân Anh
9 Trần Thị Tú Anh
10 Trần Tuấn Anh
IV Nội dung
Thảo luận về đề tài: Xác định và xây dựng một số lớp trên C++ phục vụ các chứcnăng cơ bản trong hệ thống thông tin quản lý nhân sự Tổng hợp các phần code và tiếnhành chạy chương trình nhưng vẫn chưa ra được kết quả nhưng mong đợi
Các thành viên tiếp tục hoàn thiện bài
Cuộc họp kết thúc vào lúc 21 giờ 30 phút cùng ngày
Người viết biên bảnBùi Thị Lan Anh
Phân chia công việc
Trang 5Đánh giá của thành viên
(thang 10)
Đánh giá của nhóm trưởng
(Thang 10)
1 Bùi Thị Lan Anh Xây dựng bài toán và tổng hợp code và làm
word
2 Đặng Ngọc Anh Phần class date và classNhanVien
3 Lê Phương Anh Phần class CongTy, hàm main
4 Nguyễn Hoàng Anh Phần class CongTy, hàm main
5 Nguyễn Mai Anh Phần class date và classNhanVien
6 Nguyễn Phương Anh
S1
Phần class date và classNhanVien
7 Nguyễn Phương AnhS3 Phần class CongTy, hàm main
8 Nguyễn Thị Vân Anh
Phần class NhanVienSX, NhanVienVP, NhanVienQL
9 Trần Thị Tú Anh Xây dựng thông tin NHANVIEN.txt
10 Trần Tuấn Anh
Phần class NhanVienSX, NhanVienVP, NhanVienQL
Mục lục
Trang 6Lời mở đầu, 7
A Cơ sở lý thuyết 8
1 Lập trình hướng đối tượng 8
1.1 Lập trình tuyến tính 8
1.2 Lập trình hướng cấu trúc 8
1.3 Phương pháp lập trình hướng đối tượng 8
1.4 So sánh phương pháp lập trình hướng đối tượng với các phương pháp khác 9
2 Các khái niệm cơ bản trong OOP 11
2.1 Trừu tượng hóa dữ liệu 11
2.2 Đối tượng 11
2.3 Lớp đối tượng 11
2.4 Thuộc tính & Phương thức 11
3 Đối tượng và lớp trong C++ 12
3.1 Lớp 12
3.2 Hàm thiết lập và hủy bỏ 14
3.3 Các thành phần tĩnh (static) 16
3.4 Hàm bạn và lớp bạn 17
B Xác định và xây dựng một số lớp trên C++ phục vụ các chức năng cơ bản trong hệ thống thông tin quản lý nhân sự 18
Chương 1: Bài toán 18
1 Bài toán: 18
2 Yêu cầu 18
3 Thiết kế sơ đồ các lớp 19
Chương 2: Thông tin nhân viên trong file NHANVIEN.txt 20
Chương 3: Chương trình code 27
3.1 Class date 27
3.2 Class NhanVien 28
3.3 Class NhanVienSX 30
3.4 Class NhanVienQL 31
3.5 Class NhanVienVP 32
3.6 Class CongTy 33
3.7 Hàm main 39
Lời cảm ơn, 40
Trang 7Lời mở đầu,
“Nhân sự” là tài sản quan trọng nhất của mỗi doanh nghiệp, vì thế cả trong và sau khủnghoảng, chúng ta có thể giảm chi phí lao động nhưng hạn chế tới mức thấp nhất việc cắtgiảm nhân sự” giáo sư ChrisBrewster nói Trong nền kinh tế thị trườnghiện nay, trước sựbiến động mạnh mẽ của môi trường kinh doanh, tính chất khốc liệt của sự cạnh tranh vànhu cầu đòi hỏi được đáp ứng ngày càng cao của nhân viên, tất cả những vấn đề này đã vàđang là sức ép lớn đối với doanh nghiệp Trong đó vấn đề quản trị nguồn nhân lực là mộttrong các yếu tố mang tính chất sống còn Quản lý nguồn nhân lực chính là giúp cho bảnthân bạn và doanh nghiệp của bạn đi đến thành công
Hệ thống quản lý nhân sự là nền tảng tổng hợp mọi chức năng hỗ trợ thực hiện các côngtác quản lý nhân sự bao gồm tuyển dụng, phát triển và đãi ngộ nhân sự Thay vì triển khaicông tác quản lý nhân sự theo cách thủ công, truyền thống, việc áp dụng hệ thống quản lýnhân sự khoa học theo những tiêu chuẩn thống nhất trong từng doanh nghiệp đã và đangmang đến một bộ máy nhân sự hiệu quả cao hơn rất nhiều Thông qua hệ thống này, côngtác quản lý nhân sự diễn ra nhanh, gọn, rõ ràng Từ đó: Tuyển dụng nhanh và đúng người,
bố trí đúng công việc Thúc đẩy, khích lệ nhân sự phát huy tối đa năng lực Đảm bảo tínhcông bằng, minh bạch trong vấn đề giải quyết quyền và lợi ích của người lao động
Nhận thức được tầm quan trọng của hệ thống quản lý nhân sự trong các doanh nghiệp nhưvậy nên hiện nay các doanh nghiệp đều chú trọng đến vấn đề này Sự thành công củadoanh nghiệp phụ thuộc vào tính hiệu quả của cách “quản lý con người” của bạn-bao gồm
cả cách quản lý chính bản thân, quản lý các phòng ban, các chức vụ nhân sự trong công
ty Cách quản lý, môi trường làm việc mà bạn đem lại cho nhân viên của mình và cáchtruyền đạt những giá trị và mục đích sẽ quyết định sự thành công của bạn cũng như thành
công của doanh nghiệp Do đó, nhóm 1 chúng em cùng xác định và xây dựng một số lớp trên C++ phục vụ các chức năng cơ bản trong hệ thống thông tin quản lý nhân sự
Trang 8A Cơ sở lý thuyết
1 Lập trình hướng đối tượng
1.1 Lập trình tuyến tính
Chương trình được viết tuần tự với các câu lệnh được thực hiện từ đầu đến cuối
- Chương trình thường chỉ vài trăm dòng
- Phần mềm đơn giản
1.2 Lập trình hướng cấu trúc
Tư tưởng:
+ Chương trình tổ chức thành các chương trình con
+ Mỗi chương trình con đảm nhận xử lý một công việc nhỏ trong toàn bộ hệ thống+ Mỗi chương trình con này lại có thể chia thành các chương trình con nhỏ hơn
+ Quá trình phân chia như vậy tiếp tục cho đến khi nhận được các chương trình conđơn giản
Tổ chức chương trình thành các chương trình con (hàm và thủ tục)
1.3 Phương pháp lập trình hướng đối tượng
Tư tưởng:
+ Phân tích bài toán thành các thực thể được gọi là các đối tượng (Object) từ đóxây dựng các dữ liệu và các hàm (thao tác) thể hiện các đối tượng đó (methords) + Chương trình sẽ được tổ chức thành các đối tượng và sự tương tác giữa các đốitượng
Trang 9Trong đó: đối tượng là sự kết hợp giữa các thuộc tính (dữ liệu) và phương thức (hàm)thao tác trên các thuộc tính đó
1.4 So sánh phương pháp lập trình hướng đối tượng với các phương pháp khác
- Đơn luồng: chỉ códuy nhất mộtluồng công việc vàcác công việcđược thực hiệntuần tự trongluồng đó
- Tập trung vào công việccần thực hiện (thuậttoán)
- Chương trình lớn đượcchia thành các hàm nhỏhơn
- Phần lớn các hàm sửdụng dữ liệu chung
- Các hàm (thủ tục)truyền thông tin chonhau thông qua cơ chếtruyền tham số
- Dữ liệu trong hệ thốngđược chuyển động từhàm này sang hàm khác
- Đóng gói chức năng (sửdụng hàm/ thủ tục màkhông cần biết nội dung
cụ thể)
- Chương trình được thiết
kế theo cách tiếp cận từtrên xuống (top- down)
- Đặt trọng tâm vào đốitượng, tập trung vàokhoanh vùng dữ liệuthay vì hàm
- Chương trình đượcchia thành các đốitượng
- Các đối tượng tácđộng và trao đổithông tin cho nhauthông qua các hàmvới cơ chế thông báo
- Đóng gói chức năng
và dữ liệu
- Các cấu trúc dữ liệuđược thiết kế để đặc
tả được các đối tượng
- Các hàm xác địnhtrên các vùng dữ liệucủa đối tượng đượcgắn với nhau trên cấutrúc dữ liệu đó
- Chương trình đượcthiết kế theo cách tiếpcận từ dưới lên
Ưu
điểm
Được ứng dụng vớicác chương trìnhđơn giản, dễ hiểu
Chương trình dễ hiểu, dễtheo dõi
Tư duy giải thuật rõ ràng
- Dữ liệu và các hàmmới có thể dễ dàng bổsung vào đối tượngnào đó khi cần thiết
dễ nâng cấp thành
hệ thống lớn nhất
- Dữ liệu được bao bọc,che dấu và không chophép các hàm ngoạilai truy cập tự do mà
dữ liệu của một đốitượng chỉ có thể được
Trang 10truy cập bởi chính cáchàm xác định trongđối tượng đó chương trình an toàn
- Mô hình được xâydựng gần với hệthống thực tế
- Thông qua nguyên lýthừa kế loại bỏđoạn chương trình lặplại khi khai báo lớp
và mở rộng khả năng
sử dụng các lớp ngắn gọn, tiết kiệmthời gian
- Cách thiết kế đặttrọng tâm vào dữ liệu
xây dựng mô hìnhchi tiết và cài đặt dễhơn
- Nếu thay đổi cấu trúc
dữ liệu dùng chung chomột số hàm thì phảithay đổi các hàm liênquan dữ liệu đó Khó
mở rộng chương trình
- Mô hình được xây dựngtheo cách tiếp cận nàykhông mô tả được đầy
đủ và trung thực hệthống trong thực tế(phân tích, thiết kế)
Không thích hợp đểxây dựng những phẩnmềm rất lớn
Trang 112 Các khái niệm cơ bản trong OOP
2.1 Trừu tượng hóa dữ liệu
Trừu tượng (Abstraction): Đây là tính trừu tượng đối tượng giống nhau có thể trừutượng hóa thành một lớp chúng ta có thể bỏ tính chất phức tạp của đối tượng bằngcách đưa ra các thuộc tính Kèm theo đó là phương thức cần thiết của đối tượng tronglập trình
Các kỹ thuật trừu tượng hóa
- Đóng gói ( Encapsulation): là tiến trình che dấu việc thực thi chi tiết đối tượng
- Ẩn thông tin (Information Hiding): Đóng gói Không rõ thuộc tính lưu trữ hayphương thức được cài đặt như thế nào được che giấu đi từ các đối tượng
- Tính thừa kế (Inheritance):
Thừa kế nghĩa là các phương thức và các thuộc tính được định nghĩa trong một lớp
có thể được thừa kế hoặc được sử dụng lại bởi lớp khác
Hệ thống hướng đối tượng cho phép các lớp được định nghĩa thừa kế từ các lớpkhác
- Tính đa hình (polymorphism): Đa hình “nhiều hình thức”, hành động cùng tên cóthể được thực hiện khác nhau đối với các đối tượng/ các lớp khác nhau
- Đối tượng (object) là một thực thể phần mềm bao bọc các thuộc tính và cácphương thức liên quan
- Thuộc tính được xác định bởi giá trị cụ thể gọi là thuộc tính thể hiện Một đốitượng cụ thể được gọi là một thể hiện
- Một đối tượng là một thể hiện cụ thể của một lớp
- Mỗi thể hiện có thể có những thuộc tính thể hiện khác nhau
2.4 Thuộc tính & Phương thức
- Thuộc tính (attribute): là dữ liệu trình bày các đặc điểm về một đối tượng
Trang 12- Phương thức (method): có liên quan tới những thứ mà đối tượng có thể làm Mộtphương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng
- Thuộc tính lớp (class attribute) là một hạng mục dữ liệu liên kết với một lớp cụ thể
mà không liên kết với các thể hiện của lớp Nó được định nghĩa bên trong địnhnghĩa lớp và được chia sẻ bởi tất cả các thể hiện của lớp
- Phương thức lớp (class method) là một phương thức được triệu gọi mà không thamkhảo tới bất kỳ một đối tượng nào Tất cả các phương thức lớp ảnh hưởng đến toàn
bộ lớp chứ không ảnh hưởng đến một lớp riêng rẽ nào
- Thông điệp: là một lời yêu cầu một hoạt động bao gồm: đối tượng nhận thông điệp,tên của các phương thức thực hiện, các tham số mà phương thức cần
- Truyền thông điệp: một đối tượng triệu gọi một hay nhiều phương thức của đốitượng khác để yêu cầu thông tin
3 Đối tượng và lớp trong C++
3.1 Lớp
3.1.1 Khái niệm
Lợi ích của việc đóng gói:
- Nhìn từ bên ngoài, một đối tượng chỉ được biết tới bởi các mô tả về các phương thứccủa nó, cách cài đặt dữ liệu như thế nào không quan trọng
- Các phương thức đóng vai trò là giao diện bắt buộc giữa các đối tượng và người sử dụng
- Nâng cao chất lượng của chương trình
- Bảo trì chương trình thuận lợi hơn: một sự thay đổi cấu trúc của một đối tượng chỉ ảnhhưởng đến bản thân đối tượng, người sử dụng đối tượng ko cần biết sự thay đổi này (vớilập trình cấu trúc thì người sử dụng phải tự quản lý sự thay đổi này)
- Các thông điệp gửi tới đối tượng nào sẽ gắn chặt với đối tượng đó và chỉ đối tượng nàonhận được thông điệp(message) mới phải thực hiện theo thông điệp đó
Trang 13< Định nghĩa của các hàm thành phần có thể được định nghĩa bên trong khai báo hoặckhông >
3.1.3 Đối tượng
* Tạo đối tượng:
<tên lớp> <tên đối tượng>; // khai báo một đối tượng
- Vùng nhớ được cấp phát cho một biến kiểu lớp sẽ cho một khung của đối tượng baogồm dữ liệu là các thể hiện cụ thể của các mô tả dữ liệu trong khai báo lớp cùng với cácthông điệp gửi tới các hàm thành phần
- Mỗi đối tượng sở hữu một tập các biến tương ứng với tên và kiểu của các thành phần dữliệu định nghĩa trong lớp Chúng là các biến thể hiện của đối tượng
* Lớp: là một kiểu dữ liệu do đó có thể khai báo con trỏ hay tham chiếu đến một đối
tượng thuộc lớp và có thể truy nhập gián tiếp đến đối tượng
* Nhưng con trỏ và tham chiếu không phải là một thể hiện của lớp
* Khởi tạo & gán các đối tượng:
Có thể thực hiện phép gán giữa hai đối tượng cùng lớp
Trang 14Không thể dùng trực tiếp các lớp để khai báo kiểu thành phần dữ liệu thuộc vào bản thânlớp đang được định nghĩa Tuy nhiên, có thể dùng con trỏ hoặc tham chiếu đến các đốitượng của chính lớp đó
Không thể khai báo và khởi đầu giá trị cho các thành phần dữ liệu
Hàm thành phần:
Hàm được khai báo trong định nghĩa lớp được gọi là hàm thành phần
Các hàm thành phần có thể truy nhập đến các thành phần dữ liệu và các hàm thành phầnkhác trong lớp
Sử dụng đối tượng như tham số của hàm thành phần:
Truy nhập đến các thành phần private trong đối tượng:Hàm thành phần có quyền truynhập đến các thành phần private của đối tượng gọi nó
Truy nhập đến các thành phần private trong các tham số là đối tượng truyền cho hàmthành phần: Hàm thành phần có quyền truy nhập đến tất cả các thành phần private của cácđối tượng, tham chiếu đối tượng hay con trỏ đối tượng có cùng kiểu lớp khi được dùng làtham số hình thức của nó
Con trỏ this:
Từ khoá this trong định nghĩa của các hàm thành phần lớp dùng để xác định địa chỉ củađối tượng dùng làm tham số ngầm định cho hàm thành phần Con trỏ this tham chiếu đếnđối tượng đang gọi hàm thành phần
3.1.5 Phạm vi lớp và cách truy xuất
Trong định nghĩa lớp ta có thể xác định khả năng truy xuất thành phần của một lớp nào đó
từ bên ngoài phạm vi lớp
Private và public là các từ khoá xác định thuộc tính truy xuất Mọi thành phần được liệt
kê trong phần public đều có thể truy xuất trong bất kỳ hàm nào Những thành phần liệt kêtrong phần private chỉ được truy xuất bên trong phạm vi lớp
Hàm inline:
Cải thiện tốc độ thực thi
Tốn bộ nhớ (dành cho mã lệnh) khi thực thi
3.2 Hàm thiết lập và hủy bỏ
3.2.1 Hàm thiết lập
Chức năng của hàm thiết lập
Khởi tạo các giá trị thành phần dữ liệu của đối tượng, xin cấp phát bộ nhớ cho các thànhphần dữ liệu động
Trang 15Một số đặc điểm quan trọng của hàm thiết lập
1 Hàm thiết lập có cùng tên với tên của lớp
2 Hàm thiết lập phải có thuộc tính public
3 Hàm thiết lập không có giá trị trả về
4 Có thể có nhiều hàm thiết lập trong cùng một lớp
5 Khi một lớp có nhiều hàm thiết lập, việc tạo các đối tượng phải kèm theo các tham sốphù hợp với một trong số các hàm thiết lập đã khai báo
6 Hàm thiết lập có thể được khai báo với các tham số có giá trị ngầm định
Hàm thiết lập ngầm định
Do chương trình dịch cung cấp khi trong lớp không định nghĩa hàm thiết lập nào (khônglàm gì cả)
Con trỏ đối tượng
Khai báo: point *ptr, p;
Nhận giá trị là địa chỉ của các đối tượng có cùng kiểu lớp: ptr=&p
Cách gọi: ptr->move(1,1)
Cấp phát ô nhớ new: ptr=new point(5,10) // gọi hàm thiết lập
Tham chiếu đối tượng
Tên của hàm huỷ bỏ bắt đầu bằng ~ theo sau là tên của lớp tương ứng
Hàm huỷ bỏ phải có thuộc tính public
Hàm huỷ bỏ không có tham số, mỗi lớp chỉ có một hàm huỷ bỏ
Trang 16Khi không định nghĩa hàm huỷ bỏ chương trình dịch tự động sản sinh một hàm huỷ bỏngầm định
Hàm huỷ bỏ không có giá trị trả về
3.2.3 Hàm thiết lập sao chép và toán tử gán
Các tính chất
Khởi tạo một đối tượng bằng việc khởi tạo nó từ một đối tượngcùng lớp, mà đã được tạotrước đó
Hàm thiết lập sao chép được sử dụng để:
Khởi tạo một đối tượng từ đối tượng khác với cùng kiểu
Sao chép một đối tượng để truyền nó như là một tham số tới một hàm
Sao chép một đối tượng để trả về nó từ một hàm
Cú pháp:
ten_lop (const ten_lop &obj) {
// phan than cua constructor
Thành phần tĩnh chiếm giữ vùng nhớ ngay cả khi không khai báo bất kỳ đối tượng nào
3.3.2 Khai báo thành phần dữ liệu tĩnh
Cấu trúc khai báo:
Trang 173.3.3 Hàm thành phần tĩnh
Hàm được khai báo bắt đầu bằng static được gọi là hàm thành phần tĩnh được
Hàm thành phần tĩnh có thể được gọi cho dù có khai báo đối tượng của lớp đó hay không
Khi định nghĩa lớp có thể khai báo các hàm bạn của lớp
Khai báo hàm bạn cho phép hàm truy nhập đến các thành phần private của lớp giống nhưcác hàm thành phần của lớp đó
Trang 18B Xác định và xây dựng một số lớp trên C++ phục vụ các chức năng cơ bản trong
hệ thống thông tin quản lý nhân sự
Chương 1: Bài toán
- Lương của nhân viên được tính như sau:
+ Đối với nhân viên sản xuất: Lương=lương căn bản * hệ số lương + tiền tăng ca
+ Đối nhân viên văn phòng: lương = lương căn bản * hệ số lương + tiền thưởng thêm+ Đối với nhân viên quản lý: lương= Lương căn bản* hệ số lương + tiền thưởng thêm
- Định dạng file NHANVIEN.TXT như sau:
Dòng đầu tiên chứa số lượng nhân viên trong công ty
Các dòng tiếp theo mỗi dòng là thông tin của từng nhân viên
2 Yêu cầu
1) Đọc thông tin nhân viên từ file NHANVIEN.txt
2) Tính lương và xuất thông tin nhân viên
3) Thêm thông tin nhân viên sản xuất
4) Thêm thông tin nhân viên quản lý
5) Thêm thông tin nhân viên văn phòng
6) Tìm kiếm thông tin nhân viên bằng mã nhân viên
7) Xóa thông tin nhân viên
8) Thông kê lương
Trang 193 Thiết kế sơ đồ các lớp
Trang 20Chương 2: Thông tin nhân viên trong file NHANVIEN.txt