Báo cáo Thực hành JAVA MỤC LỤC

GVHD : Trịnh Công Duy

................................................................................................2 LỜI NÓI ĐẦU....................................................................2 ............................................................................................3 PHẦN 1: CÁC BÀI TẬP CƠ BẢN..............................................................................................3 PHẦN 2: CÁC BÀI TẬP VỀ GIAO DIỆN................................................................................20 KẾT LUẬN.................................................................................................................................27 I.Kết quả đạt được :..............................................................................................................27 II.Những điều chưa đạt được :..............................................................................................27

Nguyễn Minh Khoa - Lớp 06T4- Nhóm 12A

Trang 1

Báo cáo Thực hành JAVA

GVHD : Trịnh Công Duy

LỜI NÓI ĐẦU --- ---

Lập trình Java là một trong những môn chuyên ngành của khoa công nghệ thông tin. Nó cung cấp cho chúng em rất nhiều kiến thức về lập trình cơ sở,đặt biệt là phương pháp lập trình hướng đối tượng. Qua bài thực hành này đã giúp chúng em nắm vững thêm kiến thức cơ bản trên lớp và rèn luyện kỹ thuật lập trình trên ngôn ngữ Java với nhiều kĩ năng rất bổ ích.Xin cảm ơn thầy Trịnh Công Duy đã nhiệt tình giảng dạy và hướng dẫn em hoàn thành bài thực hành này cũng như các thầy cô khác trong khoa đã giảng dạy chúng em trong những học kỳ vừa qua. Em đã cố gắng rất nhiều,nhưng có lẽ không tránh khỏi thiếu sót,mong các thầy cô và các bạn giúp đỡ.

Đà Nẵng, ngày 30 tháng 12 năm 2009 Giáo viên hướng dẫn : Trịnh Công Duy Sinh viên thực hiện : Nguyễn Minh Khoa Nhóm 12A-Lớp 06T4-Khoa CNTT Đại Học Bách Khoa Đà Nẵng

Nguyễn Minh Khoa - Lớp 06T4- Nhóm 12A

Trang 2

