Xây dựng phần mềm quản lý và phân loại nhân viên cho công ty :Mỗi nhân viên Staff được công ty chia thành 3 loại sau: Nhân viên có kinh nghiệm lâu năm Experience, nhân viên mới ra trường
Trang 1ĐẠI HỌC UEH TRƯỜNG KINH DOANH
KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH
ĐỒ ÁN
Môn học: Lập trình hướng đối tượng
Giảng viên: Huỳnh Văn Đức
Mã lớp học phần: 23D1INF50903701
Khóa – Lớp: 47-SE001
Nhóm thực hiện:
Nguyễn Việt Khôi: 31211027587
Trang 2CHƯƠNG 1 CÁC TÍNH CHẤT CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 3
1.1 Tính đóng gói 3
1.2 Tính trừu tượng 3
1.3 Tính kế thừa 3
1.4 Tính đa hình 3
CHƯƠNG 2 PHÂN TÍCH VÀ CÀI ĐẶT LỚP 5
2.1 Phân tích đề bài 5
2.2 Cài đặt lớp : 7
2.2.1 Lớp cơ sở Staff (Nhân viên): 7
2.2.2 Lớp Fresher (kế thừa từ lớp Staff): 9
2.2.3 Lớp Intern (Kế thừa từ lớp Staff): 10
2.2.4 Lớp Experience (Kế thừa từ lớp Staff): 11
2.3 Cài đặt hàm Main() : 11
CHƯƠNG 3 ỨNG DỤNG VÀ HẠN CHẾ 13
3.1 Ứng dụng : 13
3.1.1 Đối tượng sử dụng phần mềm : 13
3.1.2 Mục đích sử dụng : 13
3.2 Hạn chế : 13
2
Trang 3CHƯƠNG 1 CÁC TÍNH CHẤT CỦA LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG 1.1 Tính đóng gói.
Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện cho việc quản lý và sử dụng
Ngoài ra, đóng gói còn để che giấu một số thông tin và chi tiết cài đặt nội bộ
để bên ngoài không thể nhìn thấy
1.2 Tính trừu tượng.
Khi viết chương trình theo phong cách hướng đối tượng, việc thiết kế các đối tượng ta cần rút tỉa ra những đặc trưng chung của chúng rồi trừu tượng thành các interface và thiết kế xem chúng sẽ tương tác với nhau như thế nào
1.3 Tính kế thừa.
Lớp cha có thể chia sẽ dữ liệu và phương thức cho các lớp con, các lớp con khỏi phải định nghĩa lại, giúp chương trình ngắn gọn
1.4 Tính đa hình.
Là hiện tượng các đối tượng thuộc các lớp khác nhau có thể hiểu cùng một thông điệp theo các cách khác nhau
Để thể hiện được tính đa hình:
Các lớp phải có quan hệ kế thừa với cùng 1 lớp cha nào đó
Phương thức đa hình phải được ghi đè (override) ở các lớp con
Trang 4CHƯƠNG 2 PHÂN TÍCH VÀ CÀI ĐẶT LỚP
2.1 Phân tích đề bài.
Xây dựng phần mềm quản lý và phân loại nhân viên cho công ty :
Mỗi nhân viên (Staff) được công ty chia thành 3 loại sau: Nhân viên có kinh nghiệm lâu năm (Experience), nhân viên mới ra trường (Fresher) , Nhân viên thực tập (Intern).
Tất cả các Employee đều có các thuộc tính là: ID, FullName, BirthDay,Phone, Email, Employee_type, Employee_count và phương thức là ShowInfo để hiển
thị thông tin của nhân viên đó (hiển thị thông tin nhân viên ra màn hình console) Trong đó :
- Employee_type có giá trị tương ứng là 0 : Experience, 1: Fresher ,
2 : Intern (tùy vào người dùng nhập vào ứng viên loại nào)
- Employee_count dùng để người dùng đếm số lượng nhân viên trong một đợt người dùng nhập nhân viên mới vào cơ sở dữ liệu (mỗi lần người dùng nhập thêm mới nhân viên thì thuộc tính Employee_count của class Employee sẽ tăng lên 1).
Ngoài ra :
- Đối với nhân viên Experience có thêm thuộc tính: Số năm kinh nghiệm (ExpInYear), Kỹ năng chuyên môn (ProSkill)
- Đối với nhân viênn Fresher có thêm thuộc tính: Thời gian tốt
nghiệp(Graduation_date), Xếp loại tốt nghiệp (Graduation_rank) , Trường tốt nghiệp (Education).
- Đối với nhân viên Intern có thêm thuộc tính: Chuyên ngành đang học (Majors), Học kì đang học ( Semester), Tên trường đang học
(University_name).
Lưu ý: Tùy mỗi loại nhân viên, phương thức showMe sẽ được bổ sung thêm các thuộc tính của riêng loại nhân viên đó
** Ngoài ra mỗi nhân viên khi vào làm cần phải nộp bằng cấp nghề nghiệp đi kèm,
bộ phận tuyển dụng cần quản lý các bằng cấp này Một nhân viên có thể có nhiều bằng cấp (Certificate) Với mỗi bằng cấp có các thông tin bao gồm :
CertificatedID, CertificateName, CertificateRank, CertificatedDate.
Too long to read on your phone? Save to
read later on your computer
Save to a Studylist
Trang 51 Hãy thiết kế và viết code của chương trình trên làm sao để tuân thủ theo đúng mô hình OOP đã học, áp dụng đầy đủ 4 tính chất : đóng gói
( ) , kế thừa ( ) , đa hình ( ) , trừu tượng
2 Xác định và viết code constructor cho tất cả các class
3 Xác định và viết code cho các abstract method, abstract class,
override/overload method, static field
4 Viết chức năng cho phép thêm, sửa (Nhập ID để xác định một nhân viên, nếu tồn tại cho phép người dùng chỉnh sửa thông tin của nhân viên), xóa(xóa theo ID) các loại nhân viên trên
5 Viết các hàm kiểm tra tính hợp lệ của ngày sinh, email, tên và số điện thoại của nhân viên Áp dụng các hàm này vào chức năng số 7
6 Viết chương trình tìm tất cả các nhân viên intern
7 Viết chương trình tìm tất cả các nhân viên experience
8 Viết chương trình tìm tất cả các nhân viên fresher
9 Tạo ra các BirthDayException PhoneException EmailException, , ,
FullNameException để ném ra ngoại lệ trong trường hợp birthday, email,
và phone người dùng nhập vào không hợp lệ
Trang 62.2 Cài đặt lớp :
Sơ đồ các lớp:
2.2.1 Lớp cơ sở Staff (Nhân viên):
- Nhìn sơ lược, ta có thể thấy được lớp này sẽ bao gồm các thuộc tính chung
của tất cả nhân viên như : ID FullName Dob, , (Ngày sinh), Phone(SĐT),
Email.
6
Trang 7CertificateID CertificateName CertificateRank
CertificateDate
- Ngoài ra, lớp Staff còn có thêm một thuộc tính ảo là employee_type
- Lớp này cũng được khởi tạo thêm 2 phương thức ảo là :
Trang 8- Và để lấy ra thông tin về nhân viên ta lại có thêm 2 phương thức lần lượt là
2.2.2 Lớp Fresher (kế thừa từ lớp Staff):
protected
8
Trang 9- Lớp này cũng có thêm 2 phương thức là :
Phương thức cho phép thiết lập giá trị cho các thuộc tính
- Và thuộc tính
-2.2.3 Lớp Intern (Kế thừa từ lớp Staff):
- Lớp Intern kế thừa từ lớp Staff Lớp Intern có các thuộc tính
Trang 10
Lớp này có hai phương thức: một phương thức để thiết lập giá trị cho các thuộc tính và một phương thức để hiển thị giá trị của các thuộc tính
2.2.4 Lớp Experience (Kế thừa từ lớp Staff):
- Tương tự như lớp Intern lớp Experience cũng kế thừa từ lớp Staff Lớp Experience có các thuộc tính và
Nó cũng có một phương thức ghi đè trả về giá trị 0
Lớp này có hai phương thức: một phương thức để thiết lập giá trị cho các thuộc tính và một phương thức để hiển thị giá trị của các thuộc tính
10
Trang 112.3 Cài đặt hàm Main() :
Tạo các danh sách để lưu và phân loại nhân viên :
Đưa ra menu để người dùng thực hiện các thao tác cập nhật danh sách:
Ở lựa chọn 3, hệ thống sẽ tiếp tục để ta lựa chọn loại nhân viên cần tìm qua các
Trang 12Vòng lặp (while)
Cấu trúc rẽ nhánh (switch – case)
CHƯƠNG 3 ỨNG DỤNG VÀ HẠN CHẾ
3.1 Ứng dụng :
3.1.1 Đối tượng sử dụng phần mềm :
- Bộ phận nhân sự hoặc các cấp lãnh đạo.
3.1.2 Mục đích sử dụng :
- Lưu trữ được khối lượng lớn thông tin nhân viên.
- Giúp tra cứu thông tin nhân viên một cách dễ dàng và nhanh chóng hơn 3.2 Hạn chế :
- Quá trình làm việc nhóm gặp nhiều hạn chế về thời gian.
- Yêu cầu chủ đề cần sử dụng những kiến thức phức tạp nên yêu cầu nhóm
phải tìm hiểu thêm
12
Trang 13PHÂN CÔNG
Họ và tên Công việc
Nguyễn Việt Khôi Viết code
Võ Phạm Đức Khôi Viết code
Nguyễn Nhựt Phong Làm báo cáo
Nguyễn Đức Hậu Làm báo cáo
Lưu Hoàng Quốc Bảo Vẽ sơ đồ các lớp