Tổng hợp bài tập lập trình hướng đối tượng trong java

Khi đã có kiến thức về lập trình hướng đối tượng trong Java thì đây là chính là lúc chúng ta cần thực hành để vận dụng kiến thức để hiểu sâu hơn về hướng đối tượng cũng như lấy được kinh nghiệm thực tế từ các bài tập.

Dưới đây là loạt bài mình tổng hợp có lời giải hoặc hướng dẫn cụ thể. 

Bài 1

Một đơn vị sản xuất gồm có các cán bộ là công nhân, kỹ sư, nhân viên. Mỗi cán bộ cần quản lý các dữ liệu: Họ tên, tuổi, giới tính(name, nữ, khác), địa chỉ.

  • Cấp công nhân sẽ có thêm các thuộc tính riêng: Bậc (1 đến 10).
  • Cấp kỹ sư có thuộc tính riêng: Nghành đào tạo.
  • Các nhân viên có thuộc tính riêng: công việc.

Yêu cầu 1: Xây dựng các lớp CongNhan, KySu, NhanVien kế thừa từ lớp CanBo.

Yêu cầu 2: Xây dựng lớp QLCB(quản lý cán bộ) cài đặt các phương thức thực hiện các chức năng sau:

  • Thêm mới cán bộ.
  • Tìm kiếm theo họ tên.
  • Hiện thị thông tin về danh sách các cán bộ.
  • Thoát khỏi chương trình.

Source code tham khảo

Bài 2

Một thư viện cần quản lý các tài liệu bao gồm Sách, Tạp chí, Báo. Mỗi tài liệu gồm có các thuộc tính sau: Mã tài liệu(Mã tài liệu là duy nhất), Tên nhà xuất bản, số bản phát hành.

Các loại sách cần quản lý thêm các thuộc tính: tên tác giả, số trang.

Các tạp chí cần quản lý thêm: Số phát hành, tháng phát hành.

Các báo cần quản lý thêm: Ngày phát hành.

Yêu cầu 1: Xây dựng các lớp để quản lý tài liệu cho thư viện một cách hiệu quả.

Yêu cầu 2: Xây dựng lớp QuanLySach có các chức năng sau

  • Thêm mới tài liêu: Sách, tạp chí, báo.
  • Xoá tài liệu theo mã tài liệu.
  • Hiện thị thông tin về tài liệu.
  • Tìm kiếm tài liệu theo loại: Sách, tạp chí, báo.
  • Thoát khỏi chương trình.

Source code tham khảo

Bài 3

Các thí sinh dự thi đại học bao gồm các thí sinh thi khối A, B, và khối C. Các thí sinh cần quản lý các thông tin sau: Số báo danh, họ tên, địa chỉ, mức ưu tiên.

Thí sinh thi khối A thi các môn: Toán, Lý, Hoá.

Thí sinh thi khối B thi các môn: Toán, Hoá, Sinh.

Thí sinh thi khối C thi các môn: Văn, Sử, Địa.

Yêu cầu 1: Xây dựng các lớp để quản lý các thi sinh dự thi đại học.

Yêu cầu 2: Xây dựng lớp TuyenSinh có các chức năng:

  • Thêm mới thí sinh.
  • Hiện thị thông tin của thí sinh và khối thi của thí sinh.
  • Tìm kiếm theo số báo danh.
  • Thoát khỏi chương trình.

Source code tham khảo

Bài 4

Để quản lý các hộ dân cư trong một khu phố, người ta cần các thông tin sau: Số thành viên trong gia đình, Số nhà, thông tin mỗi cá nhân trong gia đình. Với mỗi cá nhân, người ta quản lý các thông tin sau: Họ tên, Tuổi, Nghề nghiệp, số chứng minh nhân dân(duy nhất cho mỗi người).

Yêu cầu 1: Hãy xây dựng lớp Nguoi để quản lý thông tin của mỗi cá nhân.

Yêu cầu 2: Xây dựng lớp HoGiaDinh để quản lý thông tin của từng hộ gia đình.

Yêu cầu 2: Xây dựng lớp KhuPho để quản lý các thông tin của từng hộ gia đình.