n) nếu n là số lẻ. + Chia number cho tạm. c. Kết quả định dạng lấy 3 số lẻ. . in ra tổng các số lẻ (1+3+5….Đề bài: Viết chương trình nhập vào n từ bàn phím. Ví dụ: Nhập vào n=5 thì tổng =1/1+1/2+1/3+1/4+1/5=2.Nhóm 12A Trang 3 . • Hàm làm tròn : round(double number.round(number).Kết quả chạy demo: Nhập n=5 Nhập n<0 Bài 2: a.Trong khi biến i<digit + Nhân biến tạm lên 10 + Nhân số number với biến tạm rồi làm tròn với hàm Math.283 Nhập vào n<=0 thì thông báo : Hãy nhập vào số nguyên dương. b.Lớp 06T4.0/i.Cho S=0. int digit) .+n) nếu n là số chẳn. trong khi biến i<=n thì gán S=S+1. Đề bài: Viết chương trình nhập vào n từ bàn phím. ngược lại hãy thông báo lỗi.Cho biến tạm =1.Cách giải quyết: • Xây dựng hàm tính tổng : TinhS(int n) . và in ra tổng các số chẳn (2+4+6+…. Ví dụ: Nhập vào n=8 thì tổng=1+3+5+7=16 Nhập n=7 thì tổng=2+4+6=12 b.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy BÀI LÀM PHẦN 1: CÁC BÀI TẬP CƠ BẢN Bài 1: a. nếu n nguyên dương hãy tính tổng của biểu thức sau: 1/1+1/2+1/3+…+1/n . Cách giải quyết: • Xây dựng hàm TinhS(int n) : Nguyễn Minh Khoa .

nextInt(max-min).Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy + Nếu n chẵn : Trong khi i<=n .nếu phần tử nào trong mảng b[] Nguyễn Minh Khoa . Đề bài: Viết chương trình tạo ra 100 số ngẫu nhiên từ 10-100. b.b): +Tạo hàm : getRandomIntInBetween(int min.Nhóm 12A Trang 4 .gán S=S+i. In ra số lớn nhất trong 100 số ngẫu nhiên vừa tạo. Đếm số chẵn : cho i chạy từ 1 đến 100.b): +Tạo hàm : getRandomIntInBetween(int min. int max) +Trả về min+r.gán các phần tử của mảng là các giá trị random vừa tạo ra rồi tìm max. số các phần tử lẻ và xuất kết quả ra màn hình. Đếm số các phần tử chẳn. Kết quả chạy Demo: • • Bài 4: a. + Nếu n lẻ : Trong khi i<=n .Lớp 06T4. Cách giải quyết: Xây dựng hàm random trong khoảng (a. Kết quả chạy Demo: Nhập n=8 : Nhập n=7: • • • Bài 3: a. c.gán S=S+i. nếu i lẻ . nếu i chẵn . b.nextInt(max-min). Cách giải quyết: Xây dựng hàm random trong khoảng (a. int max) +Trả về min+r. Đề bài: Viết chương trình tạo ra 100 số ngẫu nhiên từ 10-100. Hàm tìm max: timmax(int b[]): trả về số lớn nhất trong mảng b Hàm main : khai báo một mảng. c.

c.nếu phần tử nào trong mảng b[] là số lẽ thì tăng biến đếm 1 đơn vị In ra số các số chẵn và số các số lẻ. Phương thức trả về câu sau khi chuyển chữ cái đầu mỗi từ sang chữ hoa. đó chính là câu cần chuyển.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • • là số chẵn thì tăng biến đếm 1 đơn vị Đếm số lẻ : cho i chạy từ 1 đến 100.Nhóm 12A Trang 5 . + Cắt khoảng trắng ở hai đầu chuỗi đầu vào : st=st. Cách giải quyết: Xây dựng hàm chuẩn hóa: chuanHoa(String st) + Khai báo một chuỗi trắng: String str = "".Lớp 06T4. Ví dụ: Câu nhập vào: “Hôm qua.rồi gán vào mảng.split(" "). Trời Mưa Rất To.” Câu xuất ra: “Hôm Qua.substring(0. Kết quả chạy Demo: • Bài 5: a. Đề bài: Hãy viết phương thức docSoSangChu. phương thức trả về kết quả là chuỗi (String) cho biết cách đọc số n ra dạng chữ: Ví dụ: n=235 => Hai trăm ba mươi lăm n=1305 => Một nghìn ba trăm lẻ năm Nguyễn Minh Khoa . c.Word). + Đổi kí tự đầu tiên thành chữ in hoa : arr[i]=arr[i]. Kết quả chạy Demo: Bài 6: a.” b. Phương thức gồm một tham số.toUpperCase().concat(arr[i].substring(1))+" ". trời mưa rất to. Đề bài: Viết phương thức dùng để chuyển ký tự đầu của mỗi từ trong câu sang chữ hoa (giống như chức năng Title Case trong MS. + Chia chuỗi ra thành các chuỗi con tại khoảng trắng : String arr[] = st.trim(). phương thức nhận vào một tham số thuộc kiểu số nguyên (int).1).

case 7: sR = "Bay muoi".. case 3: sR = "Ba muoi". break. default: sR = "". break. break. break.nếu số hàng đơn vị =5 thì đọc “muoi lam” . break.ta cũng sử dụng cấu trúc switch case với khai báo như sau: case 0: sR = " ". case 8: sR = "Tam muoi". case 6: sR = "sau". break.length(). break. case 9: sR = "chin". + Nếu len=3 : . .Nếu số hàng chục khác 1 đọc tên số hàng chục + “muoi”+ tên số ở hàng đơn vị. break.đơn vị. default: sR = "". hàng chục. break. case 7: sR = "bay". Khai báo hàm String numberToTextB(int number) để trả về tên đọc kèm theo tên số đã đặt ở hàm trước . đọc tên số hàng trăm + “tram linh”+tên số hàng đơn vị. break. break.Nếu số hàng chục = 1. case 8: sR = "tam". case 4: sR = "bon". break. Cách giải quyết: Khai báo hàm String numberToTextA(int number) để trả về tên gọi một số ở một cấp nào đó chẳng hạn (hàng trăm. break. case 5: sR = "nam". case 6: sR = "Sau muoi". case 5: sR = "Nam muoi". Xây dựng làm chuyển đơn vị để thực hiện đổi các cấu trúc số sang cách đọc của người Việt: ChuyenDV(String Number) + Lấy giá độ dài chuỗi đầu vào vào len = Number.Nếu số hàng chục và đơn vị =0 . break. break.đọc tên số hàng trăm + “tram” Nguyễn Minh Khoa . case 9: sR = "Chin muoi". break. case 4: sR = "Bon muoi". + Nếu len=1 đọc tên số đó. + Nếu len=2 : . case 1: sR = "Muoi". case 2: sR = "Hai muoi". case 3: sR = "ba".Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • • • b. break.nếu số hàng đơn vị khác 5 thì đọc “muoi”+ tên số ở hàng đơn vị.Nhóm 12A Trang 6 . case 2: sR = "hai".Nếu số hàng chục =0 và số hàng đơn vị >0 . . case 1: sR = "mot". break.số hàng đơn vị >0 . break.Nếu số hàng đơn vị là 0 thì đọc “muoi” .vv) ta sử dụng cấu trúc switch case với các trường hợp: case 0: sR = "khong".Lớp 06T4. break.

8 In ra tổng là: 12+4+5+7+8=36.Nếu số hàng chục khác 1 ta cũng đọc tương tự : đọc tên số hàng Trăm+ “tram”+tên số hàng chục+ “chuc”+ tên số hàng đơn vị.trim() Cắt chuỗi ra từng con số ngăn bởi dấu “. Nguyễn Minh Khoa . Kết quả chạy Demo: Bài 8: a.Nếu số hàng chục bằng 1 ta đọc tương tự như trường hợp len=2 nhưng thêm vào chữ “tram” . 7. Ví dụ: N hập vào chuỗi: 12. 4. Đề bài: Viết phương thức dùng để đếm số lần 1từ nào đó xuất hiện trong một câu. Cắt khoảng trắng hai đầu chuỗi nhập vào st=st. Kết quả chạy Demo: n=235 n=1305 • • • • • Bài 7: a."). nghìn….Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • . Gán vào một mảng rồi tính tổng c. Tính tổng các số đó và xuất ra màn hình. Khai báo hàm String tranlate(int a) để chia số nhập vào thành lớptỷ. ” : String arr[] = st. b.split(". “nghin” tương ứng kết quả cuối cùng được một chuỗi đọctheo tiếng Việt.mỗi lớp lấy 3 chữ số. 5.triệu. Đề bài: Viết chương trình nhập vào một chuỗi các con số ngăn cách bởi dấu phẩy. Cách giải quyết: Khai báo hàm tính tổng : tong(String st) Khai báo một chuỗi trắng String str = "".Nhóm 12A Trang 7 . c.Lớp 06T4. Sau khi xử lý 3 chữ số này với hàm ChuyenDV(String Number) ta thêm các kí tự “ty”. “trieu”.

Kết quả chạy Demo: • • • Bài 9: a. Hien Anh. Cách giải quyết: • Khai báo hàm thay thế : thaythe(String cau. e. u. Thao My” Cần thay từ “Ah” thành từ “Anh” Kết quả sau khi thay thế: “Anh Hoa! Anh Dao. Đề bài: Viết phương thức dùng để thay thế một từ nào đó xuất hiện trong một câu bằng một từ khác.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • • • • Phương thức gồm hai tham số. b. Ví dụ: Câu cần thay: “Ah Hoa! Ah Dao. Phương thức trả về số lần từ đó xuất hiện trong câu. Phương thức trả về câu sau khi đã thay thế tất cả các từ. Đề bài: Viết chương trình nhập vào một chuỗi các ký tự từ bàn phím. Đếm số ký tự nguyên âm có trong chuỗi vừa nhập (các nguyên âm: a.Nhóm 12A Trang 8 .độ dài của từ Lấy ra từng đoạn trong “cau” có độ dài bằng “tu” rồi gán vào chuỗi “tam” như sau : tam=cau.Lớp 06T4. Ví dụ: Chuỗi nhập vào: “trung tam tin hoc” Xuất ra tổng các nguyên âm: 4 b. Thao My” b.k+tu. Câu lệnh lấy kí tự thứ i của câu và so sánh với nguyên âm có dạng : (cau. Kết quả chạy Demo: Bài 10: a. o. Hien Ah. không phân biệt chữ thường hay chữ hoa (giống như chức năng Replace All trong MS. i).String tu) Cho biến k chạy từ 0 đến độ dài của câu.charAt(i)=='a') c. Phương thức gồm ba tham số: tham số thứ nhất là một câu. tham số thứ nhất là một câu. Nếu “tam”= “tu” tăng biến đếm lên 1 đơn vị. Cách giải quyết: Cho biến i chạy theo độ dài của chuỗi Nếu kí tự thứ i của câu là nguyên âm thì tăng biến đếm lên 1 đơn vị.length()). String tumoi) Nguyễn Minh Khoa .substring(k.Word).cuối cùng trả về biến đếm c. String tu. tham số thứ hai là từ cần kiểm tra. Cách giải quyết: Khai báo hàm kiểm tra : kiemtra(String cau. tham số thứ hai là từ cần thay thế và tham số thứ ba là từ mới.

Kết quả chạy Demo: Bài 12: a.length()). Đề bài: Viết phương thức dùng để kiểm tra 1 từ có xuất hiện trong một câu không.tumoi) c. Phương thức gồm hai tham số.k+tu. dùng để khởi gán các giá trị bằng 0 cho các biến của đối tượng. tham số thứ nhất là một câu.Nhóm 12A Trang 9 .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • Cho biến k chạy từ 0 đến độ dài của câu. + constructor copy: constructor có đầy đủ tham số (số tham số của constructor này bằng với số data instance ta đã khai báo).độ dài của từ • Lấy ra từng đoạn trong “cau” có độ dài bằng “tu” rồi gán vào chuỗi “tam” như sau : tam=cau. • Định nghĩa các phương thức setters/getters cho các biến. • Nếu “tam”= “tu” thay thế “tu” bằng “tumoi” : cau=cau. Cách giải quyết: • Khai báo hàm kiểm tra : kiemtra(String cau.replace(tu. Phương thức trả về true nếu từ xuất hiện trong câu. • Định nghĩa phương thức đặc tả dạng chuỗi của đối tượng (phương thức toString).String tu) • Cho biến k chạy từ 0 đến độ dài của câu.substring(k.độ dài của từ • Lấy ra từng đoạn trong “cau” có độ dài bằng “tu” rồi gán vào chuỗi “tam” như sau : tam=cau. • Tạo 2 hàm constructors cho đối tượng: + constructor default: là constructor không có tham số. Constructor này thường dùng để khởi tạo 1 đối tượng đầy đủ. • Viết một phương thức giaiPT dùng để giải phương trình bậc nhất ax+b = 0 Nguyễn Minh Khoa .k+tu. • Nếu “tam”= “tu” trả về true c.Lớp 06T4. Kết quả chạy Demo: Bài 11: a. Đề bài: Tạo lớp PhuongTrinhBacNhat có 2 biến a và b là 2 số nguyên.substring(k.length()). ngược lại phương thức trả về false b. tham số thứ hai là từ cần kiểm tra.

Có kết quả là : Nguyễn Minh Khoa . + private int b.Nhóm 12A Trang 10 .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • Viết lớp cho phần thử nghiệm (Driver Class) của lớp PhuongTrinhBacNhat vừa tạo. + Nếu a=0&&b!=0 phương trình vô nghiệm.4). • Constructor default: bai12PhuongTrinhBacNhat(){}. • A UML class diagram: b. setb(b).giaiPT” c. } • Phương thức toString: mô tả dạng String String s="".b = b. • Constructor copy: bai12PhuongTrinhBacNhat(int a.int b)throws Exception { seta(a). + Các trường hợp khác có nghiệm –b/a • Phần thử nghiệm: + Tạo đối tượng “t” kieu PhuongTrinhBacNhat + Gọi “t. • Phương thức setb(): this.a = a.toString(b)+" =0". Cách giải quyết: • Khai báo biến : + private int a.toString(a)+"x + "+Integer. • Phương thức giaiPT: + Nếu a=0&&b=0 phương trình vô số nghiệm. Kết quả chạy Demo: Giả sử ta gọi t= new bai12PhuongTrinhBacNhat(8.Lớp 06T4. • Phương thức seta(): this. • Phương thức getb(): return b. s=s+Integer. • Phương thức geta() : return a.

Đề bài: Viết lớp Date nhằm đặc tả đối tượng ngày tháng năm. riêng tháng 2 năm nhuần có tối đa 29 ngày và không phải là năm nhuần có tối đa 28 ngày. 6. + constructor copy: constructor có đầy đủ tham số (số tham số của constructor này bằng với số data instance ta đã khai báo). • Viết một phương thức có tên isLeapYear. nhận vào một tham số thuộc đối tương Date vừa tạo. tháng (1. Ngày tháng năm hợp lệ nếu năm sau 1582.0). Là năm nhuần nếu chia hết cho 4. Kết quả là true nếu là năm nhuần. Các thuộc tính của Date bao gồm: Day (ngày). nhận vào một tham số tượng trưng cho năm cần kiểm tra. 11) có tối đa 30 ngày. 9. Constructor này thường dùng để khởi tạo 1 đối tượng đầy đủ. • Viết lớp cho phần thử nghiệm (Driver Class) của lớp vừa tạo. trừ khi chia hết cho 100 mà không chia hết cho 400. • Tạo 2 hàm constructors cho đối tượng: + constructor default: là constructor không có tham số.Nhóm 12A Trang 11 . 8. phương thức dùng kiểm tra có phải là năm nhuần không. month (tháng) và year (năm). 5. N gày luôn luôn dương. 12) có tối đa 31 ngày. • Sơ đồ UML: Nguyễn Minh Khoa . 7. • Định nghĩa các phương thức setters/getters cho các biến. Bài 13: a. Phương thức trả về true nếu ngày tháng năm nhập vào là hợp lệ. 3. • Viết một phương thức có tên validDate. ngược lại là false.Lớp 06T4. 10.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Với t= new bai12PhuongTrinhBacNhat(8. • Định nghĩa phương thức đặc tả dạng chuỗi “dd/mm/yyyy” của đối tượng (phương thức toString). tháng (4. dùng để khởi gán các giá trị mặc định là 0 cho các biến của đối tượng.

int year)throws Exception { setday(day). Cách giải quyết: • Khai báo biến : + private int day. • Phương thức getmonth() : return day. • Constructor copy: bai13Date(int day.year = year. • Phương thức getyear() : return day. Nguyễn Minh Khoa . • Constructor default: bai13Date(){}. this. • Phương thức setyear(): if(year<0) throw new Exception("nam khong hop le"). + private int month. this.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy b. + private int year.Lớp 06T4. this. • Phương thức setday(): if(day<0||day>31) throw new Exception("ngay khong hop le"). • Phương thức getday() : return day.day = day. setmonth(month). • Phương thức setmonth(): if(month<0||month>12) throw new Exception("thang khong hop le").month = month.Nhóm 12A Trang 12 .int month.

11 và số ngày <=30 thì trả về true + Nếu là năm nhuận và số ngày =29 hoặc năm thường và số ngày =28 thì trả về true • Phương thức iLeapYear: Nếu năm là nhuận(năm chia hết cho 400 hoặc chia hết cho 4 và không chia hết cho 100 ) thì trả về true • Phần thử nghiệm: + Tạo đối tượng “t” kieu Date + Gọi các phương thức “t.isLeapYear ” và phương thức “t. Kết quả chạy Demo: Giả sử tạo đối tượng t=new bai13Date(25.9.8.toString(year).3.7.198). Nguyễn Minh Khoa . họ tên nhân viên và ngày sinh của nhân viên (Ngày sinh: Sử dụng đối tượng Date ở câu 11). dùng để khởi gán các giá trị ban đầu cho các biến của đối tượng. } • Phương thức toString: String s="".2.toString(month)+"/" + Integer.validDate ” c.Nhóm 12A Trang 13 .5.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy setyear(year). s=s+Integer. + Nếu tháng = 4.1988).12 và số ngày <=31 thì trả về true. thì thiết lập ngày sinh cho nhân viên.10. • Với phương thức setNgaySinh.toString(day)+"/"+Integer. • Phương thức validDate: nếu year>1582 + Nếu tháng =1. Các thuộc tính của nhân viên bao gồm: Mã nhân viên. Kiểm tra nếu năm sinh <=1990 và >=1953. Ngược lại thì ngày sinh không hợp lệ.8. Đề bài: Viết lớp NhanVien nhằm đặc tả cho một đối tượng là nhân viên làm việc trong công ty nào đó. • Định nghĩa các phương thức setters/getters cho các biến.Lớp 06T4. có một tham số kiểu String tượng trưng cho ngày sinh của nhân viên. Kết quả là: Với t=new bai13Date(25. • Tạo 2 hàm constructors cho đối tượng + Constructor 1: là constructor không có tham số. Bài 14: a.6.

Nhóm 12A Trang 14 .out. String HoTen.NgaySinh=NgaySinh. • Viết lớp cho phần thử nghiệm (Driver Class) của lớp NhanVien vừa tạo. • Phương thức setNgaySinh(): if(NgaySinh. • Viết phương thức tính tuổi cho nhân viên. else System. • Phương thức getMaNV() : return MaNV.bai13Date NgaySinh) throws Exception { setMaNV(MaNV). this.Lớp 06T4. private String HoTen. • Phương thức setMaNV(): Yêu cầu mã nhân viên không được trống.trim(). Cách giải quyết: • Khai báo biến : private String MaNV. setNgaySinh(NgaySinh).getyear()<=1990)) this.print("Ngay Sinh khong hop le!\n").trim(). if(HoTen. } • Phương thức toString: return HoTen. • Phương thức tuoiNV: + Khai báo đối tượng kiểu Date để lấy năm hiện tại của hệ thống. • Constructor default: bai14NhanVien() {} • Constructor copy: bai14NhanVien(String MaNV. biết rằng tuổi là năm hiện hành trừ năm sinh của nhân viên.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy + Constructor 2: constructor có đầy đủ tham số (số tham số của constructor này bằng với số data instance ta đã khai báo). setHoTen(HoTen).getyear()>=1953) &&(NgaySinh. private bai13Date NgaySinh. + tuổi nhân viên = năm hiện tại – năm sinh • Phần thử nghiệm: + Tạo đối tượng kiểu date + Tạo đối tượng kiểu NhanVien Nguyễn Minh Khoa . • Định nghĩa phương thức đặc tả dạng chuỗi của đối tượng (phương thức toString).MaNV = MaNV. b. this.validDate()&&(NgaySinh. • Phương thức getHoTen(): return HoTen.equals("")) throw new Exception("Ho ten khong the khong co"). if(MaNV. • Phương thức getNgaySinh(): return NgaySinh.equals("")) throw new Exception("Ma nhan vien khong the khong co"). • Phương thức setHoTen(): Yêu cầu họ tên không được trống.HoTen = HoTen. Constructor này dùng để khởi tạo 1 đối tượng đầy đủ.

Constructor này thường dùng để khởi tạo 1 đối tượng đầy đủ.Nhóm 12A Trang 15 . Kết quả chạy Demo: Đối tượng lớp Date ns= new bai13Date(25. Kết quả: Bài 15: a. • Định nghĩa phương thức đặc tả dạng chuỗi của đối tượng (phương thức toString). toán hạng 2. Đề bài: Tạo một lớp PhepTinh có 3 thuộc tính: Toán hạng 1.8. Sơ đồ UML Nguyễn Minh Khoa .Lớp 06T4. • Viế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ử đó. • Tạo 2 hàm constructors cho đối tượng: + constructor default: là constructorkhông có tham số. toán hạng là 0).Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy + Gọi các phương thức tính tuổi nhân viên c. • Định nghĩa các phương thức setters/getters cho các biến. + constructor copy: constructor có đầy đủ tham số (số tham số của constructor này bằng với số data instance ta đã khai báo). dùng để khởi gán các giá trị mặc định cho các biến của đối tượng (gán giá trị mặc nhiên cho toán tử là +. • Viết lớp cho phần thử nghiệm (Driver Class) của lớp vừa tạo. toán tử. Đối tượng lớp NhanVien : nv =new bai14NhanVien("1234".1988).ns)."Nguyen Minh Khoa".

} • Phương thức toString: String s="".ToanHang1 = ToanTu.ToanHang1 = ToanHang1. • Phương thức setToanHang1 (): this.Nhóm 12A Trang 16 . Cách giải quyết: • Khai báo biến : private int ToanHang1. } • Constructor copy: bai15PhepTinh(int ToanHang1. • Phương thức getToanHang2 (): return ToanHang2. • Phương thức TinhToan: Thực hiện phép tính tương ứng với toán tử nhập vào • Phần thử nghiệm: Tạo đối tượng kiểu tính phép toán và gọi hàm Nguyễn Minh Khoa . • Phương thức setToanHang2 (): this. s=s+Integer.ToanHang1 = ToanHang2. • Phương thức getToanHang1() : return ToanHang1. • Constructor default: bai15PhepTinh() throws Exception{ this(0.0. private char ToanTu. setToanHang2(ToanHang2). • Phương thức setToanTu (): this.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy b.toString(ToanHang1)+ToanTu+Integer.toString(ToanHang2). int ToanHang2.'+').Lớp 06T4. • Phương thức getToanTu (): return ToanTu.char ToanTu) throws Exception { setToanHang1(ToanHang1). private int ToanHang2. setToanTu(ToanTu).

• Định nghĩa phương thức đặc tả dạng chuỗi của đối tượng có dạng TuSo/MauSo (phương thức toString).Nhóm 12A Trang 17 .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy c. • Viết một phương thức rutGon() dùng để rút gọn một phân số (ví dụ: phân số 9/12 sau khi rút gọn sẽ là 3/4) .'*').Lớp 06T4. Kết quả : Bài 16: a.8. • Viết một phương thức tinhToan() dùng để trả về giá trị của phân số (ví dụ: phân số 2/4 có giá trị 0. Sơ đồ UML: b.5). Nguyễn Minh Khoa . • Định nghĩa các phương thức setters/getters cho các biến. Đề bài: Tạo một lớp PhanSo gồm tử số và mẫu số thuộc kiểu số nguyên. Cách giải quyết: • Khai báo biến : private int TuSo. dùng để khởi gán các giá trị mặc định cho các biến của đối tượng (tử số bằng 0 và mẫu số bằng 1). + constructor copy: constructor có đầy đủ tham số (số tham số của constructor này bằng với số data instance ta đã khai báo). Kết quả chạy Demo: Giả sử tạo t=new bai15PhepTinh(25. Constructor này dùng để khởi tạo 1 đối tượng đầy đủ. • Tạo 2 hàm constructors cho đối tượng: + constructor default: là constructor không có tham số.

2. lẻ của mảng. Kết quả chạy Demo: Giả sử tạo t=new bai16PhanSo(10. nhỏ nhất của mảng. có giá trị từ 0-100: 1.Lớp 06T4.50). 2. int MauSo)throws Exception { setTuSo(TuSo). Viết phương thức tính tổng các phần tử của mảng. • Phương thức getMauso (): return MauSo.MauSo =MauSo. s=s+Integer. Viết phương thức xóa phần tử nào đó trong mảng. • Constructor default: bai16PhanSo() throws Exception{ this(0.toString(TuSo)+"/"+Integer.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy private int Mauso. Cách giải quyết: c. Kết quả chạy Demo: Menu chức năng: Nguyễn Minh Khoa . Kết quả : Bài 17: a. } • Phương thức toString: String s="". Viết phương thức đếm số phần tử chẳn. } • Constructor copy: bai16PhanSo(int TuSo. • Phương thức TinhToan: Thực hiện phép tính chia tử số cho mẫu số • Phương thức RutGon : Chia tử số và mẫu số cho ước chung lớn nhất. • Phương thức setTuSo (): this. Viết phương thức tìm phần tử lớn nhất. 4. • Phương thức setMauso (): if(MauSo==0) throw new Exception("Mau so phai khac 0!"). b. • Phương thức getTuSo () : return TuSo. this. Viết phương thức sắp xếp mảng. • Phần thử nghiệm: Tạo đối tượng kiểu tính phân số và gọi hàm c. setMauSo(MauSo).Nhóm 12A Trang 18 . Đề bài: Cho một mảng ngẫu nhiên có 100 phần tử. 5.1).TuSo = TuSo.toString(MauSo).

Lớp 06T4.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Tạo mảng : Tính tổng: Tìm Min Max ….Nhóm 12A Trang 19 . Nguyễn Minh Khoa .

Lớp 06T4.Nhóm 12A Trang 20 . Thông báo lỗi nếu số thứ hai nhỏ hơn số thứ nhất b. Kết quả chạy Demo: Bài 2: a. Sau đó chuyển sang độ C tương ứng. c. và sử dung JoptionPane để thông báo khi dữ liệu nhập sai. theo giao diện cho trước. Đề bài: Viết chương trình để nhập vào độ F. Cách giải quyết: Sử dụng Jlabel . b.Dùng FlowLayout để bố trí các đối tượng. JButton để tạo các nhãn.ta khai báo 2 JoptionPane để lấy giá trị 2 số nhập vào rồi in kết quả ra màn hình. nút và dòng nhập text. c.JtextField. Kết quả chạy Demo: Nguyễn Minh Khoa . Cách giải quyết: Sử dụng JoptionPane .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy PHẦN 2: CÁC BÀI TẬP VỀ GIAO DIỆN Bài 1: a. Đề bài: Viết chương trình sử dụng JoptionPane để nhập vào 2 số nguyên tương ứng cho một miền giá trị. In ra số ngẫu nhiên có giá trị trong phạm vi của miền đó.

. nút và dòng nhập text. Cách giải quyết: Sử dụng Jlabel . Kết quả chạy Demo: Bài 4: a. c.JtextField. Cách giải quyết: Sử dụng Jlabel . JRadioButton để tạo các nhãn. Tạo các Box rồi đưa các đối tượng vào c. JComboBox để tạo các nhãn.dòng nhập text và thanh cuộn các phép tính.Nhóm 12A Trang 21 . Jbutton.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Bài 3: a. Đề bài: Viết chương trình mô phỏng phép toán theo giao diện cho trước: b.bottom.Lớp 06T4.JtextField. nút . Jbutton. Đề bài: Tạo form Welcome theo mẫu: b. Kết quả chạy Demo: Nguyễn Minh Khoa . Sử dụng JPanel để bố trí giao diện ở top..

dòng nhập text. Sử dụng Border để tạo đường viền.JtextField.Jlist để tạo danh sách. Kết quả chạy Demo: Nguyễn Minh Khoa . c. Cách giải quyết: Sử dụng Jlabel . để tạo các nhãn.Lớp 06T4.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Bài 5: a. nút .JSplitPanel để chia các vùng . BorderLayout để đưa các đối tượng vào trong JFrame.Sử dụng Jpanel và các Box .Nhóm 12A Trang 22 . Đề bài:Thiết kế giao diện “THÔNG TIN SINH VIÊN” theo mẫu cho trước b. Jbutton.

Kết quả chạy Demo: Bài 7: a.Nhóm 12A Trang 23 . c. Đề bài: Thiết kế giao diện “THÔNG TIN SINH VIÊN” theo mẫu cho trước có sử dụng Jtree b. Book name . Jbutton. Book name . Sử dụng Jtable để tạo bảng “Book ID. Kết quả chạy Demo: Nguyễn Minh Khoa . nút . để tạo các nhãn. c.Sử dụng Jpanel và các Box để đưa các đối tượng vào.dòng nhập text.Dùng BorderLayout để xác định vị trí các đối tượng vào JFrame.dòng nhập text. BorderLayout để đưa các đối tượng vào JFrame.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Bài 6: a.Publish”. Jbutton.Publish” .JSplitPanel để chia các vùng . Sử dụng Jtree để tạo danh cây danh sách sinh viên. Cách giải quyết: Sử dụng Jlabel . Đề bài: Thiết kế giao diện “ QUẢN LÝ SÁCH” theo mẫu cho trước b.JtextField.Lớp 06T4.Sử dụng Jpanel và các Box.JtextField.Sử dụng JscrollPane để có thể dịch chuyển bảng “Book ID. để tạo các nhãn. nút . Cách giải quyết: Sử dụng Jlabel .

Jbutton. nút .Sử dụng Sử Jlist để tạo danh sách sinh viên .Flowlayout để đưa các đối tượng vào JFrame. b. và Border để làm viền. Kết quả chạy Demo: Nguyễn Minh Khoa .JScrollPane để tạo tính cuộn.JtextField. để tạo các nhãn. Cách giải quyết: Sử dụng Jlabel . Đề bài: Thiết kế giao diện “THÔNG TIN SINH VIÊN” theo mẫu cho trước có sử dụng box. c. Sử dụng Jtree để tạo danh cây danh sách sinh viên.dòng nhập text.Jtree….Nhóm 12A Trang 24 .Dùng Jpanel và các Box.Lớp 06T4.JSplitPanel để chia các vùng .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Bài 8: a.

dòng nhập text. Title . Sử dụng Jtable để tạo bảng “ID. Cách giải quyết: Sử dụng Jlabel . c. Kết quả chạy Demo: Bài 10: a. và Border để làm viền.Lớp 06T4.Publish” .Dùng câu lệnh setBounds để định vị trí. Jbutton. để tạo các nhãn. Cách giải quyết: Sử dụng JMenu và JMenuItem để tạo các thanh thực đơn.JScrollPane để tạo tính cuộn.Sau đó đưa các đối tượng vào Container và đưa vào Jframe.Sử dụng JscrollPane để có thể dịch chuyển bảng “ID. Title .Sử dụng Sử Jlist để tạo danh sách nhân viên . và BorderLayout để đưa các đối tượng vào JFrame.dòng nhập text.Nhóm 12A Trang 25 . Kết quả chạy Demo: Nguyễn Minh Khoa .JtextField.Dùng Jpanel và các Box. Đề bài: Thiết kế giao diện “QUẢN LÝ SÁCH ” theo mẫu cho trước b. Jbutton.JSplitPanel để chia các vùng .JtextField.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Bài 9: a. Sử dụng Jtree để tạo danh cây danh sách phòng ban. Đề bài: Thiết kế giao diện “CÔNG TY TNHH THÀNH AN” theo mẫu cho trước b.Publish”. nút . Sử dụng Jlabel . nút . c. để tạo các nhãn.

Lớp 06T4.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Nguyễn Minh Khoa .Nhóm 12A Trang 26 .

 Biết cách kết hợp các đối tượng để tạo giao diện.Nhóm 12A Trang 27 . Nguyễn Minh Khoa . II.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy KẾT LUẬN I.Lớp 06T4.các đoạn mã chưa thực sự tối ưu.xử lý các đối tượng.  Nắm vững các câu lệnh trong Java và các thao tác với Eclipse.Kết quả đạt được :  Nắm được cách tạo các thành phần. Chúng em rất mong nhận được sự chỉ bảo của thầy cô và góp ý của các bạn để bài thực hành hoàn thiện hơn.  Do còn hạn chế về kinh nghiệm và kiến thức. nên bài thực hành chắc chắn còn có nhiều thiếu sót.Những điều chưa đạt được :  Bố cục chương trình có chỗ chưa chặt chẽ.

Sign up to vote on this title
UsefulNot useful