THỰC HÀNH LẬP TRÌNH JAVA _NGÔN NGỮ LẬP TRÌNH JAVA Pot

Tải bản đầy đủ (.doc) (25 trang)
  1. Trang chủ
  2. >>
  3. Công Nghệ Thông Tin
  4. >>
  5. Kỹ thuật lập trình
THỰC HÀNH LẬP TRÌNH JAVA _NGÔN NGỮ LẬP TRÌNH JAVA pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (459.41 KB, 25 trang )

Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaTHỰC HÀNH LẬP TRÌNH JAVAPhần 1. NGÔN NGỮ LẬP TRÌNH JAVA o0o I. Hướng dẫn thực hànhVí dụ mẫu: Viết chương trình nhập số nguyên / xuất số nguyên ra màn hìnhpackage BTConsole;import java.io.BufferedReader;import java.io.InputStreamReader;public class BTConsole {public static int Nhap1So(){BufferedReader br = new BufferedReader(new InputStreamReader(System.in));System.out.print("Nhap 1 so nguyen: ");try{int n = Integer.parseInt(br.readLine());return n;}catch(Exception ee){System.out.println("\nLoi nhap du lieu! Nhap lai!!");int n = Nhap1So();return n;}}public static void main(String []args){int n = Nhap1So();System.out.println("So vua nhap: "+n);}}package BTConsole;import java.io.*;public class BTConsole {public static int Nhap1So(){DataInputStream din = new DataInputStream(System.in);System.out.print("Nhap 1 so nguyen: ");try{int n = Integer.parseInt(din.readLine());return n;}catch(Exception ee){System.out.println("\nLoi nhap du lieu! Nhap lai!!");int n = Nhap1So();return n;}}public static void main(String []args){int n = Nhap1So();System.out.println("So vua nhap: "+n);}}II. Bài tập thực hành:Cấu trúc rẽ nhánh (if, switch)GVHD: ĐỖ NHƯ TÀI - LUT Trang 1Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBài 1. Cho bốn số nguyên a,, b, c, d. Hãy tìm giá trị lớn nhất của bốn số đó.Bài 2. Nhập điểm từ bàn phím. Viết chương trình xếp loại học viên theo điểm trung bình như sau:•10, 9 : xếp loại xuất sắc.•8, 7: xếp loại giỏi.•6, 5: xếp loại trung bình.•4, 3: xếp loại yếu.•2 , 1, 0: xếp loại kém.Bài 3. Cho ba số a, b, c. Hãy giải phương trình bậc hai: ax2 + bx + c = 0.Bài 4. Nhập vào ba số nguyên d, m, y. Hãy viết chương trình:•Kiểm tra xem d/m/y có tạo thành một ngày hợp lệ không? •Kiểm tra y có là năm nhuận không?•Tháng m có bao nhiêu ngày?•Nếu d/m/y là ngày hợp lệ, hãy cho biết:o d/m/y là ngày thứ mấy thứ mấy tron năm?o d/m/y là thứ mấy của tuần?Bài 5. Cho ba số nguyên a, b, c. Hãy kiểm tra a, b, c có thể là ba cạnh của một tam giác hay không? Nếu có, hãy cho biết đó là tam giác vuông, nhọn hay tù?Cấu trúc lặp (while,do…while, for)Bài 6. Viết chương trình xuất bảng cửu chương từ 2 đến 92x1= 2 3*1= 3 4*1= 4 9*1= 92x2= 4 3*2= 6 4*2= 8 9*2=18 2x9=18 3*9=27 4*9=36 9*9=81Với mọi i= 1 đến 9{ Với mọi j = 2 đến 9 System.print ( “” + i + ‘x’ + j + ‘=’ + ( i*j<10 ? “ “ : “”) + i*j ); Syctem.out.println(“\n”);}Bài 7. Xuất trị bình phương lập phương từ 1 đến 10 {Với mọi i = 1 đến 10 Xuất (i , i2 , i3 , xuống dòng)}Bài 8. Cho số nguyên n. Hãy cho biết n có phải là số nguyên tố.Bài 9. Nhập vào hai số a, b. Hãy tìm UCLN và BCNN của hai số a, b.Bài 10.Cho số nguyên n phát sinh ngẫu nhiên (n>0). Hãy cho biết :a. Số n có bao nhiêu chữ số.b. Tổng các chữ số của n.c. Chữ số có giá trị lớn nhất.d. Chữ số có giá trị nhỏ nhất.Bài 11.Cho số tự nhiên n. Hãy tính các biểu thức sau:a. S1 = 1 + 2 + 3 + … + n.b. S2 = 1 – 2 + 3 - … + (-1)n+1n.Bài 12.Dãy số Fibonacy được xác định như sau:F1 = F2 = 1Fn = Fn-1 + Fn-2 (n>2)Nhập vào số nguyên n. Hãy tính Fn.Bài 13.Tạo 1 mảng 10 phần tử, xuất mảng tăng dầnCần 1 class BAIMANGCó các hành vi: void SapXepTang (int a[], int n) void XuatMang (int a[], int n)Có hàm main{ int a[] = { 3,2,1,6,5,8,9,0,12,-4}; SapXepTang(a,10); XuatMang(a,a0);}GVHD: ĐỖ NHƯ TÀI - LUT Trang 2Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBài 14.Sinh ngẫu nhiên một dãy số nguyên n phần tử (n nhập từ bàn phím). Viết một hàm tìm giá trị lớn nhất và hàm tìm nhỏ nhất của dãy.Cần 1 lớp cho bài toánDữ liệu int n, a[]; // số phần tử và tập trịHành vi : Hành vi NhapNN(int[] arr), Hành vi LonNhat (int[] arr), hành vi NhoNhat(int[] arr) , Hành vi mainGiải thuật cho hành vi NhapNN(int[] arr) // nhập mảng{ Đã có giải thuật trên lớp}Giải thuật cho hành vi LonNhat(int[] arr){ max = giá trị phần tử đầu tiên For I từ vị trí thứ 2 đến hết chiều dài của arr Nếu max < arr[i] max = arr[i] Trả về max}Giải thuật cho hành vi NhoNhat(int[] arr) tự làm.Giải thuật cho hành vi main{ int i, n; Khai báo mảng arr. Cần đối tượng obj thuộc lớp này; Nhập giá trị n từ bàn phím. Tạo n phần tử mảng arr obj.NhapNN(arr); Xuất ( obj.LonNhat(arr) ) Xuất( obj.NhoNhat(arr) )}Bài 15.Nhập vào Họ Tên, hãy kiễm tra xem chuỗi vừa nhập có bao nhiêu ký tự, bao nhiêu từ. Bài 16.Nhập vào một chuỗi, hãy loại bỏ tất cả các khoảng trắng dư thừa trong chuỗi. Bài 17.Nhập vào chuỗi ký tự từ bàn phím. Hãy viết chương trình đảo chuỗi.Bài 18.Một chuồng gồm 10 cái lồng dùng để nhốt mèo và chó (mỗi lồng chỉ nhốt nhiều nhất 1 con). Viết chương trình quản lý việc nhốt mèo và chó trong các lồng.các class trừu tượng gồm: -DongVat + ten+ abstract void conGi();-Cho kế thừa từ DongVat-Meo kế thừa từ DongVat-class Chuong sẽ để quản lý việc nhốt các động vật.- Khai báo Dong vat ->cacLong[10]- method nhot( DongVat, chuong so?)- method tha(chuong?)- method baocao(); báo cáo tình hình các chuồngBài 19.testGVHD: ĐỖ NHƯ TÀI - LUT Trang 3Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaIII. HƯỚNG DẪN THỰC HÀNH THÊM :Các ví dụ minh họa:Ví dụ 1: Nhập 1 dãy số từ bàn phím. Tính tổng của dãy số đó.package btconsole;import java.util.*;import java.io.*;public class TinhTong { public static int[] Nhap1DaySo() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap so phan tu cua mang: "); int n = Integer.parseInt(br.readLine()); int a[] = new int[n]; for(int i=0;i<a.length;i++){ System.out.print("A["+i+"]="); a[i] = Integer.parseInt(br.readLine()); } return a; } public static void In1DaySo(int[] l) { System.out.print("Day so: "); for(int i=0;i<l.length;i++) { System.out.print(l[i]+" "); } System.out.println(" "); } public static int HamTinhTong(int[] a) { int tong = 0; for(int i=0;i<a.length;i++){ tong+=a[i]; } return tong; } public static void main(String[] args) { try { int[] a = null; a = Nhap1DaySo(); In1DaySo(a); System.out.println("Tong: "+HamTinhTong(a)); }catch(Exception ee) { System.out.println(ee.getMessage()); } }}Ví dụ 2: Nhập một dãy số nguyên từ bàn phím. Dãy số được nhập chỉ trên một dòng, cách nhau bởi khoảng trắng, và việc nhập chỉ kết thúc khi có phần tử giá trị 0. Tính tích của dãy số đó.package btconsole;import java.util.*;import java.io.*;public class TinhTich { public static ArrayList Nhap1DaySo() throws Exception { // Cac phan tu cach nhau khoang trang, hay xuong dong // Ket thuc khi nhap so 0 System.out.print("Nhap day so : "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ArrayList lst = new ArrayList(); while(true) { StringTokenizer tok = new StringTokenizer(br.readLine()," ");GVHD: ĐỖ NHƯ TÀI - LUT Trang 4Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java while(tok.hasMoreElements()) { int n = Integer.parseInt(tok.nextToken()); if(n==0) return lst; lst.add(new Integer(n)); } } } public static void In1DaySo(List l) { System.out.print("Day so: "); for (int i = 0; i < l.size(); i++) { System.out.print(l.get(i).toString()+" "); } System.out.println(); } public static int HamTinhTich(List l) { Iterator it = l.iterator(); int tich = 1; while(it.hasNext()) { tich *= Integer.parseInt(it.next().toString()); } return tich; } public static void main(String[] args) { try { ArrayList a = null; a = Nhap1DaySo(); In1DaySo(a); System.out.println("Tich: "+HamTinhTich(a)); }catch(Exception ee) { System.out.println(ee.getMessage()); } }}Ví dụ 3: Nhập một chuỗi từ bàn phím. Hãy đảo chuỗi vừa nhập.package btconsole;import java.io.*;import java.util.*;public class InWord { public static String DaoTu(String s){ StringBuffer sbuf = new StringBuffer(s); for(int i=0;i<sbuf.length()/2;i++){ char tmp = sbuf.charAt(i); sbuf.setCharAt(i,sbuf.charAt(sbuf.length()-1-i)); sbuf.setCharAt(sbuf.length()-1-i,tmp); } return sbuf.toString(); } public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap chuoi can dao: "); String s = br.readLine(); s = DaoTu(s); System.out.println("Chuoi dao: "+s); }}Các lớp mảng và tập hợp:•int[], float[], …GVHD: ĐỖ NHƯ TÀI - LUT Trang 5Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java•ArrayList•Vector•Arrays•CollectionsCác lớp xử lý chuỗi: •String•StringBuffer•StringTokenizerCác lớp tiện ích khác:•Random•MathCác giao diện cần chú ý:•Collection•List•EnumerationIV. BÀI TẬP THỰC HÀNH THÊM :Mảng và tập hợp (int[], ArrayList, Vector, …)Bài 20.Sinh ngẫu nhiên một dãy số nguyên a gồm n phần tử (n nhập từ bàn phím). Viết hàm trả về một mảng các số nguyên tố trong dãy a.Bài 21.Nhập một dãy số nguyên từ bàn phím. Dãy số được nhập chỉ trên một dòng, cách nhau bởi khoảng trắng, và việc nhập chỉ kết thúc khi có phần tử giá trị 0. Hãy xóa các phần tử trùng nhau có trong mảng (chỉ giữ lại 1 phần tử trong số các phần tử trùng).Bài 22.Sinh ngẫu nhiên một dãy số nguyên có n phần tử (n nhập từ bàn phím). Hãy viết hàm tìm các phần tử có chữ số tận cùng là 2, 4, 6 và đưa vào 1 mảng. In các phần tử trong mảng vừa mới đưa vào. Bài 23.Nhập một dãy số nguyên từ bàn phím. Dãy số được nhập chỉ trên một dòng, cách nhau bởi khoảng trắng, và việc nhập chỉ kết thúc khi có phần tử giá trị 0. Hãy sắp xếp các phần tử chẳn lên đầu dãy và tăng dần, các phần tử lẻ xuống cuối dãy và giảm dần.Bài 24.Sinh ngẫu nhiên một dãy số nguyên a có n phần tử (n nhập từ bàn phím). Nhập số nguyên K và số nguyên L. Viết hàm xóa L phần tử của dãy số a bắt đầu từ K.Bài 25.Nhập ma trận số số thực A có n dòng và m cột có giá trị phát sinh ngẫu nhiên. Hãy khai báo mảng tongdong, tongcot lần lượt chứa tổng của các dòng, cột.Bài 26.Nhập ma trận số nguyên A có n dòng và m cột. Hãy viết các hàm sau:•Dịch xuống và xoay vòng các hàng trong mảng.•Sắp xếp các dòng sao cho tăng dần về tổng giá trị của các phần tử cùng dòng.•Xây dựng ma trận B sao cho B[i][j] = lớn nhất của dòng I và cột J trong ma trận ban đầu.Xử lý chuỗi (char[], String, StringBuilder, StringTokenizer, …)Bài 27.Nhập vào chuỗi ký tự từ bàn phím. Hãy xóa các ký tự là nguyên âm.Bài 28.Nhập vào chuỗi ký tự từ bàn phím. Hãy lấy đối xứng các từ của chuỗi. Ví dụ: “KIEN AN CA””CA AN KIEN”.Bài 29.Nhập một chuỗi từ bàn phím. Hãy in lần lượt các từ có 1 ký tự, 2 ký tự, 3 ký tự, …Nhập hai chuỗi a, b. Hãy trộn các từ của a, b lần lượt từ trái sang phải và xen kẽ nhau.Hướng đối tượngBài 30.Tạo đối tượng Person, Teacher, Employee. Cho 1 danh sách các nhân viên trong trường gồm Teacher và Employee (SV hãy xem xét các thuộc tính liên quan để thiết kế cho phù hợp với thực tế).Bài 31.Thiết kế các đối tượng hình học 2D.Bài 32.Thiết kế lớp thư viện các hàm như: Số nguyên tố, dãy Fibonacy, hàm sort, …GVHD: ĐỖ NHƯ TÀI - LUT Trang 6Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBÀI TẬP LẬP TRÌNH JAVAPhần 2: Luồng nhập/xuất o0o V. Hướng dẫn thực hành :GVHD: ĐỖ NHƯ TÀI - LUT Trang 7Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaVí dụ 1: Viết chương trình sao chép từ tập tin này sang tập tin khác.package FileIO;import java.io.*;import java.util.*;public class CopyFile { public static void copyfile(String filesrc, String filedst){ try{ FileInputStream fi = new FileInputStream(filesrc); FileOutputStream fo = new FileOutputStream(filedst,false); int ch; while((ch=fi.read())!=-1){ fo.write(ch); } fi.close(); fo.close(); } catch(EOFException ee){ } catch(FileNotFoundException ee){ System.out.println("Tap tin khong tim thay!"); } catch(IOException ee){ System.out.println("Khong the doc file!"); } } public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap tap tin can sao chep:"); String filesrc = br.readLine(); System.out.print("Nhap tap tin de sao chep den:"); String filedst = br.readLine(); copyfile(filesrc,filedst); }}Ví dụ 2: Viết chương trình liệt kê các tập tin trong thư mục.package FileIO;import java.io.*;import java.util.*;public class DirFolder { public static void dirfolder(String strPath) throws Exception { File fi = new File(strPath); if(fi.exists()==false){ throw new Exception("Duong dan khong ton tai!"); } if(fi.isDirectory()==false){ throw new Exception("Duong dan khong phai la thu muc!"); } File[] subFile = fi.listFiles(); for(int i=0;i<subFile.length;i++){ String name = subFile[i].getName(); String type = subFile[i].isDirectory() ? "<DIR> " : "<FILE> "; System.out.println(type+""+name); } } public static void main(String[] args) throws Exception { dirfolder("C:\\");GVHD: ĐỖ NHƯ TÀI - LUT Trang 8Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java }}Ví dụ 3: Viết chương trình tạo 100 số nguyên ngẫu nhiên, ghi các số này vào một tập tin, mỗi dòng chứa tối đa 10 số. Viết chương trình ghi các số từ tập tin ra màn hình.package FileIO;import java.io.*;import java.util.*;public class IntRandom { public static void RandomInt2File(String filename, int numrand) throws Exception { PrintWriter wt = new PrintWriter(new FileWriter(filename),true); int count = 0; while(count<numrand){ int a = (int)Math.ceil(Math.random()*(100-10+1))+10; wt.print(a+" "); count++; if(count%10==0) wt.println(); } wt.close(); } public static void XuatRandomFile(String filename) throws Exception{ BufferedReader br = null; try{ br = new BufferedReader(new FileReader(filename)); while (true) { StringTokenizer tok = new StringTokenizer(br.readLine()," "); int count = 0; while(tok.hasMoreTokens()){ int a = Integer.parseInt(tok.nextToken()); System.out.print(a+" "); count++; if(count%10==0) System.out.println(); } } } catch(EOFException ee){ br.close(); } catch(Exception ee){ } } public static void main(String[] args) throws Exception { RandomInt2File("C:\\rand.txt",134); XuatRandomFile("C:\\rand.txt"); }}VI. Bài tập thực hành :Bài 33.Viết chương trình xuất nội dung một tập tin văn bản ra màn hình.Bài 34.Cho một tập tin chứa các số nguyên cách nhau bởi dấu chấm phẩy. Hãy viết chương trình tính tổng các số nguyên đó và in kết quả ra màn hình.Bài 35.Cho cấu trúc file như sau:Mỗi dòng là 1 đối tượng Car, mỗi đối tượng gồm các thuộc tính: Serial, Model. Các thuộc tính cách nhau dấu “,”.a. Hãy viết chương trình nhập vào 1 danh sách các đối tượng từ file có cấu trúc trên.b. Nhập vào 1 số serial, cho biết Model của xe có số serial vừa nhập.GVHD: ĐỖ NHƯ TÀI - LUT Trang 9Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Javac. Nhập vào giá trị Model, hãy xóa hết các xe nào có cùng Model trong DS.d. Thêm 1 xe mới vào DS với các thuộc tính nhập từ bàn phím.e. Ghi DS vào file theo cấu trúc file đã định nghĩa ở trên. (Nếu file đã tồn tại thì overwrite).VII. Bài tập thực hành thêm :Xử lý tập tin nhị phânBài 36.Nhập đường dẫn chứa tập tin. Hãy đếm dung lượng của tập tin đó.Bài 37.Nhập đường dẫn hai tập tin. Hãy so sánh hai tập tin đó có giống nhau hay không?Bài 38.Nhập đường dẫn tập tin cần di chuyển và vị trí di chuyển. Hãy di chuyển tập tin đó vào nơi di chuyển đến.Bài 39.Nhập đường dẫn tập tin từ bàn phím. Viết chương trình xóa tập tin đó.Bài 40.Nhập đường dẫn một thư mục. Hãy liệt kê các tập tin có đuôi là .txt và ghi ra một tập tin kết quả.Xử lý tập tin văn bản (BufferedReader, FileReader, FileWriter, …)Bài 41.Viết chương trình tạo một tập tin từ nội dung nhập từ bàn phím. Việc nhập kết thúc khi người dùng nhập 1 dòng chứa chữ END để thoát chương trình.Bài 42.Cho một tập tin chứa các số nguyên cách nhau bởi dấu chấm phẩy hay xuống dòng. Hãy viết chương trình tính tổng các số nguyên đó và in kết quả ra màn hình.Bài 43.Viết chương trình đếm một tập tin văn bản có bao nhiêu câu. Biết các câu cách nhau bởi dấu chấm.Viết chương trình quản lý một danh sách sinh viên từ console. Chương trình cho phép thêm sinh viên, tìm kiếm, cập nhật, in danh sách sinh viên…Khi bắt đầu, chương trình sẽ lấy dữ liệu từ tập tin thisinh.txt (tập tin văn bản, dữ liệu mỗi thí sinh nằm trên 1 dòng và cách nhau bởi dấu chấm phẩy). Khi kết thúc, chương trình ghi lại danh sách sinh viên vào tập tin.GVHD: ĐỖ NHƯ TÀI - LUT Trang 10Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBÀI TẬP LẬP TRÌNH JAVAPhần 3: Swing o0o VIII. Hướng dẫn thực hành :• Các đối tượng xử lý: a. JFrameb. JCheckBox, JRadioButton, ButtonGroupc. JTextArea, JTextField, JPasswordFieldd. JPanel, JScrollPane, JEditPanee. JList, JComboBox• Các layout: (JFrame, JPanel)a. FlowLayoutb. GridLayoutc. BorderLayoutd. GridBagLayout (GridBagConstraint)• Các lớp xử lý sự kiện:a. WindowListener  WindowAdapter  windowClosing(WindowEvent) windowOpened(WindowEvent) windowClosed(WindowEvent) windowActivited(WindowEvent) windowDeactivited(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent)b. ItemListener  itemStateChanged(ItemEvent)c. ComponentListener  ComponentAdapter componentHidden(ComponentEvent) componentShown(ComponentEvent) componentMoved(ComponentEvent) componentResized(ComponentEvent)GVHD: ĐỖ NHƯ TÀI - LUT Trang 11Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Javad. AdjustmentListener adjustmentValueChanged(AdjustmentEvent)e. ActionListener actionPerformed(ActionEvent)f. TextListener textValueChanged(TextEvent)Ví dụ 1: Thiết kế chương trình HelloWorld có giao diện như sau:Hãy viết chương trình thực hiện các yêu cầu sau:a) Chữ Hello World! nằm ở chính giửa cửa sổ.b) Màu nền cửa sổ là màu trắng.c) Xử lý nút thoát cho cửa sổ.package btswing;import java.io.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class HelloWorld extends JFrame implements ActionListener { public JLabel lblText; private Container container = getContentPane(); public HelloWorld() { // XU LY DU LIEU // LAYOUT VA TAO DOI TUONG container.setLayout(new FlowLayout(FlowLayout.CENTER)); container.add(lblText=new JLabel("HELLO WORLD!")); // XU LY SU KIEN this.addComponentListener(new ComponentAdapter(){ public void componentResized(ComponentEvent e){ lblText.setLocation((HelloWorld.this.container.getWidth()-lblText.getWidth())/2, (HelloWorld.this.container.getHeight()-lblText.getHeight())/2); } }); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ int ret = JOptionPane.showConfirmDialog(null,"Ban co muon thoat chuong trinh?","Thoat chuong trinh!",JOptionPane.YES_NO_OPTION); if(ret==JOptionPane.YES_OPTION) System.exit(0); }}); // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // HIEN THI JFRAME this.setTitle("Hello World!");GVHD: ĐỖ NHƯ TÀI - LUT Trang 12Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java this.setLocation(100,100); this.setSize(430,110); this.setVisible(true); container.setBackground(new Color(255,255,255)); this.show(); lblText.setLocation((container.getWidth()-lblText.getWidth())/2, (container.getHeight()-lblText.getHeight())/2); } public void actionPerformed(ActionEvent e){ } public static void main(String[] args) { HelloWorld helloWorld1 = new HelloWorld(); }}Ví dụ 2: Thiết kế chương trình DaySo có giao diện như sau:Hãy viết chương trình thực hiện các yêu cầu sau:a) Xử lý nút Thoát: có xác nhận Yes/No khi thoát.b) Xử lý nút Ngẫu nhiên: cho nhập số phần tử từ Input Dialog. Sau đó sinh giá trị ngẫu nhiên cho dãy số cách nhau bởi dấu phẩy.c) Xử lý các sự kiện trên nút Tất cả, Chẵn, Lẻ, Sắp xếp: liệt kê kết quả tương ứng vào phần Kết Quả.d) Xử lý nút “Xử lý”: lưu xuống tập tin dayso.txt nội dung phần Kết Quả.package btswing;import java.io.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DaySo extends JFrame implements ActionListener, ItemListener { private JRadioButton radAll,radChan, radLe; private JCheckBox chkSapXep; private JButton btnRandom, btnXuLy, btnThoat; private JTextField txtDaySo;GVHD: ĐỖ NHƯ TÀI - LUT Trang 13Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java private JTextArea txtKetQua; private Container container = getContentPane(); public DaySo() { // XU LY DU LIEU // TAO DOI TUONG radAll = new JRadioButton("Tat ca",true); radChan = new JRadioButton("Chan"); radLe = new JRadioButton("Le"); ButtonGroup btn = new ButtonGroup(); btn.add(radChan); btn.add(radLe);btn.add(radAll); txtDaySo = new JTextField(10); txtKetQua = new JTextArea(5,5); chkSapXep = new JCheckBox("Sap xep"); btnRandom = new JButton("Ngau nhien"); btnXuLy = new JButton("Xu ly"); btnThoat = new JButton("Thoat"); // LAYOUT container.setLayout(new BorderLayout()); JPanel p1 = new JPanel(new BorderLayout(5,0)); JPanel p11 = new JPanel(new GridLayout(3,1)); p11.add(new JLabel("Day so:")); p11.add(new JLabel("Tuy chon:")); p11.add(new JLabel("Ket qua:")); JPanel p12 = new JPanel(new GridLayout(3,1)); JPanel p121= new JPanel(new FlowLayout(FlowLayout.LEADING)); p121.add(radAll);p121.add(radChan);p121.add(radLe); p121.add(chkSapXep); p12.add(txtDaySo); p12.add(p121); JPanel p13 = new JPanel(new GridLayout(3,1)); p13.add(btnRandom); p1.add(p11,BorderLayout.WEST); p1.add(p13,BorderLayout.EAST); p1.add(p12,BorderLayout.CENTER); container.add(p1,BorderLayout.NORTH); container.add(new JScrollPane(txtKetQua, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS), BorderLayout.CENTER ); JPanel p2 = new JPanel(new FlowLayout(FlowLayout.CENTER)); p2.add(btnXuLy); p2.add(btnThoat); container.add(p2,BorderLayout.SOUTH); // XU LY SU KIEN this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ int ret = JOptionPane.showConfirmDialog(null,"Ban co muon thoat chuong trinh?","Thoat chuong trinh!",JOptionPane.YES_NO_OPTION);GVHD: ĐỖ NHƯ TÀI - LUT Trang 14Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java if(ret==JOptionPane.YES_OPTION) System.exit(0); }}); // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btnRandom.addActionListener(this); btnXuLy.addActionListener(this); chkSapXep.addItemListener(this); radAll.addItemListener(this); radChan.addItemListener(this); radLe.addItemListener(this); btnThoat.addActionListener(this); // HIEN THI JFRAME this.setTitle("Day so"); this.setLocation(100,100); this.setSize(350,300); this.setVisible(true); this.show(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==btnRandom){ String txt = ""; int n = Integer.parseInt(JOptionPane.showInputDialog(this,"Nhap so luong so can tao:")); for(int i=0;i<n;i++){ txt+= ","+(int)(Math.ceil(Math.random()*100)); } txt = txt.substring(1); txtDaySo.setText(txt); }else if(e.getSource()==btnXuLy){ try{ PrintWriter wt = new PrintWriter(new FileWriter("dayso.txt")); wt.println(txtKetQua.getText()); wt.close(); }catch(Exception ee){ System.out.println("Ghi tap tin bi loi!"); } }else if(e.getSource()==btnThoat){ int ret = JOptionPane.showConfirmDialog(null,"Ban co muon thoat chuong trinh?","Thoat chuong trinh!",JOptionPane.YES_NO_OPTION); if(ret==JOptionPane.YES_OPTION) System.exit(0); } } public void itemStateChanged(ItemEvent e){ int chanle = -1; if(radChan.isSelected()) chanle=0; else if(radLe.isSelected()) chanle=1; Object [] v = LayDuLieu(chanle,chkSapXep.isSelected()); String txt = ""; for(int i=0;i<v.length;i++) { txt += v[i]+ " "; } txtKetQua.setText(txt); txtKetQua.setLineWrap(true); } // chanle==-1 > lay tat ca // chanle==1 > lay ra so le // chanle==0 > lay ra so chan public Object[] LayDuLieu(int chanle,boolean sort){ Vector v = new Vector(); StringTokenizer tok = new StringTokenizer(txtDaySo.getText(),",");GVHD: ĐỖ NHƯ TÀI - LUT Trang 15Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java while(tok.hasMoreTokens()){ int n = Integer.parseInt(tok.nextToken()); if(n%2==chanle||chanle==-1){ v.add(new Integer(n)); } } Object []a_obj = v.toArray(); if(sort) Arrays.sort(a_obj); return a_obj; } public static void main(String[] args) { DaySo daySo1 = new DaySo(); }}IX. Bài tập thực hành :Các đối tượng cơ bản trong Swing (JFrame, JLabel, JTextField,… )Bài 44.Thiết kế chương trình Login có giao diện như sau:Hãy viết chương trình thực hiện các yêu cầu sau:a) Xử lý nút Thoát: có xác nhận Yes/No khi thoát.b) Xử lý nút đăng nhập, sự kiện nhấn Enter trên textbox username, password: khi người dùng gõ đúng chữ tại phần username là “Nguyen Van A”, và phần password là “NVA” thì thông báo đăng nhập thành công, ngược lại thông báo đăng nhập thất bại.Bài 45.Thiết kế chương trình ChangeBgColor có giao diện như sau:Hãy viết chương trình thực hiện các yêu cầu sau:a) Xử lý nút Thoát: có xác nhận Yes/No khi thoát.b) Xử lý nút Red, Green, Blue: điền giá trị màu đỏ, xanh lá cây, xanh dương tương ứng với 3 thành phần màu Red, Green, Blue vào textbox tương ứng và đổi màu nền của cửa sổ.c) Xử lý nút Random: phát sinh màu ngẫu nhiên, cập nhật textbox tương ứng, và màu nền cửa sổ.d) Xử lý nút Custom: căn cứ vào giá trị của Red, Green, Blue trên textbox để đặt màu nền.e) Xử lý nút Dialog: hiển thị cửa sổ màu cho chọn màu (JFileChooser).Bài 46.Thiết kế chương trình SoanThao có giao diện như sau:GVHD: ĐỖ NHƯ TÀI - LUT Trang 16Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaHãy viết chương trình thực hiện xử lý các sự kiện và lưu nội dung của phần văn bản xuống tập tin “SoanThao.txt” khi nhấn nút Lưu tập tin.Bài 47.Thiết kế chương trình Calculator có giao diện như sau:Bài 48.Thiết kế chương trình LietKeSoNguyenTo có giao diện như sau:Hãy viết chương trình thực hiện xử lý các sự kiện và lưu nội dung của phần văn bản xuống tập tin “nguyento.txt” khi nhấn nút Tiep tuc.GVHD: ĐỖ NHƯ TÀI - LUT Trang 17Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaX. GridBagLayout :• Đối tượng GridBagLayout tương tự như GridLayout (quản lý các đối tượng theo ô). Tuy nhiên, GridBagLayout có phần linh động hơn, ta có thể xác định mỗi đối tượng chiếm bao nhiêu ô, và nằm ở vị trí nào trên ô, cách co dãn, neo của từng đối tượng.• Cách sử dụng GridBagLayout:o Khai báo:private Container container = getContentPane();private GridBagLayout gbLayout = new GridBagLayout();private GridBagConstraints gbConstraints = new GridBagConstraints();Trong hàm tạo của Jframe:// LAYOUTcontainer.setLayout(gbLayout);gbConstraints.insets = new Insets(5,5,5,5); // khoảng hở giữa các đối tượngo Viết thêm hàm addComponent// them doi tuong vao dung GridBagLayoutprivate void addComponent(Component component,int row, int column, int nrow, int ncolumn, int weightrow, int weightcolumn){ gbConstraints.gridx = column; // vi tri cot gbConstraints.gridy = row; // vi tri dong gbConstraints.gridwidth = ncolumn; // so cot chiem gbConstraints.gridheight = nrow; // so dong chiem gbConstraints.weighty = weightrow; // ty le co dan theo dong gbConstraints.weightx = weightcolumn; // ty le co dan theo cot // rang buoc doi tuong gbLayout.setConstraints( component, gbConstraints ); container.add(component); // them vao container} // addComponento Thêm 1 đối tượng vào JFramegbConstraints.fill = GridBagConstraints.NONE; // dãn nởgbConstraints.anchor = GridBagConstraints.CENTER; // neo// dong 0 cột 0 chiếm 1 dòng 1 cột, so với các đối tượng khác không co dãnaddComponent(a_btn[0],0,0,1,1,0,0);• Chú ý: 1 ô chỉ chiếm 1 đối tượng, nếu hai đối tượng nằm cùng 1 ô thì phải sử dụng JPanel.package btswing;import java.awt.*;import java.awt.event.*;import javax.swing.*;GVHD: ĐỖ NHƯ TÀI - LUT Trang 18Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Javapublic class GridBagLayoutDemo1 extends JFrame { private JButton [] a_btn = new JButton[6]; private JTextField txtText = new JTextField(10); private Container container = getContentPane(); private GridBagLayout gbLayout = new GridBagLayout(); private GridBagConstraints gbConstraints = new GridBagConstraints(); public GridBagLayoutDemo1() { // XU LY DU LIEU for(int i=0;i<6;i++){ a_btn[i] = new JButton("Button "+i); } // LAYOUT container.setLayout(gbLayout); gbConstraints.insets = new Insets(5,5,5,5); gbConstraints.fill = GridBagConstraints.NONE; gbConstraints.anchor = GridBagConstraints.CENTER; addComponent(a_btn[0],0,0,1,1,0,0); addComponent(a_btn[1],0,1,1,1,0,0); addComponent(a_btn[2],1,1,1,1,0,0); gbConstraints.fill = GridBagConstraints.BOTH; addComponent(a_btn[3],1,0,2,1,0,0); addComponent(a_btn[4],0,2,2,1,0,0); addComponent(a_btn[5],2,1,1,2,0,0); addComponent(txtText,3,0,1,3,1,1); // XU LY SU KIEN this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // HIEN THI JFRAME this.setTitle("GridBagLayout Demo1!"); this.setLocation(100,100); this.setSize(430,300); this.setVisible(true); this.show(); } // them doi tuong vao dung GridBagLayout private void addComponent(Component component,int row, int column, int nrow, int ncolumn, int weightrow, int weightcolumn) { gbConstraints.gridx = column; // vi tri cot gbConstraints.gridy = row; // vi tri dong gbConstraints.gridwidth = ncolumn; // so cot chiem gbConstraints.gridheight = nrow; // so dong chiem gbConstraints.weighty = weightrow; // ty le co dan theo dong gbConstraints.weightx = weightcolumn; // ty le co dan theo cot gbLayout.setConstraints( component, gbConstraints ); // rang buoc doi tuong container.add(component); // them vao container } // addComponent public static void main(String[] args) {GVHD: ĐỖ NHƯ TÀI - LUT Trang 19Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java GridBagLayoutDemo1 gridBagLayoutDemo11 = new GridBagLayoutDemo1(); }}XI. ListBox và ComboBox :Ví dụ 1: package btswing;import java.io.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class ListBoxDemo extends JFrame implements ListSelectionListener { private JList colorJList; // list to display colors private final String colorNames[] = { "Black", "Blue", "Cyan", "Dark Gray", "Gray", "Green", "Light Gray", "Magenta", "Orange", "Pink", "Red", "White", "Yellow" }; private final Color colors[] = { Color.BLACK, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE,Color.YELLOW }; private Container container = getContentPane(); private DefaultListModel lst = new DefaultListModel(); public ListBoxDemo() { // XU LY DU LIEU // LAYOUT colorJList = new JList(lst); for(int i=0;i<colorNames.length;i++){ lst.add(i,colorNames[i]); } colorJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTION); container.setLayout(new FlowLayout()); container.add(new JScrollPane(colorJList)); // XU LY SU KIEN colorJList.addListSelectionListener(this); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // HIEN THI JFRAME this.setTitle("LixBox Demo!"); this.setLocation(100, 100);GVHD: ĐỖ NHƯ TÀI - LUT Trang 20Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java this.setSize(430, 300); this.setVisible(true); this.show(); } public void valueChanged( ListSelectionEvent event ) { getContentPane().setBackground(colors[ colorJList.getSelectedIndex()]); } public static void main(String[] args) { ListBoxDemo listBoxDemo1 = new ListBoxDemo(); }}Ví dụ 2: package btswing;import java.io.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class ComboBoxDemo extends JFrame implements ItemListener { private JComboBox colorBox; // list to display colors private final String colorNames[] = { "Black", "Blue", "Cyan", "Dark Gray", "Gray", "Green", "Light Gray", "Magenta", "Orange", "Pink", "Red", "White", "Yellow" }; private final Color colors[] = { Color.BLACK, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE,Color.YELLOW }; private Container container = getContentPane(); private DefaultComboBoxModel lst = new DefaultComboBoxModel(); public ComboBoxDemo() { // XU LY DU LIEU // LAYOUT colorBox = new JComboBox(lst); for(int i=0;i<colorNames.length;i++){ lst.addElement(colorNames[i]); } container.setLayout(new FlowLayout()); container.add(new JScrollPane(colorBox)); // XU LY SU KIEN colorBox.addItemListener(this); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // HIEN THI JFRAME this.setTitle("ComboBox Demo!"); this.setLocation(100, 100);GVHD: ĐỖ NHƯ TÀI - LUT Trang 21Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình Java this.setSize(430, 300); this.setVisible(true); this.show(); } public void itemStateChanged( ItemEvent event ) { getContentPane().setBackground(colors[ colorBox.getSelectedIndex()]); } public static void main(String[] args) { ComboBoxDemo comboBoxDemo1 = new ComboBoxDemo(); }}XII. Bài tập thực hành :Bài tập 1. Thiết kế giao diện QuanLySinhVien :GVHD: ĐỖ NHƯ TÀI - LUT Trang 22Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBÀI TẬP LẬP TRÌNH JAVAÔN TẬP o0o Thiết kế chương trình QuanLySinhVien có giao diện như sau:Hãy viết chương trình thực hiện các chức năng sau đây:a. Khi khung ứng dụng hiển thị, tất cả các nút đều mờ đi trừ nút Load, Exit.b. Xử lý sự kiện Thoát: khi người dùng nhấn nút Exit hay nút Close trên thanh tiêu đề. Xác nhận coi người dùng muốn thoát không.c. Xử lý sự kiện nhấn nút Load: •Hiển thị hộp thoại cho người dùng chọn tập tin dữ liệu.•Nạp dữ liệu lưu trong tập tin lên các đối tượng của chương trình, biết cấu trúc tập tin dữ liệu như sau:a. Mỗi dòng lưu 1 sinh viênb. Các dữ liệu các nhau bởi dấu chấm phẩyc. Thứ tự dữ liệu trên một dòng: MaSV;HoTen;Khoa;Lop;Diem;PhaiVí dụ: 0111438;Nguyen Van A;CNTT;TH0102;9;Nam0111439;Tran Thi B;Toan;TT0101;8;Nu0111440;Dinh Van C;Sinh;SH0103;7;Nam•Kích hoạt các nút còn lại của ứng dụng.d. Xử lý các sự kiện chọn mã sinh viên trong hộp MaSV, nhấn nút Pre, nhấn nút Next, chọn sinh viên trong danh sách.•Lưu ý:a. Hiển thị thông tin sinh viên lên các mục tương ứng trên ứng dụng.b. Cập nhật vị trí của sinh viên tương ứng: hộp MaSV, danh sách sinh viên, vị trí sinh viên / tổng sinh viên.e. Tính tổng điểm trung bình của các sinh viên.f. Xử lý nhấn nút Add, Delete, Update. Ràng buộc nhập điểm bắt buộc phải là số.Sự kiện nhấn nút Save: cập nhật lại tập tin ban đầu.GVHD: ĐỖ NHƯ TÀI - LUT Trang 23Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBài 1. Hãy tạo khung với giao diện dưới (không được dùng công cụ để thiết kế và null layout):• Hãy nạp dữ liệu từ tập tin dssv.txt (lưu tại thư mục của ứng dụng) vào các thành phần Ma sinh vien, Ho ten, Gioi tinh. Tập tin có dạng: mỗi dòng lưu thông tin của sinh viên lần lượt Mã số sinh viên, Họ tên, Giới tính (Nam/Nu) cách bởi dấu “_”.Ví dụ: 01234_Nguyen Van A_Nam02468_Tran Thi B_Nu• Xử lý các sự kiện sau:a. Thoat: khi thoát ứng dụng hay nhấn nút Thoat.b. Chọn mã sinh viên, các thông tin khác được tự động điền tương ứng sau lựa chọn.c. Them, Xoa: thêm, xóa thông tin đăng ký vào danh sách.d. Cập nhật lại giá trị nhãn So SV dang ky khi thêm, xóa.• Xử lý sự kiện nút Xuat: ghi danh sách tham gia ra tập tin danhsach.txt theo mẫu.DANH SACH DANG KY THAM GIA TAP HUANNgay cap nhat: 04 – 08 – 2006 Tong sinh vien: 2SoTT Ma so Ho ten Gioi tinh Ghi chu 01 01234 Nguyen Van A Nam Lop 0102 02468 Tran Thi B Nu Lop 02Lưu ý ngày cập nhật trong tập tin là ngày hiện tại của hệ thống.GVHD: ĐỖ NHƯ TÀI - LUT Trang 24Lập trình JAVA (10 – 2010) Ngôn ngữ lập trình JavaBài 2. Tạo form với giao diện như sau• Nạp dữ liệu từ file MatHang.txt cho ComboBox “Ten Hang”, và xử lý sự kiện khi chọn một mặt hàng trong ComboBox thì chương trình sẽ tự động điền đơn giá của mặt hàng đó vào TextField “Don Gia”. “Don gia” không cho phép nhập.• Xử lý sự kiện cho nút “Them”:Khi nhấn nút, chương trình sẽ:- Thêm một dòng vào ListBox. Mỗi dòng gồm có: Ten hang, Don gia, So luong, Thanh tien, trong đó “Thanh tien” = “So Luong” x “Don gia” (các thành phần được nối cách nhau bằng dấu chấm phẩy). - Cập nhật lại giá trị của Label “Tong cong” (bằng tổng tất cả “Thanh tien” của các mặt hàng được thêm vào ListBox)• Xử lý sự kiện cho nút “Thoat” (dừng chương trình).• Xử lý sự kiện cho nút “Ghi hoa don”: Ghi trên List xuống file HoaDon.txt theo mẫu sau (đường ngang là các dấu “_” ):HOA DON BAN LETen KH: Nguyen Van TeoDia chi: 123 Tran Hung Dao - Q5_____________________________________CPU Intel 3.0G_115.0$_2_230.0$MB Asus 845_76.0$_3_228.0$HDD SG 200G_120.0$_5_600.0$FDD Mitsumi_6.5$_10_65.0$DDRAM 256M_22.5$_6_135.0$_____________________________________Tong cong: 1258.0$ o0o (Hết)GVHD: ĐỖ NHƯ TÀI - LUT Trang 25