Yêu cầu 3: Nhập n hộ dân. (n nhập từ bàn phím), hiển thị thông tin của các hộ trong khu phố.

Link source tham khảo

Bài 5

Để quản lý khách hàng đến thuê phòng của một khách sạn, người ta cần các thông tin sau: Số ngày thuê, loại phòng, thông tin cá nhân của những người thuê phòng.

Biết rằng phòng loại A có giá 500$, phòng loại B có giá 300$ và loại C có giá 100$.

Với mỗi cá nhân cần quản lý các thông tin sau: Họ tên, tuổi, số chứng minh nhân dân.

Yêu cầu 1: Hãy xây dựng lớp Nguoi để quản lý thông tin cá nhân của những người thuê phòng.

Yêu cầu 2: Xây dựng lớp KhachSan để quản lý các thông tin về các phòng trong khác sạn.

Yêu cầu 3: Xây dựng các phương thức thêm mới, xoá khách theo số chứng minh nhân dân. Tính tiền thuê phòng cho khách(xác định khách bằng số chứng minh nhân dân) dựa vào công thức: (số ngày thuê * giá của từng loại phòng)

Link source code tham khảo

Bài 6

Để quản lý hồ sơ học sinh của trường THPT nhà trường cần các thông tin sau: Lớp,  và các thông tin về cá nhân của mỗi học sinh.

Mỗi học sinh có các thông tin sau: Họ tên, tuổi, quê quán.

Yêu cầu 1: Xây dựng HocSinh để quản lý thông tin của mỗi học sinh.

Yêu cầu 2: Xây dựng các phương thức thêm, hiển thị thông tin của mỗi học sinh.

Yêu cầu 3: Cài đặt chương trình có các chức năng sau:

  • Thêm học sinh mới.
  • Hiện thị các học sinh 20 tuổi.
  • Cho biết số lượng các học sinh có tuổi là 23 và quê ở DN.

Link source code tham khảo

Bài 7

Khoa CNTT – DHKHTN cần quản lý việc thanh toán tiền lương cho các cán bộ giá viên trong khoa. Để quản lý được, khoa cần các thông tin sau:

Với mỗi cán bộ giáo viên có các thông tin sau: lương cứng, lương thưởng, tiền phạt, lương thực lĩnh, và các thông tin cá nhân: Họ tên, tuổi, quê quán, mã số giáo viên.

Yêu cầu 1: Xây dựng lớp Nguoi để quản lý các thông tin cá nhân của mỗi giáo viên.

Yêu cầu 2: Xây dựng lớp CBGV để quản lý các thông tin của các cán bộ giáo viên.

Yêu cầu 3: Xây dựng các phương thức thêm, xoá các cán bộ giáo viên theo mã số giáo viên.

Yêu cầu 4: Tính lương thực lĩnh cho giáo viên: Lương thực = Lương cứng + lương thưởng – lương phạt.

Link source code tham khảo

Bài 8

Thư viện trung tâm đại học quốc gia có nhu cầu quản lý việc mượn, trả sách. Sinh viên đăng ký tham gia mượn sách thông qua thẻ mà thư viện cung cấp.

Với mỗi thẻ sẽ lưu các thông tin sau: Mã phiếu mượn, ngày mượn, hạn trả, số hiệu sách, và các thông tin cá nhân của sinh viên mượn sách. Các thông tin của sinh viên mượn sách bao gồm: Họ tên, tuổi, lớp.

Để đơn giản cho ứng dụng console. Chúng ta mặc định ngày mượn, ngày trả là số nguyên dương.

Yêu cầu 1: Xây dựng lớp SinhVien để quản lý thông tin của mỗi sinh viên.

Yêu cầu 2: Xây dựng lớp TheMuon để quản lý việc mượn trả sách của các sinh viên.

Yêu cầu 3: Xây dựng các phương thức: Thêm, xoá theo mã phiếu mượn và hiển thị thông tin các thẻ mượn.

Link source code tham khảo

Bài 9

Bài tập tự luyện

Để quản lý biên lai thu tiền điện, người ta cần các thông tin sau:

  • Với mỗi biên lai: Thông tin về hộ sử dụng điện, chỉ số điện cũ, chỉ số mới, số tiền phải trả.
  • Các thông tin riêng của từng hộ gia đình sử dụng điện: Họ tên chủ hộ, số nhà, mã số công tơ điện.

