TH Lập trình Java
Code by Phubk - 1 -
BÀI THỰC HÀNH SỐ 1
Bài 1 : Viết chương trình nhập 1,2 hoặc 3 số nguyên dương. Nếu người dùng nhập
một số nguyên a, chương trình sẽ hiển thị diện tích của hình tròn có bán kính là a. Nếu
người dùng nhập vào hai số nguyên a và b thì chương trình sẽ hiển thị diện tích hình chữ
nhật có chiều dài a, chiều rộng là b. Nếu người dùng nhập vào 3 số nguyên a,b và c thì
chương trình trước tiên sẽ kiểm tra các số có phải là 3 cạnh của tam giác không?. Nếu
đúng , chương trình sẽ hiển thị diện tích của tam giác có chiều dài 3 cạnh là a,b, c; ngược
lại, chương trình sẽ hiển thị thông điệp “ không phải là độ dài ba cạnh của một tam giác”.
Code :
import java.util.Scanner;
public class Bai1 {
public static int a = 0, b = 0, c = 0;
public void nhap() {
Scanner sc = new Scanner(System.in);
do {
System.out.println("Nhap so nguyen duong a: ");
a = sc.nextInt();
} while (a < 0);
do {
System.out.println("Nhap so nguyen duong b: ");
b = sc.nextInt();
} while (b < 0);
do {
System.out.println("Nhap so nguyen duong c: ");
c = sc.nextInt();
} while (c < 0);
}
public void hinhtron(int a) {
float kq = 0;
TH Lập trình Java
Code by Phubk - 2 -
kq = (float) (3.14 * a * a);
System.out.println("Dien tich hinh tron ban kinh a: " + kq);
}
public void chunhat(int a, int b) {
float dt = 0;
dt = a * b;
System.out
.println("Dien tich hinh chu nhat co do dai hai canh a, b la :"
+ dt);
}
public void tamgiac(int a, int b, int c) {
if (kiemtra(a, b, c)) {
float p = (a + b + c) / 2;
double s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.println("Dien tich tam giac : " + s);
} else {
System.out.println("Day khong phai do dai 3 canh cua 1 tam giac");
}
}
public static boolean kiemtra(int a, int b, int c) {
if ((a + b > c) && (a + c > b) && (b + c > a)) {
return true;
} else {
return false;
}
}
public static void main(String args[]) {
Bai1 b1 = new Bai1();
//Khong nhap gan gia tri = 0;
b1.nhap();
if (a != 0 && b == 0 && c == 0) {
TH Lập trình Java
Code by Phubk - 3 -
b1.hinhtron(a);
}
if (a != 0 && b != 0 && c == 0) {
b1.chunhat(a, b);
}
if (a != 0 && b != 0 && c != 0) {
b1.tamgiac(a, b, c);
}
}
}
Kết quả chạy demo:
Code :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Bai1 extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JTextField tfA, tfB, tfC;
JTextArea taResut;
JButton btOk, btReset, btExit;
JPanel p1, p2;
public Bai1(String title) {
TH Lập trình Java
Code by Phubk - 4 -
super(title);
setLayout(new BorderLayout());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent w) {
System.exit(0);
}
});
p1 = new JPanel(new FlowLayout());
add(p1, BorderLayout.NORTH);
p1.add(new JLabel("So a: "));
tfA = new JTextField(5);
p1.add(tfA);
p1.add(new JLabel("So b: "));
tfB = new JTextField(5);
p1.add(tfB);
p1.add(new JLabel("So c: "));
tfC = new JTextField(5);
p1.add(tfC);
btOk = new JButton(" OK ");
btOk.addActionListener(this);
p1.add(btOk);
btReset = new JButton(" Reset ");
btReset.addActionListener(this);
p1.add(btReset);
btExit = new JButton(" Exit ");
btExit.addActionListener(this);
p1.add(btExit);
p2 = new JPanel(new FlowLayout());
add(p2, BorderLayout.CENTER);
TH Lập trình Java
Code by Phubk - 5 -
taResut = new JTextArea(5, 40);
taResut.setFont(new Font("Arial", Font.BOLD, 14));
p2.add(taResut);
setBounds(100, 100, 550, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
Object cmd = ae.getSource();
if (cmd == btExit)
System.exit(0);
if (cmd == btReset) {
tfA.setText("");
tfB.setText("");
tfC.setText("");
taResut.setText("");
}
if (cmd == btOk) {
taResut.setText("");
String a = tfA.getText();
String b = tfB.getText();
String c = tfC.getText();
String msg = "";
if (!a.equals("") && !b.equals("") && !c.equals(""))
msg = dientichtamgiac(Integer.parseInt(a),
Integer.parseInt(b),
Integer.parseInt(c));
else {
if (!a.equals("") && !b.equals(""))
msg = dientichhcn(Integer.parseInt(a),
Integer.parseInt(b));
TH Lập trình Java
Code by Phubk - 6 -
else if (!a.equals("") && !c.equals(""))
msg = dientichhcn(Integer.parseInt(a),
Integer.parseInt(c));
else if (!b.equals("") && !c.equals(""))
msg = dientichhcn(Integer.parseInt(b),
Integer.parseInt(c));
else if (!a.equals(""))
msg = dientichhinhtron(Integer.parseInt(a));
else if (!b.equals(""))
msg = dientichhinhtron(Integer.parseInt(b));
else if (!c.equals(""))
msg = dientichhinhtron(Integer.parseInt(c));
}
taResut.setText(msg);
}
}
public static String dientichhinhtron(int r) {
String str = "Dien tich hinh tron = " + (Math.PI * r * r);
return str;
}
public static String dientichhcn(int a, int b) {
String str = "Dien tich hcn = " + (a * b);
return str;
}
public static String dientichtamgiac(int a, int b, int c) {
double p, s;
String str = "";
if (a + b > c && a + c > b && b + c > a) {
p = (a + b + c) / 2.0;
s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
TH Lập trình Java
Code by Phubk - 7 -
str = "Dien tich tam giac = " + s;
} else
str = a + ", " + b + ", " + c
+ ": khong phai do dai 3 canh cua tam giac";
return str;
}
public static void main(String args[]) {
new Bai1("Thuc hanh Java");
}
}
Demo chương trình :
TH Lập trình Java
Code by Phubk - 8 -
Bài 2: Viết chương trình hiển thị tẩt cả các số n từ 10 đến 1000 có tính chất sau:
tổng cảu tất cả các số trong n bằng tích của tất cả các số có trong n. Ví dụ số: 123 có tính
chất này, vì 1+2+3=1*2*3.
Code :
public class Bai2 {
public static int n, i = 0;
public void hienthi() {
for (n = 10; n <= 1000; n++) {
if (kiemtra(n)) {
System.out.println(n);
}
}
}
public static boolean kiemtra(int n) {
int tam;
int s = 0;
int p = 1;
while (n > 0) {
tam = n % 10;
n /= 10;
i++;
s += tam;
p *= tam;
TH Lập trình Java
Code by Phubk - 9 -
}
if (p == s) {
return true;
} else {
return false;
}
}
public static void main(String args[]) {
Bai2 b2 = new Bai2();
b2.hienthi();
}
}
Kết quả chạy Demo:
Code :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class bai2s extends JFrame implements ActionListener {
JTextArea taResut;
JButton btDisplay, btReset, btExit;
JPanel p1, p2;
public bai2s(String title) {
super(title);
TH Lập trình Java
Code by Phubk - 10 -
setLayout(new BorderLayout());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent w) {
System.exit(0);
}
});
p1 = new JPanel(new FlowLayout());
add(p1, BorderLayout.NORTH);
btDisplay = new JButton(" Display ");
btDisplay.addActionListener(this);
p1.add(btDisplay);
btReset = new JButton(" Reset ");
btReset.addActionListener(this);
p1.add(btReset);
btExit = new JButton(" Exit ");
btExit.addActionListener(this);
p1.add(btExit);
p2 = new JPanel(new FlowLayout());
add(p2, BorderLayout.CENTER);
taResut = new JTextArea(5, 30);
taResut.setLineWrap(true);
JScrollPane scroll = new JScrollPane(taResut);
p2.add(scroll);
setBounds(100, 100, 450, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
Object cmd = ae.getSource();
if (cmd == btExit)
System.exit(0);
if (cmd == btReset) {
TH Lập trình Java
Code by Phubk - 11 -
taResut.setText("");
}
if (cmd == btDisplay) {
taResut.setText("");
this.display();
}
}
public void display() {
int a[] = new int[10];
int dem, n, s, p;
for (int i = 10; i < 1000; i++) {
n = i;
dem = 0;
s = 0;
p = 1;
while (n != 0) {
a[dem] = n % 10;
n = n / 10;
dem++;
}
for (int j = 0; j < dem; j++) {
s += a[j];
p *= a[j];
}
if (s == p) {
taResut.append(i + " ");
}
}
}
public static void main(String args[]) {
new bai2s("Bai 2 - Thuc hanh Java");
TH Lập trình Java
Code by Phubk - 12 -
}
}
Kết quả chạy Demo:
Bài 3: Viết chương trình nhập số tự nhiên n (n=1,2,…) và kiểm tra biểu diễn nhị
phân của nó có đối xứng hay không ?
Ví dụ: n=9, biểu diễn nhị phân của nó là 1001 là đối xứng
Còn nếu n=10 , biểu diễn nhị phân của nó là 1010 là không đối xứng.
Code :
import java.util.*;
public class Bai3 {
public static int n, m, k;
public void nhap() {
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Nhap so tu nhien n :");
n = scanner.nextInt();
} while (n < 0);
}
public void dectobin(int n) {
int[] mang = new int[4];
TH Lập trình Java
Code by Phubk - 13 -
int i = 0;
while (n > 0) {
mang[i] = n % 2;
n /= 2;
i++;
}
for (int j = mang.length - 1; j >= 0; j ) {
System.out.print(mang[j]);
}
}
public void hix(int n) {
k = n;
m = 0;
while (k > 0) {
m = 2 * m + k % 2;
k = k / 2;
}
if (n == m) {
System.out.print(" doi xung");
} else {
System.out.print(" khong doi xung");
}
}
public static void main(String args[]) {
Bai3 b3 = new Bai3();
b3.nhap();
System.out.print("So nhi phan: ");
b3.dectobin(n);
b3.hix(n);
}
}
TH Lập trình Java
Code by Phubk - 14 -
Kết quả chạy Demo:
Code :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class bai3 extends JFrame implements ActionListener {
JTextField tfInput;
JTextArea taResut;
JButton btOk, btReset, btExit;
JPanel p1, p2;
public bai3() {
setLayout(new BorderLayout());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent w) {
System.exit(0);
TH Lập trình Java
Code by Phubk - 15 -
}
});
p1 = new JPanel(new FlowLayout());
add(p1, BorderLayout.NORTH);
p1.add(new JLabel("So n: "));
tfInput = new JTextField(5);
p1.add(tfInput);
btOk = new JButton(" Ok ");
btOk.addActionListener(this);
p1.add(btOk);
btReset = new JButton(" Reset ");
btReset.addActionListener(this);
p1.add(btReset);
btExit = new JButton(" Exit ");
btExit.addActionListener(this);
p1.add(btExit);
p2 = new JPanel(new FlowLayout());
add(p2, BorderLayout.CENTER);
taResut = new JTextArea(5, 30);
taResut.setLineWrap(true);
taResut.setWrapStyleWord(true);
p2.add(taResut);
setBounds(100, 100, 450, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
Object cmd = ae.getSource();
if (cmd == btExit)
System.exit(0);
if (cmd == btReset) {
TH Lập trình Java
Code by Phubk - 16 -
tfInput.setText("");
taResut.setText("");
}
if (cmd == btOk) {
taResut.setText("");
try {
int n = Integer.parseInt(tfInput.getText());
this.tinhdoixung(n);
} catch (Exception e) {
}
}
}
public void tinhdoixung(int n) {
int bin[] = new int[32];
int len = 0, s1 = 0, s2 = 0;
int p = n;
while (n != 0) {
bin[len] = n % 2;
n = n / 2;
len++;
}
for (int i = 0; i < len; i++)
s1 += bin[i] * Math.pow(2, i);
for (int j = len - 1; j >= 0; j )
s2 += bin[j] * Math.pow(2, (len - j - 1));
String msg = "Bieu dien nhi phan cua " + p + " la: ";
for (int i = len - 1; i >= 0; i )
msg += bin[i];
if (s1 == s2)
msg += " la doi xung!";
else
TH Lập trình Java
Code by Phubk - 17 -
msg += " la khong doi xung!";
taResut.setText(msg);
}
public static void main(String args[]) {
new bai3();
}
}
Kết quả chạy Demo :
BÀI THỰC HÀNH SỐ 2
TH Lập trình Java
Code by Phubk - 18 -
Bài 1 : Viết chương trình nhận một chuỗi và hiển thị các nguyên âm xuất hiện trong
chuỗi. Ví dụ : Nếu nhập là “Nguyen” thì hiển thị u,y,e.
Code :
import java.awt.BorderLayout;
import java.awt.Event;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class XauGUI extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JPanel p1, p2, center;
private JTextField tf1;
private JLabel lb1, lb2, lb3;
private JButton bt1, bt2;
public String str, s = "";
public XauGUI(String title) {
super(title);
setSize(500, 200);
setVisible(true);
setLayout(new BorderLayout());
addComponent();
}
public void addComponent() {
p1 = new JPanel();
p1.setBorder(BorderFactory.createTitledBorder("Nha p du lieu"));
p1.setLayout(new FlowLayout(FlowLayout.CENTER));
lb1 = new JLabel("Nhap xau can kiem tra: ");
p1.add(lb1);
tf1 = new JTextField(25);
TH Lập trình Java
Code by Phubk - 19 -
p1.add(tf1);
add(p1, BorderLayout.NORTH);
center = new JPanel();
// center.setBorder(BorderFactory.createTitledBorder( "Chuc nang"));
center.setLayout(new FlowLayout(FlowLayout.CENTER));
bt1 = new JButton("Kiem tra");
bt1.addActionListener(this);
center.add(bt1);
bt2 = new JButton("Lam lai");
bt2.addActionListener(this);
center.add(bt2);
add(center, BorderLayout.CENTER);
p2 = new JPanel();
p2.setBorder(BorderFactory.createTitledBorder("Ket qua"));
p2.setLayout(new FlowLayout(FlowLayout.LEFT));
lb2 = new JLabel("Cac nguyen am: ");
p2.add(lb2);
lb3 = new JLabel("");
p2.add(lb3);
add(p2, BorderLayout.SOUTH);
}
public static void main(String args[]) {
new XauGUI("Kiem tra nguyen am co trong xau");
}
public void kiemtra() {
str = tf1.getText();
for (int i = 0; i <= str.length(); i++) {
if (str.charAt(i) == 'a' || str.charAt(i) == 'e'
|| str.charAt(i) == 'i' || str.charAt(i) == 'o'
|| str.charAt(i) == 'u' || str.charAt(i) == 'y'
|| str.charAt(i) == 'A' || str.charAt(i) == 'E'
TH Lập trình Java
Code by Phubk - 20 -
|| str.charAt(i) == 'I' || str.charAt(i) == 'O'
|| str.charAt(i) == 'U' || str.charAt(i) == 'Y') {
s += str.charAt(i) + ",";
}
lb3.setText("" + s);
}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == bt1) {
kiemtra();
}
}
}
Kết quả chạy Demo:
Bài 3: a.Viết chương trình đếm số ký tự cho trước (Ví dụ ký tự ‘u’ trong một chuỗi
cho trước ( ví dụ: nguyen van nguyen)
Code:
import java.awt.*;
import java.awt.event.*;
TH Lập trình Java
Code by Phubk - 21 -
import javax.swing.*;
public class DemKyTuChoTruoc extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JPanel p1, p2;
private JLabel lb1, lb2;
private JTextField tf1, tf2;
private JButton bt1;
private static String str, st;
private static int dem = 0;
public DemKyTuChoTruoc(String title) {
super(title);
setSize(600, 150);
addZoom();
setVisible(true);
}
public void addZoom() {
p1 = new JPanel();
p1.setBorder(BorderFactory.createTitledBorder("Nhap du lieu"));
lb1 = new JLabel("Nhap chuoi:");
p1.add(lb1);
tf1 = new JTextField(20);
p1.add(tf1);
lb2 = new JLabel("Nhap ky tu:");
p1.add(lb2);
tf2 = new JTextField(10);
p1.add(tf2);
bt1 = new JButton("Kiem tra");
bt1.addActionListener(this);
p1.add(bt1);
add(p1, BorderLayout.NORTH);
p2 = new JPanel();
TH Lập trình Java
Code by Phubk - 22 -
p2.setBorder(BorderFactory.createTitledBorder("Ket qua"));
lb2 = new JLabel("");
p2.add(lb2);
add(p2, BorderLayout.CENTER);
}
public static void main(String args[]) {
DemKyTuChoTruoc ds = new DemKyTuChoTruoc("Dem ky tu cho
truoc");
ds.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == bt1) {
st = tf1.getText();
str = tf2.getText();
dem();
}
}
public void dem() {
char[] ch = new char[st.length()];
for (int k = 0; k < st.length(); k++) {
ch[k] = st.charAt(k);
}
for (int l = 0; l < st.length(); l++) {
for (int m = 0; m < str.length(); m++) {
if (ch[l] == str.charAt(m)) {
dem++;
}
}
}
lb2.setText("Ky tu " +tf2.getText()+ " xuat hien " + dem + " lan trong
xau");
TH Lập trình Java
Code by Phubk - 23 -
}
}
Kết quả chạy demo :
b. Viết chương trình nhập vào một chuỗi và tạo ra bảng tần số xuất hiện của mỗi ký
tự trong chuỗi.
Code :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class Tanso extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JLabel lb1;
private JPanel p1, p2;
private JTextField tf1;
private JButton ok;
private JTextArea ta;
public Tanso(String title) {
super(title);
setSize(500, 300);
addZoom();
setVisible(true);
TH Lập trình Java
Code by Phubk - 24 -
}
public void addZoom() {
p1 = new JPanel();
p1.setBorder(BorderFactory.createTitledBorder("Nhap du lieu"));
lb1 = new JLabel("Nhap xau: ");
p1.add(lb1);
tf1 = new JTextField(25);
p1.add(tf1);
ok = new JButton("Check");
p1.add(ok);
ok.addActionListener(this);
add(p1, BorderLayout.NORTH);
p2 = new JPanel();
p2.setBorder(BorderFactory
.createTitledBorder("Tan so xuat hien cua cac tu"));
ta = new JTextArea();
p2.add(ta);
add(p2, BorderLayout.CENTER);
}
public static void main(String args[]) {
Tanso d = new Tanso("Tan so xuat hien cua cac tu trong xau");
d.setVisible(true);
}
public void dem(String str) {
char[] chs = new char[str.length()];// Luu lai cac ky tu
int[] tmp = new int[str.length()];// Dem so lan ky tu xuat hien
for (int x = 0; x < str.length(); x++)
TH Lập trình Java
Code by Phubk - 25 -
chs[x] = str.charAt(x);// Luu char
for (int x = 0; x < str.length(); x++) {
for (int y = 0; y < str.length(); y++) {
if (chs[x] == str.charAt(y))
tmp[x]++;// Dem so lan xuat hien
}
}
System.out.println(str);
for (int x = 0; x < str.length(); x++)
ta.append("Ky tu: " + chs[x] + " tan so = " + tmp[x] + "\n");
}
public void demtanso(String str) {
String s = str.toLowerCase();// Chuyen thanh cac chu viet thuong
ArrayList<Character> val = new ArrayList<Character>();
// Array List chua cac char trong String
boolean flag = true;
for (int x = 0; x < s.length(); x++)
if (val.size() == 0)
val.add(s.charAt(x));// Gan char dau tien
else {
flag = true;
for (int y = 0; y < val.size(); y++) {
if (val.get(y) == s.charAt(x)) {
flag = false;
continue;
}
}
if (flag)
val.add(s.charAt(x));// Gan cac ky tu tiep theo va loc
lai