Bài tập nhập môn lập trình với Java - JPCB

Xây dựng ứng dụng quản lý lương của công ty Z. Thông tin chung của nhân viên gồm: mã

NV, họ NV, tên NV, ngày sinh, địa chỉ, ngày vào làm.

Lương được tính như sau:

Nhân viên văn phòng: lương cơ bản x hệ số lương

Nhân viên sản xuất: số sản phẩm x đơn giá

Với các nhân viên có con < 3 tuổi: trợ cấp 5% lương.

pdf18 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 7675 | Lượt tải: 1download
Tóm tắt nội dung Bài tập nhập môn lập trình với Java - JPCB, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
.17. Bài 17: 
Viết chương trình Java sử dụng vòng lặp, cho phép người dùng nhập số N và in ra bảng 
có dạng sau: 
N 10*N 100*N 1000*N 
1 10 100 1000 
2 20 200 2000 
3 30 300 3000 
4 40 400 4000 
5 50 500 5000 
Hình 1: Kết quả N =5 
2.18. Bài 18: 
Viết chương trình cho phép nhập một số nguyên dương chỉ bao gồm 0 và 1 (ví dụ: số nhị 
phân) sau đó tính và in giá trị trong hệ thập phân tương ứng 
Gợi ý: Sử dụng toán tử chia và phần dư để lần lượt lấy từng ký số từ phải sang trái. Sau 
đó nhân từng ký số này với trong số tương ứng với vị trí của số đó. Ví dụ ta có số nhị phân: 
1101 thì giá trị thập phân tương ứng là: 1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 = 13 
Phát triển bài toán trên cho phép một số cùng hệ số của nó sau đó in giá trị thập phân 
của nó. 
2.19. Bài 19: 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 9/18 
Lập trình cho phép nhập vào từ bàn phím số n>0 bất kỳ. Tính số nút của n. 
2.20. Bài 20: 
Lập trình cho phép nhập vào từ bàn phím số nguyên dương n. 
Xét n có phải là số nguyên tố. 
Phát triển bài toán trên để in ra tất cả các số nguyên tố nhỏ hơn n 
Ghi chú: số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó 
2.21. Bài 21: 
Trong Java, để sinh ra một số ngẫu nhiên (nghĩa là giá trị của nó không biết trước khi 
chạy giống như việc gieo con súc sắc) người ta sử dụng phương thức random() của lớp Math. 
Phương thức random() sẽ sinh ra một số thực ngẫu nhiên có giá trị trong khoảng [0,1). Ví dụ 
sau cho biết cách một số nguyên ngẫu nhiên trong đoạn [0,6): 
 int face = (int)(Math.random() * 6) 
Sử dụng các kiến thức vừa trình bày ở trên để tính xác suất xuất hiện có của mỗi mặt của 
con súc sắc có 6 mặt nếu gieo con súc sắc 1000 lần sau đó xuất kết quả này ra màn hình 
Ví dụ kết quả kết xuất: 
1: 25% 
2: 15% 
3: 8% 
4: 12.5% 
5: 27% 
6: 12.5% 
2.22. Bài 21: 
Viết chương trình nhập vào số N và in ra các hình sau (ví dụ n = 4) 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 10/18 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 11/18 
BÀI 3: Array và String 
Giúp học viên làm quen với các thao tác xử lý cơ bản trên mảng và các thao tác 
xử lý chuỗi 
3.1. Bài 1 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Xuất ra màn hình 
mảng a vừa nhập. 
3.2. Bài 2 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Đếm số lượng 
phần tử chẵn/ lẻ của mảng 
3.3. Bài 3 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Nhập 1 số 
nguyên x, đếm số lần xuất hiện của x trong mảng. 
3.4. Bài 4 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Tính trung bình 
cộng các phần tử chẵn/ lẻ của mảng. 
3.5. Bài 5 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Đếm số phần tử 
là số nguyên tố trong mảng. 
3.6. Bài 6 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử dương. Nhập vào 1 số 
nguyên x. Nhập vào vị trí cần chèn x vào mảng a. Chèn x vào mảng a tại vị trí chỉ định, xuất 
mảng a ra màn hình. 
3.7. Bài 7 
 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 12/18 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Sắp xếp mảng a 
