P. 1
Bao cao TH JAVA

Bao cao TH JAVA

|Views: 602|Likes:
Được xuất bản bởicuccu223

More info:

Published by: cuccu223 on Oct 10, 2010
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

05/03/2013

pdf

text

original

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

0/i. và in ra tổng các số chẳn (2+4+6+…. b. ngược lại hãy thông báo lỗi.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.Đề bài: Viết chương trình nhập vào n từ bàn phím.Cho S=0.Cho biến tạm =1.+n) nếu n là số chẳn.283 Nhập vào n<=0 thì thông báo : Hãy nhập vào số nguyên dương.Nhóm 12A Trang 3 . • Hàm làm tròn : round(double number.round(number). + Chia number cho tạm. Kết quả định dạng lấy 3 số lẻ. 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.Kết quả chạy demo: Nhập n=5 Nhập n<0 Bài 2: a. 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. int digit) .n) nếu n là số lẻ. Ví dụ: Nhập vào n=5 thì tổng =1/1+1/2+1/3+1/4+1/5=2.Cách giải quyết: • Xây dựng hàm tính tổng : TinhS(int n) . c. Cách giải quyết: • Xây dựng hàm TinhS(int n) : Nguyễn Minh Khoa .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.Lớp 06T4. . 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 . in ra tổng các số lẻ (1+3+5….

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

Đề 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. + Đổi kí tự đầu tiên thành chữ in hoa : arr[i]=arr[i].Word). c. Phương thức gồm một tham số. phương thức nhận vào một tham số thuộc kiểu số nguyên (int).split(" "). Kết quả chạy Demo: • Bài 5: a.” Câu xuất ra: “Hôm Qua.rồi gán vào mảng. Trời Mưa Rất To. Đề 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 .toUpperCase(). c.substring(1))+" ". + Cắt khoảng trắng ở hai đầu chuỗi đầu vào : st=st.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. + Chia chuỗi ra thành các chuỗi con tại khoảng trắng : String arr[] = st.Lớp 06T4.substring(0.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ẻ. trời mưa rất to.concat(arr[i].Nhóm 12A Trang 5 . Ví dụ: Câu nhập vào: “Hôm qua.1). Kết quả chạy Demo: Bài 6: a. 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 = "".trim(). đó chính là câu cần chuyển. Phương thức trả về câu sau khi chuyển chữ cái đầu mỗi từ sang chữ hoa.” b.

nếu số hàng đơn vị khác 5 thì đọc “muoi”+ tên số ở hàng đơn vị. + Nếu len=1 đọc tên số đó. case 2: sR = "Hai muoi". case 4: sR = "Bon muoi".Nếu số hàng chục và đơn vị =0 . break. case 3: sR = "Ba 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. break. break. . break. case 7: sR = "bay".đọc tên số hàng trăm + “tram” Nguyễn Minh Khoa .nếu số hàng đơn vị =5 thì đọc “muoi lam” .Lớp 06T4. break. case 8: sR = "tam". break.Nếu số hàng chục = 1. 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 .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy • • • b. case 4: sR = "bon".Nếu số hàng đơn vị là 0 thì đọc “muoi” . break. . break. break. case 2: sR = "hai". + Nếu len=2 : . case 1: sR = "mot". case 9: sR = "chin". break. case 1: sR = "Muoi". default: sR = "". case 5: sR = "Nam muoi". break. đọc tên số hàng trăm + “tram linh”+tên số hàng đơn vị. case 6: sR = "Sau muoi". default: sR = "". case 9: sR = "Chin muoi".ta cũng sử dụng cấu trúc switch case với khai báo như sau: case 0: sR = " ". break.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ị. case 7: sR = "Bay muoi".vv) ta sử dụng cấu trúc switch case với các trường hợp: case 0: sR = "khong". break. break. break.length(). break. break. + Nếu len=3 : . case 5: sR = "nam".Nếu số hàng chục =0 và số hàng đơn vị >0 .số hàng đơn vị >0 . case 3: sR = "ba". 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. hàng chục. case 8: sR = "Tam muoi". case 6: sR = "sau".đơn vị. break..Nhóm 12A Trang 6 . break.

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

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

độ 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. Kết quả chạy Demo: Bài 11: a.Nhóm 12A Trang 9 . • Định nghĩa phương thức đặc tả dạng chuỗi của đối tượng (phương thức toString). Kết quả chạy Demo: Bài 12: a.k+tu. • 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 . Phương thức trả về true nếu từ xuất hiện trong câu. • Nếu “tam”= “tu” thay thế “tu” bằng “tumoi” : cau=cau.replace(tu.length()). • Định nghĩa các phương thức setters/getters cho các biến. Cách giải quyết: • Khai báo hàm kiểm tra : kiemtra(String cau.độ 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. Đề 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. dùng để khởi gán các giá trị bằng 0 cho các biến của đối tượng. Phương thức gồm hai tham số. tham số thứ hai là từ cần kiểm tra. + 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).substring(k. ngược lại phương thức trả về false b.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.tumoi) c. tham số thứ nhất là một câu.substring(k. Đề bài: Tạo lớp PhuongTrinhBacNhat có 2 biến a và b là 2 số nguyên. Constructor này thường dùng để khởi tạo 1 đối tượng đầy đủ.Lớp 06T4.String tu) • Cho biến k chạy từ 0 đến độ dài của câu. • Nếu “tam”= “tu” trả về true c. • Tạo 2 hàm constructors cho đối tượng: + constructor default: là constructor không có tham số.k+tu.length()).

