BÀI TẬP THỰC HÀNH JAVA
(Lớp LTHĐT với Java N03 & N08)
(giáo viên: Ngô Thị Lan – bộ môn Công nghệ phần mềm)
Câu 1 Xuất ra màn hình một xâu ký tự bất kỳ.
Câu 2 Viết chương trình nhập vào ngày, tháng, năm và in ra tháng đó có bao nhiêu ngày.
Câu 3 Viết chương trình nhập vào một số nguyên và in ra tất cả các số nguyên tố nhỏ hơn hoặc bằng số nguyên đó.
Câu 4 Viết chương trình nhập vào một số nguyên n và in ra tất cả các số hoàn thiện nhỏ hơn hoặc bằng số n đó
Câu 5 Hãy xây dựng lớp SinhVien cá các thuộc tính riêng (private): Số báo danh, họ & tên SV, địa chỉ, môn học, điểm thi học kì 1,2
a. Viết các hàm truy nhập tới các thành phần dữ liệu & các toán tử tạo lập cho lớp SinhViên
b. Viết chương trình chính để tạo ra danh sách SinhViên & hiển thị thực đơn
- Nhập vào thông tin về sinh viên
- Xem thông tin về sinh viên
- Tìm sinh viên theo điểm (giả sử theo điểm kỳ 1)
- Kết thúc chương trình
c. Viết các hàm thành phần của 1 lớp để thực hiện các nhiệm vụ trên
Câu 6 Viết chương trình nhập vào một số nguyên & in ra dạng nhị phân của số đó
Câu 7 Viết chương trình tìm các số nguyên tố nhỏ hơn một số n cho trước
a. Chỉ sử dụng chu trình for
b. Chỉ sử dụng chu trình while
c. Chỉ sử dụng chu trình do-while
Câu 8 Nhập số cạnh của đa thức, chiều dài các cạnh sau đó hiển thị lên màn hình tất cả các thông tin đã nhập, tính chu vi đa thức.
Câu 9
Viết chương trình nhập vào số các tam giác, độ dài từng cạnh của tam giác, in ra màn hình các thông tin về tam giác có diện tích lớn nhất.
Câu 10
Nhập vào một đa thức bất kỳ, hiển thị đa thức đã nhập, tính kết quả của đa thức đó
Câu 11
Viết chương trình quản lý khách hàng, mồi khách hàng cần quản lý các thông tin : Họ tên, địa chỉ, điện thọa, mail. Số khách hàng tự nhập từ bàn phím, tìm khách hàng theo tên, địa chỉ.
Câu 12:
Hãy xây dựng lớp DaThuc có các thuộc tính riêng là: Bậc của đa thức, mảng các số nguyên chứa các hệ số của đa thức cùng với các phương thức:
+ Các toán tử tạo lập
+ Nhập giá trị cho đa thức hiện thời
+ In ra màn hình đa thức hiện thời bao gồm bậc và giá trị các hệ số
+ Phép cộng, trừ, nhân hai đa thức
2. Xây dựng chương trình ứng dụng thực hiện nhập vào hai đa thức
+ Tính đa thức tổng của hai đa thức trên.
+ Tính hiệu của hai đa thức trên
Câu 13:
1. Xây dựng lớp PhanSo với hai thuộc tính riêng xác định tử số và mẫu số của phân số, đồng thời có các phương thức sau:
+ Các toán tử tạo lập
+ Các phép toán cộng, trừ, nhân, chia hai phân số
+ Phép kiểm tra một phân số có phải tối giản hay không
+ Phép tìm dạng tối giản của phân số
2. Viết một chương trình ứng dụng thực hiện việc nhập vào một dãy các phân số
+ In ra màn hình dạng tối giản của các phân số đó
+ Sắp xếp các phân số theo thứ tự tăng dần của tử số của mỗi phân số
Câu 14
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ý lý các thuộc tính: Họ tên, năm sinh, giới tính, địa chỉ
+ Các công nhân cần quản lý: Bậc (công nhân bậc 3/7, bậc 4/7 ...)
+ Các kỹ sư cần quản lý: Ngành đào tạo
+ Các nhân viên phục vụ cần quản lý thông tin: công việc
1. Xây dựng các lớp: NhanVien, CongNhan, KySu kế thừa từ lớp CanBo
Và có các hàm để truy nhập, hiển thị thông tin cho các đối tượng của các lớp ở trên.
2. Xây dựng lớp QLCB cài đặt các phương thức thực hiện các chức năng sau:
+ Nhập thông tin cho một danh sách gồm n cán bộ
+ Hiển thị thông tin về danh sách các cán bộ đã nhập ở trên.
Câu 15:
1. Thông tin về mỗi cá nhân bao gồm : Họ tên, giới tính, tuổi. Hãy xây dựng lớp Nguoi chứa các đối tượng là các cá nhân và xây dựng các phương thức:
+ Các toán tử tạo lập: Nguoi(); Nguoi(String, boolean, int);
+ Phương thức nhap() để nhập thông tin cho một cá nhân
+ Phương thức in() để in thông tin về một cá nhân
2. Hãy xây dựng lớp CoQuan chứa thông tin về các cá nhân trong một đơn vị được dẫn xuất (kế thừa) từ lớp Nguoi và có thêm các thành phần:
+ Thuộc tính kiểu String xác định đơn vị công tác (bộ môn, phòng); thuộc tính kiểu double xác định hệ số lương.
+ Viết đè phương thức in() ở lớp Nguoi để in thông tin về một cá nhân trong CoQuan
+ Cài đặt phương thức tinhLuong(CoQuan) để tính lương cho mỗi cá nhân trong cơ quan theo công thức: Lương =hệ số lương x 450000
Câu 16
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 có các thuộc tính: Mã tài liệu, 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ý: Tên tác giả, số trang
+ Các tạp chí cần quản lý: Số phát hành, tháng phát hành
+ Các báo cần quản lý: ngày phát hành.
1. Xây dựng các lớp để quản lý các loại tài liệu trên sao cho việc sử dụng lại được nhiều nhất.
2. Xây dựng lớp QLThuVien cài đặt các phương thức thực hiện các công việc sau:
+ Nhập thông tin cho một danh sách gồm n tài liệu
+ Hiển thị thông tin về các tài liệu đã nhập
Câu 17
Các thí sinh dự thi đại học bao gồm các thí sinh thi khối A, thí sinh thi khối B, thí sinh thi khối C
+ Các thí sinh cần quản lý các thuộc tính: Số báo danh, họ tên, địa chỉ, ư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
1. Xây dựng các lớp để quản lý các thí sinh sao cho sử dụng lại được nhiều nhất.
2. Xây dựng lớp TuyenSinh cài đặt các phương thức thực hiện các nhiệm vụ sau:
+ Nhập thông tin về một danh sách các thí sinh dự thi
+ Hiển thị thông tin của các thí sinh thi khối A
+ Nhập vào số báo danh của một thí sinh, hãy cho biết thí sinh đó thi khối gì và hiển thị thông tin của thí sinh đó.
Câu 18
Để quản lý các hộ dân trong một khu phố, người ta quản lý các thông tin như sau:
- Với mỗi hộ dân, có các thuộc tính:
+ Số thành viên trong hộ ( số người)
+ Số nhà của hộ dân đó ( Số nhà được gắn cho mỗi hộ dân)
+ Thông tin về mỗi cá nhân trong hộ gia đình.
- Với mỗi cá nhân, người ta quản lý các thông tin như: họ và tên, tuổi, năm sinh, nghề nghiệp.
1. Hãy xây dựng các lớp: NhanSu để quản lý thông tin về mỗi cá nhân; lớp HoDan để quản lý thông tin về các hộ gia đình. Viết các phương thức để nhập, hiển thị thông tin cho mỗi cá nhân.
2. Cài đặt chương trình thực hiện các công việc sau:
+ Nhập vào một dãy gồm n hộ dân (n - nhập từ bàn phím).
+ Hiển thị ra màn hình thông tin về các hộ trong khu phố.
Câu 19
Để quản lý khách hàng đến thuê phòng trọ của một khách sạn, người ta cần quản lý những thông tin sau:
- Số ngày trọ, loại phòng trọ, giá phòng, và các thông tin cá nhân về mỗi khách trọ.
- Với mỗi cá nhân, người ta cần quản lý các thông tin : Họ và tên, tuổi, năm sinh, số chứng minh thư nhân dân.
1. Hãy xây dựng các lớp: Nguoi để quản lý thông tin cá nhân về mỗi cá nhân; lớp KhachSan để quản lý các thông tin về khách trọ. Viết các phương thức để nhập, hiển thị các thông tin về mỗi khách trọ.
2. Cài đặt chương trình thực hiện các công việc sau:
+ Nhập vào một dãy gồm n khách trọ ( n - nhập từ bàn phím)
+ Hiển thị ra màn hình thông tin về các cá nhân hiện đang trọ ở khách sạn đó.
Câu 20
Để quản lý hồ sơ học sinh của trường THPT, người ta cần quản lý những thông tin như sau:
- Các thông tin về : lớp, khoá học, kỳ học, và các thông tin cá nhân của mỗi học sinh.
- Với mỗi học sinh, các thông tin cá nhân cần quản lý gồm có: Họ và tên, tuổi, năm sinh, quê quán.
1. Hãy xây dựng các lớp: Nguoi để quản lý các thông tin cá nhân của mỗi học sinh, lớp HSHocSinh để lý các thông tin về mỗi học sinh. Xây dựng các phương thức để nhập, hiển thị các thông tin về mỗi cá nhân.
2. Cài đặt chương trình thực hiện các công việc sau:
+ Nhập vào một danh sách gồm n học sinh ( n- nhập từ bàn phím)
+ Hiển thị ra màn hình tất cả những học sinh sinh năm 1985.
+ Cho biết có bao nhiêu học sinh sinh năm 1985 và có quê ở Thái Nguyên.
Câu 21
Khoa CNTT-DHTN cần quản lý việc thanh toán tiền lương cho các cán bộ giáo viên trong khoa. Để quản lý được, thì nhà quản lý cần có những thông tin như sau:
- Với mỗi cán bộ giáo viên, có các thông tin như sau: lương cứng, thướng, phạt, lương thực lĩnh và các thông tin cá nhân của mỗi cán bộ giáo viên
- Các thông tin cá nhân của mỗi cán bộ giáo viên: Họ và tên, năm sinh, quê quán.
1. Hãy xây dựng các lớp: Nguoi để quản lý các thông tin cá nhân về mỗi cán bộ giáo viên, lớp CBGV để quản lý các thông tin về mỗi cán bộ giáo viên. Xây dựng các phương thức để nhập, hiển thị thông tin cho mỗi cán bộ giáo viên
2. Viết chương trình thực hiện các công việc sau:
+ Nhập vào thông tin cho một danh sách gồm m cán bộ giáo viên (không nhập lương thực lĩnh).
+ Hiển thị thông tin về những cán bộ giáo viên có lương thực lĩnh ≥ 2.000.000VNĐ
(biết: Lương thực lĩnh=Lương cứng + thưởng - phạt)
Câu 22
Thư viện của trường đại học KHTN có nhu cầu cần quản lý việc mượn sách. Sinh viên đăng ký và tham gia mượn sách thông qua các thẻ mượn mà thư viện đã thiết kế.
- Với mỗi thẻ mượn, có các thông tin sau: số phiếu mượn , ngày mượn, hạn trả, số hiệu sách, và các thông tin riêng về mỗi sinh viên đó.
- Các thông tin riêng về mỗi sinh viên đó bao gồm: Họ tên, năm sinh, tuổi, lớp.
1. Hãy xây dựng các lớp: SinhVien để quản lý các thông tin riêng về mỗi sinh viên, lớp TheMuon để quản lý việc mượn sách của mỗi đọc giả.
2. Viết chương trình nhập và hiển thị thông tin của một danh sách gồm m thẻ mượn, đếm số lượng thẻ mượn của lớp “K3A’
Câu 23
Để quản lý các biên lai thu tiền điện, người ta cần các thông tin như sau:
- Với mỗi biên lai, có các thông tin sau: thông tin về hộ sử dụng điện, chỉ số cũ, chỉ số mới, số tiền phải trả của mỗi hộ sử dụng điện
- Các thông tin riêng của mỗi hộ sử dụng điện gồm: Họ tên chủ hộ, số nhà, mã số công tơ của hộ dân sử dụng điện.
1. Hãy xây dựng các lớp: KhachHang để lưu trữ các thông tin riêng của mỗi hộ sử dụng điện, 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. Xây dựng các phương thức nhập, và hiển thị thông tin của mỗi hộ sử dụng điện.
2. Cài đặt chương trình thực hiện các công việc sau:
+ Nhập vào các thông tin cho n hộ sử dụng điện
+ Tính tiền điện phải trả cho mỗi hộ dân, biết rằng tiền phải trả được tính theo công thức sau: Số tiền phải trả=(Số mới - số cũ) * 850000.
Câu 24
Để xử lý các 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ự. Hãy:
1. Xây dựng lớp VanBan có:
+ Các toán tử tạo lập : VanBan(), VanBan(String st).
+ Phương thức đếm số từ của xâu thuộc tính trong lớp hiện tại.
+ Phương thức đếm số từ kết thúc bởi ký tự ‘G’ (không phân biệt chữ hoa/thường).
2. Chuẩn hoá xâu thuộc tính trong lớp hiện tại theo các tiêu chí sau:
+ Ở đầu và cuối của xâu không có ký tự trống
+ Ở giữa xâu, tại vị trí bất kỳ không tồn tại hai ký tự trống đứng liền nhau.
Câu 25
1. Xây dựng lớp SoPhuc có các thuộc tính riêng gồm: phanThuc, phanAo kiểu double; và có:
+ Các toán tử tạo lập: SoPhuc(), SoPhuc(double a, double b)
+ Phương thức nhập vào một số phức
+ Phương thức hiển thị một số phức
+ Phương thức cộng hai số phức.
+ Phương thức nhân hai số phức
2. Cài đặt chương trình thực hiện : Nhập vào hai số phức A và B, sau đó tính số phức tích C=A*B rồi hiển thị kết quả ra màn hình
Câu 26
1. Xây dựng lớp MaTran có các thuộc tính riêng như sau:
+ Số dòng, số cột của ma trận
+ Một mảng hai chiều để lưu trữ các phần tử của ma trận
Và có:
+ Các toán tử tạo lập : MaTran(), MaTran(int soDong, int soCot)
+ Phương thức để nhập dữ liệu cho ma trận hiện thời
+ Phương thức để hiển thị ma trận hiện thời
+ Phương thức tính tổng của hai ma trận
2. Cài đặt chương trình thực hiện : Nhập vào hai ma trận A và B, sau đó tính tổng C=A+B và hiển thị kết quả ra màn hình.
Câu 27
Một công ty được giao nhiệm vụ quản lý các phương tiện giao thông gồm các loại: ô tô, xe máy, xe tải.
+ Mỗi loại phương tiện giao thông cần quản lý: Số máy, hãng sản xuất, năm sản xuất, giá bán.
+ Các ô tô cần quản lý: số chỗ ngồi, kiểu động cơ
+ Xe máy cần quản lý: công suất
+ Xe tải cần quản lý: trọng tải.
1. Xây dựng các lớp XeTai, XeMay, OTo kế thừa từ lớp PTGT; đồng thời có các hàm để truy nhập, hiển thị và kiểm tra các thuộc tính của các lớp.
2. Xây dựng lớp QLPTGT cài đặt các phương thức thực hiện các chức năng sau:
+ Nhập thông tin đăng ký cho một danh sách gồm m phương tiện
+ Nhập vào số máy của một phương tiện, cho biết phương tiện đó thuộc loại gì? Và hiển thị thông tin quản lý của phương tiện đó.
Câu 28
1. Hãy xây dựng lớp DaGiac gồm có:
Các thuộc tính
+ Số cạnh của đa giác
+ Mảng các số thực chứa kích thước các cạnh của đa giác
Các phương thức:
+ Nhập vào giá trị cho các cạnh của đa giác
+ Tính chu vi của đa giác
+ Hiển thị giá trị các cạnh của đa giác.
2. Xây dựng một ứng dụng Java để nhập vào một dãy gồm m tam giác và:
+ Hiển thị thông tin về tam giác có chu vi lớn nhất.
+ Hiển thị thông tin về tam giác có diện tích nhỏ nhất.
Câu 29
Mỗi một điểm trong mặt phẳng được xác đinh duy nhất bởi hai giá trị nguyên là hoành độ và tung độ.
1. Hãy xây dựng lớp Diem để biểu diễn các đối tượng điểm trong mặt phẳng và xây dựng phương thức sau:
+ Toán tử tạo lập
+ Phương thức in một đối tượng Diem
+ Tính khoảng cách giữa hai điểm ( )
2. Mỗi tam giác trong mặt phẳng được xác định bởi 3 điểm. Hãy xây dựng lớp TamGiac với 3 thuộc tính riêng là 3 đối tượng thuộc lớp Diem và các phương thức:
+ Xây dựng các toán tử tạo lập: TamGiac();
TamGiac(Diem d1, Diem d2, Diem d3);
+ Tính diện tích tam giác
+ Tính chu vi của tam giác
Câu 30
Mỗi một điểm trong mặt phẳng được xác đinh duy nhất bởi hai giá trị là hoành độ và tung độ kiểu int.
1. Hãy xây dựng lớp Diem để biểu diễn các đối tượng điểm trong mặt phẳng và xây dựng phương thức sau:
+ Toán tử tạo lập
+ Các phương thức: in một đối tượng Diem, Tính khoảng cách giữa hai điểm
2. Xây dựng lớp HinhCN (hình chữ nhật) có 4 đỉnh A, B, C, D, và có các phương thức:
+ Các toán tử tạo lập
+ Tính chu vi và diện tích hình CN
+ Nhập vào một hình CN sau đó in ra màn hình chu vi và diện tích của hình CN vừa nhập ở trên.
Câu 31
Thông tin về mỗi xe máy gồm: Số máy, số khung, giá thành, hãng sản xuất. Thông tin về mỗi ôtô gồm: Số máy, số khung, giá thành, hãng sản xuất, số ghế.
1. Xây dựng lớp XeMay có các phương thức sau:
+ Các toán tử tạo lập
+ Nhập vào thông tin của xe máy hiện thời
+ Hiển thị thông tin của một xe máy hiện thời.
2. Xây dựng lớp QLXeMay cài đặt các phương thức thực hiện các công việc sau:
+ Nhập vào thông tin cho một danh sách gồm n xe máy.
+ Hiển thị thông tin về các xe máy có hãng sản xuất là “YAMAHA”
+ Sắp xếp các xe máy ở trên theo thứ tự giảm dần của giá thành.
+ Hiển thị thông tin về các xe máy có giá thành lớn nhất
+ Cho biết trong danh sách trên có bao nhiêu xe máy do hãng “YAMAHA” sản xuất với giá thành >15 triệu đồng.
3. Xây dựng lớp OTo có các phương thức sau:
+ Các toán tử tạo lập
+ Nhập vào thông tin của ôtô hiện thời
+ Hiển thị thông tin của một ôtô hiện thời.
4. Xây dựng lớp QLOTo cài đặt các phương thức thực hiện các công việc sau:
+ Nhập vào thông tin cho một danh sách gồm n ôtô.
+ Hiển thị thông tin về các ôtô có giá thành lớn nhất
+ Cho biết trong danh sách trên có bao nhiêu ôtô do hãng “FORD” sản xuất với giá thành >200 triệu đồng.
+ Sắp xếp các xe máy ở trên theo thứ tự giảm dần của số ghế.
Câu 32
Viết chương trình định nghĩa lớp MaTranVuong với các thuộc tính được định nghĩa như sau: private int m; // cấp của ma trận
private double[][] A; // Giá trị các phần tử của ma trận
1. Định nghĩa lớp MaTranVuong ở trên có các phương thức sau:
+ Phương thức nhapDL() để nhập giá trị cho một ma trận
+ Phương thức hienThiDL() để hiện thị dữ liệu của ma trận hiện thời
+ Phương thức để cộng hai ma trận vuông
+ Phương thức để nhân hai ma trận vuông
2. Cài đặt chương trình thực hiện nhập vào hai ma trận vuông A, B sau đó tính ma trận tổng C= A + B, ma trận tích D= A*B.
Câu 33
Viết chương trình định nghĩa lớp Mang với các thuộc được định nghĩa như sau:
+ private int n; // số phần tử mảng
+ private int A[]; // Danh sách các phần tử của mảng
1. Định nghĩa lớp Mang ở trên có các phương thức sau:
+ nhapDL() để nhập giá trị cho một mảng
+ hienThiDL() để hiện thị dữ liệu của mảng hiện thời
+ lietKeNT để hiển thị tất cả các số nguyên tố của mảng ra màn hình.
+ lietKeHH để hiển thị tất cả các số hoàn hảo của mảng ra màn hình.
+ sapXep để sắp xếp các phần tử của mảng theo thứ tự giảm dần
2. Cài đặt chương trình thực hiện nhập vào một mảng gồm n số nguyên ( n - nhập từ bàn phím thoả 2 ≤ n ≤ 100), sau đó hiển thị danh sách tất cả các số nguyên tố của mảng trên theo thứ tự tăng dần.
Câu 34
1. Viết chương trình định nghĩa lớp XauKyTu với các phương thức thực hiện các công việc sau:
+ các toán tử tạo lập
+ Nhập dữ liệu cho xâu hiện thời
+ Đếm số từ của xâu
+ Chuẩn hoá xâu theo các tiêu chí sau: Ở đầu và cuối xâu không còn ký tự trống, Ở giữa xâu không tồn tại 2 ký tự trống đứng liền nhau).
+ Đếm số từ của xâu, số từ kết thúc bởi ký tự ‘G’ (không phân biệt hoa/thường)
+ Kiểm tra tính đối xứng của xâu
2. Cài đặt chương trình thực hiện nhập vào một xâu ký tự bất kỳ từ bàn phím, sau đó cho biết số từ của xâu vừa nhập; chuẩn hoá xâu rối hiển thị kết quả ra màn hình, cho biết số từ kết thúc bởi ký tự ‘G’ (không phân biệt hoa/thường) của xâu vừa nhập; In ra xâu đảo ngược của xâu hiện tại (nếu xâu không đối xứng).