theo thứ tự tăng dần/ giảm dần 
3.8. Bài 8 
Viết chương trình cho phép nhập từ bàn phím mảng a có n phần tử nguyên. Xuất ra màn hình 
phần tử dương nhỏ nhất và phần tử âm lớn nhất. 
Lưu ý: xuất thông báo nếu không tồn tại phần tử thỏa yêu cầu. 
3.9. Bài 9: 
Nhập vào một chuỗi các số cách nhau bởi khoảng trắng. ví dụ: 1 21 3 5 7. Xử lý chuỗi nhập 
để tạo ra mảng các số 
Yêu cầu: 
 Sử dụng các phương thức của lớp String 
 Sử dụng StringTokenizer 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 13/18 
BÀI 4: Lập trình hướng đối tượng với Java 
Giúp học viên biết cách khai báo class, property, method. Cách khởi tạo object. 
Áp dụng các toán từ để thực hiện các phép toán 
4.1. Bài 1: 
Trong toán học, một số phức là một số được tạo thành từ hai thành phần: phần thực (real) 
và phần ảo (imaginary) và được viết dưới dạng a + bi, trong đó a và b là những số thực, và i 
là một số đặc biệt thỏa điều kiện i2 = -1. 
Hình 1: Biểu diễn số phức trong mặt phẳng 
Một số phức x = a + bi có thể biểu diễn trên mặt phẳng tọa độ như trong Hình 1. Trục 
hoành được gọi là trục thực và trục tung được gọi là trục ảo. Với cách biểu diễn của số phức 
trên mặt phẳng, gọi khoảng cách (modulus) từ số phức đến gốc tọa độ là r dễ dàng nhận 
thấy r = 22 ba  . Góc (argument) kí hiệu φ là góc hợp bởi số phức so với trục hoành. 
Có thể dễ dàng áp dụng các phép toán cơ bản lên số phức. Các số phức có thể được cộng, 
trừ, nhân và chia với nhau để tạo nên một số phức khác 
Giả sử có hai số phức x = a + bi và y = c + di. Tổng hai số phức này là một số phức có 
dạng: 
 idbca
dicbiaz
)()(
)()(


 (1) 
Tương tự, phép trừ hai số phức, cho bởi công thức 
 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 14/18 
 idbca
dicbiaz
)()(
)()(


 (2) 
Để tiến hành phép nhân hai số phức, đầu tiên chúng ta cần khai triển tích hai số phức đồng 
thời chú ý i2 = -1. Sau đó tiến hành đặt thừa số chung, kết quả được cho trong (3) 
ibcadbdac
bdibciadiac
dicbiaz
)()(
)(*)(
2



 (3) 
Để thực hiện phép chia hai số phức, chú ý đẳng thức a2 - b2 = (a – b)(a+b). Dựa vào nhận 
xét trên để tiến hành chia hai số phức, ta làm như sau: 
i
dc
adbc
dc
bdac
dicdic
dicbia
dic
biaz
2222
))((
))((












 (4) 
Với những mô tả về số phức như trên, học viên sử dụng ngôn ngữ Java, hãy khai báo lớp 
Complex với các đặc điểm (property) và phương thức (method) để thực hiện các phép toán 
trên số phức. 
Để kiểm tra các phương thức đã được viết, học viên tạo ra 2 số phức để thử nghiệm các 
phương thức đã hiện thực 
4.2. Bài 2: 
Tạo một lớp Nhanvien gồm ba thông tin là: honv (kiểu String), tennv (kiểu String) và luong 
(kiểu double). Lớp này có một constructor (hàm tạo) để khởi tạo ba thông tin này. Cung cấp 
phương thức set và get (set and get method) cho mỗi thông tin này. Nếu luong nhỏ hơn 0, 
thì gán thành 0.0. Viết chương trình để tạo hai đối tượng Nhanvien và hiển thị các thông tin 
của đối tượng này. Sau đó tăng lương của mỗi nhân viên 10% và lặp lại quá trình in thông tin 
nhân viên. 
4.3. Bài 3 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 15/18 
Tạo một class tên là Date có các thông tin là: month (kiểu int), day (kiểu int) và year 
(kiểu int). Lớp này có một constructor (hàm tạo) để khởi tạo các thông tin này. Cung cấp 
phương thức set và get cho các thông tin này. Ngoài ra, lớp này có thêm phương thức 
displayDate để hiển thị month, day và year theo định dạng month/day/year (ví dụ: 
9/11/2009). 
Viết chương trình để tạo ra một đối tượng của lớp Date vừa hiện thực sau đó gọi các 
phương thức vừa hiện thực 
4.4. Bài 4 
Xây dựng lớp Diem2D trong mặt phẳng tọa độ Oxy 
 Thuộc tính: x, y là tung độ và hoành độ 
 Phương thức: 
o Nhap(): nhập tung độ và hoành độ 
o Xuat(): xuất tung độ và hoành độ 
o Xuất theo định dạng (x, y) (VD: khi x = 5 và y = 8 thì xuất ra (5,8)) 
o TinhKhoangCach(): tính khoảng cách từ điểm hiện hành tới điểm khác 
Tính căn bậc hai: dùng phương thức sqrt() của lớp Math (ví dụ: Math.sqrt(8) sẽ là ~2.83) 
Công thức tính khoảng cách giữa 2 điểm A(xa,ya), B(xb,yb) trong mặt phẳng tọa độ Oxy 
Khoảng cách = Math.sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)) 
4.5. Bài 5 
Xây dựng lớp HinhTron2D trong mặt phẳng tọa độ Oxy 
 Thuộc tính: O là điểm tâm, R là điểm trên hình tròn có kiểu Diem2D (bán kính là 
khoảng cách từ O đến R) 
 Phương thức: 