Yêu cầu 1: Hãy xây dựng lớp khachHang để lưu trữu các thông tin riêng của mỗi hộ gia đình.

Yêu cầu 2: Xây dựng lớp BienLai để quản lý việc sử dụng và thanh toán tiền điện của các hộ dân.

Yêu cầu 3: Xây dựng các phương thức thêm, xoá sửa các thông tin riêng của mỗi hộ sử dụng điện.

Yêu cầu 4: Viết phương thức tính tiền điện cho mỗi hộ gia đình theo công thức: (số mới – số cũ ) * 5.

Bài 10

Bài tập tự luyện

Để xử lý văn bản người ta xây dựng lớp VanBan  có thuộc tính riêng là một xâu ký tự.

Yêu cầu 1: Xây dựng hàm khởi tạo VanBan(), VanBan(String st).

Yêu cầu 2: Xây dựng phương thức đếm số từ của văn bản.

Yêu cầu 3: Xây dựng phương thức đếm số lượng ký tự A( không phân biệt hoa thường) của văn bản.

Yêu cầu 4: Chuẩn hoá văn bản theo tiêu chuẩn sau: Ở đầu và cuối sâu không có ký tự trống, ở giữa sâu không có 2 hoặc nhiều hơn các ký tự khoảng trắng kiền kề nhau.

Bài 11

Bài tập tự luyện

Xây dựng lớp SoPhuc có các thuộc tính PhanThuc, PhanAo kiểu double.

Yêu cầu 1: Xây dựng các phương thức tạo lập

Yêu cầu 2: Xây dựng các phương thức:

  • Nhập một số phức.
  • Hiện thị số phức.
  • Cộng 2 số phức.
  • Nhân 2 số phức.

Bài 12

Bài tập tự luyện

Nghành công an cần quản lý các phương tiện giao thông gồm: ô tô, xe máy, xe tải. Mỗi loại gồm các thông tin: ID, Hãng sản xuất, năm sản xuất, giá bán và màu xe.

Các ô tô có các thuộc tính riêng: số chỗ ngồi, kiểu động cơ.

Các xe máy có các thuộc tính riêng: công xuất.

Xe tải cần quản lý thêm: Trọng tải.

Yêu cầu 1: Xây dựng các lớp để quản lý các phương tiện trên sao cho hiệu quả.

Yêu cầu 2: Xây dựng lớp QLPTGT có các chức năng:

  • Thêm, xoá(theo ID) các phương tiện thuộc các loại trên.
  • Tìm phương tiện theo hãng sản xuất, màu.
  • Thoát chương trình.

Bài 13

Phần mềm quản lý nhân viên của công ty được mô tả nghiệp vụ như sau:

Mỗi nhân viên (Employee) đượ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_typecó 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.

Yêu cầu

  1. 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 : bao đóng (encapsulation) , kế thừa (inheritance) , đa hình (polymorphism) , trừu tượng (abstraction).
  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. Xác định Is A, Has A relationship trong phần thiết kế code đã viết ở trên.
  5. Sử dụng và giải thích được ý nghĩa của 2 keyword: super, this trong phần thiết kế code ở trên.
  6. Hãy giải thích ý nghĩa của toán tử instanceof, hãy ứng dụng instanceof để downcasting 1 object Employee trở thành các object Experience, Fresher hoặc intern trong các yêu cầu 2, yêu cầu 3, yêu cầu 4 bên dưới.
  7. 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.
  8. 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.
  9. Viết chương trình tìm tất cả các nhân viên intern.
  10. Viết chương trình tìm tất cả các nhân viên experience .
  11. Viết chương trình tìm tất cả các nhân viên fresher.
  12. 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ệ.

Bài 14

Viết chương trình quản lý việc tuyển sinh viên sau khi tốt nghiệp đại học.

Có 2 loại sinh viên bao gồm sinh viên tốt nghiệp loại khá giỏi (GoodStudent) và sinh viên tốt nghiệp loại trung bình (NormalStudent).

