Bài thực hành ngôn ngữ lập trình java

package baocao; import java.applet.*; import java.awt.*; import java.awt.event.*; public class Bai32 extends Applet implements ActionListener,ItemListener { Label lb=new Label("The item is display here"); CheckboxGroup cg=new CheckboxGroup(); Checkbox nam=new Checkbox("Male", cg, true); Checkbox nu=new Checkbox("Female", cg, false); List list1 =new List(3,false); Choice ch1=new Choice(); Button exit=new Button("Exit"); Panel pn=new Panel(); GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbs=new GridBagConstraints();

docx54 trang | Chia sẻ: tienthan23 | Lượt xem: 2297 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài thực hành ngôn ngữ lập trình java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
System.out.println("Nhap gio ket thuc "); b = input.nextInt(); } public int tinhtien() { int sotien=0; if(a> 0 && b<=18) sotien = (b-a)*45000; if(a>0 && b>18) sotien = (18-a)*45000 + (b-18)*60000; if(a>18) sotien = (b-a)*60000; return sotien; } public static void main(String[] str) { Bai4 k =new Bai4(); k.nhap(); System.out.println("So tien can fai tra la : "+k.tinhtien()); } } Nhập vào tháng năm bất kì in ra số ngày ứng với tháng năm đó: package baocao; import java.util.Scanner; public class Bai5 { int nam,thang; public Bai5() { } public boolean namnhuan(int nam) { if((nam%4==0 && nam%100!=0)||(nam%400==0)) return true; else return false; } public void nhap() { Scanner input= new Scanner (System.in); System.out.println("Nhap nam thang "); System.out.print("Nam "); nam=input.nextInt(); System.out.print("Thang "); thang=input.nextInt(); } public void inra() { switch(thang) { case 4: case 6: case 9: case 11: System.out.println("Thang "+thang+" nam "+nam+" co 30 ngay");break; case 2 : if(namnhuan(nam)) {System.out.println("Thang "+thang+" nam"+nam+" co 29 ngay"); break; } else {System.out.println("Thang "+thang+" nam "+nam+" co 28 ngay"); break;} default: System.out.println("Thang "+thang+" nam "+nam+" co 31 ngay");break; } } public static void main (String[] args) { Bai5 temp= new Bai5(); temp.nhap(); temp.inra(); } } Cấu trúc lặp Viết chương trình tính: 1+1/2+1/3+...+1/n package baocao; import java.util.Scanner; public class Bai6 { int n; public void nhapn() { Scanner input=new Scanner(System.in); System.out.println("Nhap n"); n=input.nextInt(); } public void tinh() { float s=0; for(int i=1;i<=n;i++) s+=(float) 1/i; System.out.println("S= "+s); } public static void main (String[] args) { Bai6 b6=new Bai6(); b6.nhapn(); b6.tinh() ; } } Viết chương trình tính : S=15-1+1/2-1/3!+....+(-1)n 1/n! package baocao; import java.util.Scanner; public class Bai7 { int n; public void nhap() { Scanner input =new Scanner(System.in); System.out.print("Nhap n = "); n = input.nextInt(); } public int giaithua(int m) { if(m==0) return 1; else return m*giaithua(m-1); } public void tinh() { float s=15.0f; for(int i=1;i<=n;i++) { float p = 1.0f/giaithua(i); p*=Math.pow(-1,i); s+=p; } System.out.print("S = " + s); } public static void main(String[] str) { Bai7 b = new Bai7(); b.nhap(); b.tinh(); } } Viết chương trình tính : S=1+1/3!+1/5!+..+1/(2n-1)! package baocao; import java.util.Scanner; public class Bai8 { int n; public void nhap() { Scanner input =new Scanner(System.in); System.out.println("Nhap n : "); n = input.nextInt(); } public int giaithua(int m) { if(m==0) return 1; else return m*giaithua(m-1); } public void tinh() { float s=0.0f; for(int i=1;i<2*n;i+=2) s+=1.0f/giaithua(i); System.out.print("S = " + s); } public static void main(String[] str) { Bai8 b = new Bai8(); b.nhap(); b.tinh(); } } Tính n!! = 1*3*5*..*n(n lẽ) = 2*4*6*.*n(n chẵn) package baocao; import java.util.Scanner; public class Bai9 { int n; public void nhap() { Scanner input=new Scanner(System.in); System.out.print("Nhap n= "); n=input.nextInt(); } public void tinh() { float gt=1; //int i; for(int i=n;i>=1;i-=2) gt*=i; //for(i=((n%2)==0)?2:1;i<=n;i+=2) gt*=i; System.out.println(n+"!!= "+gt); } public static void main(String[] args) { // TODO Auto-generated method stub Bai9 dt=new Bai9(); dt.nhap(); dt.tinh(); } } Tính tổng và tích các chữ số của một số nguyên dương m cho trước: package baocao; import java.util.Scanner; public class Bai10 { int m; public void nhap() { Scanner input=new Scanner(System.in); System.out.print("Nhap so nguyen duong m= "); m=input.nextInt(); } public void tinhtong() { int s=0,p=1,tam=m; while(tam!=0) { s+=tam%10; p*=tam%10; tam=tam/10; } System.out.println("Tong cac chu so cua "+m+" la "+s); System.out.println("Tich cac chu so cua "+m+" la "+p); } public static void main(String[] args) { // TODO Auto-generated method stub Bai10 dt=new Bai10(); dt.nhap(); dt.tinhtong(); } } Nhập một số và kiểm tra có phải nguyên tố không? package baocao; import java.util.Scanner; public class Bai11 { static int n; public int get() { return n; } public void nhap() { Scanner input = new Scanner(System.in); System.out.print("Nhap so : "); n = input.nextInt(); } public boolean check() { int i=2; if (n == 0 || n == 1) return false; while (i <= n/2) { if (n%i == 0) return false; i ++; } return true; } public static void main(String args[]) { Bai11 a = new Bai11(); a.nhap(); if (a.check()) System.out.println(n + " la so nguyen to"); else System.out.println(a.get() + " ko phai la so nguyen to"); } } Kiểm tra số P có phải là số chính phương không? package baocao; import java.util.Scanner; public class Bai12 { static int n; private Scanner input; void nhap(){ input=new Scanner(System.in); System.out.printf("Nhap n= "); n=input.nextInt(); } public boolean chinhphuong(){ for(int i=0;i<=n;i++) if(i*i==n) return true; return false; } public static void main(String args[]) { Bai12 dt =new Bai12(); dt.nhap(); if(dt.chinhphuong()) System.out.println(n+ " la so chinh phuong"); else System.out.println(n+ " khong la so chinh phuong"); } } Kiểm tra số M có phải là số đối xứng không? package baocao; import java.util.Scanner; public class Bai13 { static int n; private Scanner input; public void nhap(){ input=new Scanner(System.in); System.out.print("Nhap n="); n=input.nextInt(); } public void doixung(int n){ int dao=0,tam=n; while(tam!=0) { dao*=10; dao+=tam%10; tam/=10; } if(dao==n) System.out.println(n+ " la so doi xung"); else System.out.println(n+" Khong phai la so doi xung"); } public static void main(String[] args) { // TODO Auto-generated method stub Bai13 dt=new Bai13(); dt.nhap(); dt.doixung(n); } } In ra các số nguyên tố nhỏ hơn hoặc bằng số nguyên dương n cho trước: package baocao; import java.util.Scanner; public class Bai14 { int n; private Scanner input; public void nhap(){ input=new Scanner(System.in); System.out.print("Nhap n="); n=input.nextInt(); } public boolean nto(int n) { if(n==0||n==1) return false; else for(int i=2;i<n;i++) if(n%i==0) return false; return true; } public void in(){ System.out.println("Cac so nguyen to <= " +n+ " la : "); for(int i=2;i<=n;i++) if(nto(i)) System.out.print(" "+i); } public static void main(String[] args) { // TODO Auto-generated method stub Bai14 dt=new Bai14(); dt.nhap(); dt.in(); } } In ra các số hoàn hảo nhỏ hơn 1000. ( Ví dụ : 6=1+2+3, 28=1+2+4+7+14) package baocao; public class Bai15 { public boolean hh(int n) { int sum=0; for (int i=1;i<n;i++) if(n%i==0) sum+=i; if (sum==n) return true; return false; } public void inra() { System.out.println ("Cac so hoan hao <1000 la: "); for(int i=1;i<1000;i++) if(hh(i)) System.out.println(i); } public static void main(String[] args) { Bai15 dt=new Bai15(); dt.inra(); } } In ra n chữ số Fibonaci đầu tiên: package baocao; public class Bai16 { int n; public Bai16(int m) { n=m; } public int fibo(int i) { if(i==1||i==2) return 1; else return (fibo(i-1)+fibo(i-2)); } public void inra() { System.out.println(n+" Chu so Fibonaci dau tien la: "); for(int i=1;i<=n;i++) System.out.print(fibo(i)+" "); } public static void main (String[] args) { Bai16 dt=new Bai16(10); dt.inra(); } } Kiểm tra số K có thuộc dãy Fibonaci hay không? package baocao; import java.util.Scanner; public class Bai17 { int n; private Scanner input; public void nhap() { input=new Scanner(System.in); System.out.print("Nhap n= "); n=input.nextInt(); } public void testnto() { int x=0,y=1,z=0; while(z<n) { z=x+y; x=y; y=z; } if(z==n) System.out.println(n+ " la so FIBONACI"); else System.out.println(n+" Khong phai la so FBONACI"); } public static void main(String[] args) { // TODO Auto-generated method stub Bai17 dt=new Bai17(); dt.nhap(); dt.testnto(); } } Tìm ước chung lớn nhất và bội chung nhỏ nhất của 2 số a và b: package baocao; import java.util.Scanner; public class Bai18 { int a,b; private Scanner input; public void nhap() { input=new Scanner(System.in); System.out.println("Nhap 2 so: "); System.out.print("a= "); a=input.nextInt(); System.out.print("b= "); b=input.nextInt(); } public void ucbc() { int x=a,y=b,uc; if(x==y) uc=x; else{ while(x!=y) {if(x>y) x=x-y; else y=y-x; } uc=x; } System.out.println("UCLN cua "+a+" va "+b+" la: "+uc); System.out.println("BCNN cua "+a+" va "+b+" la: "+(a*b)/uc); } public static void main(String[] args) { // TODO Auto-generated method stub Bai18 dt=new Bai18(); dt.nhap(); dt.ucbc(); } } LẬP TRÌNH AWT-SWING Giải phương trình bậc nhất: package baocao; import java.awt.*; import java.awt.event.*; public class Bai19 extends Frame implements ActionListener { Label lb1,lb2,lb3,lb; TextField txta,txtb,txtkq; Button kq,reset,thoat; Panel pn,pn1,pn2,pn3; public void GUI() { lb=new Label("Giai phuong trinh bac nhat"); lb1=new Label("Nhap a"); lb2=new Label("Nhap b"); lb3=new Label("Ket qua"); txta=new TextField(); txtb=new TextField(); txtkq=new TextField(); kq=new Button("Tinh"); reset=new Button("Reset"); thoat=new Button("Thoat"); kq.addActionListener(this); reset.addActionListener(this); thoat.addActionListener(this); pn=new Panel(new GridLayout(3,1)); pn1=new Panel(new GridLayout(1,1)); pn2=new Panel(new GridLayout(3,2)); pn3=new Panel(new GridLayout(1,3)); pn1.add(lb); pn2.add(lb1); pn2.add(txta); pn2.add(lb2); pn2.add(txtb); pn2.add(lb3); pn2.add(txtkq); pn3.add(kq); pn3.add(reset); pn3.add(thoat); pn.add(pn1); pn.add(pn2); pn.add(pn3); add(pn); setSize(400,300); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==kq) { int a=Integer.parseInt(txta.getText()); int b=Integer.parseInt(txtb.getText()); if(a!=0) txtkq.setText(Float.toString((float)-b/a) ); else if(b==0) txtkq.setText("Pt vo so nghiem"); else txtkq.setText("Pt vo nghiem"); } if(e.getSource()==reset) { txta.setText(""); txtb.setText(""); txtkq.setText(""); } if(e.getSource()==thoat) System.exit(0); } public Bai19(String st) { super(st); GUI(); } public static void main (String[] args) { new Bai19("Giai pt bac 1"); } } Minh họa các phép toán: package baocao; import java.awt.*; import java.awt.event.*; public class Bai20 extends Frame implements ActionListener { Label lb,lb1,lb2,lb3; TextField txta,txtb,txtkq; Button cong,tru,nhan,chia,exit,reset; Panel pn,pn1,pn2,pn3,pn4; public void GUI() { lb=new Label("Minh hoa cac phep toan"); lb1=new Label("Nhap a"); lb2=new Label("Nhap b"); lb3=new Label("Ket qua"); txta=new TextField(""); txtb=new TextField(""); txtkq=new TextField(""); cong=new Button("Cong"); tru=new Button("Tru"); nhan=new Button("Nhan"); chia=new Button("Chia"); exit=new Button("Exit"); reset=new Button("Reset"); cong.addActionListener(this); tru.addActionListener(this); nhan.addActionListener(this); chia.addActionListener(this); exit.addActionListener(this); reset.addActionListener(this); pn=new Panel(new GridLayout(4,1)); pn1=new Panel(new GridLayout(1,1)); pn2=new Panel(new GridLayout(3,2)); pn3=new Panel(new FlowLayout(FlowLayout.CENTER)); pn4=new Panel(new FlowLayout(FlowLayout.CENTER)); pn1.add(lb); pn2.add(lb1); pn2.add(txta); pn2.add(lb2); pn2.add(txtb); pn2.add(lb3); pn2.add(txtkq); pn3.add(cong); pn3.add(tru); pn3.add(nhan); pn3.add(chia); pn4.add(exit); pn4.add(reset); pn.add(pn1); pn.add(pn2); pn.add(pn3); pn.add(pn4); add(pn); //setSize(400,300); this.setBounds(200,200,400,300); //pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==reset) { txta.setText(""); txtb.setText(""); txtkq.setText(""); } else if(e.getSource()==exit) System.exit(0); else { double a=Double.parseDouble(txta.getText()); double b=Double.parseDouble(txtb.getText()); if (e.getSource()==cong) txtkq.setText(Double.toString(a+b)); if (e.getSource()==tru) txtkq.setText(Double.toString(a-b)); if (e.getSource()==nhan) txtkq.setText(Double.toString(a*b)); if (e.getSource()==chia) txtkq.setText(Double.toString(a/b)); } } public Bai20(String st) { super(st); GUI(); } public static void main (String[] args) { new Bai20("Minh hoa cac phep toan"); } } In ra các số nguyên tố nhỏ hơn hoặc bằng số n cho trước: package baocao; import java.awt.*; import java.awt.event.*; public class Bai21 extends Frame implements ActionListener { //String chuoi1=new String(); //String chuoi2=new String(" "); Label lb,lb1,lb2; TextField txtnhap,txtkq; Button tim,reset,exit; Panel pn,pn1,pn2,pn3; public void GUI1(){ lb=new Label("Cac so nguyen to <=n "); lb1=new Label("Nhap n:"); lb2=new Label("KQ:"); txtnhap=new TextField(); txtkq=new TextField(); txtkq.setEditable(false); tim=new Button("Tim"); exit=new Button("Exit"); reset=new Button("Reset"); tim.addActionListener(this); exit.addActionListener(this); reset.addActionListener(this); pn=new Panel(new GridLayout(3,1)); pn1=new Panel(new GridLayout(1,1)); pn2=new Panel(new GridLayout(2,2)); pn3=new Panel(new FlowLayout(FlowLayout.CENTER)); pn1.add(lb); pn2.add(lb1); pn2.add(txtnhap); pn2.add(lb2); pn2.add(txtkq); pn3.add(tim); pn3.add(reset); pn3.add(exit); pn.add(pn1); pn.add(pn2); pn.add(pn3); add(pn); this.setBounds(200,200,400,300); this.setVisible(true); } public boolean Test(int t) { if(t==0||t==1) return false; else for(int i=2;i<=(t/2);i++) if((t%i)==0) return false ; return true; } public void actionPerformed(ActionEvent e) { if(e.getSource()==reset) { txtnhap.setText(""); txtkq.setText(""); } if(e.getSource()==exit) System.exit(0); if(e.getSource()==tim) { int n=Integer.parseInt(txtnhap.getText()); String chuoi1=""; if(n>=2)for(int i=2;i<=n;i++) if(Test(i)) chuoi1+=" "+i; /* {chuoi1=chuoi1.concat(Integer.toString(i)); chuoi1=chuoi1.concat(chuoi2); }*/ txtkq.setText(chuoi1); //chuoi1=""; } } public Bai21(String st){ super(st); GUI1(); } public static void main (String[] args) { new Bai21("Tim so nguyen to"); } } Kiểm tra một số có thuộc dãy Fibonaci hay không? package baocao; import java.awt.*; import java.awt.event.*; public class Bai22 extends Frame implements ActionListener{ Label lb,lb1,lb2; TextField txtnhap,txtkq; Button ok,reset,exit; Panel pn=new Panel(); GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbs=new GridBagConstraints(); public Bai22(String st) { super(st); lb=new Label("Kiem tra a co thuoc day Fibonaci"); lb1=new Label("Nhap a:"); lb2=new Label("KQ: "); txtnhap=new TextField(20); txtkq=new TextField(20); ok=new Button("OK"); reset=new Button("Reset"); exit=new Button("Exit"); ok.addActionListener(this); reset.addActionListener(this); exit.addActionListener(this); //pn=new Panel(new GridBagLayout()); gbs.insets=new Insets(2, 2, 2, 2); gbs.fill=GridBagConstraints.BOTH; gbs.gridx=1; gbs.gridy=1; gbs.gridwidth=6; gbs.gridheight=1; gb.setConstraints(lb, gbs); gbs.gridx=1; gbs.gridy=2; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(lb1, gbs); gbs.gridx=3; gbs.gridy=2; gbs.gridwidth=4; gbs.gridheight=1; //gbs.ipadx=4; gb.setConstraints(txtnhap, gbs); gbs.gridx=1; gbs.gridy=3; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(lb2, gbs); gbs.gridx=3; gbs.gridy=3; gbs.gridwidth=4; gbs.gridheight=1; gb.setConstraints(txtkq, gbs); //gbs.fill=GridBagConstraints.BOTH; gbs.gridx=1; gbs.gridy=4; gbs.gridwidth=2; gbs.gridheight=1; //gbs.weightx=1; gb.setConstraints(ok, gbs); gbs.gridx=3; gbs.gridy=4; gbs.gridwidth=2; gbs.gridheight=1; //gbs.weightx=1; gb.setConstraints(reset, gbs); gbs.gridx=5; gbs.gridy=4; gbs.gridwidth=2; gbs.gridheight=1; //gbs.weightx=1; gb.setConstraints(exit, gbs); pn.add(lb); pn.add(lb1); pn.add(txtnhap); pn.add(lb2); pn.add(txtkq); pn.add(ok); pn.add(reset); pn.add(exit); pn.setLayout(gb); this.add(pn); this.setSize(400, 200); setVisible(true); } public boolean fibo(int n) { int x=0,y=1,z=0; if(n!=0) {while(z<n) { x=y; y=z; z=x+y; } if(z==n) return true; } return false; } public void actionPerformed(ActionEvent e) { if(e.getSource()==exit) System.exit(0); else if(e.getSource()==reset) { txtnhap.setText(""); txtkq.setText(""); } else { int a=Integer.parseInt(txtnhap.getText()); if(fibo(a)) txtkq.setText(a+" la so FIBONACI"); else txtkq.setText(a+" khong la so FIBONACI"); } } public static void main(String[] args) { // TODO Auto-generated method stub new Bai22("Kiem tra fibo"); } } Mô tả máy tính điện tử cá nhân package baocao; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Bai23 extends JFrame implements ActionListener{ GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbc=new GridBagConstraints(); final int MAX_INPUT_LENGTH=20; final int INPUT_MODE=0; final int RESULT_MODE=1; final int ERROR_MODE=2; int displayMode=INPUT_MODE; boolean ClearOnNextDigit,percent; double lastnumber=0; String lastoperator="0"; private JTextField txtkq=new JTextField("0",20); private JButton jbnButtons[]; JPanel jpn=new JPanel(); public Bai23(String s) { super(s); jbnButtons=new JButton[23]; gbc.insets=new Insets(3, 3, 3, 3); gbc.fill=GridBagConstraints.BOTH; for(int i=0;i<=9;i++) jbnButtons[i]= new JButton(String.valueOf(i)); jbnButtons[10]=new JButton("+/-"); jbnButtons[11]=new JButton("."); jbnButtons[12]=new JButton("="); jbnButtons[13]=new JButton("/"); jbnButtons[14]=new JButton("*"); jbnButtons[15]=new JButton("-"); jbnButtons[16]=new JButton("+"); jbnButtons[17]=new JButton("sqrt"); jbnButtons[18]=new JButton("1/x"); jbnButtons[19]=new JButton("%"); jbnButtons[20]=new JButton("Backspace"); jbnButtons[21]=new JButton("CE"); jbnButtons[22]=new JButton("C"); gbc.gridx=0; gbc.gridy=0; gbc.gridheight=2; gbc.gridwidth=5; gb.setConstraints(txtkq, gbc); gbc.gridx=0; gbc.gridy=2; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[20], gbc); gbc.gridx=2; gbc.gridy=2; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[21], gbc); gbc.gridx=4; gbc.gridy=2; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[22], gbc); gbc.gridx=0; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[7], gbc); gbc.gridx=1; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[8], gbc); gbc.gridx=2; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[9], gbc); gbc.gridx=3; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[13], gbc); gbc.gridx=4; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[17], gbc); gbc.gridx=0; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[4], gbc); gbc.gridx=1; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[5], gbc); gbc.gridx=2; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[6], gbc); gbc.gridx=3; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[14], gbc); gbc.gridx=4; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[18], gbc); gbc.gridx=0; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[1], gbc); gbc.gridx=1; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[2], gbc); gbc.gridx=2; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[3], gbc); gbc.gridx=3; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[15], gbc); gbc.gridx=4; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[19], gbc); gbc.gridx=0; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[0], gbc); gbc.gridx=1; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[10], gbc); gbc.gridx=2; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[11], gbc); gbc.gridx=3; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[16], gbc); gbc.gridx=4; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[12], gbc); for(int i=0;i<=22;i++) {jpn.add(jbnButtons[i]); jbnButtons[i].addActionListener(this); } jpn.add(txtkq); jpn.setLayout(gb); this.add(jpn); pack(); this.setVisible(true); //clearAll(); } public void actionPerformed(ActionEvent e) { double result=0; for(int i=0;i<jbnButtons.length;i++) { if(e.getSource()==jbnButtons[i]) { switch(i) { case 0: addDigitToDisplay(i);break; case 1: addDigitToDisplay(i);break; case 2: addDigitToDisplay(i);break; case 3: addDigitToDisplay(i);break; case 4: addDigitToDisplay(i);break; case 5: addDigitToDisplay(i);break; case 6: addDigitToDisplay(i);break; case 7: addDigitToDisplay(i);break; case 8: addDigitToDisplay(i);break; case 9: addDigitToDisplay(i);break; case 10: processSignChange();break; case 11: addDecimalPoint();break; case 12: processEquals();break; case 13: processOperator("/");break; case 14: processOperator("*");break; case 15: processOperator("-");break; case 16: processOperator("+");break; case 17: if(displayMode!=ERROR_MODE) { try{ if(getDisplayString().indexOf("-")==0) displayError("Khong hop le"); result=Math.sqrt(getNumberInDisplay()); displayResult(result); }catch(Exception ex){ displayError("Khong hop le"); displayMode=ERROR_MODE; } }break; case 18: if(displayMode!=ERROR_MODE){ try{ if(getNumberInDisplay()==0) displayError("Khong hop le"); result=1/getNumberInDisplay(); displayResult(result); }catch(Exception ex){ displayError("Loi chia 0"); displayMode=ERROR_MODE; } }break; case 19: if(displayMode!=ERROR_MODE){ try{ result=getNumberInDisplay()/100; displayResult(result); }catch(Exception ex){ displayError("Khong hop le"); displayMode=ERROR_MODE; } }break; case 20: if(displayMode!=ERROR_MODE){ setDisplayString(getDisplayString().substring(0, getDisplayString().length()-1)); if(getDisplayString().length()<1) setDisplayString("0"); }break; case 21: clearExisting();break; case 22: clearAll();break; } } } } void setDisplayString(String s){ txtkq.setText(s); } String getDisplayString(){ return txtkq.getText(); } void addDigitToDisplay(int digit){ if(ClearOnNextDigit && !lastoperator.equals("0")) setDisplayString(""); String inputString=getDisplayString(); if(inputString.indexOf("0")==0 && inputString.indexOf(".")<0) inputString=inputString.substring(1); if((!inputString.equals("0")||digit>0)&&inputString.length()<MAX_INPUT_LENGTH) setDisplayString(inputString+digit); displayMode=INPUT_MODE; ClearOnNextDigit=false; } void addDecimalPoint(){ displayMode=INPUT_MODE; //if(ClearOnNextDigit) setDisplayString(""); String inputString =getDisplayString(); if(inputString.indexOf(".")<0) setDisplayString(new String(inputString+".")); } void processSignChange(){ if(displayMode==INPUT_MODE) { String input=getDisplayString(); if(input.length()>0 && !input.equals("0")) { if(input.indexOf("-")==0) setDisplayString(input.substring(1)); else setDisplayString("-"+input); } }else if(displayMode==RESULT_MODE) { double numberInDisplay=getNumberInDisplay(); if(numberInDisplay!=0) displayResult(-numberInDisplay); } } void clearAll(){ setDisplayString("0"); lastoperator="0"; lastnumber=0; displayMode=INPUT_MODE; ClearOnNextDigit=true; } void clearExisting(){ setDisplayString("0"); ClearOnNextDigit=true; displayMode=INPUT_MODE; } double getNumberInDisplay(){ String input=txtkq.getText(); return Double.parseDouble(input); } void processOperator(String op){ if(displayMode!=ERROR_MODE) { double numberInDisplay=getNumberInDisplay(); if(!lastoperator.equals("0")) { try{ double result=processLastOperator(); displayResult(result); lastnumber=result; }catch(Exception e){} }else lastnumber=numberInDisplay; ClearOnNextDigit=true; lastoperator=op; } } void processEquals(){ double result=0; if(displayMode!=ERROR_MODE){ try{ result=processLastOperator(); displayResult(result); }catch(Exception e){ displayError("Loi chia 0"); }lastoperator="0"; } } double processLastOperator() throws DivideByZeroException{ double result = 0; double numberInDisplay = getNumberInDisplay(); if (lastoperator.equals("/")) { if (numberInDisplay == 0) throw (new DivideByZeroException()); result = lastnumber / numberInDisplay; } if (lastoperator.equals("*")) result = lastnumber * numberInDisplay; if (lastoperator.equals("-")) result = lastnumber - numberInDisplay; if (lastoperator.equals("+")) result = lastnumber + numberInDisplay; if (lastoperator.equals("0")) result=numberInDisplay; return result; } void displayResult(double result){ setDisplayString(Double.toString(result)); lastnumber = result; displayMode = RESULT_MODE; ClearOnNextDigit=true; } void displayError(String ems){ setDisplayString(ems); lastnumber = 0; displayMode = ERROR_MODE; ClearOnNextDigit = true; } public static void main(String[] args) { // TODO Auto-generated method stub new Bai23("Calculator"); //Bai23 dt=new Bai23("Calculator"); } } @SuppressWarnings("serial") class DivideByZeroException extends Exception{ public DivideByZeroException() { super(); } public DivideByZeroException(String s) { super(s); } } Đổi màu nền: package baocao; import java.awt.*; import java.awt.event.*; public class Bai24 extends Frame implements ActionListener { Button gre,blu,red,exit; public Bai24(String st) { super(st); gre=new Button("Green"); blu=new Button("Blue"); red=new Button("Red"); exit=new Button("Exit"); add(gre); add(blu); add(red); add(exit); gre.addActionListener(this); blu.addActionListener(this); red.addActionListener(this); exit.addActionListener(this); this.setLayout(new FlowLayout(FlowLayout.CENTER)); } public void actionPerformed(ActionEvent e) { if (e.getSource()==exit) System.exit(0); if(e.getSource()==gre) this.setBackground(Color.GREEN); if(e.getSource()==blu) this.setBackground(Color.BLUE); if(e.getSource()==red) this.setBackground(Color.RED); } public static void main(String arg[]) { Bai24 tam =new Bai24("Doi Mau"); tam.setSize(300,200); tam.setVisible(true); } } Minh họa kiểu sự kiện ItemEvent package baocao; import java.awt.*; import java.awt.event.*; public class Bai25 extends Frame implements ActionListener,ItemListener { Label lb=new Label("The item is display here"); CheckboxGroup cg=new CheckboxGroup(); Checkbox nam=new Checkbox("Male", cg, true); Checkbox nu=new Checkbox("Female", cg, false); List list1 =new List(3,false); Choice ch1=new Choice(); Button exit=new Button("Exit"); Panel pn=new Panel(); GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbs=new GridBagConstraints(); public Bai25(String st) { super(st); list1.add("MSDOS"); list1.add("WINDOW"); list1.add("LINUX"); list1.add("UNIX"); ch1.add("Dog"); ch1.add("Cat"); ch1.add("chicken"); exit.addActionListener(this); nam.addItemListener(this); nu.addItemListener(this); list1.addItemListener(this); ch1.addItemListener(this); gbs.insets=new Insets(8, 2, 8, 2); gbs.fill=GridBagConstraints.BOTH; gbs.gridx=1; gbs.gridy=1; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(nam, gbs); gbs.gridx=4; gbs.gridy=1; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(nu, gbs); gbs.fill=GridBagConstraints.NONE; gbs.gridx=2; gbs.gridy=2; gbs.gridwidth=3; gbs.gridheight=2; gb.setConstraints(list1, gbs); gbs.gridx=3; gbs.gridy=4; gbs.gridwidth=1; gbs.gridheight=1; gb.setConstraints(ch1, gbs); gbs.gridx=1; gbs.gridy=5; gbs.gridwidth=4; gbs.gridheight=1; gb.setConstraints(lb, gbs); gbs.gridx=5; gbs.gridy=5; gbs.gridwidth=1; gbs.gridheight=1; gb.setConstraints(exit, gbs); pn.setLayout(gb); pn.add(nam); pn.add(nu); pn.add(list1); pn.add(ch1); pn.add(lb); pn.add(exit); add(pn); setSize(300, 300); setVisible(true); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); } public void actionPerformed(ActionEvent e) { if(e.getSource()==exit) System.exit(0); } public void itemStateChanged(ItemEvent ea) { if(ea.getStateChange()==ItemEvent.SELECTED) { if(ea.getSource()==list1) lb.setText(list1.getSelectedItem()); else lb.setText((String)ea.getItem()); } } public static void main(String[] args) { // TODO Auto-generated method stub new Bai25("Tong hop cac item"); } } LẬP TRÌNH APPLETS Giải phương trình bậc nhất: package baocao; import java.applet.*; import java.awt.*; import java.awt.event.*; public class Bai26 extends Applet implements ActionListener{ Panel p,p1,p2,p3; Label lTitle,lInputA,lInputB,lKq; TextField tInputA,tInputB,tKq; Button Tinh,Reset,Thoat; public void init(){ p = new Panel(); p1 = new Panel(); p2 = new Panel(); p3 = new Panel(); lTitle = new Label("Giai phuong trinh bac nhat"); lInputA = new Label("Nhap a"); lInputB = new Label("Nhap b"); lKq = new Label("Ket qua"); tKq = new TextField(); tInputA = new TextField(); tInputB = new TextField(); Tinh = new Button("Tinh"); Reset = new Button("Reset"); Thoat = new Button("Thoat"); p.setLayout(new GridLayout(3,1)); p1.setLayout(new GridLayout(1,1)); p2.setLayout(new GridLayout(3,2)); p3.setLayout(new FlowLayout(FlowLayout.CENTER)); p1.add(lTitle); p2.add(lInputA); p2.add(tInputA); p2.add(lInputB); p2.add(tInputB); p2.add(lKq); p2.add(tKq); p3.add(Tinh); p3.add(Reset); p3.add(Thoat); Thoat.addActionListener(this); Tinh.addActionListener(this); Reset.addActionListener(this); p.add(p1); p.add(p2); p.add(p3); this.add(p); //this.setBounds(0,0,400,300); this.setVisible(true); } public void actionPerformed(ActionEvent ae){ if(ae.getSource()==Thoat) System.exit(1); if(ae.getSource()==Tinh){ double a,b; a=Double.parseDouble(tInputA.getText()); b=Double.parseDouble(tInputB.getText()); if(a==0) if(b==0) tKq.setText("pt co vo so nghiem"); else tKq.setText("Pt vo nghiem"); else tKq.setText(Double.toString(-b/a)); } if(ae.getSource()==Reset){ tInputA.setText(""); tInputB.setText(""); tKq.setText(""); } } } Minh họa các phép toán: package baocao; import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Bai27 extends Applet implements ActionListener { Label lb,lb1,lb2,lb3; TextField txta,txtb,txtkq; Button cong,tru,nhan,chia,exit,reset; Panel pn,pn1,pn2,pn3,pn4; public void init() { lb=new Label("Minh hoa cac phep toan"); lb1=new Label("Nhap a"); lb2=new Label("Nhap b"); lb3=new Label("Ket qua"); txta=new TextField(""); txtb=new TextField(""); txtkq=new TextField(""); cong=new Button("Cong"); tru=new Button("Tru"); nhan=new Button("Nhan"); chia=new Button("Chia"); exit=new Button("Exit"); reset=new Button("Reset"); cong.addActionListener(this); tru.addActionListener(this); nhan.addActionListener(this); chia.addActionListener(this); exit.addActionListener(this); reset.addActionListener(this); pn=new Panel(new GridLayout(4,1)); pn1=new Panel(new GridLayout(1,1)); pn2=new Panel(new GridLayout(3,2)); pn3=new Panel(new FlowLayout(FlowLayout.CENTER)); pn4=new Panel(new FlowLayout(FlowLayout.CENTER)); pn1.add(lb); pn2.add(lb1); pn2.add(txta); pn2.add(lb2); pn2.add(txtb); pn2.add(lb3); pn2.add(txtkq); pn3.add(cong); pn3.add(tru); pn3.add(nhan); pn3.add(chia); pn4.add(exit); pn4.add(reset); pn.add(pn1); pn.add(pn2); pn.add(pn3); pn.add(pn4); add(pn); setSize(300,300); //this.setBounds(200,200,400,300); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==reset) { txta.setText(""); txtb.setText(""); txtkq.setText(""); } else if(e.getSource()==exit) System.exit(0); else { double a=Double.parseDouble(txta.getText()); double b=Double.parseDouble(txtb.getText()); if (e.getSource()==cong) txtkq.setText(Double.toString(a+b)); if (e.getSource()==tru) txtkq.setText(Double.toString(a-b)); if (e.getSource()==nhan) txtkq.setText(Double.toString(a*b)); if (e.getSource()==chia) txtkq.setText(Double.toString(a/b)); } } } In các số nguyên tố nhỏ hơn hoặc bằng số n cho trước: package baocao; import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Bai28 extends Applet implements ActionListener { Label lb,lb1,lb2; TextField txtnhap,txtkq; Button tim,reset,exit; Panel pn,pn1,pn2,pn3; public void init(){ lb=new Label("Cac so nguyen to <=n "); lb1=new Label("Nhap n:"); lb2=new Label("KQ:"); txtnhap=new TextField(); txtkq=new TextField(); txtkq.setEditable(false); tim=new Button("Tim"); exit=new Button("Exit"); reset=new Button("Reset"); tim.addActionListener(this); exit.addActionListener(this); reset.addActionListener(this); pn=new Panel(new GridLayout(3,1)); pn1=new Panel(new GridLayout(1,1)); pn2=new Panel(new GridLayout(2,2)); pn3=new Panel(new FlowLayout(FlowLayout.CENTER)); pn1.add(lb); pn2.add(lb1); pn2.add(txtnhap); pn2.add(lb2); pn2.add(txtkq); pn3.add(tim); pn3.add(reset); pn3.add(exit); pn.add(pn1); pn.add(pn2); pn.add(pn3); add(pn); this.setSize(300,200); this.setVisible(true); } public boolean Test(int t) { if(t==0||t==1) return false; else for(int i=2;i<=(t/2);i++) if((t%i)==0) return false ; return true; } public void actionPerformed(ActionEvent e) { if(e.getSource()==reset) { txtnhap.setText(""); txtkq.setText(""); } if(e.getSource()==exit) System.exit(0); if(e.getSource()==tim) { int n=Integer.parseInt(txtnhap.getText()); String chuoi1=""; if(n>=2)for(int i=2;i<=n;i++) if(Test(i)) chuoi1+=" "+i; txtkq.setText(chuoi1); } } } Kiểm tra một số có thuộc dãy Fibonaci không? package baocao; import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Bai29 extends Applet implements ActionListener { Label lb,lb1,lb2; TextField txtnhap,txtkq; Button ok,reset,exit; Panel pn=new Panel(); GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbs=new GridBagConstraints(); public void init() { lb=new Label("Kiem tra a co thuoc day Fibonaci"); lb1=new Label("Nhap a:"); lb2=new Label("KQ: "); txtnhap=new TextField(20); txtkq=new TextField(20); ok=new Button("OK"); reset=new Button("Reset"); exit=new Button("Exit"); ok.addActionListener(this); reset.addActionListener(this); exit.addActionListener(this); gbs.insets=new Insets(2, 2, 2, 2); gbs.fill=GridBagConstraints.BOTH; gbs.gridx=1; gbs.gridy=1; gbs.gridwidth=6; gbs.gridheight=1; gb.setConstraints(lb, gbs); gbs.gridx=1; gbs.gridy=2; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(lb1, gbs); gbs.gridx=3; gbs.gridy=2; gbs.gridwidth=4; gbs.gridheight=1; //gbs.ipadx=4; gb.setConstraints(txtnhap, gbs); gbs.gridx=1; gbs.gridy=3; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(lb2, gbs); gbs.gridx=3; gbs.gridy=3; gbs.gridwidth=4; gbs.gridheight=1; gb.setConstraints(txtkq, gbs); gbs.gridx=1; gbs.gridy=4; gbs.gridwidth=2; gbs.gridheight=1; //gbs.weightx=1; gb.setConstraints(ok, gbs); gbs.gridx=3; gbs.gridy=4; gbs.gridwidth=2; gbs.gridheight=1; //gbs.weightx=1; gb.setConstraints(reset, gbs); gbs.gridx=5; gbs.gridy=4; gbs.gridwidth=2; gbs.gridheight=1; //gbs.weightx=1; gb.setConstraints(exit, gbs); pn.add(lb); pn.add(lb1); pn.add(txtnhap); pn.add(lb2); pn.add(txtkq); pn.add(ok); pn.add(reset); pn.add(exit); pn.setLayout(gb); this.add(pn); this.setSize(400, 200); setVisible(true); } public boolean fibo(int n) { int x=0,y=1,z=0; if(n!=0) {while(z<n) { x=y; y=z; z=x+y; } if(z==n) return true; } return false; } public void actionPerformed(ActionEvent e) { if(e.getSource()==exit) System.exit(0); else if(e.getSource()==reset) { txtnhap.setText(""); txtkq.setText(""); } else { int a=Integer.parseInt(txtnhap.getText()); if(fibo(a)) txtkq.setText(a+" la so FIBONACI"); else txtkq.setText(a+" khong la so FIBONACI"); } } } Mô tả máy tính điện tử cá nhân: package baocao; import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Bai30 extends Applet implements ActionListener{ GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbc=new GridBagConstraints(); final int MAX_INPUT_LENGTH=20; final int INPUT_MODE=0; final int RESULT_MODE=1; final int ERROR_MODE=2; int displayMode=INPUT_MODE; boolean ClearOnNextDigit,percent; double lastnumber=0; String lastoperator="0"; private JTextField txtkq=new JTextField("0",20); private JButton jbnButtons[]; JPanel jpn=new JPanel(); public void init() { jbnButtons=new JButton[23]; gbc.insets=new Insets(3, 3, 3, 3); gbc.fill=GridBagConstraints.BOTH; for(int i=0;i<=9;i++) jbnButtons[i]= new JButton(String.valueOf(i)); jbnButtons[10]=new JButton("+/-"); jbnButtons[11]=new JButton("."); jbnButtons[12]=new JButton("="); jbnButtons[13]=new JButton("/"); jbnButtons[14]=new JButton("*"); jbnButtons[15]=new JButton("-"); jbnButtons[16]=new JButton("+"); jbnButtons[17]=new JButton("sqrt"); jbnButtons[18]=new JButton("1/x"); jbnButtons[19]=new JButton("%"); jbnButtons[20]=new JButton("Backspace"); jbnButtons[21]=new JButton("CE"); jbnButtons[22]=new JButton("C"); gbc.gridx=0; gbc.gridy=0; gbc.gridheight=2; gbc.gridwidth=5; gb.setConstraints(txtkq, gbc); gbc.gridx=0; gbc.gridy=2; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[20], gbc); gbc.gridx=2; gbc.gridy=2; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[21], gbc); gbc.gridx=4; gbc.gridy=2; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[22], gbc); gbc.gridx=0; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[7], gbc); gbc.gridx=1; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[8], gbc); gbc.gridx=2; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[9], gbc); gbc.gridx=3; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[13], gbc); gbc.gridx=4; gbc.gridy=3; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[17], gbc); gbc.gridx=0; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[4], gbc); gbc.gridx=1; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[5], gbc); gbc.gridx=2; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[6], gbc); gbc.gridx=3; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[14], gbc); gbc.gridx=4; gbc.gridy=4; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[18], gbc); gbc.gridx=0; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[1], gbc); gbc.gridx=1; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[2], gbc); gbc.gridx=2; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[3], gbc); gbc.gridx=3; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[15], gbc); gbc.gridx=4; gbc.gridy=5; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[19], gbc); gbc.gridx=0; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[0], gbc); gbc.gridx=1; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[10], gbc); gbc.gridx=2; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[11], gbc); gbc.gridx=3; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=1; gb.setConstraints(jbnButtons[16], gbc); gbc.gridx=4; gbc.gridy=6; gbc.gridheight=1; gbc.gridwidth=2; gb.setConstraints(jbnButtons[12], gbc); for(int i=0;i<=22;i++) {jpn.add(jbnButtons[i]); jbnButtons[i].addActionListener(this); } jpn.add(txtkq); jpn.setLayout(gb); this.add(jpn); this.setSize(300, 200); this.setVisible(true); } public void actionPerformed(ActionEvent e) { double result=0; for(int i=0;i<jbnButtons.length;i++) { if(e.getSource()==jbnButtons[i]) { switch(i) { case 0: addDigitToDisplay(i);break; case 1: addDigitToDisplay(i);break; case 2: addDigitToDisplay(i);break; case 3: addDigitToDisplay(i);break; case 4: addDigitToDisplay(i);break; case 5: addDigitToDisplay(i);break; case 6: addDigitToDisplay(i);break; case 7: addDigitToDisplay(i);break; case 8: addDigitToDisplay(i);break; case 9: addDigitToDisplay(i);break; case 10: processSignChange();break; case 11: addDecimalPoint();break; case 12: processEquals();break; case 13: processOperator("/");break; case 14: processOperator("*");break; case 15: processOperator("-");break; case 16: processOperator("+");break; case 17: if(displayMode!=ERROR_MODE) { try{ if(getDisplayString().indexOf("-")==0) displayError("Khong hop le"); result=Math.sqrt(getNumberInDisplay()); displayResult(result); }catch(Exception ex){ displayError("Khong hop le"); displayMode=ERROR_MODE; } }break; case 18: if(displayMode!=ERROR_MODE){ try{ if(getNumberInDisplay()==0) displayError("Khong hop le"); result=1/getNumberInDisplay(); displayResult(result); }catch(Exception ex){ displayError("Loi chia 0"); displayMode=ERROR_MODE; } }break; case 19: if(displayMode!=ERROR_MODE){ try{ result=getNumberInDisplay()/100; displayResult(result); }catch(Exception ex){ displayError("Khong hop le"); displayMode=ERROR_MODE; } }break; case 20: if(displayMode!=ERROR_MODE){ setDisplayString(getDisplayString().substring(0, getDisplayString().length()-1)); if(getDisplayString().length()<1) setDisplayString("0"); }break; case 21: clearExisting();break; case 22: clearAll();break; } } } } void setDisplayString(String s){ txtkq.setText(s); } String getDisplayString(){ return txtkq.getText(); } void addDigitToDisplay(int digit){ if(ClearOnNextDigit && !lastoperator.equals("0")) setDisplayString(""); String inputString=getDisplayString(); if(inputString.indexOf("0")==0 && inputString.indexOf(".")<0) inputString=inputString.substring(1); if((!inputString.equals("0")||digit>0)&&inputString.length()<MAX_INPUT_LENGTH) setDisplayString(inputString+digit); displayMode=INPUT_MODE; ClearOnNextDigit=false; } void addDecimalPoint(){ displayMode=INPUT_MODE; //if(ClearOnNextDigit) setDisplayString(""); String inputString =getDisplayString(); if(inputString.indexOf(".")<0) setDisplayString(new String(inputString+".")); } void processSignChange(){ if(displayMode==INPUT_MODE) { String input=getDisplayString(); if(input.length()>0 && !input.equals("0")) { if(input.indexOf("-")==0) setDisplayString(input.substring(1)); else setDisplayString("-"+input); } }else if(displayMode==RESULT_MODE) { double numberInDisplay=getNumberInDisplay(); if(numberInDisplay!=0) displayResult(-numberInDisplay); } } void clearAll(){ setDisplayString("0"); lastoperator="0"; lastnumber=0; displayMode=INPUT_MODE; ClearOnNextDigit=true; } void clearExisting(){ setDisplayString("0"); ClearOnNextDigit=true; displayMode=INPUT_MODE; } double getNumberInDisplay(){ String input=txtkq.getText(); return Double.parseDouble(input); } void processOperator(String op){ if(displayMode!=ERROR_MODE) { double numberInDisplay=getNumberInDisplay(); if(!lastoperator.equals("0")) { try{ double result=processLastOperator(); displayResult(result); lastnumber=result; }catch(Exception e){} }else lastnumber=numberInDisplay; ClearOnNextDigit=true; lastoperator=op; } } void processEquals(){ double result=0; if(displayMode!=ERROR_MODE){ try{ result=processLastOperator(); displayResult(result); }catch(Exception e){ displayError("Loi chia 0"); }lastoperator="0"; } } double processLastOperator() throws Exception{ double result = 0; double numberInDisplay = getNumberInDisplay(); if (lastoperator.equals("/")) { if (numberInDisplay == 0) throw (new Exception()); result = lastnumber / numberInDisplay; } if (lastoperator.equals("*")) result = lastnumber * numberInDisplay; if (lastoperator.equals("-")) result = lastnumber - numberInDisplay; if (lastoperator.equals("+")) result = lastnumber + numberInDisplay; if (lastoperator.equals("0")) result=numberInDisplay; return result; } void displayResult(double result){ setDisplayString(Double.toString(result)); lastnumber = result; displayMode = RESULT_MODE; ClearOnNextDigit=true; } void displayError(String ems){ setDisplayString(ems); lastnumber = 0; displayMode = ERROR_MODE; ClearOnNextDigit = true; } } Đổi màu nền package baocao; import java.applet.*; import java.awt.*; import java.awt.event.*; public class Bai31 extends Applet implements ActionListener { Button gre,blu,red,exit; public void init() { gre=new Button("Green"); blu=new Button("Blue"); red=new Button("Red"); exit=new Button("Exit"); add(gre); add(blu); add(red); add(exit); gre.addActionListener(this); blu.addActionListener(this); red.addActionListener(this); exit.addActionListener(this); this.setLayout(new FlowLayout(FlowLayout.CENTER)); this.setSize(300,200); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource()==exit) System.exit(0); if(e.getSource()==gre) this.setBackground(Color.GREEN); if(e.getSource()==blu) this.setBackground(Color.BLUE); if(e.getSource()==red) this.setBackground(Color.RED); } } Minh họa kiểu sự kiện ItemEvent package baocao; import java.applet.*; import java.awt.*; import java.awt.event.*; public class Bai32 extends Applet implements ActionListener,ItemListener { Label lb=new Label("The item is display here"); CheckboxGroup cg=new CheckboxGroup(); Checkbox nam=new Checkbox("Male", cg, true); Checkbox nu=new Checkbox("Female", cg, false); List list1 =new List(3,false); Choice ch1=new Choice(); Button exit=new Button("Exit"); Panel pn=new Panel(); GridBagLayout gb=new GridBagLayout(); GridBagConstraints gbs=new GridBagConstraints(); public void init() { list1.add("MSDOS"); list1.add("WINDOW"); list1.add("LINUX"); list1.add("UNIX"); ch1.add("Dog"); ch1.add("Cat"); ch1.add("chicken"); exit.addActionListener(this); nam.addItemListener(this); nu.addItemListener(this); list1.addItemListener(this); ch1.addItemListener(this); gbs.insets=new Insets(8, 2, 8, 2); gbs.fill=GridBagConstraints.BOTH; gbs.gridx=1; gbs.gridy=1; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(nam, gbs); gbs.gridx=4; gbs.gridy=1; gbs.gridwidth=2; gbs.gridheight=1; gb.setConstraints(nu, gbs); gbs.fill=GridBagConstraints.NONE; gbs.gridx=2; gbs.gridy=2; gbs.gridwidth=3; gbs.gridheight=2; gb.setConstraints(list1, gbs); gbs.gridx=3; gbs.gridy=4; gbs.gridwidth=1; gbs.gridheight=1; gb.setConstraints(ch1, gbs); gbs.gridx=1; gbs.gridy=5; gbs.gridwidth=4; gbs.gridheight=1; gb.setConstraints(lb, gbs); gbs.gridx=5; gbs.gridy=5; gbs.gridwidth=1; gbs.gridheight=1; gb.setConstraints(exit, gbs); pn.setLayout(gb); pn.add(nam); pn.add(nu); pn.add(list1); pn.add(ch1); pn.add(lb); pn.add(exit); add(pn); setSize(300, 200); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==exit) System.exit(0); } public void itemStateChanged(ItemEvent ea) { if(ea.getStateChange()==ItemEvent.SELECTED) { if(ea.getSource()==list1) lb.setText(list1.getSelectedItem()); else lb.setText((String)ea.getItem()); } } }

Các file đính kèm theo tài liệu này:

  • docx112665748_bai_thuc_hanh_ngon_ngu_lap_trinh_java_3109.docx