Hướng dẫn assignment java 1 sinh viên kỳ 2 FPT Polytechnic
Phát hành: 21/2/2023
Bạn đang gặp khó khắn khi làm assignment java 1 tại fpt polytechnic thì đây là bài viết dành cho bạn đây là source code cho các bạn tham khảo. Trong bài viết này mình không chỉ chia sẻ code mà còn giải thích cho các bạn các phần trong code này.
- Y1. Nhập danh sách nhân viên từ bàn phím.
- Y2. Xuất danh sách nhân viên ra màn hình.
- Y3. Tìm và hiển thị nhân viên theo mã nhập từ bàn phím.
- Y4. Xóa nhân viên theo mã nhập từ bàn phím.
- Y5. Cập nhật thông tin nhân viên theo mã nhập từ bàn phím.
- Y6. Tìm các nhân viên theo khoảng lương nhập từ bàn phím
- Y7. Sắp xếp nhân viên theo họ và tên.
- Y8. Sắp xếp nhân viên theo thu nhập.
- Y9. Xuất 5 nhân viên có thu nhập cao nhất.
Xây dựng lớp NhanVien mô tả nhân viên hành chính
Trước tiên chúng ta hãy tạo class là NhanVien và cũng khai báo 3 thuộc tính tenNhaVien: String
, luong: int
, maNhanVien: String
với phạm vi truy cập là protected
để lúc nữa chúng ta cùng đi kế thừa.
bước tiếp theo chúng ta hay tạo 2 hàm tạo có tham số
và không tham số
chắc chắn bạn cũng đã hiểu hàm tạo có tham số và không có tham số để làm gì rồi đúng không.
Bước cuối cùng trong class NhanVien là tạo ra method(phương thức) với phạm vi truy cập public
, phương thức getThuNhap
với kiểu dữ liệu trả về là double, phương thức getThueNT
với kiểu dữ liệu là double.
Nếu bạn quan sát đề bài thì Dưới 9 triệu: không đóng thuế,Từ 9-15 triệu: đóng 10%, Trên 15 triệu: đóng 12%
vậy chúng tay hay nghĩ ngay đến việc dùng if - else if - else nhé.
Phương thức cuối cùng là "inThongTin" chúng ta chỉ việc xuất nó ra ngoài màn hình thôi với câu lệnh System.out.println();
2. Xây dựng lớp TiepThi cho đối tượng nhân viện tiếp thị
Khi xây dựng xong class TiepThi bạn hay thêm extends để kế thừa class NhanVien đã tạo từ trước, sau đó hay thêm vào đó 2 thuộc tính doanhSo - double
, hoaHong - double
với phạm vi truy cập là private
do lúc đó mình không để ý lên đã đề là public mong các bạn thông cảm.
Và cũng là 2 hàm tạo có tham số và không có tham số. để kế thừa các thuộc tính như là tenNhaVien hay maNhanVien và luong mà khôn cần khai báo là đó chính là sử dụng từ super(tenNhanVien, luong, maNhanVien)
để kế thừa từ thằng cha của nó.
Bạn hay tạo phương thức setHoaHong
với kiểu dữ liệu void, phương thức getThuNhap
với kiểu dữ liệu là double, và ở đây chúng ta đã ghi đè phương thức getThuNhap
của thằn thuộc tính cha, và chúng ta cũng thêm phương thức inThongTin
và ghi đè phương thức inThongTin
của thằng cha nó.
3. Xây dựng lớp TruongPhong cho đối tượng trưởng phòng
Cũng giống class TiepThi
thì class TruongPhong
cũng kế thừa từ class NhanVien
nhưng chú ta hãy thên thuộc tính trachNghiem - double
, cùng với đó chúng ta cũng tạo 2 hàm tạo có tham số và không có tham số, và các hoạt động tương tự như trên mình có giải thích.
Tương tự với đó chúng ta hay tạo phương thức getThuNhap
và inThongTin
để ghi đè lại phương thức của class cha mà chúng ta đã kế thừa.
4 . Xây dựng class Main đề chúng ta cùng chạy chương trình
Chắc bạn cũng đã biết class Main này đề chúng ta xây dựng đối tượng và chay chươn trình. Sau khi tạo class Main thì hay import 2 thư viện import java.util.ArrayList; import java.util.Scanner;
để chúng ta sử dụng được. Bạn hãy khởi tạo một ArrayList với object là NhanVien và khởi tạo Scanner để có thể nhập từ bàn phím vào. khởi tạo một biến luaCon - int
biến này sẽ dùng để chứa lữa chọn của chúng ta sau khi nhập từ bàn phím. Tiếp theo bạn hay tạo cho mình một vào do-while với điều kiện truyền vào là (luaChon != 0), nếu các bạn đang thắc mắc tại sao cần dùng đến thằng do-while và trong code này nó hoạt động ra sao thì do-while chúng ta sử dụng nhằm mục đích để người dừng không bị thoát chương trình sau khi chọn xong các case(trường) nhưng nếu bạn nhập 0 thì chắc chắn sẽ bị thoát bởi vì do ở đây là toán tử so sánh nó sẽ trả về true hoặc false và ở đây nếu khác 0 nó sẽ trả về true vòng lặp sẽ chạy tiếp còn trả về false vòng lặp sẽ dừng lại.
Vậy bên trong vòn lặp do-while ta viết những gì? Trước tiên ta cần in ra các lựa chọn để người dùng có thể hiểu và chúng ta sẽ gán lại giá trị cho biến luaChon
giá trị của chúng tạ sẽ do người dùng nhập từ bàn phím vào.
Bây giờ chúng hay hãy cùng xây dựng logic để xử lý các trường hợp mà người dùng nhập vào thôi nào, đầu tiên các bạn hãy cứ tạo cho mình switch-case, Chúng ta hãy tạo hết các case nhé. Ở đây mình sẽ tạo hết các case.
Ở đây mình tạo một vòng while điều kiện là true mục đính để người dùng sẽ nhập thêm người nếu cần, chúng ta không cần bàn đến 2 dòng sout nhé vì đây chỉ in ra để người dùng nhìn thấy. Tiếp theo chúng ta hãy cùng đi tạo một biến loaiNhanVien - int
và giá trị của nó trong khoảng từ 1 đến 3 Vì sao lại vậy? Do 1.hanh chinh | 2.tiep thi | 3.truong phong
, nếu các bạn có thắc mắc tại sao lại có cái dòng quần què sc.nextLine()
thì đó là để chúng ta bắt được phím enter nhé. Tiếp theo các bạn hay tạo ra 6 biến vói kiểu dữ liêk như sau: tenNhanVien - String
, maNhanVien - String
, luongHanhChinh - int
, hoaHong - double
, trachNghiem - double
.
Để xử lý được lựa chọn của người dùng thì chúng ta cần dùng đến if - else if - else nhé, trước tiên nếu loaiNhanVien == 1
thì đây là nhân viên hành chính, ở đây mình sẽ khởi tạo một đối tượng nhân viên hành chính từ class NhanVien
và mình truyền tham số như tên, lương và mã thì ở đây nó sẽ nhảy vào hàm tạo có tham số sau cùng là đi thêm vào mảng DanhSachnv mà mình đã tạo ở phần 4. Logic đó cũng sẽ đúng với 2 trường hợp còn lại chỉ khác nếu loaiNhanVien == 2
thì là nhân viên tiếp thị hoặc loaiNhanVien == 3
là trưởng phòng, còn nếu không rơi vào 3 trường hợp trên thì chúng ta sẽ thông báo cho người dùng biết là hộ đã nhập sai và cập nhập lại.
Để xác định người dùng có muốn nhập tiếp hay không thì chúng ta cần dùng để if trước tiên tạo một biến nhapTiep - String
giá trị sẽ nhập từ bàn phím nếu người dùng nhập N
thì chúng ta sẽ thoát chương trình và ngược lại nhập Y
hay bất kỳ phím gì ta sẽ chon người dùng nhập tiếp nhân viên.
Vậy là xong case 1 rồi giờ chúng ta cùng làm tiếp case 2 nhé.
6. Case 2 xuất ra danh sách nhân viên
Case 2 mình không cần giải thích nhiều đúng không, ở đây chỉ là sử dụng vòng for thông thường để xuất lý do là mình có thể xuất ra được nhân viên thứ bao nhiêu nhé.
7. Case 3 tìm kiếm nhân viên theo mã
Chúng ta hay đi tạo một biến "timMa - String" với giá trị nhập từ bàn phím nhé và check - boolean
và giá trị là true, tiếp theo mình sẽ sử dụng vòng for-each để lặp qua mang cho ngắn, trong vòng for mình sử dụng if để check sau khi lặp qua mình nhân lại đươc một object nhanVien
sau đó mình sẽ dùng đâu .
để truy xuất vào maNhanVien
của từng đối tượng, để so sánh với mã nhân viên thì chúng ta cần dùng đến method có sẵ của chuỗi là compareToIgnoreCase
và lý do mình nó cái này mà không phải là compareTo
là người dùng nhập chữ hoa hay chữ thường mình cũng tim chỉ cần giống về mặt chữ là được, nếu mà tìm ra nhân viên nào trùng với mã mà người dùng nhập vào mình sẽ in thông tin và gán lại biến check = false.
Chúng ta hay đi xử lý biến check nhé, biến check là đại điên cho không tìm thấy nếu không mình thấy biến check = true và nó sẽ chạy câu System.out.println("khong tim ra nhan vien voi ma nay.");
8. Case 4 xóa nhân viên theo mã
Với case 4 mình cũng sẽ tạo một biến maXoa - String
với giá trị nhập từ bàn phím và biến "check - boolean" giá trị là true tiếp theo mình sẽ sử dụng vòng for-i để mình có thể được index và xóa đi phân tử có cùng với mã mà người dùng đã nhập còn logic check cũng như trên nhé.
9 . Case 5 cập nhập lại thông tin nhân viên
Mình sẽ tạo ra biến maCapNhat - String
với giá trị nhập từ bàn phím và biến check - boolean
với logic như trên lên mình sẽ không nói thêm, trước tiên mình sẽ dùng 1 vòng lặp để có thể lặp qua danh sách nhân viên sau đó mình sẽ dùng if để xem mã người dùng nhập vào có trùng với nhân viên nào không thì mình sẽ cho cập nhật lại thông tin còn không trùng mình sẽ thông báo không tìm ra nhân viên có mã như vậy.
Giả sử nếu có thòng nhân viên trùng với mà thì chúng ta sẽ xử lý như sau, đầu tiền là ta tạo là 3 biến tenNhanVien - String
, maNhanVien- String
, luonHanhChinh - int
và mình sử dụng if else-if - else đề xem nhân viên đó thuộc đối tượng nào Nếu nhân viên đó mà thuộc đôi tượng tiếp thị thì chúng ta sẽ tạo ra 2 biến biến nữa hoaHong - double
và doanhSo - double
rồi khởi tạo đối tượng nhân viên tiếp thị từ class TiepThi
và sử dụng phươn thức set
cho nó thay thế lại chỗ nhân viên bị cập nhật, nếu nhân viên đó tược đối tương trưởng phòng thì chúng ta khởi tạo biến trachNghiem - double
và khởi tạo đối tượng trưởng phòng từ class TruongPhong
và cũng dùng phương thức set
để thay thế phần tử được tìm, còn nếu là nhân viên hành chính chúng ta chỉ việc khởi tạo đối tưởng nhân viên hành chính từ class NhanVien
10. Case 6 tìm nhân viên theo khoảng lương
Chúng ta cần khởi tạo 2 biến tuLuong - int
và denLuong - int
sau đó sử dụng vòng lặp để có lặp qua các phần tử của mảng bên trong xử lý dùng if để kiểm tra chúng ta sử dụng toán tử logic và so sánh kết để tìm ra những nhân viên nằm trong khoảng lương này nhé.
11. Case7 sắp xếp nhân viên theo họ tên
Để sắp xếp được chúng ta cần dùng đến Comparator
, chúng ta cần khởi tạo trong đấy chúng ta sẽ xử lý việc sắp xếp theo tên.
12. case 8 xắp sếp theo lương
Logic này giống với logic case 8 chỉ thay đổi về phần lấy lường chúng ta sẽ sử dụng phương thức getThuNhap
để xử lý logic nhé.
13. Case 9 xuất 5 nhân viên có lương cao nhất
Ở case 9 chúng ta sử dụng đến collections.sort
sắp xếp sanh sách nhân viên từ thu nhập cao đến thấp, rồi sử dụng vòng for để in ra màn hình.
Phần kết
Đây là toàn bộ code của mình có thể nó không phải là các ngắn ngọn nhất nhưng sẽ giúp ích được cho bạn trong môn Java 1 tại fpt polytechnic, nếu bạn đang tìm bài viết này thì chắc bạn cũng sắp thì rồi, minh chúc bạn qua môn java 1 nhé.
Cảm ơn bạn ghé thăm
Có thể bạn sẽ thích