Cả 2 loại sinh viên trên đều phải cung cấp các thông tin sau khi nộp hồ sơ xin việc: Họ tên (fullName), Ngày tháng năm sinh (doB), Giới tính (sex), Số điện thoại (phoneNumber), Tên trường đã học (universityName), Xếp loại tốt nghiệp (gradeLevel).

Riêng sinh viên loại khá giỏi phải có thêm thông tin: điểm trung bình học tập (gpa) theo thang điểm 10, tên của loại học bổng (hoặc giải thưởng) cao nhất đã từng giành được (bestRewardName).

Riêng sinh viên loại trung bình thì phải có thêm các thông tin: điểm TOEIC (englishScore), điểm thi đầu vào chuyên môn do công ty tổ chức thi (entryTestScore) theo thang điểm 10.

Yêu cầu 1:

            Thí sinh hãy thiết kế và viết code thể hiện các class của các sinh viênlớp học của chương trình làm sao để tuân thủ theo mô hình OOP đã học, áp dụng 4 tính chất : bao đóng (encapsulation) , kế thừa (inheritance) , đa hình (polymorphism) , trừu tượng (abstraction).

            Lưu ý: Bất kì một sinh viên nào cũng cần có một phương thức có tên là ShowMyInfor để hiển thị thông tin của sinh viên đó ra màn hình cosole, yêu cầu này là bắt buộc với các thành viên xây dựng code cho chương trình này. Bạn hãy lưu ý khi thiết kế code để thỏa mãn yêu cầu này.

Yêu Cầu 2 : Kiểm tra ràng buộc dữ liệu cho chương trình. Dữ liệu của các file input phải tuân thủ theo ràng buộc sau:

– Họ tên sinh viên có chiều dài tối đa là 50 ký tự và tổi thiểu là 10 ký tự. Học viên cần tạo Exception tương ứng có tên là InvalidFullNameException (1 điểm).

Chương trình phải bắt được lỗi sai định dạng ngày tháng năm đối với trường doB. doB phải theo định dạng dd/MM/YYYY. Học viên cần tạo Exception tương ứng có tên là InvalidDOBException (1 điểm).

– Số điện thoại: phải là chuỗi số có chiều dài 10 ký tự và phải bắt đầu bằng một trong các chuỗi số: 090, 098, 091, 031, 035 hoặc 038. Học viên cần tạo Exception tương ứng có tên là InvalidPhoneNumberException (1 điểm).

– Ngoài ra nếu có bất cứ một exception nào khác trong quá trình thực thi chương trình, thí sinh hãy thông báo ra màn hình nội dung Input files have unknow errors !!!”  (0.5 điểm).

Yêu cầu 3: Chương trình cần có chức năng lựa chọn ứng viên trúng tuyển vào công ty theo nguyên tắc sau:

  • Người dùng sẽ nhập vào số lượng sinh viên cần tuyển dụng (tối thiểu là 11, tối đa là 15).
  • Chương trình sẽ tự động chọn ra ứng viên phù hợp cho công ty theo các bước như sau:
    • Nếu số lượng ứng viên là sinh viên khá giỏi có nhiều hơn số lượng cần tuyển thì xét ưu tiên theo điểm GPA. Nếu xuất hiện ứng viên khá giỏi có cùng điểm GPA thì xét ưu tiên theo họ tên. Vd: nếu họ tên là Nguyễn Văn A và Nguyễn Văn B thì ứng viên Nguyễn Văn A được chọn. (Giả sử không bao giờ có sinh viên có trùng họ tên nhau).
    • Nếu số lượng ứng viên là sinh viên khá giỏi ít hơn hoặc bằng số lượng cần tuyển thì nhận hết sinh viên khá giỏi.
    • Sau khi tuyển hết ứng viên khá giỏi, nếu vẫn chưa đủ số lượng cần tuyển, chương trình sẽ lấy ứng viên trung bình. Các ứng viên trung bình được xét ưu tiên theo điểm thi đầu vào, nếu điểm thi đầu vào bằng nhau thì xét đến điểm TOEIC. Nếu xuất hiện ứng viên trung bình có cùng điểm TOEIC thì xét ưu tiên theo họ tên.

