Các bài tập thực hành phát triển ứng dụng với ngôn ngữ Java. Gồm 40 bài tập thực hành hành phát triển ứng dụng.
Trang 1BÀI THỰC HÀNH MÔN PHÁT TRIỂN ỨNG DỤNG VỚI NGÔN NGỮ JAVA Bài 1:
Viết chương trình in ra tổng 1+2+3….+n với n được nhập từ tham số command line
Bài 2:
Viết chương trình in ra tổng 1+3+5….+n nếu n là số chẳn, 2+4+6+….n nếu n là số lẻ Giá trị n được nhập vào từ tham số command line
Bài 3:
Viết chương trình in ra giá trị lớn nhất và nhỏ nhất trong một dãy các giá trị user đã nhập vào từ tham số command line
Bài 4:
Viết chương trình giải phương trình bậc 1 với hệ số a, b được nhập vào bởi user từ tham số command line
Bài 5:
Viết một ứng dụng để xuất ra các dạng số ở hệ nhị phân, bát phân, thập lục phân của một nhập vào từ tham số command line
Bài 6:
Tạo lớp MyArray có một biến dayFloat là dãy các số thực (float)
Tạo 3 constructor: 1 constructor không tham số, 1 constructor có tham số truyền là một dãy các số thực, 1 constructor có tham s61 truyền vào là một chuỗi các chữ số
Tạo hai phương thức timMax để trả về số lớn nhất trong day dayFloat, và timMin để trả về số nhhỏ nhất trong day dayFloat
Tạo phương thức tinhTongDay để trả tổng của các số trong dãy dayFloat
Tạo phương thức tinhTBCong để trả trung bình cộng của các số trong dãy dayFloat
Bài 7:
Tạo lớp PTB1 có 2 biến a và b là 2 số thực
Tạo 1 hàm dựng không tham số: gán giá trị trong cho hai biến bằng 0
Tạo một hàm dựng có tham số nhận vào hai số nguyên
Tạo một hàm dựng có tham số nhận vào là hai chữ số
Tạo một hàm dựng có tham số nhận một dãy các số nguyên
Tạo một hàm dựng có tham số nhận vào một dãy các chữ số
Viết một hàm giaiPT dùng để giải phương trình bậc nhất ax+b = 0
Bài 8:
Tạo lớp PTB2 có 3 biến a, b và c là 3 số thực
Tạo 1 hàm dựng không tham số: gán giá trị trong cho ba biến bằng 0
Tạo một hàm dựng có tham số nhận vào ba số nguyên
Tạo một hàm dựng có tham số nhận vào là ba chữ số
Tạo một hàm dựng có tham số nhận một dãy các số nguyên
Tạo một hàm dựng có tham số nhận vào một dãy các chữ số
Viết một hàm giaiPT dùng để giải phương trình bậc nhất ax2+bx +c = 0
Trang 2Bài 9:
Tạo một lớp PhepTinh có 3 thuộc tính: Toán hạng 1, toán hạng 2, toán tử Hai hàm dựng: hàm dựng default (gán giá trị mặc nhiện cho toán tử là +, toán hạng là 0), hàng dựng có 3 tham số là hai toán hạng và 1 toán tử Một phương thức tinhToán() để trả về kết quả của phép tính ứng với tioán hạng và toán tử đó
Bài 10:
Xây dựng lớp Square (hình chử nhật) để có các chức năng tính diện tích và chu vi của nó (Hướng dẫn: tìm các thuộc tính can thiết để có thể tính được diện tích và chu
vi, sau đó viết các hàm để thực hiện các chức năng trên)
Bài 11:
Xây dựng lớp Rectangle (hình vuông ) để có các chức năng tính diện tích, chu vi của nó
Bài 12:
Xây dựng lớp Circle(hình tròn) để có các chức năng tính diện tích, chu vi của nó
Bài 13:
Tạo lớp DayNguyen gồm một dãy các số nguyên có tối đa là 100 phần tử, và một biến spt dùng để chứa số lượng phần tử thực sự trong dãy
Hãy thiết kế lớp DayNguyen trên theo yêu cầu:
1 Tạo các thuộc tính cho lớp , các biến này phải là private
2 Tạo ít nhất 3 hàm dựng thích hợp (constructor) cho lớp
3 Tạo các hàm để làm cho biến spt là readonly, dãy các số nguyên là read và write
4 Tạo các hàm để chèn một phần tử vào trong dãy tại vị trí index
5 Tạo hàm để xóa một phần tử thứ index trong dãy
6 Tạo hàm để tính tổng các phần tử trong dãy
7 Tạo hàm để tính trung bình cộng các phần tử trong dãy
8 Viết hàm main để test lớp mà bạn đã tạo
Bài 14:
Tạo lớp PhanSo gồm tử số và mẫu số là các số nguyên
Hãy thiết kế lớp PhanSo trên theo yêu cầu:
1 Tạo các thuộc tính cho lớp , các biến này phải là private
2 Tạo ít nhất 3 hàm dựng thích hợp (constructor) cho lớp
3 Tạo các hàm để các biến là có thể read và write (các hàm set và get)
4 Viết hàm để tính ra giá trị của phân số hiện hành( ví dụ đối tượng có tử = 2, mẫu = 4 thì hàm sẽ trả về 0.5)
5 Viết hàm để ước lương phân số hiện hành
6 Viết hàm static để qui đồng mẫu số của 2 đối tượng phân số được truyền vào
7 Viết hàm để tính tổng của đối tượng phân số hiện hành và một đối tượng phân số truyền vào Hàm sẽ trả về một đối tượng phân số
Trang 38 Viết hàm để tính hiệu của đối tượng phân số hiện hành và một đối tượng phân số truyền vào Hàm sẽ trả về một đối tượng phân số
9 Viết hàm main để test lớp mà bạn đã tạo
Bài 15:
Tạo cửa sổ gồm 2 textFiedl để user nhập vào Họ và tên , 2 button Welcome và Close Khi user click vào buttonWelcome, thì hiển thì một label o bean dưới có nội dung là Welcome to … (họ va tên đã nhập vào)
Khi user click vào nút Close thì đóng cửa sổ
Bài 16:
Tạo cửa sổ gồm 2 textFiedl để user nhập vào Họ và tên , 2 button Welcome và Close Khi user click vào buttonWelcome, kiểm tra xem nếu user chưa nhập đủ họ tên thì bắt
user nhập lại (focus vào mục đó), nếu đã nhập đủ thì hiển thì một label o bean dưới có
nội dung là
Welcome to … (họ va tên đã nhập vào)
Khi user click vào nút Close thì đóng cửa sổ
Bài 17:
Tạo theo mẫu:
combo box được dùng để user chọn một phép tính cộng trừ nhân chia và lấy số dư của
phép chia nguyên Khi user click vào button Tính Toán, kiểm tra xem nếu user chưa
nhập đủ 2 số thì bắt user nhập lại, nếu đã nhập đủ thì hiển thị một label o bean dưới có
nội dung là kết quả của phép tính
Lưu ý: sử dụng lại lớp PhepTinh đã tạo trong chương trước
Bài 18:
Viết CT để hiển thị số lần user click chuột vào button
Bài 19:
Viết chương trình mô phỏng lại một máy tính cá nhân (giới hạn: chỉ cần có 4 phép tính công trừ nhân chia)
Bài 20:
Trang 4Khi user clicks vào Click Here, hiển thị message “Welcome Mr /Mss … (Full name),
… (age) years “ trong nhãn result
Bài 21:
Tạo form có một menu để user chọn các bài tập trên bằng menu
Bài 22: Tạo một applet để vẽ các hình tròn tại vị trí mà user click vào như sau:
Bài 23:
Tạo một applet để vẽ một đượng gấp khúc khi user click vào các điểm trên màn hình
Bài 24:
Tạo lớp Record có các thuộc tính private sau:
accountNumber có kiểu int
firstName có kiểu String
Trang 5lastName có kiểu String
balance có kiểu double
1 Viết các hàm để có thuộc tính trên có tính chất Reading và Writing
2 Viết hàm writeToFile(DataOutputStream out) với tham số truyền vào là một đối tượng DataInputStream dùng để lưu các giá trị thuộc tính của đối tượng Record hiệ hành vào file
3 Viết hàm readFromFile(DataInputStream in) dùng để đọc các dữ liệu tương từ file và gán vào các thuộc tính tương ứng
Câu 25:
Tạo một lớp MyFrame là lớp con của lớp Frame và implement ActionListener Trên frame được setLayout là GridLayout với 3 dòng , 2 cột theo mẫu:
Trong đó nút Enter dùng để lưu các giá trị đã nhập trong TextField vào file Nút Done dùng để thóat không chương trình
Hướùng dẩn: Dùng lớp Record để vào lưu file
Bài 26:
Tạo một form theo mẫu giống bài 2 nhưng dùng để đọc lại từng record đã lưu trong bài
2 ra màn hình mỗi khi user click vào nút Enter
Bài 27:
Tạo lớp Data có hai thuộc tính private là id có kiểu là int và name có kiểu là String
1 Viết các hàm để hai thuộc tính trên có tính chất Reading và Writing
2 Viết hàm writeToFile(DataOutputStream out) với tham số truyền vào là một đối tượng DataInputStream dùng để lưu các giá trị id, name vào file
Bài 28:
Tạo form theo mẫu:
Trang 6Trong đó nút Save dùng để lưu các giá trị đã nhập trong TextField vào file và xóa các giá trị trong các textfield về rỗng Nút Close dùng để thóat khỏi chương trình
Bài 29: Tạo ra một form Timer theo mẫu:
Khi user click vào nút Start, timer bắt đầu đếm từ giá trị hiện hành sau mỗi giây
tăng lên 1
Khi user click vào nút Stop, timer sẽ ngưng đếm cho đến khi nút Start được nhấn lại
một lần nữa
Bài 30: Tạo form có 2 timer như hình Hai Timer có hai khoảng thời gian đếm
(interval) khác nhau
Bài 31: Tạo hai Thread (2 lớp Thread riêng) Một Thread dùng để vẽ các hình tròn
liên tục sau 1 giây một lần Thread thứ hai dùng để vẽ các hình chữ nhật liên tục sau 2 giây một lần Viết chương trình để dùng hai Thread trên để đồng thời vừa vẽ hình tròn, vừa vẽ hình chữ nhật
Tạo cơ sở dữ liệu Quản lý vật tư bằng MS Access hoặc SQL Server có các table sau: LOAIVT (MALOAI text(10) khoá, TENLOAI text(50))
VATTU (MAVT text(10) khoá , TENVT text(50), MALOAI text(10) khoá ngoại); KHACHHANG (USERID text(20) khoá, TENKH text(50), PASS text(20))
HOADON (SOHD autonumber khoá, NGAY date/Time, USERID text(20) khoá
ngoại)
CTHOADON ((SOHD autonumber khoá ngoại, MAVT text(10) khoá ngoại,
SOLUONG int , GIA long)
Bài 32:
Tạo các form để nhập dữ liệu cho các table trên Lưu ý các field khóa ngoại phải là các combo box có các giá trị lấy từ table cha
Trang 7Bài 33: Tạo form như hình Combo box Ma KH chứa các giá trị của field MAKH trong
table KHACHHANG Khi user chọn một MAKH trong combo box thì tên kh và
password tương ứng sẽ được hiển thị trong hai textfield User có thể sửa tên khách
hàng và password rồi sau đó click vào nút lệnh Update để lưu xuống cơ sở dữ liệu
Bài 34: Combo box chứa danh sách các mã khách hàng trong table Hoadon Khi chọn
một mã khách hàng thì tất cả các hoadon gồm Số hd, ngày , tổng trị giá của các hoá đơn của khách hàng này được liệt kê trong list bên dưới
Bài 35:
Taọ một trang Servlet để xuất ra câu chào Good Morning hay Good Afternoon tuỳ theo giờ
hiện hành của hệ thống máy tính
Bài 36
Tạo form theo mẫu:
Trang 8Khi user click nút submit, nếu user chưa nhập UserID thì thông báo “ You must type UserID” rồi quay trở lại màn hình trên để user nhập lại Ngược lại thì trả lại câu “ Welcome … (userID)…“ và lưu giá trị này vào cookies để sau này khi user vào lại thì giá trị default của UserID là UserID mà user đã vào trước đó
Tạo tập tin cơ sở dữ liệu HR.MDB có 2 table:
Table DEPARTMENTS có các fields: DepID (text ,3) DepName ( Text, 30) khoá là field DepID
Table Employees có các field: UserID (text,10) khoá chính, Password (text,20), EmpName (text, 50), DateOfBirth (date/time), Male(Yes/No), DepID(Text,3)
Thiết lập quan hệ giữa hai table Departments và Employees là 1-n
Bài 37Viết chương trình lấy ra danh sách các Department và in ra thành bảng:
DEPARTMENT LIST
1
Total : ……… departments
Bài 38
Viết chương trình lấy ra danh sách các Employee và in ra thành bảng:
EMPLOYEE LIST
1
Total : ……… employees
Trang 9Bài 3: Viết chương trình bằng Servlet hoặc JSP để cho phép user nhập dữ liệu
chotable Departments và Employees
Bài 40 Kết hợp các bài 37,38 và 39 thành một web site nhỏ Khi user muốn vào các
trang trên thì phải qua trang login