Bài tập Chương 3 - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh

Bài tập Chương 3 - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh được được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

lOMoARcPSD| 40425501
BÀI TẬP CHƯƠNG 3 – CÁC LỚP TIỆN ÍCH
Bài 1 (String, StringTokenizer)
Nhập string A và string B từ bàn phím: (VD: A="av ajavaja va" B="java") a)
ếm số lần xuất hiện của chuỗi B trong chuỗi A (VD: 1)
b) trả về chuỗi C sau khi ã loại bỏ mọi kí tự khoảng trắng của chuỗi A (VD:
C="avajavajava")
c) kiểm tra chuỗi A có ối xứng hay không (VD: true)
d) ảo ngược từng từ (word) của chuỗi A ể tạo thành chuỗi D (có thể sẽ có nhiều
hơn 1 dấu cách giữa các từ) (VD: D="va ajavaja av")
Có thể sử dụng String hoặc String Tokenizer
Bài 2 (Enum, Random)
a. Tạo một enum Color có miền giá trị là {RED, ORANGE, YELLOW, GREEN,
BLUE, INDIGO, VIOLET}.
b. Tạo một enum Size có miền giá trị là {S,M,L,XL,XXL}
c. Tạo một class Shirt có 2 thuộc tính là color kiểu Color và size kiểu Size.
d. Trong hàm main, xây dựng chương trình tạo và xuất ra danh sách N áo- có color
và size ngẫu nhiên. N là ngẫu nhiên, 5<= N <=15
Bài 3 (Date SimpleDateFormat, GregorianCalendar)
Viết chương trình thực thi các yêu cầu sau:
a. Kiểm tra năm nay có phải năm nhuận hay không, ngày ầu tiên của năm vào thứ
mấy trong tuần?.
b. In ngày hiện tại theo các ịnh dạng khác nhau.
c. Nhập vào 1 ngày bất kỳ kiểm tra xem ngày ó là thứ mấy trong tuần.
d.Lấy ngày ầu tiên và ngày cuối cùng của một tháng từ 1 ngày người dùng nhập vào.
Bài 4( BufferedReader, FileReader)
Sắp xếp tăng dần dãy số nguyên ọc từ FileReader và BufferedReader. File g m N+1
dng, dng thứ nhất là số N (ch N phần tử của dãy), N dng tiếp theo là dãy
cần sắp xếp.
lOMoARcPSD| 40425501
Bài 5 (Regular expression)
Input:
+ username
+ email +
password
1/ không cho phép 1 trong 3 trường trên trống
2/ kiểm tra username số ký tự 15 <= username <= 30 (ch g m chữ cái, khoảng
trắng, và ký tự ầu mỗi từ phải là chữ hoa)
3/ kiểm tra email theo ịnh dạng aaa@bbb.ccc với:
- email không ược chứa chữ hoa, ký tự ặc biệt.
- aaa: có thể là chữ thường hoặc số(trừ ký tự ầu là chữ(a->z)), bbb và ccc là chữ
thường.
4/ kiểm tra password ít nhất 8 ký tự, ký tự ầu là chữ hoa (A->Z), password ch
g m chữ hoa, chữ thường và số (không ược chứa ký tự ặc biệt) Output:
Xuất ra 3 trường trên nếu úng ịnh dạng, false nếu sai ịnh dạng
Bài 6 (Vector, ArrayList)
Viết chương trình cho phép nhập vào danh sách n Sinh viên bao g m các thuộc tính
MSSV, họ tên, iểm TB, iểm rèn luyện (thang iểm 100) có sử dụng Vector và ArrayList.
a. Hiển thị danh sách theo iểm TB giảm dần (nếu iểm TB bằng nhau thì xét theo
iểm rèn luyện giảm dần)
b. Xóa những sinh viên có iểm TB < 5 hoặc iểm rèn luyện < 50 và xuất ra danh
sách.
c. Nhập vào 1 danh sách m sinh viên chèn vào danh sách ban ầu tại vị trí k do
người dùng nhập (0 <= k <= n), xuất ra danh sách và ếm số lượng sinh viên ạt loại Giỏi
(ĐTB >= 8.0 và ĐRL >= 80).
Bài 7 (HashMap, HashTable, Bổ sung fail-fast)
Viết chương trình nhập vào 3 mục dưới ây và sắp xếp chúng theo giá trị key ( trong ó
sử dụng HashMap và HashTable; HashMap sao chép từ 1 HasHtable )
{3=OOP, 55=JAVA, 23=HashMap}
Bài 8 (SortedSet, HashSet, TreeSet)
Viết chương trình cho phép nhập vào các cầu thủ 1 ội bóng sử dụng Array với mỗi cầu
thủ g m các field { tên, số áo, Array các vị trí á (tượng trưng vài vị trí chứ ko cần
chính xác ầy ủ) }. Xuất ra màn hình:
- Danh sách các cầu thủ
- Danh sách các cầu thủ tăng dần theo số áo
- Danh sách các cầu thủ lọc theo tên hoặc MỘT vị trí á
lOMoARcPSD| 40425501
Bài 9 (Lập trình Generic)
Xây dựng hàm max (theo Generic) trả về ối tượng lớn hơn trong 2 ối tượng. Xây
dựng các lớp NhanVien (họ tên, mã nhân viên, lương) và lớp SinhVien(họ tên, mã
sv, iểm trung bình)
Viết chương trình nhập vào N NhanVien và M SinhVien. Dùng hàm max ã xây dựng
tìm NhanVien lớn nhất (có lương lớn nhất) và SinhVien lớn nhất (có iểm trung bình
lớn nhất)
| 1/3