Yêu cầu 4: Chương trình có thể hiển thị được thông tin họ tên và số điện thoại của tất cả các sinh viên đã nhập vào hệ thống (yêu cầu dùng collection sort để sắp xếp giảm dần theo fullName và tăng dần theo phoneNumber đối với sinh viên trước khi hiển thị).

Bài 15

Xây dựng chương trình quản lý kết quả học tập của sinh viên tại một trường đại học. Có 2 loại sinh viên là sinh viên chính quy và sinh viên tại chức với các thông tin giống nhau: mã sinh viên, họ tên, ngày tháng năm sinh, năm vào học, điểm đầu vào và danh sách kết quả học tập. Sinh viên tại chức có thêm thông tin nơi liên kết đào tạo(Đồng Nai, Cà Mau, …). Khoa gồm có các thông tin: tên khoa và danh sách sinh viên đang theo học. Kết quả học tập gồm có tên học kỳ, điểm trung bình học kỳ đó.

Hiện thực các yêu cầu sau:
Vẽ class diagram cho phát biểu bài toán trên OOP:

  1. Hiện thực các lớp cần thiết cho bài toán trên
  2. Phương thức khởi tạo (constructor) cho các lớp: constructor chuẩn, constructor
    có tham số, constructor sao chép
  3. Phương thức input và output để cho phép người dùng nhập thông tin cho các
    loại sinh viên
  4. Phương thức xác định sinh viên có phải là chính quy hay không?
  5. Xử lý Exception khi người dùng nhập sai dữ liệu
  6. Phương thức lấy điểm trung bình các môn học của sinh viên dựa vào học kỳ
    cho trước
  7. Phương thức xác định tổng số sinh viên chính quy của khoa?
  8. Tìm ra sinh viên có điểm đầu vào cao nhất ở mỗi khoa
  9. Ở mỗi khoa, lấy ra danh sách các sinh viên tại chức tại nơi liên kết đào tạo cho
    trước
  10. Ở mỗi khoa, lấy ra danh sách sinh viên có điểm trung bình ở học kỳ gần nhất
    (là học kỳ cuối cùng trong danh sách kết quả học tập của sinh viên) từ 8.0 trở
    lên
  11. Ở mỗi khoa, tìm ra sinh viên có điểm trung bình học kỳ cao nhất (ở bất kỳ học
    kỳ nào)
  12. Ở mỗi khoa, sắp xếp danh sách sinh viên tăng dần theo loại và giảm dần theo
    năm vào học (sử dụng interface Comparable hoặc Comparator)
  13. Ở mỗi khoa, thống kê số lượng sinh viên theo năm vào học. Ví dụ 2020: 100,
    2019: 90, 2018: 120.

Kết bài

Mọi người cố gắng làm hết để ôn lại các kiến thức trong lập trình hướng đối tượng nghen.

Nếu làm được hết các bài này thì cũng đừng có mừng vội, vì đây chỉ là những thứ rất rất căn bản. Nhưng hãy thoải moái vì mình đã hoàn thành những bài tập này, chuẩn bị cho những thứ ghê ghớm hơn ở đằng sau.

Mình ngồi giải những bài tập này cũng đuối quá. Nếu có gì không hiểu hoặc không biết làm, hoặc tìm thấy bug thì mail cho mình nhé. Email ở dưới cuối màn mình =). Thanks!

Các bài viết liên quan

5 4 votes
Article Rating
Subscribe
Notify of
guest
67 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Hà Quang Linh
Hà Quang Linh
1 year ago

Ad ơi, ở bài 1 phần searchOfficerByName() ấy, viết tường minh không theo cú pháp lambda của câu lệnh này là như thế nào nhỉ?
return this.officers.stream().filter(o -> o.getName().contains(name)).collect(Collectors.toList());

phương
phương
1 year ago
Reply to  Hà Quang Linh

bạn ơi viết theo ngôn ngữ C# thì phương thức tìm kiếm trong lớp QLCB ở bài 1 viết như thế nào ạ

Hà Quang Linh
Hà Quang Linh
1 year ago

Thankiuu anh, qua bài này em mới biết đến stream, chứ bình thường em toàn foreach rồi so sánh tên thôi

