Phần mềm Quản lí nhân sự với Java | Học phần lập trình hướng đối tượng với Java giúp sinh viên năm được phương pháp lập trình hướng đối tượng (OOP) và ngôn ngữ lập trình Java cơ bản. Bài tập lớn môn học là tổng hợp kiến thức, kỹ năng về phương pháp lập trình hướng đối tượng và ngôn ngữ lập trình Java. Nội dung bài tập lớn gồm: Phân tích bài toán, giới thiệu tông quan về phương pháp lập trình hướng đối tượng, đặc trưng của ngôn ngữ lập trình Java, cài đặt phần mềm với ngôn ngữ Java trong đó sử dụng các lớp kế thừa, lớp trừu tượng vào giao diện (interface) của lập trình hướng đối tượng. Bài tập lớn là tài liệu tham khảo hữu ích cho SV ngành CNTT.
TRƯỜNG ĐẠI CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN - BÁO CÁO BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TÊN BÀI TẬP LỚN: QUẢN LÍ NHÂN SỰ Nhóm sinh viên thực Lớp: CNTT1 Khoa Giảng viên : 02 Khóa: K11 : CƠNG NGHỆ THƠNG TIN : Ths Trần Xuân Thanh BẮC NINH, tháng 10, Năm 2021 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN Stt Danh sách thành viên nhóm sinh viên thực Mã sinh Họ tên Ngày sinh viên HOÀNG MINH TÂM 14/07/1997 20200123 NGUYỄN DUY VƯƠNG 16/01/2002 20200875 LÊ HẢI LONG 04/05/2000 20200131 TÊN BÀI TẬP LỚN: QUẢN LÍ NHÂN SỰ Điểm tập lớn Bằng số: Bằng chữ: CÁN BỘ CHẤM CÁN BỘ CHẤM (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) BẮC NINH, tháng 10, Năm 2021 MỤC LỤC LỜI MỞ ĐẦU I.LÝ THUYẾT VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TỔNG QUAN VỀ OPP VÀ NGÔN NGỮ JAVA CĂN BẢN VỀ NGÔN NGỮ JAVA MẢNG TRONG JAVA CLASS VÀ OBJECT THỪA KẾ VÀ ĐA HÌNH II.PHẦN MỀM QUẢN LÍ NHÂN SỰ 1.GIỚI THIỆU PHẦN MỀM 2.MƠ HÌNH LỚP VÀ DỮ LIỆU 11 3.PHẦN MỀM QUẢN LÍ NHÂN SỰ 11 4.KIỂM THỬ VÀ ĐÁNH GIÁ KẾT QUẢ 15 III.TÀI LIỆU THAM KHẢO 16 LỜI MỞ ĐẦU Ngày song song với quá trình phát triển công nghệ khoa học và kỹ thuật thì nghành khoa học tính toán đã đóng vai trò quan trọng, nó đã đạt được những thành tựu khoa học kỹ thuật rực rỡ với những bước tiến nhảy vọt Việc áp dụng các công nghệ khoa học kỹ thuật vào lĩnh vực đời sống của người ngày càng tăng và không ngừng can thiệp vào hầu hết các công việc đời sống Công nghệ thông tin là một những ngành khoa học đó Đi đôi với sự phát triển của công nghệ chế tạo các thiết bị máy tính thì việc các sản phẩm phần mềm ứng dụng đời có tính chất quyết định đối với việc áp dụng ngành khoa học này Trên thế giới cũng như ở Việt Nam, công nghệ thông tin đã trở thành một ngành công nghiệp mũi nhọn, nó là một ngành khoa học kỹ thuật không thể thiếu việc áp dụng vào các hoạt động xã hội như: Quản lý, kinh tế, thông tin Ở nước ta hiện nay, việc áp dụng vi tính hoá việc quản lý tại các cơ quan, xí nghiệp rất phổ biến và trở nên cấp thiết Nhưng một vấn đề đặt việc quản lý là làm thế nào để chuẩn hoá cách xử lý dữ liệu ở các cơ quan, xí nghiệp, bởi trăm xí nghiệp, trăm cơ quan là trăm cách xử lý khác nhau, ở đây chúng tôi muốn đề cập tới tầm quan trọng của việc phân tích vấn đề quản lý ứng dụng vào vi tính Đó cũng là một vấn đề còn nhiều hạn chế của đội ngũ nhân viên việc quản lý tại các cơ quan, xí nghiệp của ta Một thực trạng dang diễn là các công ty thường mời các chuyên viên phần mềm vi tính về viết chương trình, nhưng họ không hiểu chương trình được viết như thế nào, hoặc ứng dụng được phân tích Họ không biết làm gì ngoài việc ấn nút theo sự hướng dẫn của công ty phần mềm sử dụng chương trình họ viết Khi muốn thay đổi nho nhỏ chương trình lại phải mời chuyên viên,vì người điều hành chỉ biết ấn nút mà thôi, mà những thay đổi này có thể phân tích vấn đề không để ý hoặc khách hàng quên không yêu cầu chuyên viên khắc phục chương trình Sự hạn chế việc phân tích vấn đề, quản lý đã không phát huy hết tác dụng của máy tính Với mong muốn giúp các bạn hiểu được tầm quan trọng của việc phân tích thiết kế một hệ thống thông tin tự động hoá lĩnh vực quản lý Nhóm chúng tôi đã cố gắng và mạnh dạn đưa một hệ thống phần mềm quản lí nhân sự, đây cũng chỉ là một phần mềm cơ bản, nó có thể chưa được hoàn thiện nhưng cũng phần nào đấy giúp các bạn hiểu được vai trò của việc xây dựng một hệ thống quản lí phần mềm I.LÝ THUYẾT VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1.TỔNG QUAN VỀ OPP VÀ NGƠN NGỮ JAVA a)Tởng quan về OPP Lập trình hướng đối tượng (object oriented programming- OOP), hay còn gọi là lập trình định hướng đối tượng, là kĩ thuật lập trình hỗ trợ công nghệ đối tượng OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp bảo trì cũng như mở rộng phần mềm cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn Những đối tượng một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu mà chúng được nhìn nhận như là một đơn vị nhất Mỗi đối tượng có một tên riêng biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó b)Tổng quan về JAVA Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) Sun Microsystem đưa vào giữa thập niên 90 Chương trình viết ngôn ngữ lập trình java có thể chạy trên bất kỳ hệ thống nào có cài máy ảo java (Java Virtual MachineJVM) Ngôn ngữ lập trình Java James Gosling và các công sự của Công ty Sun Microsystem phát triển * Đặc điểm của ngôn ngữ + Thông dịch + Độc lập nền + Hướng đối tượng + Đa nhiệm – đa luồng (MultiTasking - Multithreading) + Khả chuyển (portable) + Hỗ trợ mạnh cho việc phát triển ứng dụng 2.CĂN BẢN VỀ NGÔN NGỮ JAVA a)Các thành phần ngôn ngữ -Phần đầu của một chương trình Java xác định thông tin môi trường Để làm được việc này,chương trình được chia thành các lớp hoặc các gói riêng biệt Những gói này được chỉ dẫn chương trình Thông tin này được chỉ với sự trợ giúp của lệnh nhập “import” Mỗi chương trình có thể có nhiều hơn một lệnh nhập b)Biến, và các kiểu dữ liệu -Các ứng dụng luôn xử lý dữ liệu ở đầu vào và xuất dữ liệu kết quả ở đầu Đầu vào, đầu ra, và kết quả của các quá trình tính toán đều liên quan đến dữ liệu Trong môi trường tính toán, dữ liệu được phân lớp theo các tiêu chí khác phụ thuộc vào bản chất của nó Ở tiêu chí, dữ liệu có một tính chất xác định và có một kiểu thể hiện riêng biệt Ví dụ các kiểu dữ liệu: char,int, float,String,Array,Class,… + Các biến để lưu trữ các dữ liệu cần thiết hoặc các dữ liệu được tạo quá trình thực thi chương trình + Hằng số là những giá trị không thay đổi quá trình xử lý tính toán + Các toán tử kết hợp các giá trị đơn hoặc các biểu thức thành những biểu thức mới, phức tạp hơn và có thể trả về giá trị Vd: +,-,*,/,… hay toán tử Bit:&,|,…còn có toán tử logic,quan hệ,điều kiện và gán c)Các cấu trúc điều khiển + Câu lệnh if-else + Câu lệnh switch-case + Vòng lặp While + Vòng lặp For + Vòng lặp do/while + Cấu trúc lệnh nhảy (jump) 3.MẢNG TRONG JAVA -Trong Java cũng như các ngôn ngữ lập trình khác, mảng là kiểu dữ liệu có cấu trúc gồm một tập hợp cố định các phần tử có kiểu dữ liệu, các phần tử của mảng có tên và được phân biệt bởi chỉ số Mỗi phần tử của mảng được sử dụng như là một biến đơn, kiểu dữ liệu của mảng chính là kiểu dữ liệu của phần tử Như vậy, đối với mảng thì chúng ta cần quan tâm đến các thành phần sau: + Các thông tin liên quan đến mảng: tên mảng, số phần tử của mảng, kiểu dữ liệu của mảng + Số chiều của mảng: Nếu mảng chỉ có một chỉ số để lưu trữ các giá trị vào các biến thành phần của mảng thì được gọi là mảng một chiều Nếu mảng có chỉ số để lưu trữ các giá trị (chẳng hạn giá trị của một bảng có m dòng, n cột) được gọi là mảng chiều Tương tự, ta có mảng chiều, chiều, , n chiều + Mảng một chiều là một tập hợp của nhiều phần tử có kiểu dữ liệu giống + Mảng hai chiều là mảng có chỉ số để lưu trữ các giá trị (chẳng hạn giá trị của một bảng có m dòng, n cột) 4.CLASS VÀ OBJECT Trong kỹ thuật lập trình hướng đối tượng, chúng ta thiết kế một chương trình sử dụng các đối tượng lớp a)Lớp(Class) -Khái niệm: Chúng ta có thể xem lớp như một khuôn mẫu (template) của đối tượng (Object) Trong đó bao gồm dữ liệu của đối tƣợng (fields hay properties) và các phương thức(methods) tác động lên thành phần dữ liệu đó gọi là các phương thức của lớp Các đối tượng được xây dựng bởi các lớp nên được gọi là các thể hiện của lớp (class instance) b)Đối tượng(Object) -Đối tượng là sự cụ thể hóa của lớp Đối tƣợng được khai báo tường mình từ khóa new theo cú pháp: ClassName objectName = new ClassName(); c) Biến lớp và phương thức lớp *Thuộc tính - biến lớp (attribute) -Vùng dữ liệu (fields) hay thuộc tính (properties) của lớp được khai báo bên lớp như sau: class { // khai báo những thuộc tính của lớp < thuộc tính>; // } -Để xác định quyền truy xuất của các đối tượng khác đối với vùng dữ liệu của lớp người ta thường dùng tiền tố sau: + public: có thể truy xuất từ tất cả các đối tượng khác + private: một lớp không thể truy xuất vùng private của lớp khác + protected: vùng protected của lớp chỉ cho phép bản thân lớp đó và những lớp dẫn xuất từ lớp đó truy cập đến 5.THỪA KẾ VÀ ĐA HÌNH a)Thừa kế -Lớp kế thừa: Một lớp (subclass) có thể kế thừa tất cả những vùng dữ liệu và phương thức của một lớp khác –lớp cha (siêu lớp - superclass) -Như vậy việc tạo một lớp mới từ một lớp đã biết cho các thành phần (fields và methods) của lớp cũ cũng thành các thành phần (fields và methods) của lớp mới Khi đó ta gọi lớp mới là lớp dẫn xuất (derived class) từ lớp cũ (superclass) Có thể lớp cũ cũng là lớp được dẫn xuất từ một lớp nào đấy, nhưng đối với lớp mới vừa tạo thì lớp cũ đó là một lớp siêu lớp trực tiếp (immediate supperclass) -Dùng từ khóa extends để chỉ lớp dẫn xuất -Java cung cấp tiền tố/từ khóa để hỗ trợ tính kế thừa của lớp: + public: lớp có thể truy cập từ các gói, chương trình khác + final: Lớp hằng, lớp không thể tạo dẫn xuất (không thể có con), hay đôi người ta gọi là lớp “vô sinh” + abstract: Lớp trừu tượng (không có khai báo các thành phần và các phương thức lớp trừu tượng) Lớp dẫn xuất khai báo, cài đặt cụ thể các thuộc tính, phương thức của lớp trừu tượng b)Đa hình Tính đa hình cho phép cài đặt các lớp dẫn xuất khác từ một lớp nguồn Một đối tượng có thể có nhiều kiểu khác gọi là tính đa hình II.PHẦN MỀM QUẢN LÍ NHÂN SỰ 1.GIỚI THIỆU PHẦN MỀM a) Khảo sát hệ thống * Tổng quan về hệ thống quản lý -Quản lý là cách biểu hiện một ý chí muốn biến đổi và thuần phục một tổng thể các hiện tượng Đó là việc tạo các sự kiện, thay vì để cho các sự kiện xảy bộc phát Đây không phải là sự lắp ráp các nhiệm vụ rời rạc mà là hoạt động phân biệt rõ ràng với các chức năng khác của tổ chức -Trong những năm trước đây máy tính chưa được sử dụng rộng rãi các hệ thống quản lý, các hệ thống quản lý này đều phải thực hiện theo phương pháp thủ công và hệ thống quản lý nhân sự cũng nằm số đó *Chức năng và nhiệm vụ của hệ thống quản lý nhân sự -Hệ thống quản lý nhân sự có chức năng thường xuyên thông báo cho ban lãnh đạo về các mặt công tác: tổ chức lao động, tiền lương cho nhân viên, hệ thống này được đặt dưới sự chỉ đạo trực tiếp của giám đốc -Với chức năng như vậy, hệ thống quản lý nhân sự có nhiệm vụ luôn cập nhật hồ sơ cán bộ công nhân viên theo quy định, thường xuyên bổ xung những thông tin thay đổi quá trình công tác của cán bộ công nhân viên, việc theo dõi và quản lý lao động để toán lương cũng là nhiệm vụ quan trọng của hệ thống -Ngoài ra, công tác thống kê báo cáo tình hình theo yêu cầu của ban giám đốc cũng là nhiệm vụ không thể thiếu hệ thống quản lý cán bộ *Yêu cầu của hệ thống và những khó khăn -Cùng với sự phát triển của xã hội, công tác tổ chức quản lý cũng cần được đầu tư và phát triển để có thể đáp ứng tốt đuợc yêu cầu cũng như giúp cấp lãnh đạo thực hiện tốt các chủ trương chính sách đối với cán bộ công nhân viên chức Trước một khối lượng lớn nhân viên cũng như các yêu cầu đặt việc quản lý theo phương pháp thủ công không thể đáp ứng được, đó gặp rất nhiều khó khăn Nó đòi hỏi phải có nhiều nhân lực, nhiều thời gian và công sức, nhân sự của cơ quan thì có một hồ sơ cho nên việc lưu trữ, tìm kiếm, bổ sung, sửa đổi để đáp ứng yêu cầu không phải là dễ dàng Từ những nhược điểm trên ta thấy cần thiết phải có một hệ thống tin học hoá cho việc quản lý nhân sự cũng như các hệ thống quản lý khác Trước hết để quản lý được một khối lượng nhân viên của một cơ quan, phải tổ chức tốt hệ thống lưu trữ hồ sơ để có thể đáp ứng được những yêu cầu: tiết kiệm tài nguyên, dễ tìm kiếm, dễ bổ xung sửa đổi Ngoài hệ thống mới phải có khả năng phát hiện lỗi và xử lý kiểm tra tính đúng đắn của dữ liệu từ cập nhật * Các chức năng cơ bản của hệ thống Qua quá trình nghiên cứu, nhóm đã xây dựng được một phần mềm quản lý nhân sự cơ bản đáp ứng được một số yêu cầu của các doanh nghiệp như sau: - Quản lý thông tin nhân sự bao gồm đầy đủ, chi tiết về nhân sự doanh nghiệp - Theo dõi, cập nhật thường xuyên thông tin nhân sự, phòng ban, tổ đội doanh nghiệp - Các chức năng như tìm kiếm, thêm nhân viên, xóa nhân viên,… - Quản lý các thông tin liên quan tới việc tuyển dụng nhân sự mới doanh nghiệp - Trả hồ sơ cho nhân viên chấm dứt hợp đồng lao động Quản lí hồ sơ nhân viên Quản lý lương Tra cứu tìm kiếm Thống kê báo cáo Bở sung hồ sơ mới Tính lương Tra cứu theo thông tin Thống kê theo mức thu nhập Cập nhật hồ sơ Tính phụ cấp Tra cứu theo lương Thớng kê theo trình độ Trả hồ sơ Tính lương thực lĩnh Tra cứu theo sớ lượng tổng hợp Thống kê theo đơn vị phòng ban 10 Biểu đồ phân cấp chức hệ quản lý nhân 2.MƠ HÌNH LỚP VÀ DỮ LIỆU *Chú thích + màu trắng : chương trình bắt đầu + màu xanh nước biển nhạt: controller + màu tím: view + màu hồng: model + màu xanh: Util 3.PHẦN MỀM QUẢN LÍ NHÂN SỰ a)Phần đăng nhập 11 -Đây là phần bắt đầu chúng ta khởi động phần mềm,yêu cầu chúng ta đăng nhập để có thể vào bên phần mềm quản lí.Chúng ta cần dùng tài khoản để đăng nhập vào hệ thống.Khi chúng ta đăng nhập sai hệ thống lên cảnh báo và chỉ chỗ sai cho b)Phần bảng chi tiết về nhân viên 12 -Còn đây là phần hiển thị những thông tin cơ bản của nhân viên.Nó được chia làm các bảng và cột theo các thuộc tính.Ở đây chúng ta có các chức năng như tìm kiếm,thêm,xóa nhân viên.Nhân viên được chia theo nhiều trang giúp cho việc tìm kiếm diễn dễ dàng c)Phần thêm nhân viên 13 -Phần thêm mới nhân viên đầy đủ các thuộc tính cần nhập vào như mã nhân viên, họ tên, năm sinh,…Khi hoàn thành nhân viên được thêm vào bảng ở phần trên d)Phần thay đổi thông tin nhân viên đã có nhân viên đã có 14 -Đây là chức năng mà chúng ta dùng thay đổi thuộc tính của một nhân viên có sẵn người đó có thay đổi về thuộc tính như số điện thoại,thay đổi chức vụ,…Nó giúp chúng ta cập nhật thường xuyên thông tin nhân viên tránh gặp sai sót về sau 4.KIỂM THỬ VÀ ĐÁNH GIÁ KẾT QUẢ Mô hình chạy ổn định không gặp vấn đề về lỗi,các chức năng hoạt động bình thường đáp ứng những điều đặt Thao tác đơn giản, vô thuận tiện giúp cho người quản lí dễ dàng sử dụng Phân chia rõ ràng để có thể dễ dàng tìm được thứ mình cần.Mặc dù còn nhiều sơ sài nhưng đã thỏa mãn nhu cầu cần thiết và đơn giản nhất đối với một hệ thống quản lí nhân sự Phần code của bài tập: https://github.com/goddie9x/human-manager-javaswing.git 15 III.Tài liệu tham khảo [1] Giáo trình LT hướng đối tượng – Trường CĐ Công nghiệp [2] PGS.TS Trần Đình Quế - KS Nguyễn Mạnh Hùng, Lập trình hướng đối tượng với Java, dành cho hệ đào tạo Từ xa, Học viện Công nghệ bưu chính – Viễn thông [3] TS Đoàn Văn Ban, Lập tình Java, NXB Khoa học kỹ thuật [4] Quentin Charatan, JAVA IN TWO SEMESTERS, ISBN 0-07-709804-8, 2002 [5] John Lewis I, JAVA SOFTWARE SOLUTION, Mc Graw Hill, 2002 [6] Cay S.Horstman, CORE JAVA, Prentice Hall, 2003 16