Học Phần Lập Trình Hướng Đối Tượng Đề Tài Số 15 Quản Lý Cán Bộ Một Trường Học.pdfHọc Phần Lập Trình Hướng Đối Tượng Đề Tài Số 15 Quản Lý Cán Bộ Một Trường Học.pdfHọc Phần Lập Trình Hướng Đối Tượng Đề Tài Số 15 Quản Lý Cán Bộ Một Trường Học.pdfHọc Phần Lập Trình Hướng Đối Tượng Đề Tài Số 15 Quản Lý Cán Bộ Một Trường Học.pdfHọc Phần Lập Trình Hướng Đối Tượng Đề Tài Số 15 Quản Lý Cán Bộ Một Trường Học.pdfHọc Phần Lập Trình Hướng Đối Tượng Đề Tài Số 15 Quản Lý Cán Bộ Một Trường Học.pdf
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (Mã học phần: IT3100) Đề tài số 15: QUẢN LÝ CÁN BỘ MỘT TRƯỜNG HỌC Sinh viên thực hiện: NHÓM Lương Thái Nam 20194126 Trương Văn Hiể n 20194276 Lớp: Mai Minh Nhâ ̣t 20194346 Vũ Quốc Hưng 20194074 124176 Giảng viên hướng dẫn: TS Đỗ Thị Ngọc Diệp Hà Nội, tháng năm 2021 IT3100 – Lập trình hướng đối tượng 20202 PHÂN CƠNG THÀNH VIÊN TRONG NHĨM STT Họ tên MSSV Email Cơng việc Mức độ hồn thành Lương Thái Nam 20194126 nam.lt1941 26@sis.hus t.edu.vn Trưởng nhóm, code Tốt hien.tv194 276@sis.h ust.edu.vn Phân tích yêu cầu toán, thiết kế biểu đồ Use Case, UML Trương Văn Hiển 20194276 Ghi Thiết kế giao diện người dùng Tốt Code phụ Viết báo cáo Mai Minh Nhật Vũ Quốc Hưng Nhóm 20194346 20194074 nhat.mm19 4346@sis hust.edu.vn Code phụ hung.vq19 4074@sis hust.edu.vn Code phụ Tốt Kiểm thử phần mềm Tốt Viết báo cáo Kiểm thử phần mềm IT3100 – Lập trình hướng đối tượng 20202 MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 1.1 Mô tả yêu cầu toán 1.2 Biể u đồ Use Case 1.2.1 Biể u đồ phân rã mức 1.2.2 Biể u đồ phân rã mức 1.2.3 Đặc tả Use Case CHƯƠNG PHÂN TÍCH THIẾT KẾ BÀI TOÁN 10 2.1 Thiết kế Cơ sở liệu Cấu trúc tệp liệu 10 2.2 Hệ thố ng các package 10 2.3 Thiết kế chi tiết lớp 11 2.3.1 Package Model 11 2.3.2 Package Activity 12 2.3.3 Package Adapter 16 2.3.4 Package Fragment 18 2.3.5 Package Dialog 21 CHƯƠNG 3: CƠNG NGHỆ VÀ THUẬT TỐN SỬ DỤNG 24 3.1 Ngôn ngữ lập trin ̀ h thư viện sử dụng 24 3.1.1 Androix 24 3.1.2 Android Platform 24 3.2 Thuật toán kiến thức sử dụng 25 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH MINH HOẠ 26 4.1 Kết chương trình minh hoạ 26 4.2 Giao diện chương trình 26 4.2.1 Giao diện khởi động 26 4.2.2 Giao diện nhập số lượng cán thông tin cán 27 4.2.3 Giao diện hiển thị danh sách thông tin cán vừa nhập chức 28 4.3 Kiểm thử chức thực 32 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 33 TÀI LIỆU THAM KHẢO 34 Nhóm IT3100 – Lập trình hướng đối tượng 20202 LỜI NĨI ĐẦU Cơng nghệ thơng tin, cụm từ không lạ lẫm với Điều dễ hiểu, khơng phủ nhận vai trị phát triển thời đại Tuy nhiên nước phát triển nước ta việc ứng dụng cơng nghệ thơng tin cịn hạn hẹp Một số lượng khơng nhỏ quan, tổ chức thực công việc ngày họ phương pháp truyền thống Do đó, vấn đề tin học hóa trở nên cần thiết cho phát triển kinh tế - xã hội đất nước Cũng quan hành khác trường ho ̣c đă ̣c biê ̣t là các trường đa ̣i ho ̣c quản lý hồ sơ các cán công chức bằ ng cách quản lý giấy tờ Trong tương lai không xa, mà số lượng cán công chức tăng đến số đinh việc quản lý trở nên khó khăn Khi vấn đề tin học hóa cần thiết lý mà chúng em định xây dựng ứng du ̣ng quản lý cán bô ̣ trường ho ̣c Chương trình nhóm thiết kế theo phương pháp Hướng đối tượng viết ngôn ngữ lâ ̣p trình Java - ngơn ngữ chạy tảng khác thông qua mơi trường thực thi với điều kiện có mơi trường thực thi thích hợp hỗ trợ tảng dẫn đến việc cài đặt chương trình thực thi chương trình dễ dàng cho người sử dụng Mặc dù cố gắng hoàn thiện sản phẩm tránh khỏi thiếu hụt kiến thức sai sót kiểm thử Chúng em mong muốn nhận nhận xét thẳng thắn, chi tiết đến từ bạn để tiếp tục hồn thiện Cuối cùng, nhóm chúng em xin gửi lời cảm ơn đến cô Đỗ Thi Ngo ̣ ̣c Diê ̣p hướng dẫn bọn em suốt trình hoàn thiê ̣n bài tâ ̣p lớn Xin trân trọng cảm ơn Nhóm IT3100 – Lập trình hướng đối tượng 20202 CHƯƠNG KHẢO SÁT, ĐẶC TẢ U CẦU BÀI TỐN 1.1 Mơ tả u cầu tốn Một trường học cần quản lý thơng tin cán gồm giáo viên nhân viên hành Với cán quản lý thơng tin họ tên, đơn vị công tác, hệ số lương, phụ cấp Lương cán phụ thuộc vào dạng cán Nếu giáo viên, lương hàng tháng tính bằng: Hệ số lương*750.000 + Phụ cấp + Số tiết dạy * 45.000 Nếu nhân viên hành chính, lương hàng tháng tính bằng: Hệ số lương * 750.000 + Phụ cấp + Số ngày công * 200.000 Chúng em sẽ thực hiê ̣n xây dựng chương trình quản lý lương cho cán gồm chức sau: - Thêm, bớt, sửa, xóa cán - Tìm kiếm cán theo tên, đơn vị công tác, hệ số lương - Thống kê cán có lương lớn 10.000.000/tháng - Tính tổng lương cán mà trường trả khoảng thời gian nhập vào Nhóm IT3100 – Lập trình hướng đối tượng 20202 1.2 Biểu đờ Use Case 1.2.1 Biểu đồ phân rã mức Chương trình của nhó m có use case chính là : Khởi đô ̣ng ứng du ̣ng Cho ̣n chức (Options) Thoát ứng du ̣ng Nhóm IT3100 – Lập trình hướng đối tượng 20202 1.2.2 Biểu đồ phân rã mức 1.2.3 Đặc tả Use Case 1.2.3.1 Danh sách Actor Tên Actor Ý Nghĩa Actor Người Quản Lý (Kế toán nhà trường, hiê ̣u trưởng nhà trường) 1.2.3.2 Danh sách Use Case Tên Use Case Ý nghĩa Khởi đô ̣ng ứng Đưa người quản lý vào bước thiết lập khởi đô ̣ng du ̣ng Chức Đưa người quản lý đến các chức của ứng du ̣ng (Options) Thoát ứng du ̣ng Đưa người quản lý khỏi ứng du ̣ng Nhóm IT3100 – Lập trình hướng đối tượng 20202 1.2.3.3 Đặc tả Use Case Use case Khởi đô ̣ng ứng du ̣ng Tên Use case : Khởi đô ̣ng ứng du ̣ng Tên tác nhân : User Nhóm STT Thực Hiện System System User Hành động Hiể n thi ̣giao diê ̣n màn hình chào Hiể n thi:̣ Nhâ ̣p số cán bô ̣ Nhâ ̣p vào số cán bô ̣ là mô ̣t số nguyên dương Nhấ n nút “OK” để sang giao diê ̣n tiế p theo User User Cho ̣n kiể u cán bô ̣: + Giáo Viên + Nhân Viên User User System User Nhâ ̣p thông tin hồ sơ ứng với từng cán bô ̣ Sau nhâ ̣p thông tin xong nhấ n nút “Nhâ ̣p” Màn hình hiể n thi:̣ “ĐÃ NHẬP XONG CÁC CÁN BỘ” Nhấ n nút “DANH SÁCH CÁN BỘ” để đưa người dùng đế n với các chức của ứng du ̣ng IT3100 – Lập trình hướng đối tượng 20202 Use case Chức (Options) Tên use case: Chức (Options) Tên tác nhân: User STT Thực hiê ̣n Hành đô ̣ng System Hiể n thi danh ̣ sách thông tin và tiề n lương từng Giáo Viên và Nhân Viên ở từng layout khác User Người dùng cho ̣n các chức mà mình cầ n thực hiê ̣n: + Nhấ n nút “THÊM” để thêm mô ̣t Giáo Viên hoă ̣c Nhân Viên + Nhấ n biể u tươṇ g để tim ̀ kiế m cán bô ̣ theo tên, đơn vị công tác, hệ số lương + Ga ̣t nút sang phải để ̣ thố ng thố ng kê danh sách cán bô ̣ có lương 10 triê ̣u + Nhâ ̣p vào số tháng để Hiể n thi tổ ̣ ng tiề n lương nhà trường phải chi trả cho cán bô ̣ ứng với số lươṇ g tháng Use case Thoát ứng du ̣ng Tên Use case: Thoát ứng du ̣ng Tên tác nhân: User STT Thực User System Nhóm Hành động Đưa thiế t bi ̣về màn hình của thiế t bi ̣ Thoát khỏi chương trình ứng du ̣ng IT3100 – Lập trình hướng đối tượng 20202 CHƯƠNG PHÂN TÍCH THIẾT KẾ BÀI TOÁN 2.1 Thiết kế Cơ sở liệu Cấu trúc tệp liệu Với liệu hình ảnh, Android Studio hỗ trợ việc kéo thả thuận lợi cho việc tạo giao diện đồ họa ứng dụng, có vài file ảnh chúng em tự làm 2.2 Hệ thố ng các package Package Model: Là package chứa đối tượng CanBo, GiaoVien NhanVien, thực thi quá trin ̀ h truy xuấ t sở dữ liê ̣u của chương trình, lấ y dữ liê ̣u thông tin của các cán bô ̣ để thực hiê ̣n các chức của chương trình Package Activity: Chứa Activity, đại diện cho chức ứng du ̣ng, giao diện hình, nơi người dùng tương tác trực tiếp để quản lý cán bô ̣ Trong đề tài này, ứng du ̣ng của bo ̣n em có chứa Activity Lầ n lươ ̣t từng Activity từ gọi đến kết thúc có trạng thái khác Package Adapter: Chứa Adapter, liên kế t giữa tâ ̣p hơ ̣p dữ liê ̣u thông tin của danh sách cán bô ̣ với các Adapter View, chứa các lớp có trách nhiê ̣m lấ y dữ liê ̣u cán bô ̣ từ bô ̣ dữ liê ̣u và ta ̣o các đố i tươṇ g View dựa liê ̣u đó Các đố i tươṇ g View đươ ̣c ta ̣o sau đó sẽ đươ ̣c ̣ thố ng sử du ̣ng để gắ n lên bấ t kì Adapter View mà ràng buô ̣c với Adapter Các Adapter View mà chúng em ta ̣o sẽ kế t xuấ t những đố i tươṇ g View đã xuấ t hiê ̣n màn hiǹ h ứng du ̣ng hoă ̣c di chuyể n vào màn hình Package Fragment: Là package chứa các mã để bố trí giao diê ̣n ứng du ̣ng cho phù hơ ̣p với diê ̣n tić h màn hình, chiụ trách nhiê ̣m quản lý không gian màn hình Và toàn bô ̣ không gian màn hình đó của Fragment phải nằ m Activity, vâ ̣y nên package Fragment và Activity không bao giờ tách rời Trên fragment chúng em đã cài đă ̣t bố trí đầ y đủ với các chức mà yêu cầ u đề bài đă ̣t Package Dialog: Chứa Dialog, các lớp để hiể n thi ̣mô ̣t thông báo nhỏ màn hình ứng du ̣ng, và thông báo này sẽ che mờ màn hình Khi chúng em sẽ sử du ̣ng thông báo này để thực hiê ̣n cài đă ̣t chức sửa thông tin cán bô ̣ và thêm thông tin cán bô ̣ đươ ̣c nhâ ̣p vào Nhóm 10 IT3100 – Lập trình hướng đối tượng 20202 Ví du ̣: Tìm kiế m theo tên Tìm kiế m theo đơn vi ̣công tác Tìm kiế m theo ̣ số lương Để thố ng kê danh sách cán bô ̣ có lương 10 triê ̣u, chúng ta thực hiê ̣n ga ̣t button thi ̣như sau: Nhóm sang bên phải để chương triǹ h sẽ tự đô ̣ng tìm kiế m và hiể n 20 IT3100 – Lập trình hướng đối tượng 20202 2.3.5 Package Dialog Lớp AppCompatDialogFragment: là lớp cung cấ p phương thức ta ̣o mô ̣t cửa sổ nhỏ để nhắ c người sử du ̣ng nhâ ̣p vào các thơng tin bở sung Nhóm 21 IT3100 – Lập trình hướng đối tượng 20202 Lớp DialogSua: là lớp kế thừa từ lớp AppCompatDialogFragment, thực hiê ̣n chức sửa thông tin của mô ̣t cán bô ̣ Để thực hiê ̣n chức sửa, ta bấ m vào phầ n thông tin của cán bô ̣ hiể n thi ̣mà ta muố n sửa và thực hiê ̣n điề n thông tin cầ n sửa Ví du ̣ chúng em sửa thông tin ho ̣ tên của Nhân Viên: Nhóm 22 IT3100 – Lập trình hướng đối tượng 20202 3.Lớp DialogThem:là lớp kế thừa từ lớp AppCompatDialogFragment, thực hiê ̣n chức thêm mô ̣t cán bô ̣ kèm theo thông tin Để thực hiê ̣n chức thêm, ta nhấ n vào nút button “THÊM” và nhâ ̣p thông tin của cán bô ̣ là Giáo Viên Nhân Viên mà ta muố n thêm Khi nhâ ̣p đầ y đủ thông tin thành công màn hiǹ h giao diê ̣n sẽ hiể n thi ̣như dưới sau: Nhóm 23 IT3100 – Lập trình hướng đối tượng 20202 CHƯƠNG 3: CƠNG NGHỆ VÀ THUẬT TỐN SỬ DỤNG 3.1 Ngơn ngữ lâ ̣p trình thư viện sử dụng Ứng dụng viết ngôn ngữ Java với hỗ trợ công cụ Android SDK (SDK Platform) tích hợp IDE Android Studios Android SDK bao gồm package thư viện hỗ trợ lập trình Android, thư viện mà bọn em sử dụng bao gồm: thư viện xử lí phần giao diện đồ hoạ : 3.1.1 Androix Các lớp package sử dụng Androidx bao gồm: Lớp AppCompatActivity: Sử dụng làm lớp sở cho hoạt động muốn sử dụng số tính tảng thiết bị Android cũ Lớp FragmentStatePagerAdapter: Dùng để chuyển đổi Fragment Lớp AppCompatDialogFragment lớp AlertDialog: Dùng làm lớp sở để hiển thị hộp thoại Dialog gọi Lớp Nullable NonNull: Dùng để đánh dấu trường có để trống hay khơng Lớp SearchView: Là tiện ích cung cấp giao diện người dùng để người dùng nhập truy vấn, tìm kiếm 3.1.2 Android Platform Lớp Parcel, Parcelable Bundle : Dùng để truyền liệu đối tượng Package widget (bao gồm lớp Button, EditText, Toast, ….): Chứa phần tử giao diện người dùng (chủ yếu trực quan button nhập, khung nhập text, …) để sử dụng hình ứng dụng Package view (bao gồm lớp ViewGroup, LayoutInflater ): Cung cấp lớp hiển thị lớp giao diện người dùng để xử lý bố cục hình tương tác với người dùng Nhóm 24 IT3100 – Lập trình hướng đối tượng 20202 3.2 Thuật tốn kiến thức sử dụng Để thực thi giải pháp cho ý tưởng khơng thể thiếu kỹ thuật, cấu trúc liệu thuâ ̣t toán áp dụng Về ứng du ̣ng Quản Lý Cán Bơ ̣ q trình lập trình cần sử dụng nhiều kỹ thuật lập trình bật để ý đến kỹ thuật hướng đối tượng Nói hướng đối tượng, để có giao diện tính hồn chỉnh mong đợi trước hết cần phân tích thiết kế để hoạch định tính cần làm vấn đề cần giải Qua việc học mơn Lập trình hướng đối tượng có tư phân tích thiết kế cho hệ thống phần mềm với việc chia nhỏ nhóm tính năng, cơng việc thành package, class để vừa dễ dàng phân công nhóm nhiều người làm - tăng suất làm việc, lại vừa tổ chức kiểm sốt, quản lý bảo trì mã nguồn Với việc sử dụng ngôn ngữ hướng đối tượng Java, việc tổ chức thực thi lập trình cho phần mềm chúng em giảm bớt nhiều khó khăn, vướng mắc Nhờ lập trình hướng đối tượng với ngơn ngữ Java thể đối tượng, ý tưởng vào mã nguồn xử lý để đưa chúng thành giao diện thực tế cách dễ dàng Các package class cụ thể việc vận dụng kỹ thuật hướng đối tượng trình bày chương 2, bao gồm chủ yếu là tính gói class (Encapsulation), tính kế thừa (Inheritage), nạp chồng phương thức (Overloading), ghi đè phương thức (Overriding), thực thi Giao diện (Interface) Ngoài chúng em có vâ ̣n du ̣ng kiến thức thiết kế giao diện, đồ hoạ người dùng Một khía cạnh quan trọng khác không kể đến cấu trúc liệu thuâ ̣t toán Nhìn chung toàn mã nguồn phần mềm cấu trúc liệu thuật toán lớn nhỏ mà lập trình viên quen mặt sử dụng nhiều việc sử dụng biến, cấu trúc lập for, foreach, cấu trúc rẽ nhánh if/else, bật lên cấu trúc ArrayList để khởi tạo cho chuỗi đối tượng xây dựng Đó cấu trúc liệu mà tìm hiểu chương Lập trình tổng quát của ho ̣c phầ n Cịn phía giải thuật trội lên thuật tốn Tìm kiế m tuầ n tự đươ ̣c dùng để tìm kiế m cán bô ̣ theo theo tên, đơn vị công tác, hệ số lương Nhóm 25 IT3100 – Lập trình hướng đối tượng 20202 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH MINH HOẠ 4.1 Kết chương trình minh hoạ Chương trình đặt tên QuanLyCanBo, với logo chữ QL, chạy hệ điều hành Android, phục vụ việc quản lý cán trường học Chương trình xây dựng đáp ứng đầy đủ tất yêu cầu ban đầu của đề tài chức giao diện 4.2 Giao diện chương trình 4.2.1 Giao diện khởi động Nhóm 26 IT3100 – Lập trình hướng đối tượng 20202 4.2.2 Giao diện nhập số lượng cán thông tin cán Giao diện nhập số cán bộ: Giao diện nhập thơng tin cán bộ: Nhóm 27 IT3100 – Lập trình hướng đối tượng 20202 Giao diện nhập xong thông tin danh sách cán 4.2.3 Giao diện hiển thị danh sách thông tin cán vừa nhập chức Màn hình chính: Nhóm 28 IT3100 – Lập trình hướng đối tượng 20202 Các chức tương tác có giao diện: Thao tác thêm giáo viên nhân viên: Nhấn nút “Thêm” hình, xuất Dialog “THÊM”, nhập thơng tin theo mục sau nhấn OK để thêm CANCEL để huỷ Thao tác xoá nhân viên giáo viên: Nhấn giữ vào nhân viên giáo viên cần xố Nhóm 29 IT3100 – Lập trình hướng đối tượng 20202 Thao tác sửa: nhấn vào cá muốn sửa, Dialog “SỬA” xuất hiện, sửa thơng tin theo mục sau nhấn OK để thêm CANCEL để huỷ Thao tác tìm kiếm: Nhập vào mục tìm kiếm thơng tin đối tượng cần tìm kiếm, kết tìm kiếm hiển thị phụ thuộc vào trường Họ tên, Đơn Vị Cơng Tác, Hệ Số Lương Nhóm 30 IT3100 – Lập trình hướng đối tượng 20202 Thao tác hiển thị danh sách nhân viên giáo viên có tổng lương 10triê ̣u Thao tác tính tổng lương phải trả cho tất nhân viên khoảng thời gian nhập vào Nhóm 31 IT3100 – Lập trình hướng đối tượng 20202 4.3 Kiểm thử chức thực Chức thêm, sửa xoá cán Hoạt động Chức tìm kiếm cán theo tên, đơn vị cơng tác, hệ số lương Hoạt động Chức thống kê cán có lương lớn 10.000.000tr đồng / tháng Hoạt động Chức tính tổng lương phải trả cho tất cán khoảng thời gian nhập vào Hoạt động Nhóm 32 IT3100 – Lập trình hướng đối tượng 20202 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương trình Quản Lý Cán Bộ phát triển dựa kiến thức giảng dạy lớp tự tìm hiểu nên cịn sơ sài, tồn nhiều thiếu sót hạn chế, phần thành viên nhóm chưa có kinh nghiệm xây dựng phát triển ứng dụng Sau trình phát triển thử nghiệm ứng dụng, nhóm chúng em xin đưa kết luận hướng phát triển sau: Ưu điểm: Đáp ứng, hoàn thành đầy đủ yêu cầu đề tài, chức ứng dụng quản lí thơng tin (bao gồm xố, sửa, cập nhật, tìm kiếm thơng tin) Ứng dụng chạy mượt mà không gặp lỗi crash ứng dụng hay lỗi đồ hoạ Nhược điểm: Đồ hoạ chưa thực bắt mắt, chức sơ sài Lương cán thao tác tính lương cán có sai số (