Minh vu
Minh vu
11 months ago

Ad cho hỏi tìm địa chỉ id sao đó muốn update lại làm sao nhi?

Minh vu
Minh vu
11 months ago
Reply to  Deft

BAI 2 AD
vi du tìm mã tài liệu sau dó update lại

Last edited 11 months ago by Minh vu
minh
minh
6 months ago
Reply to  Deft

ad có thể code giúp mình không mình cảm ơn mình mới học lên toàn kham khảo code người khác thoi

Minh vu
Minh vu
11 months ago

bai 2: ví dụ tìm mã tài liệu sao đó update lại tài liệu đó.(bài 2)

Minh vu
Minh vu
11 months ago

ad oi cho hoi cho nay sai cho nao vay

Minh vu
Minh vu
11 months ago

cho nay sai cho nao vay ad

gui di hai.png
Minh vu
Minh vu
11 months ago
Reply to  Minh vu

cho nay ad

gui di hai2.png
Minh vu
Minh vu
11 months ago
Reply to  Minh vu

ad

gui di hai3.png
TTT
TTT
7 months ago
Reply to  Minh vu

Ý bạn là đoạn “Nhap thong tin hoc sinh:” với nhập tên và địa chỉ không nhập được mà sang cái khác luôn đúng không?

Kham
Kham
10 months ago

bai 11 sao khong co cord

quy
quy
7 days ago
Reply to  Deft

luyện không được thì có xin code mẫu được không ạ

minh
minh
7 months ago

bây h mình nhập danh sách xong rồi mà muốn tìm kiếm tên xong cập nhật lại thông tin của họ thì làm thế nào hả ad bài số 2 đấy
mình muốn thêm chức năng sửa thông tin nhân viên theo tên đã tìm kém

minh
minh
7 months ago

với cho mình hỏi ở bài 3 đấy thêm chức năng xắp xếp sinh viên từ thấp tới cao thì làm thế nào ạ mình mới học java 1 mà ad làm java 8 hơi khó hiểu lên cho mình hỏi chút

null
null
6 months ago

cảm ơn assmin
cho mình hỏi về bài 5:
– sao Hotel lại chứa list Person nhỉ, mình nghĩ Person phải là thuộc tính của Room; rồi quản lý list Room này.
– loại phòng (A, B, C); nhỡ như có n loại phòng thì tạo n class cũng hơi khoai nhỉ.

null
null
6 months ago
Reply to  Deft

(1), mình sr, do mình đọc ko kỹ đề, đề yêu cầu quản lý khách đến thuê.

(2), mình cho nó vào enum, ở class Room sẽ có thuộc tính String là value của enum này.

public enum TypeRoom {
	typeA(500),
	typeB(300),
	typeC(100);
	
	private int price;
	
	private TypeRoom(int price) {
		this.price = price;
	}
	
	public int getPrice() {
		return this.price;
	}
}
null
null
6 months ago
Reply to  Deft

thế thì nó lại hợp ný quá 😀
thank assmin

null
null
6 months ago
Reply to  Deft

mình là sv mới ra trường, thất nghiệp ở nhà húp mỳ tôm thôi assmin.

null
null
6 months ago
Reply to  Deft

IT this IT that mà 🙁

null
null
5 months ago
Reply to  Deft

assmin làm mấy bài về spring đi ạ.

Huy Cồn
Huy Cồn
5 months ago

ad ơi, không có lời giải code câu 13 à

huyen
huyen
5 months ago

ad oi cho em hỏi cái này làm như nào ạ //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).

Khánh
Khánh
5 months ago

Ad ơi cho mình hỏi là: Hầu hết những bài add làm là thiết kế theo kiểu Nhập chi tiết ở trong Class main. Vd là bài 1 ad thiết kế trong class Engineer chỉ có các constructor với các phương thức get,set còn để nhập chi tiết thì ad thiết kế trong hàm main. Cho mình hỏi đó là template hiện đại của oop hay sao vậy . Tại mình thường làm là tạo luôn phương thức nhập trong mấy class đó luôn rồi đến main gọi ra thôi. Mong ad trả lời

sinh vien
sinh vien
2 months ago
Reply to  Deft