s=s+Integer. Có kết quả là : Nguyễn Minh Khoa .a = a. • Phương thức getb(): return b.toString(a)+"x + "+Integer.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. • A UML class diagram: b. Cách giải quyết: • Khai báo biến : + private int a. • Phương thức setb(): this.toString(b)+" =0".4). • Phương thức geta() : return a. • 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.giaiPT” c. } • Phương thức toString: mô tả dạng String String s="".Nhóm 12A Trang 10 . setb(b). • Constructor copy: bai12PhuongTrinhBacNhat(int a.Lớp 06T4.int b)throws Exception { seta(a). + private int b. • Constructor default: bai12PhuongTrinhBacNhat(){}.b = b. + 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 seta(): this. + Nếu a=0&&b!=0 phương trình vô nghiệm.

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

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

Kết quả là: Với t=new bai13Date(25. có một tham số kiểu String tượng trưng cho ngày sinh của nhân viên. + Nếu tháng = 4. 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). } • Phương thức toString: String s="". Đề 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 đó.Lớp 06T4. dùng để khởi gán các giá trị ban đầu cho các biến của đối tượng.198).10.toString(year).isLeapYear ” và phương thức “t.validDate ” c.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy setyear(year).8.6.5. Các thuộc tính của nhân viên bao gồm: Mã nhân viên.toString(day)+"/"+Integer. • Phương thức validDate: nếu year>1582 + Nếu tháng =1.3.7.toString(month)+"/" + Integer. Bài 14: a. s=s+Integer. Nguyễn Minh Khoa . Kết quả chạy Demo: Giả sử tạo đối tượng t=new bai13Date(25. thì thiết lập ngày sinh cho nhân viên.Nhóm 12A Trang 13 .9.8. • Tạo 2 hàm constructors cho đối tượng + Constructor 1: là constructor không có tham số. • Với phương thức setNgaySinh.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.2. Kiểm tra nếu năm sinh <=1990 và >=1953.1988).12 và số ngày <=31 thì trả về true. Ngược lại thì ngày sinh không hợp lệ. • Định nghĩa các phương thức setters/getters cho các biến.

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

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

private int ToanHang2.toString(ToanHang2).toString(ToanHang1)+ToanTu+Integer.0.ToanHang1 = ToanHang2.'+'). setToanTu(ToanTu). • Phương thức setToanHang1 (): this. } • Phương thức toString: String s="".Lớp 06T4.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy b. private char ToanTu. } • Constructor copy: bai15PhepTinh(int ToanHang1. s=s+Integer. • Phương thức getToanHang2 (): return ToanHang2. • Phương thức getToanTu (): return ToanTu.ToanHang1 = ToanTu. int ToanHang2. • Phương thức setToanTu (): this.Nhóm 12A Trang 16 . • Constructor default: bai15PhepTinh() throws Exception{ this(0.char ToanTu) throws Exception { setToanHang1(ToanHang1). • 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 . setToanHang2(ToanHang2).ToanHang1 = ToanHang1. • Phương thức setToanHang2 (): this. • Phương thức getToanHang1() : return ToanHang1. Cách giải quyết: • Khai báo biến : private int ToanHang1.

• Tạo 2 hàm constructors cho đối tượng: + constructor default: là constructor không có tham số. • Đị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). 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).Nhóm 12A Trang 17 .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy c. Nguyễn Minh Khoa . • 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) . Đề bài: Tạo một lớp PhanSo gồm tử số và mẫu số thuộc kiểu số nguyên.8.5).'*'). Sơ đồ UML: b. + 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. Cách giải quyết: • Khai báo biến : private int TuSo. Constructor này dùng để khởi tạo 1 đối tượng đầy đủ. • 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. • Định nghĩa các phương thức setters/getters cho các biến. Kết quả : Bài 16: a.Lớp 06T4.

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

Nguyễn Minh Khoa .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 .

Nhóm 12A Trang 20 . nút và dòng nhập text.Lớp 06T4. Sau đó chuyển sang độ C tương ứng. Cách giải quyết: Sử dụng Jlabel . Đề bài: Viết chương trình để nhập vào độ F. 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. c. Đề 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ị. Kết quả chạy Demo: Nguyễn Minh Khoa . JButton để tạo các nhãn. c.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.JtextField. In ra số ngẫu nhiên có giá trị trong phạm vi của miền đó. b.Dùng FlowLayout để bố trí các đối tượng. Thông báo lỗi nếu số thứ hai nhỏ hơn số thứ nhất b. và sử dung JoptionPane để thông báo khi dữ liệu nhập sai. theo giao diện cho trước. Kết quả chạy Demo: Bài 2: a.

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

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

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

Jbutton.Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy Bài 8: a. để tạo các nhãn.Dùng Jpanel và các Box.Lớp 06T4.Jtree….JtextField. và Border để làm viền. Kết quả chạy Demo: Nguyễn Minh Khoa . nút . b.JSplitPanel để chia các vùng . Đề 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.Flowlayout để đưa các đối tượng vào JFrame. Sử dụng Jtree để tạo danh cây danh sách sinh viên. c. Cách giải quyết: Sử dụng Jlabel .Nhóm 12A Trang 24 .Sử dụng Sử Jlist để tạo danh sách sinh viên .dòng nhập text.JScrollPane để tạo tính cuộn.

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

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

Nhóm 12A Trang 27 .Báo cáo Thực hành JAVA GVHD : Trịnh Công Duy KẾT LUẬN I.  Nắm vững các câu lệnh trong Java và các thao tác với Eclipse. II. Nguyễn Minh Khoa .  Do còn hạn chế về kinh nghiệm và kiến thức.các đoạn mã chưa thực sự tối ưu. 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ẽ. 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.Kết quả đạt được :  Nắm được cách tạo các thành phần.  Biết cách kết hợp các đối tượng để tạo giao diện.xử lý các đối tượng.Lớp 06T4.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->