Tài liệu liên quan

  • Ôn thi thực hành lập trình window Ôn thi thực hành lập trình window
    • 15
    • 910
    • 4
  • Thực hành lập trình ứng dụng Thực hành lập trình ứng dụng
    • 3
    • 657
    • 3
  • Bài tập thực hành lập trình hướng đối tượng   java cơ bản Bài tập thực hành lập trình hướng đối tượng java cơ bản
    • 6
    • 10
    • 121
  • Tài liệu Giáo trình thực hành Lập trình hệ thống doc Tài liệu Giáo trình thực hành Lập trình hệ thống doc
    • 39
    • 721
    • 2
  • Tài liệu Hướng dẫn thực hành Lập trình C trên Windows pdf Tài liệu Hướng dẫn thực hành Lập trình C trên Windows pdf
    • 8
    • 939
    • 2
  • Tài liệu ÔN TẬP BÀI TẬP THỰC HÀNH LẬP TRÌNH doc Tài liệu ÔN TẬP BÀI TẬP THỰC HÀNH LẬP TRÌNH doc
    • 16
    • 724
    • 3
  • THỰC HÀNH LẬP TRÌNH JAVA _NGÔN NGỮ LẬP TRÌNH JAVA pot THỰC HÀNH LẬP TRÌNH JAVA _NGÔN NGỮ LẬP TRÌNH JAVA pot
    • 25
    • 1
    • 14
  • Thực hành lập trình hợp ngữ   hướng dẫn sử dụng công cụ debug Thực hành lập trình hợp ngữ hướng dẫn sử dụng công cụ debug
    • 9
    • 575
    • 1
  • bài thực hành lập trình mobile với java đại học bách khoa bài thực hành lập trình mobile với java đại học bách khoa
    • 14
    • 545
    • 0
  • hướng dẫn thực hành lập trình java với eclipse hướng dẫn thực hành lập trình java với eclipse
    • 6
    • 949
    • 8

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

(556 KB - 25 trang) - THỰC HÀNH LẬP TRÌNH JAVA _NGÔN NGỮ LẬP TRÌNH JAVA pot Tải bản đầy đủ ngay ×

Từ khóa » Bảng Cửu Chương Bằng Java