Mong bạn làm ví dụ bài 13 1 cách tối ưu để được học hỏi… Trân Trọng

sinh vien
sinh vien
2 months ago
Reply to  sinh vien

** 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 : CertificatedIDCertificateNameCertificateRankCertificatedDate.

Có thể hướng dẫn mình yêu cầu này k?

Minh
Minh
2 months ago

Cho mình xin source code tham khảo bài 13 với

khang
khang
1 month ago
Reply to  Minh

xin code bài 13

nguyen quoc thai
nguyen quoc thai
2 months ago

mọi người ơi ai có source code bài 14 cho mình xin tham khảo với

nam phạm
nam phạm
2 months ago

ad ơi em cần trợ giúp bài 14 ạ

khang
khang
1 month ago

cho minh xin code bài 13 tham khảo vs ạ

Tien
Tien
1 month ago

cho mình xin gợi ý bài 12 phần xóa các phương tiện theo loại với ạ

Tien
Tien
1 month ago

ad giúp mình đoạn này với ạ
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)

Bi Bi
Bi Bi
29 days ago

Mng ơi giùp em giải bài này với ạ, em bí quá, e cảm ơn mng rất nhìu

Xây dựng chương trình quản lý kết quả học tập của sinh viên tại một trường

đại học. Có 2 loại sinh viên là sinh viên chính quy và sinh viên tại chức với các thông

tin giống nhau: mã sinh viên, họ tên, ngày tháng năm sinh, năm vào học, điểm đầu vào

và danh sách kết quả học tập. Sinh viên tại chức có thêm thông tin nơi liên kết đào tạo

(Đồng Nai, Cà Mau, …). Khoa gồm có các thông tin: tên khoa và danh sách sinh viên

đang theo học. Kết quả học tập gồm có tên học kỳ, điểm trung bình học kỳ đó.

Hiện thực các yêu cầu sau:
1) Vẽ class diagram cho phát biểu bài toán trên

OOP

2) Hiện thực các lớp cần thiết cho bài toán trên
3) Phương thức khởi tạo (constructor) cho các lớp: constructor chuẩn, constructor
có tham số, constructor sao chép
4) Phương thức input và output để cho phép người dùng nhập thông tin cho các
loại sinh viên
5) Phương thức xác định sinh viên có phải là chính quy hay không?
6) Xử lý Exception khi người dùng nhập sai dữ liệu
7) Phương thức lấy điểm trung bình các môn học của sinh viên dựa vào học kỳ
cho trước
8) Phương thức xác định tổng số sinh viên chính quy của khoa?
9) Tìm ra sinh viên có điểm đầu vào cao nhất ở mỗi khoa
10)Ở mỗi khoa, lấy ra danh sách các sinh viên tại chức tại nơi liên kết đào tạo cho
trước
11)Ở mỗi khoa, lấy ra danh sách sinh viên có điểm trung bình ở học kỳ gần nhất
(là học kỳ cuối cùng trong danh sách kết quả học tập của sinh viên) từ 8.0 trở
lên
12)Ở mỗi khoa, tìm ra sinh viên có điểm trung bình học kỳ cao nhất (ở bất kỳ học
kỳ nào)
13)Ở mỗi khoa, sắp xếp danh sách sinh viên tăng dần theo loại và giảm dần theo
năm vào học (sử dụng interface Comparable hoặc Comparator)
14)Ở mỗi khoa, thống kê số lượng sinh viên theo năm vào học. Ví dụ 2020: 100,
2019: 90, 2018: 120.

Bi Bi
Bi Bi
29 days ago
Reply to  Deft

Dạ a…..a check inbox giúp e ạ

shinshin
shinshin
26 days ago

mn ơi e có bài này nó giồng như bài 15 í nhưng e bí quá ạ