o Nhap(): nhập các điểm O và R 
o Xuat(): xuất các đỉnh 
o TinhChuVi(): tính chu vi hình tròn 
o TinhDienTich(): tính diện tích hình tròn 
4.6. Bài 6 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 16/18 
Xây dựng lớp TamGiac2D trong mặt phẳng tọa độ Oxy 
 Thuộc tính: A, B, C là các đỉnh có kiểu Diem2D 
 Phương thức: 
o Nhap(): nhập các đỉnh 
o Xuat(): xuất các đỉnh 
o TinhChuVi(): tính chu vi tam giác 
o TinhDienTich(): tính diện tích tam giác 
4.7. Bài 7 
Xây dựng lớp HinhChuNhat2D trong mặt phẳng tọa độ Oxy 
 Thuộc tính: A, C là hai đỉnh đối diện nhau có kiểu Diem2D (2 cạnh của hình chữ nhật 
song song với 2 trục toa độ) 
 Phương thức: 
o Nhap(): nhập các đỉnh 
o Xuat(): xuất các đỉnh 
o TinhChuVi(): tính chu vi hình chữ nhật 
o TinhDienTich(): tính diện tích hính chữ nhật 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 17/18 
BÀI 5: Tính thừa kế (Inheritance) và tính 
đa hình (Polymorphism) 
Giúp học viên thành thạo trong việc xây dựng các class kế thừa từ class khác 
cũng như hiểu rõ tính đa hình của class. 
5.1. Bài 1: 
Hiện thực mối quan hệ kế thừa giữa Hinh2D, HinhTronD, HinhTamGiac2D, HinhChuNhat2D và 
HinhVuong2D. Cung cấp các thuộc tính, các phương thức in thông tin, tính diện tích, chu vi và áp 
dụng tính đa hình cho bài toán trên. 
5.2. Bài 2: 
Xây dựng ứng dụng quản lý lương của công ty Z. Thông tin chung của nhân viên gồm: mã 
NV, họ NV, tên NV, ngày sinh, địa chỉ, ngày vào làm. 
Lương được tính như sau: 
Nhân viên văn phòng: lương cơ bản x hệ số lương 
Nhân viên sản xuất: số sản phẩm x đơn giá 
Với các nhân viên có con < 3 tuổi: trợ cấp 5% lương. 
Yêu cầu: nhập danh sách nhân viên (gồm cả nhân viên văn phòng và nhân viên sản xuất), 
tính lương và xuất ra kết quả như sau: 
Nhân viên: 001, Họ tên: Nguyễn Văn A , Ngày sinh: 1/1/1975, Ngày vào làm: 2/2/2000 
Loại NV: NVVP, Lương: 3500000 
Nhân viên: 002, Họ tên: Nguyễn Văn B , Ngày sinh: 12/5/1980, Ngày vào làm: 6/28/2005 
Loại NV: NVSX, Lương: 2500000 
Nhân viên: 003, Họ tên: Nguyễn Văn C , Ngày sinh: 6/14/1982, Ngày vào làm: 4/16/2004 
Loại NV: NVVP, Lương: 2500000 
 
Bài tập 
Nhập môn lập trình Java - JPCB Trang 18/18 
BÀI 6: Exception 
Giúp học viên biết cách xử lý lỗi khi chương trình có khả năng xảy ra lỗi 
6.1. Bài 1: 
Thêm mã xử lý lỗi cho các đoạn code có khả năng xảy ra lỗi, áp dụng vào các bài tập trên 
 

File đính kèm:

  • pdfBài tập nhập môn lập trình với Java - JPCB.pdf
Tài liệu liên quan