HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO CUỐI KỲ MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Đề tài Phát triển phần mềm tính lương cho nhân viên A GIỚI THIỆU PROJECT I GIỚI.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO CUỐI KỲ MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Đề tài: Phát triển phần mềm tính lương cho nhân viên A I GIỚI THIỆU PROJECT GIỚI THIỆU TỔNG QUAN Mục đích • Một project tạo với mục đích tính lương cho nhân viên • Phần mềm tính lương cho nhân viên dựa vào chức vụ nhân viên Ngôn ngữ sử dụng: Java Kiến thức sử dụng: Lập trình hướng đối tượng II CÁC CHỨC NĂNG CÓ TRONG PROJECT Thiết lập số liên quan đến lương: • Người tính lương thiết lập sẵn số lên quan đến lương như: lương bản, lương làm thêm,… Tính lương cho nhân viên: • Đây chức phần mềm • Người tính lương cần nhập thông tin nhân viên: Tên, chức vụ, số ngày làm việc, số làm việc tính lương nhân viên B I XÁC ĐỊNH TÍNH HƯỚNG ĐỐI TƯỢNG CĨ TRONG PROJECT KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG: • Lập trình hướng đối tượng phương pháp lập trình dựa khái niệm lớp đối tượng OOP tập trung vào đối tượng thao tác logic để thao tác chúng • OOP tảng design pattern • Mục tiêu OOP tối ưu việc quản lý source code, giúp tăng khả tái sử dụng quan trọng hết giúp tóm gọn thủ tục biết trước tính chất thơng qua việc sử dụng đối tượng Đối tượng (Object) Lớp (Class) OOP gì? • Đối tượng (Object): Đối tượng OOP bao gồm thành phần chính: o Thuộc tính (Attribute): thơng tin, đặc điểm đối tượng o Phương thức (Method): hành vi mà đối tượng thực o Để dễ hình dung, ta có ví dụ thực tế đối tượng smartphone Đối tượng có: Thuộc tính: màu sắc, nhớ, hệ điều hành… Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm… • Lớp (Class) o Lớp trừu tượng hóa đối tượng Những đối tượng có đặc tính tương tự tập hợp thành lớp Lớp bao gồm thông tin thuộc tính phương thức o Một đối tượng xem thực thể lớp o Tiếp nối ví dụ phần đối tượng (object) phía trên, ta có lớp (class) smartphone gồm thành phần: Thuộc tính: màu sắc, nhớ, hệ điều hành… Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm… Các đối tượng lớp là: iPhone, Samsung, Oppo, Huawei… • Ưu điểm lập trình hướng đối tượng OOP o OOP mơ hình hóa thứ phức tạp dạng cấu trúc đơn giản o Code OOP sử dụng lại, giúp tiết kiệm tài nguyên o Giúp sửa lỗi dễ dàng So với việc tìm lỗi nhiều vị trí code tìm lỗi lớp (được cấu trúc từ trước) đơn giản thời gian o Có tính bảo mật cao, bảo vệ thơng tin thơng qua đóng gói o Dễ mở rộng dự án đặc tính OOP: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) • Tính đa hình (Polymorphism) • Tính trừu tượng (Abstraction) Những ngơn ngữ OOP phổ biến nhất: • Java o Java ngơn ngữ lập trình hướng đối tượng (OOP), đa mục đích độc lập tảng Thay biên dịch mã nguồn thành mã máy tảng cụ thể, code Java biên dịch thành bytecode – định dạng trung gian Bytecode sau chạy mơi trường thực thi (runtime environment) • C++ o Là ngơn ngữ lập trình hướng đối tượng phát triển Bjarne Stroustrup C++ mang phong cách: lập trình hướng cấu trúc giống C có thêm phong cách hướng đối tượng Nếu quen với lập trình hướng cấu trúc trước việc học C++ khơng phải điều q khó khăn • PHP o PHP ngơn ngữ lập trình đa mục đích, nhiều Developer sử dụng Đây ngơn ngữ kịch mã nguồn mở, chạy phía server dùng để tạo ứng dụng web • JavaScript o JavaScript ngơn ngữ lập trình sử dụng việc xây dựng website có tính tương tác cao, với mức độ phổ biến xếp hạng bậc Học JavaScript dễ dàng đặc biệt phù hợp cho developer bắt đầu học lập trình • Python o Python ngơn ngữ lập trình hướng đối tượng bậc cao, dùng để phát triển website nhiều ứng dụng khác Python tạo Guido van Rossum phát triển dự án mã mở (open source) TÍNH ĐĨNG GĨI Khái niệm ý nghĩa • Khái niệm: • • II Tính đóng gói hiểu đơn giản liệu phương thức có liên quan đến “đóng gói” lại thành class để tiện cho việc quản lý sử dụng • Ý nghĩa Đóng gói để tiện lợi cho việc quản lý sử dụng Mỗi gói (class) xây dựng để thực nhóm chức đặc trưng gói (class) Đóng gói để che giấu số thông tin, chi tiết cài đặt nội để bên ngồi khơng thể nhìn thấy Đây đảm bảo toàn vẹn, bảo mật đối tượng Demo project Theo hình ảnh thấy project bao gồm class “đóng gói” vào package khác theo mục đích sử dụng riêng • Package main Package bao gồm class nhất, MainClass Đây lớp chứa đựng hàm tình tốn chạy chương trình • Package model Package bao gồm class, NhanVien, NhanVienFullTime NhanVienPartTime Package tạo để đóng gói class với mục đích tạo lưu đối tượng • Package util Package bao gồm class Configs để lưu trữ cài đặt cho chương trình II Lớp đối tượng Khái niệm • Đối tượng: Một đối tượng bao gồm thơng tin Thuộc tính Phương thức • Thuộc tính: thơng tin, đặc điểm đối tượng • Phương thức: thao tác, hành động mà đối tượng thực • Lớp: Một lớp kiểu liệu bao gồm thuộc tính phương thức định nghĩa từ trước Đây trừu tượng háo đối tượng Hay nghĩ đơn giản, đối tượng có đặc tính tương tự gom lại thành lớp đối tượng Demo project Theo hình ảnh, ta thấy rõ, project bao gồm lớp đối tượng (class) khác đóng gói riêng • MainClass: class bao gồm hàm tính tốn, ta thấy, class khơng bao gồm thuộc tính, mà có hàm • NhanVien: class tên NhanVien gồm thuộc tính ten, luong; phương thức tinhLuong xuatThongTin • • • NhanVienFullTime: lớp đối tượng bao gồm thuộc tính ten, overdate; phương thức loaiChucVu tinhLuong NhanVienPartTime: tương tự class trên, l ớp đối tượng bao gồm thuộc tính ten, overdate; phương thức loaiChucVu tinhLuong Configs: tương tự MainClass, nơi lưu trữ cài đặt chương trình III Tính kế thừa Khái niệm • Tính kế thừa cho phép xây dựng lớp dựa định nghĩa lớp có • Lớp cha tạo ra, lớp thừa hưởng phương thức từ lớp cha thể nhận liệu mà lớp cha chia sẻ Lớp không cần định nghĩa lại, mà mở rộng thành phần kế thừa bổ sung thêm thành phần Demo project Tính kế thừa thể project với mối quan hệ class NhanVien (đóng vai trị lớp cha) class NhanVienFullTime NhanVienPartTime (đóng vai trị lớp con) • • Lớp cha (NhanVien): bao gồm thuộc tính ten luong Lớp (NhanVienFullTime NhanVienPartTime): kế thừa lại từ lớp cha thuộc tính ten, bên cạnh đó, lớp phát triển thêm số phương thức khác IV Tính đa hình Khái niệm 10 Tính đa hình hành động thực nhiều cách khác • Hiểu đơn giản đa hình khái niệm mà hai nhiều lớp có phương thức giống thực thi cách khác • Dấu hiện: @override Demo project • Ta thấy tính đa hình class NhanVienFullTime NhanVienPartTime, cụ thể phương thức loaiChucvu tinhLuong Cùng phương thức, cách thức hoạt động chúng lại khác class Đây tính đa hình 11 ... đến lương: • Người tính lương thiết lập sẵn số lên quan đến lương như: lương bản, lương làm thêm,… Tính lương cho nhân viên: • Đây chức phần mềm • Người tính lương cần nhập thơng tin nhân viên: ... THIỆU TỔNG QUAN Mục đích • Một project tạo với mục đích tính lương cho nhân viên • Phần mềm tính lương cho nhân viên dựa vào chức vụ nhân viên Ngôn ngữ sử dụng: Java Kiến thức sử dụng: Lập trình... o Có tính bảo mật cao, bảo vệ thơng tin thơng qua đóng gói o Dễ mở rộng dự án đặc tính OOP: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) • Tính đa hình (Polymorphism) • Tính trừu