Thư viện cần quản lý các quyển sách ở các chi nhánh, mỗi quyển sách gồm các
thông tin: mã số, tiêu đề, giá, thể loại, năm xuất bản và danh sách tác giả của sách. Tác
giả có các thông tin: tên tác giả và năm sinh. Sách có 2 loại: Trong nước và ngoài nước.
Sách ngoài nước có thêm thông tin: quốc gia. Mỗi chi nhánh thư viện có tên, địa chỉ và
các quyển sách hiện có.
Hiện thực các yêu cầu sau:
1) Vẽ class diagram cho phát biểu bài toán trên
2) Hiện thực các lớp cần thiết cho bài toán quản lý sách
3) Phương thức khởi tạo (constructor) cho các lớp: constructor chuẩn, constructor
có tham số, constructor sao chép
4) Phương thức input và output cho các lớp, để cho phép người dùng nhập thông
tin cho các loại sách
5) Xử lý Exception khi người dùng nhập sai dữ liệu
6) Phương thức lấy ra loại của sách (Trong nước, Ngoài nước)
7) Phương thức kiểm tra sách có phải là sách nước ngoài và được viết bởi 1 tác
giả có tên cho trước hay không
8) Phương thức kiểm tra hai quyển sách có cùng loại và cùng tác giả hay không
9) Ở mỗi chi nhánh, tính tổng số sách trong nước và có năm xuất bản cách nay
(2021) 10 năm
10)Ở mỗi chi nhánh, tìm quyển sách nước ngoài có nhiều tác giả nhất
11)Tìm xem ở chi nhánh thư viện có quyển sách có tên cho trước hay không?
12)Lấy ra danh sách các quyển sách được viết 1 tác giả có tên và thể loại cho trước
ở mỗi chi nhánh
13)Sắp xếp các quyển sách trong chi nhánh thư viện tăng dần theo tiêu đề và giảm
dần theo năm xuất bản (sử dụng interface Comparable hoặc Comparator)
14)Thống kê số lượng sách của chi nhánh thư viện theo năm xuất bản. Ví dụ 1990:
5, 1989: 10, … năm 1990 có 5 quyển sách, năm 1989 có 10 quyển sách.

Em Rua
Em Rua
6 days ago

Mọi người ai có code 13 14 cho mình xin với ạ, xin chân thành cảm ơn

Thai
Thai
1 day ago
Reply to  Em Rua

Mn ơi giúp e bài này với ạ e bí quá
Tạo một lớp có tên là PhoneNumber lưu thông tin về một số điện thoại. Ở phương thức khởi tạo, một đối tượng PhoneNumber có thể nhận một số nguyên tương ứng với mã vùng, và một số nguyên tương ứng với số điện thoại nội vùng. Tất cả các trường của lớp này phải là private. Để truy cập các trường này thì phải cài đặt các phương thức get/set. Mỗi số điện thoại có định dạng hiển thị là: 024-36407515 hoặc 0227-3821213 (trong đó 3 hoặc 4 số đầu đại diện cho mã vùng, số còn lại đại diện cho số điện thoại nội vùng). Kế thừa từ lớp PhoneNumber là lớp IntlPhoneNumber chứa thông tin về một số điện thoại quốc tế. Ở phương thức khởi tạo, một đối tượng IntlPhoneNumber có thể nhận một số nguyên xác định mã quốc gia, một số nguyên xác định mã vùng và một số nguyên xác định số điện thoại nội vùng (bỏ số 0 ở đầu). Định danh hiển thị số điện thoại quốc tế là 84-24-36407515 (84 tương ứng với mã quốc gia). Viết một lớp PhoneBook để cài đặt một chương trình quản lý danh sách các số điện thoại (gồm cả số điện thoại trong nước và quốc tế). Chức năng của chương trình này bao gồm:
1. Thêm một số điện thoại mới. Người dùng được lựa chọn để nhập vào một số điện thoại trong nước hay quốc tế (khi nhập phải kiểm tra định dạng)
2. Tìm một số điện thoại theo mã vùng. Người dùng có thể tìm thấy tất cả các số điện thoại nội vùng hay quốc tế có cùng mã vùng
3. Liệt kê tất cả các số điện thoại. Người dùng có thể lựa chọn liệt kê các số trong nước, quốc tế hay cả hai.
4.Tính tổng số điện theo theo từng vùng (noi hat)
5. Tìm kiếm theo có đuôi là…
6. Sắp xếp số điện thoại 

công
công
11 hours ago

tôi xin code mẫu bài 11 với

67
0
Would love your thoughts, please comment.x
()
x