Preview text:

lOMoAR cPSD| 40425501
BÀI TẬP CHƯƠNG 3 – CÁC LỚP TIỆN ÍCH
Bài 1 (String, StringTokenizer)
Nhập string A và string B từ bàn phím: (VD: A="av ajavaja va" B="java") a)
ếm số lần xuất hiện của chuỗi B trong chuỗi A (VD: 1) b)
trả về chuỗi C sau khi ã loại bỏ mọi kí tự khoảng trắng của chuỗi A (VD: C="avajavajava") c)
kiểm tra chuỗi A có ối xứng hay không (VD: true) d)
ảo ngược từng từ (word) của chuỗi A ể tạo thành chuỗi D (có thể sẽ có nhiều
hơn 1 dấu cách giữa các từ) (VD: D="va ajavaja av")
Có thể sử dụng String hoặc String Tokenizer Bài 2 (Enum, Random) a.
Tạo một enum Color có miền giá trị là {RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET}. b.
Tạo một enum Size có miền giá trị là {S,M,L,XL,XXL} c.
Tạo một class Shirt có 2 thuộc tính là color kiểu Color và size kiểu Size. d.
Trong hàm main, xây dựng chương trình tạo và xuất ra danh sách N áo- có color
và size ngẫu nhiên. N là ngẫu nhiên, 5<= N <=15
Bài 3 (Date SimpleDateFormat, GregorianCalendar)
Viết chương trình thực thi các yêu cầu sau: a.
Kiểm tra năm nay có phải năm nhuận hay không, ngày ầu tiên của năm vào thứ mấy trong tuần?. b.
In ngày hiện tại theo các ịnh dạng khác nhau. c.
Nhập vào 1 ngày bất kỳ kiểm tra xem ngày ó là thứ mấy trong tuần.
d.Lấy ngày ầu tiên và ngày cuối cùng của một tháng từ 1 ngày người dùng nhập vào.
Bài 4( BufferedReader, FileReader)
Sắp xếp tăng dần dãy số nguyên ọc từ FileReader và BufferedReader. File g m N+1
d漃ng, d漃ng thứ nhất là số N (ch椃ऀ N phần tử của dãy), N d漃ng tiếp theo là dãy cần sắp xếp. lOMoAR cPSD| 40425501
Bài 5 (Regular expression) Input: + username + email + password
1/ không cho phép 1 trong 3 trường trên trống
2/ kiểm tra username số ký tự 15 <= username <= 30 (ch椃ऀ g m chữ cái, khoảng
trắng, và ký tự ầu mỗi từ phải là chữ hoa)
3/ kiểm tra email theo ịnh dạng aaa@bbb.ccc với: -
email không ược chứa chữ hoa, ký tự ặc biệt. -
aaa: có thể là chữ thường hoặc số(trừ ký tự ầu là chữ(a->z)), bbb và ccc là chữ thường.
4/ kiểm tra password ít nhất 8 ký tự, ký tự ầu là chữ hoa (A->Z), password ch椃ऀ
g m chữ hoa, chữ thường và số (không ược chứa ký tự ặc biệt) Output:
Xuất ra 3 trường trên nếu úng ịnh dạng, false nếu sai ịnh dạng
Bài 6 (Vector, ArrayList)
Viết chương trình cho phép nhập vào danh sách n Sinh viên bao g m các thuộc tính
MSSV, họ tên, iểm TB, iểm rèn luyện (thang iểm 100) có sử dụng Vector và ArrayList. a.
Hiển thị danh sách theo iểm TB giảm dần (nếu iểm TB bằng nhau thì xét theo
iểm rèn luyện giảm dần) b.
Xóa những sinh viên có iểm TB < 5 hoặc iểm rèn luyện < 50 và xuất ra danh sách. c.
Nhập vào 1 danh sách m sinh viên chèn vào danh sách ban ầu tại vị trí k do
người dùng nhập (0 <= k <= n), xuất ra danh sách và ếm số lượng sinh viên ạt loại Giỏi
(ĐTB >= 8.0 và ĐRL >= 80).
Bài 7 (HashMap, HashTable, Bổ sung fail-fast)
Viết chương trình nhập vào 3 mục dưới ây và sắp xếp chúng theo giá trị key ( trong ó
sử dụng HashMap và HashTable; HashMap sao chép từ 1 HasHtable ) {3=OOP, 55=JAVA, 23=HashMap}
Bài 8 (SortedSet, HashSet, TreeSet)
Viết chương trình cho phép nhập vào các cầu thủ 1 ội bóng sử dụng Array với mỗi cầu
thủ g m các field { tên, số áo, Array các vị trí á (tượng trưng vài vị trí chứ ko cần
chính xác ầy ủ) }. Xuất ra màn hình: - Danh sách các cầu thủ
- Danh sách các cầu thủ tăng dần theo số áo
- Danh sách các cầu thủ lọc theo tên hoặc MỘT vị trí á lOMoAR cPSD| 40425501
Bài 9 (Lập trình Generic)
Xây dựng hàm max (theo Generic) trả về ối tượng lớn hơn trong 2 ối tượng. Xây
dựng các lớp NhanVien (họ tên, mã nhân viên, lương) và lớp SinhVien(họ tên, mã sv, iểm trung bình)
Viết chương trình nhập vào N NhanVien và M SinhVien. Dùng hàm max ã xây dựng
tìm NhanVien lớn nhất (có lương lớn nhất) và SinhVien lớn nhất (có iểm trung bình lớn nhất)