You are on page 1of 43

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trung Tâm VNIT


Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

Chương 1 – Nhập Xuất Dữ Liệu Trong Java

Bài 1 : Nhập và in dữ liệu đối với các kiểu dữ liệu cơ bản :


import java.io.*;
public class b1_NhapIn_ok
{
public static void main(String[] args) throws IOException
{
int iA;
float fB;
double dX;
String sT;
char ch;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

System.out.print("Nhap chuoi ky tu bat ky sT : ");


sT=in.readLine();
System.out.println("Ban vua nhap chuoi ky tu sT = '" + sT + "'");
System.out.print("Nhap ky tu bat ky ch : ");
ch=(char)in.read();
System.out.println("Ban vua nhap ky tu = '" + ch + "'");

System.out.println("Tien Hanh Nhap DL Kieu So");


while(true)
{
try
{
System.out.print("Nhap so nguyen iA : ");
iA=Integer.parseInt(in.readLine());
System.out.println("Ban vua nhap so nguyen intA = " + iA);
System.out.print("Nhap so thuc fB : ");
fB=Float.parseFloat(in.readLine());
System.out.println("Ban vua nhap so thuc kieu float fB = " + fB);
System.out.print("Nhap so thuc dX : ");
dX=Double.parseDouble(in.readLine());
System.out.println("Ban vua nhap so thuc kieu double dX = " + dX);
break;
}
catch (NumberFormatException en)
{
System.out.println("Error : " + en.toString());
}
}
}
}
Chương 2 – Cấu Trúc Điều Khiển
Bài 1 : Nhập 3 cạnh a,b,c. Kiểm tra xem có lập thành tam giác không, nếu có thì là tam giác gì
và tính chu vi - diện tích tam giác đó.
import java.io.*;
public class b2_if_TamGiac
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int a,b,c;
double cv,dt,p;
System.out.print("Nhap canh a : ");
a=Integer.parseInt(in.readLine());

-2-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

System.out.print("Nhap canh b : ");


b=Integer.parseInt(in.readLine());
System.out.print("Nhap canh c : ");
c=Integer.parseInt(in.readLine());
if ((a>0) && (b>0) && (c>0) && (a+b>c) && (a+c>b) && (b+c>a))
{
if ((a==b) && (b==c))
{
System.out.println("a,b,c lap thanh tam giac deu");
}
else
if ((a==b) || (b==c) || (a==c))
if ((a*a==b*b+c*c) || (b*b==a*a+c*c) || (c*c==a*a+b*b))
System.out.println("a,b,c lap thanh tam giac vuong can");
else
System.out.println("a,b,c lap thanh tam giac can");
else
if ((a*a==b*b+c*c) || (b*b==a*a+c*c) || (c*c==a*a+b*b))
System.out.println("a,b,c lap thanh tam giac vuong");
else
System.out.println("a,b,c lap thanh tam giac thuong");
cv=a+b+c;
p=cv/2;
dt=Math.sqrt(p*(p-a)*(p-b)*(p-c));
System.out.println("Chu vi tam giac = " + cv);
System.out.println("Dien tich tam giac = " + dt);
}
else
System.out.println("Note : a,b,c khong lap thanh tam giac");
}
}

Bài 2 : Bài toán tính tiền điện sử dụng


public class b2_if_TienDien
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
double csCU, csMOI, sodien, sotien;
System.out.print("Nhap chi so dien cu : ");
csCU=Double.parseDouble(in.readLine());
do
{
System.out.print("Nhap chi so dien moi : ");
csMOI=Double.parseDouble(in.readLine());
}
while (csMOI<csCU);
sodien=csMOI-csCU;
if (sodien<=100)
{
sotien=sodien*800;
}
else
if (sodien<=150)
sotien=100*800 + (sodien-100)*1000;
else
{
if (sodien<=200)
sotien=100*800 + 50*1000 + (sodien-150)*1200;
else

-3-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

sotien=100*800 + 50*1000 + 50*1200 + (sodien-200)*1400;


}
System.out.println("Ban su dung " + sodien + " so dien");
System.out.println("Ban phai thanh toan " + sotien + " VND");
}
}

Bài 3 : In ra ngày tháng hệ thống bằng Tiếng Anh và Tiếng Việt


import java.util.*;
import java.io.*;
public class b2_sw_NgayThang
{
public static void main(String[] args) throws Exception
{
Date today = new Date();
int ngay,thang,nam,day;
String sthu="",sThang="";
String VThu="",VThang="";
day=today.getDay();
ngay=today.getDate();
thang=today.getMonth()+1;
nam=today.getYear()+1900;
switch (day)
{
case 1:
sthu="Monday";
VThu="Thu Hai";
break;
case 2:
sthu="Tuesday";
VThu="Thu Ba";
break;
case 3:
sthu="Wednesday";
VThu="Thu Tu";
break;
case 4:
sthu="Thursday";
VThu="Thu Nam";
break;
case 5:
sthu="Friday";
VThu="Thu Sau";
break;
case 6:
sthu="Saturday";
VThu="Thu Bay";
break;
case 7:
sthu="Sunday";
VThu="Chu Nhat";
break;
};
switch (thang)
{
case 1:
sThang="January";
VThang="Thang Mot";
break;
case 2:

-4-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

sThang="February";
VThang="Thang Hai";
break;
case 3:
sThang="March";
VThang="Thang Ba";
break;
case 4:
sThang="April";
VThang="Thang Tu";
break;
case 5:
sThang="May";
VThang="Thang Nam";
break;
case 6:
sThang="June";
VThang="Thang Sau";
break;
case 7:
sThang="July";
VThang="Thang Bay";
break;
case 8:
sThang="August";
VThang="Thang Tam";
break;
case 9:
sThang="September";
VThang="Thang Chin";
break;
case 10:
sThang="Octorber";
VThang="Thang Muoi";
break;
case 11:
sThang="November";
VThang="Thang Muoi Mot";
break;
case 12:
sThang="December";
VThang="Thang Muoi Hai";
break;
};
System.out.println("Today is : " + sthu + ", " + sThang + " " + ngay + ", " + nam);
System.out.println("Hom nay la : " + VThu + ", Ngay " + ngay + " " + VThang + ", " + nam);
}
}

Bài 4: Làm việc trên mảng 1 chiều : nhập, in, max, min, tính tổng, đếm, sắp xếp
import java.io.*;
public class b2_fr_Mang1C
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int A[]=new int[100];
int n,i,j,tg,max,min,t,d;
do
{

-5-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

System.out.print("Nhap so phan tu mang :");


n=Integer.parseInt(in.readLine());
}
while ((n<1)||(n>100));
//nhap mang
for (i=0;i<n;i++)
{
System.out.print("\tA[" + i + "] := ");
A[i]=Integer.parseInt(in.readLine());
}
//in mang vua nhap
System.out.print("\nMang vua nhap : ");
for (i=0;i<n;i++)
{
System.out.print("\t" + A[i]);
}
System.out.println();
//tinh tong cac phan tu le trong mang
t=0;
for (i=0;i<n;i++)
{
if (A[i] % 2 !=0)
t+=A[i];
}
if (t!=0)
{
System.out.println("Tong cac phan tu le : " + t);
}
else
System.out.println("Trong mang khong co phan tu le");
//tim max,min trong mang
max=A[0];
min=A[0];
for (i=0;i<n;i++)
{
if (max<A[i]) max=A[i];
if (min>A[i]) min=A[i];
}
System.out.println("Gia tri lon nhat : " + max);
System.out.println("Gia tri nho nhat : " + min);
//dem xem trong mang co bao nhieu ptu chan
d=0;
for (i=0;i<n;i++)
{
if (A[i] % 2 ==0)
d++;
}
if (d!=0)
{
System.out.println("Trong mang co " + d + " phan tu chan");
}
else
System.out.println("Trong mang khong co phan tu chan");
//sap xep mang tang dan va in ra
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (A[i]>A[j])
{
tg=A[i];
A[i]=A[j];

-6-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

A[j]=tg;
}
//in mang vua sap xep
System.out.print("\nMang vua sap xep tang dan : ");
for (i=0;i<n;i++)
{
System.out.print("\t" + A[i]);
}
System.out.println();
}
}

Bài 5 : Làm việc trên mảng 2 chiều : nhập, in


import java.io.*;
public class b2_fr_Mang2C
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int A[][]=new int[15][15];
int n,m,i,j;
do
{
System.out.print("Nhap so hang :");
n=Integer.parseInt(in.readLine());
}
while ((n<1)||(n>15));
do
{
System.out.print("Nhap so cot :");
m=Integer.parseInt(in.readLine());
}
while ((m<1)||(m>15));
System.out.println("NHAP MANG 2 CHIEU");
//nhap mang 2 chieu
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
System.out.print("\tA["+ i + "][" + j + "] := ");
A[i][j]=Integer.parseInt(in.readLine());
}
System.out.println("IN MANG 2 CHIEU");
//in mang 2 chieu
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
System.out.print("\t" + A[i][j]);
}
System.out.println("\n");
}
}
}

Chương 3 – CLASS - Kế Thừa - Đa Hình - Trừu Tượng - Package

Bài 1 : CLASS HOSO: xây dựng các phương thức : nhập, in, tìm kiếm
import java.io.*;
class Hoso

-7-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

{
int mahs,namsinh;
String hoten;
public Hoso()
{
mahs=0;
hoten="Unknown";
namsinh=1900;
}
public Hoso(int ma,String ht,int ns)
{
mahs=ma;
hoten=ht;
namsinh=ns;
}
public void hienthi()
{
System.out.println("[ThongTin] \tMaHS : " + mahs + ",\tHoten : " + hoten + ",\tNamSinh :" + namsinh);
}
int LayNamsinh()
{
return namsinh;
}
String LayHoten()
{
return hoten;
}
int LayMahs()
{
return mahs;
}
};

public class b3_cl_HoSo


{
public static void main(String[] args) throws Exception
{
Hoso A[]=new Hoso[10];
int n,i;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
do
{
System.out.print("Nhap so ho so, n = ");
n=Integer.parseInt(in.readLine());
}
while ((n<1)||(n>10));
//nhap ho so
for (i=0;i<n;i++)
{
Hoso x=new Hoso();
System.out.println("Nhap ho so thu : " + (i+1));
System.out.print("\tMa ho so : ");
x.mahs=Integer.parseInt(in.readLine());
System.out.print("\tHo va Ten : ");
x.hoten=in.readLine();
System.out.print("\tNam sinh : ");
x.namsinh=Integer.parseInt(in.readLine());
A[i]=x;
}
//in ho so

-8-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

System.out.println("Danh Sach Ho So Vua Nhap");


for (i=0;i<n;i++)
{
System.out.println("[Ho So " + (i+1) + "] \tMahs : " + A[i].mahs + ",\tHoten : " + A[i].hoten + ",\tNam sinh : "
+ A[i].namsinh);
}
//tim kiem ho so
int ch,kt;
do
{
System.out.println("\t1.Tim theo ma");
System.out.println("\t2.Tim theo hoten");
System.out.println("\t3.Tim theo namsinh");
System.out.println("\t0.Thoat");
System.out.println("Ban chon : ");
ch=Integer.parseInt(in.readLine());
kt=0;
switch (ch)
{
case 1:
System.out.print("Nhap ma ho so : ");
int ma=Integer.parseInt(in.readLine());
for (i=0;i<n;i++)
if (A[i].LayMahs()==ma)
{
kt=1;
System.out.println("[Ho So " + (i+1) + "] \tMahs : " + A[i].mahs +
",\tHoten : " + A[i].hoten + ",\tNam sinh : " + A[i].namsinh);
}
if (kt==0)
System.out.println("Khong tim thay");
break;
case 2:
System.out.print("Nhap ho ten : ");
String ht=in.readLine();
for (i=0;i<n;i++)
if (ht.equals(A[i].LayHoten()))
{
kt=1;
System.out.println("[Ho So " + (i+1) + "] \tMahs : " + A[i].mahs +
",\tHoten : " + A[i].hoten + ",\tNam sinh : " + A[i].namsinh);
}
if (kt==0)
System.out.println("Khong tim thay");
break;
case 3:
System.out.print("Nhap nam sinh : ");
int ns=Integer.parseInt(in.readLine());
for (i=0;i<n;i++)
if (A[i].LayNamsinh()==ns)
{
kt=1;
System.out.println("[Ho So " + (i+1) + "] \tMahs : " + A[i].mahs +
",\tHoten : " + A[i].hoten + ",\tNam sinh : " + A[i].namsinh);
}
if (kt==0)
System.out.println("Khong tim thay");
break;
}
}

-9-
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

while (ch!=0);
}
}

Bài 2 : KẾ THỪA : Lớp NhanVien kế thừa từ lớp Nguoi. Xây dựng các phương thức: nhập, in,
cập nhật
import java.io.*;
class Nguoi
{
String hoten;
int namsinh;
Nguoi()
{
hoten=null;
namsinh=1900;
}
Nguoi(String ht,int ns)
{
hoten=ht;
namsinh=ns;
}
public void hienthi()
{
System.out.print(",\tHoten : " + hoten + ",\t Namsinh : " +namsinh);
}
}
class Nhanvien extends Nguoi
{
int manv;
String chucvu;
Nhanvien()
{
manv=0;
chucvu=null;
}
Nhanvien(int ma,String ht,int ns,String cv)
{
super(ht,ns);
manv=ma;
chucvu=cv;
}
public void hienthi()
{
System.out.print("\nManv : " + manv);
super.hienthi();
System.out.print(",\tChucvu : " + chucvu);
}
public void capnhat(int ma,String ht,int ns,String cv)
{
super.hoten=ht;
super.namsinh=ns;
manv=ma;
chucvu=cv;
}
}
public class b3_kt_Nguoi
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

- 10 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

Nhanvien nv[]=new Nhanvien[10];


int n;
do
{
System.out.print("\nNhap so nhan vien : ");
n=Integer.parseInt(in.readLine());
}
while ((n<1)||(n>10));
nhapnv(n,nv);
hienthinv(n,nv);
timNS(n,nv);
capnhat(n,nv);
hienthinv(n,nv);
}
public static void nhapnv(int n,Nhanvien nv[]) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int ma,ns;
String ht,cv;
for (int i=0;i<n;i++)
{
System.out.println("Nhap nhan vien thu " + (i+1));
System.out.print("\tMa NV : ");
ma=Integer.parseInt(in.readLine());
System.out.print("\tHo va Ten : ");
ht=in.readLine();
System.out.print("\tNam Sinh : ");
ns=Integer.parseInt(in.readLine());
System.out.print("\tChuc vu : ");
cv=in.readLine();
Nhanvien x=new Nhanvien(ma,ht,ns,cv);
nv[i]=x;
}
}
public static void hienthinv(int n,Nhanvien nv[])
{
for (int i=0;i<n;i++)
{
System.out.print("\n[NV " + (i+1) + "] ");
nv[i].hienthi();
}
}
public static void timNS(int n,Nhanvien nv[]) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int ns,i,kt=0;
System.out.print("\nNhap nam sinh can tim : ");
ns=Integer.parseInt(in.readLine());
for (i=0;i<n;i++)
{
if (nv[i].namsinh==ns)
{
nv[i].hienthi();
kt=1;
}
}
if (kt==0)
System.out.println("Khong tim thay nhan vien nao.");
}
public static void capnhat(int n,Nhanvien nv[]) throws Exception

- 11 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int ch;
int ma,ns;
String ht,cv;
do
{
System.out.print("\nNhap so thu tu ho so muon cap nhat : ");
ch=Integer.parseInt(in.readLine());
}
while ((ch<0)||(ch>n));
ch--;
System.out.print("\tMa NV : ");
ma=Integer.parseInt(in.readLine());
System.out.print("\tHo va Ten : ");
ht=in.readLine();
System.out.print("\tNam Sinh : ");
ns=Integer.parseInt(in.readLine());
System.out.print("\tChuc vu : ");
cv=in.readLine();
nv[ch].capnhat(ma,ht,ns,cv);
}
}

Bài 3 : ĐA HÌNH : Xây dựng lớp DongHoKim,DongHoSo đa hình từ lớp DONGHO


class DongHo
{
String theloai,nhasx;
DongHo()
{
theloai="DONG HO";
nhasx="TRUONGBT";
}
DongHo(String tl,String nsx)
{
theloai=tl;
nhasx=nsx;
}
public void hienthi()
{
System.out.println("[Clock Default] Theloai : " + theloai + ",\tNhaSX : " + nhasx);
}
}
class DongHoKim extends DongHo
{
DongHoKim()
{
theloai="Dong Ho Kim";
nhasx=null;
}
DongHoKim(String t,String nsx)
{
theloai=t;
nhasx=nsx;
}
public void hienthi()
{
System.out.println("[DongHoKIM] Theloai : " + theloai + ",\tNhaSX : " + nhasx);
}
}

- 12 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

class DongHoSo extends DongHo


{
DongHoSo()
{
theloai=null;
nhasx=null;
}
DongHoSo(String tl,String nsx)
{
theloai=tl;
nhasx=nsx;
}
public void hienthi()
{
System.out.println("[DongHoSO] Theloai : " + theloai + ",\tNhaSX : " + nhasx);
}
}
public class b3_dh_Clock
{
public static void main(String[] args)
{
System.out.print("Chuc nang 1.1 : ");
DongHo dh=new DongHo();
dh.hienthi();
System.out.print("Chuc nang 1.2 : ");
dh=new DongHo("Gimiko","Viet Nam");
dh.hienthi();

System.out.print("Chuc nang 2.1 : ");


DongHo dh1=new DongHoKim();
dh1.hienthi();
System.out.print("Chuc nang 2.2 : ");
dh1=new DongHoKim("Jeko","Mexiko");
dh1.hienthi();
System.out.print("Chuc nang 2.3 : ");
DongHoKim dh2=new DongHoKim();
dh2.hienthi();
System.out.print("Chuc nang 2.4 : ");
dh2=new DongHoKim("Sami","Japan");
dh2.hienthi();

System.out.print("Chuc nang 3.1 : ");


DongHo dh3=new DongHoSo();
dh3.hienthi();
System.out.print("Chuc nang 3.2 : ");
dh3=new DongHoSo("Zep","Venezuela");
dh3.hienthi();
System.out.print("Chuc nang 3.3 : ");
DongHoSo dh4=new DongHoSo();
dh4.hienthi();
System.out.print("Chuc nang 3.4 : ");
dh4=new DongHoSo("Tockia","Paris");
dh4.hienthi();
}
}

Bài 4 : TRỪU TƯỢNG : Xây dựng lớp trừu tượng Nguoi, kế thừa từ đó xây dựng lớp hồ sơ với
các phương thức : nhập, in
import java.io.*;
abstract class Nguoi

- 13 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

{
String hoten,gioitinh;
public abstract void hienthi();

};
class Hoso extends Nguoi
{
String mahoso,dienthoai;
Hoso()
{
mahoso=null;
hoten=null;
gioitinh=null;
dienthoai=null;
}
Hoso(String ma,String ht,String gt,String dt)
{
mahoso=ma;
hoten=ht;
gioitinh=gt;
dienthoai=dt;
}
public void hienthi()
{
System.out.println("MaHS : " + mahoso + ",\tHoTen : " + hoten + ",\tDienThoai : " + dienthoai + ",\tGioiTinh
: " + gioitinh);
}
public void nhap(String ma,String ht,String gt,String dt)
{
mahoso=ma;
hoten=ht;
gioitinh=gt;
dienthoai=dt;
}
}
public class b3_tt_Nguoi
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Nguoi person=new Hoso();
person.hienthi();
Hoso hs=new Hoso("HS0001","Bui Tien Truong","Nam","0989995221");
hs.hienthi();
String ma,ht,gt,dt;
System.out.print("Nhap ma ho so : ");
ma=in.readLine();
System.out.print("Nhap Ho va Ten : ");
ht=in.readLine();
System.out.print("Nhap Gioi tinh : ");
gt=in.readLine();
System.out.print("Nhap So dien thoai : ");
dt=in.readLine();
Hoso hs1=new Hoso(ma,ht,gt,dt);
hs1.hienthi();
}
}

Bài 5 : Package : Tạo Pack Người, viết chương trình quản lý Nhân Viên
Trang Nguoi.java nằm trong thư mục Hoso

- 14 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

package Hoso;
public class Nguoi
{
String SoCMND,HoTen,NgaySinh,DiaChi;
public Nguoi()
{
SoCMND=null;
HoTen=null;
NgaySinh=null;
DiaChi=null;
}
public Nguoi(String socm,String ht,String ns,String dc)
{
SoCMND=socm;
HoTen=ht;
NgaySinh=ns;
DiaChi=dc;
}
public void hienthi()
{
System.out.print("\tSoCMND : " + SoCMND + " ,\tHo Ten : " + HoTen + " ,\tNgay Sinh : " + NgaySinh + " ,\tDia Chi :
" + DiaChi);
}
public String getCMND()
{
return SoCMND;
}
public String getHoten()
{
return HoTen;
}
public String getNgaysinh()
{
return NgaySinh;
}
public String getDiachi()
{
return DiaChi;
}
}

Trang b3_pack_NhanVien.java
import Hoso.*;
import java.io.*;

class HosoNV extends Nguoi


{
String ChucVu;
int NamCT;
HosoNV()
{
ChucVu=null;
NamCT=0;
}
HosoNV(String socm,String ht,String ns,String dc,String cv,int nam)
{
super(socm,ht,ns,dc);
ChucVu=cv;
NamCT=nam;
}

- 15 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

public String getCV()


{
return ChucVu;
}
public int getNCT()
{
return NamCT;
}
}
public class b3_pack_NhanVien
{
public static void main(String[] args) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
HosoNV A[]=new HosoNV[5];
int n;
do
{
System.out.print("Nhap so ho so NV : ");
n=Integer.parseInt(in.readLine());
}
while ((n<1)||(n>5));
nhaphoso(A,n);
hienthihoso(A,n);
timkiem(A,n);
}
public static void nhaphoso(HosoNV A[],int n) throws Exception
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String socm,ht,ns,dc,cv;
int nam;
for (int i=0;i<n;i++)
{
System.out.println("Nhap ho so thu " + (i+1));
System.out.print("Nhap so CMTND : ");
socm=in.readLine();
System.out.print("Nhap Ho Ten : ");
ht=in.readLine();
System.out.print("Nhap Ngay Sinh : ");
ns=in.readLine();
System.out.print("Nhap Dia Chi : ");
dc=in.readLine();
System.out.print("Nhap Chuc Vu : ");
cv=in.readLine();
System.out.print("Nhap Nam Cong Tac : ");
nam=Integer.parseInt(in.readLine());
HosoNV x=new HosoNV(socm,ht,ns,dc,cv,nam);
A[i]=x;
}
}
public static void hienthihoso(HosoNV A[],int n)
{
System.out.println("In Ho So Nhan Vien");
for (int i=0;i<n;i++)
{
System.out.print("\n[Ho so "+ (i+1) + "] ");
A[i].hienthi();
System.out.print(" ,\tChuc Vu : " + A[i].ChucVu + " ,\tNamCT : " + A[i].NamCT);
}
}

- 16 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

public static void timkiem(HosoNV A[],int n)


{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String stk;
int itk,i,kt;
int ch=0;
try
{
do
{
System.out.println("\n1. Tim Theo So CMTND");
System.out.println("2. Tim Theo Ho Ten");
System.out.println("3. Tim Theo Ngay Sinh");
System.out.println("4. Tim Theo Chuc Vu");
System.out.println("5. Tim Theo Nam Cong Tac");
System.out.println("0. Thoat Khoi Tim Kiem");
System.out.print("Ban chon : ");
ch=Integer.parseInt(in.readLine());
kt=0;
switch (ch)
{
case 1:
System.out.print("Nhap So CMTND : ");
stk=in.readLine();
for (i=0;i<n;i++)
{
if (stk.equals(A[i].getCMND()))
{
kt=1;
System.out.print("\n[Ho so "+ (i+1) + "] ");
A[i].hienthi();
System.out.print(" ,\tChuc Vu : " + A[i].ChucVu + " ,\tNamCT
: " + A[i].NamCT);
}
}
if (kt==0)
System.out.println("Khong tim thay ho so co SoCMTND da nhap");
break;
case 2:
System.out.print("Nhap Ho Ten : ");
stk=in.readLine();
for (i=0;i<n;i++)
{
if (stk.equals(A[i].getHoten()))
{
kt=1;
System.out.print("\n[Ho so "+ (i+1) + "] ");
A[i].hienthi();
System.out.print(" ,\tChuc Vu : " + A[i].ChucVu + " ,\tNamCT
: " + A[i].NamCT);
}
}
if (kt==0)
System.out.println("Khong tim thay ho so co Ho Ten da nhap");
break;
case 3:
System.out.print("Nhap Ngay Sinh : ");
stk=in.readLine();
for (i=0;i<n;i++)
{

- 17 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

if (stk.equals(A[i].getNgaysinh()))
{
kt=1;
System.out.print("\n[Ho so "+ (i+1) + "] ");
A[i].hienthi();
System.out.print(" ,\tChuc Vu : " + A[i].ChucVu + " ,\tNamCT
: " + A[i].NamCT);
}
}
if (kt==0)
System.out.println("Khong tim thay ho so co NgaySinh da nhap");
break;
case 4:
System.out.print("Nhap Chuc Vu : ");
stk=in.readLine();
for (i=0;i<n;i++)
{
if (stk.equals(A[i].getCV()))
{
kt=1;
System.out.print("\n[Ho so "+ (i+1) + "] ");
A[i].hienthi();
System.out.print(" ,\tChuc Vu : " + A[i].ChucVu + " ,\tNamCT
: " + A[i].NamCT);
}
}
if (kt==0)
System.out.println("Khong tim thay ho so co Chuc Vu da nhap");
break;
case 5:
System.out.print("Nhap So Nam Cong Tac : ");
int nam=Integer.parseInt(in.readLine());
for (i=0;i<n;i++)
{
if (nam==A[i].getNCT())
{
kt=1;
System.out.print("\n[Ho so "+ (i+1) + "] ");
A[i].hienthi();
System.out.print(" ,\tChuc Vu : " + A[i].ChucVu + " ,\tNamCT
: " + A[i].NamCT);
}
}
if (kt==0)
System.out.println("Khong tim thay ho so co Nam CT da nhap");
break;
}
}
while (ch != 0);
}
catch (IOException et)
{
et.printStackTrace();
}
}
}
Chương 4 – Lập Trình Applet

Bài 1 : APPLET : Vẽ Hình Như Sau :

- 18 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

import java.awt.*;
import java.applet.*;
public class b4_ap_Draw extends Applet
{

public void init()


{
setLayout(null);
setSize(400,400);
}

public void paint(Graphics g)


{
//ve hai duong cheo
g.drawLine(0,0,400,400);
g.drawLine(400,0,0,400);
//ve hinh tron va hai hinh vuong
g.drawOval(100,100,200,200);
g.drawRect(100,100,200,200);
g.draw3DRect(130,130,140,140,true);
//ve hinh tron va ngoi sao ben trong
g.drawOval(160,10,80,80);
g.drawLine(200,10,180,85);
g.drawLine(200,10,220,85);
g.drawLine(164,32,236,32);
g.drawLine(164,32,220,85);
g.drawLine(236,32,180,85);
//ve khung bao quanh
g.drawRect(1,1,397,397);
}
}

Bài 2 : APPLET : Xây dựng các chức năng tính toán số học
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class b4_ap_Caculator extends Applet
{
public Button cmdTong,cmdHieu,cmdTich,cmdThuong;
public TextField txtA,txtB,txtKQ;
public Label lblA,lblB,lblKQ;
public void init()
{
setLayout(null);
setSize(500,300);

lblA=new Label("Nhap a = ");


add(lblA);
lblA.setBounds(30,10,60,30);
txtA=new TextField("5");
add(txtA);
txtA.setBounds(100,10,60,30);

lblB=new Label("Nhap b = ");


add(lblB);
lblB.setBounds(30,40,60,30);
txtB=new TextField("15");
add(txtB);
txtB.setBounds(100,40,60,30);

- 19 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

cmdTong=new Button("Tong");
add(cmdTong);
cmdTong.setBounds(30,90,50,50);
cmdTong.addActionListener(new SuKien(this));

cmdHieu=new Button("Hieu");
add(cmdHieu);
cmdHieu.addActionListener(new SuKien(this));
cmdHieu.setBounds(90,90,50,50);

cmdTich=new Button("Tich");
add(cmdTich);
cmdTich.addActionListener(new SuKien(this));
cmdTich.setBounds(150,90,50,50);

cmdThuong=new Button("Thuong");
add(cmdThuong);
cmdThuong.addActionListener(new SuKien(this));
cmdThuong.setBounds(210,90,50,50);

lblKQ=new Label("Ket qua = ");


add(lblKQ);
lblKQ.setEnabled(false);
lblKQ.setBounds(30,200,60,30);
txtKQ=new TextField("20");
add(txtKQ);
txtKQ.setBounds(100,200,60,30);
txtKQ.setEnabled(false);
}
public void paint(Graphics g)
{
//g.drawString("Welcome to Java!!", 50, 60 );
}
}
class SuKien implements ActionListener
{
Component component;
public SuKien(Component component)
{
this.component=component;
}
public void actionPerformed(ActionEvent evt)
{
int a=Integer.parseInt(((b4_ap_Caculator)component).txtA.getText());
int b=Integer.parseInt(((b4_ap_Caculator)component).txtB.getText());
if (evt.getSource()==((b4_ap_Caculator)component).cmdTong)
{
int Tong=a+b;
((b4_ap_Caculator)component).txtKQ.setText(""+Tong);
}
if (evt.getSource()==((b4_ap_Caculator)component).cmdHieu)
{
int Hieu=a-b;
((b4_ap_Caculator)component).txtKQ.setText(""+Hieu);
}
if (evt.getSource()==((b4_ap_Caculator)component).cmdTich)
{
double Tich=a*b;
((b4_ap_Caculator)component).txtKQ.setText(""+Tich);
}

- 20 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

if (evt.getSource()==((b4_ap_Caculator)component).cmdThuong)
{
if (b!=0)
{
double Thuong=(double)a/b;
((b4_ap_Caculator)component).txtKQ.setText(""+Thuong);
}
else
((b4_ap_Caculator)component).txtKQ.setText("E");
}
}
}

Bài 3 : APPLET : Xây dựng bài tam giác bằng java Applet
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class b4_ap_TamGiac extends Applet


{
Label lblTieuDe,lblA,lblB,lblC,lblKetqua;
TextField txtA,txtB,txtC,txtDientich,txtChuvi;
Button cmdOK;
public void init()
{
CreateGUI();
CreateEVT();
}

public void paint(Graphics g)


{
//g.drawString("Welcome to Java!!", 50, 60 );
}
public void CreateGUI()
{
setLayout(null);
setSize(600,400);

lblTieuDe=new Label("BAI TAP TAM GIAC");


lblTieuDe.setBounds(0,0,600,20);
lblTieuDe.setAlignment(1);//canh giua
add(lblTieuDe);

lblA=new Label("Nhap canh A = ");


lblA.setBounds(0,40,300,20);
lblA.setAlignment(2);//canh phai
add(lblA);
txtA=new TextField("3");
txtA.setBounds(300,40,60,30);
add(txtA);

lblB=new Label("Nhap canh B = ");


lblB.setBounds(0,80,300,20);
lblB.setAlignment(2);//canh phai
add(lblB);
txtB=new TextField("5");
txtB.setBounds(300,80,60,30);
add(txtB);

lblC=new Label("Nhap canh C = ");

- 21 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

lblC.setBounds(0,120,300,20);
lblC.setAlignment(2);//canh phai
add(lblC);
txtC=new TextField("4");
txtC.setBounds(300,120,60,30);
add(txtC);

cmdOK=new Button("Kiem Tra Tam Giac");


cmdOK.setBounds(200,170,200,40);
add(cmdOK);

lblKetqua=new Label("Ket Qua");


lblKetqua.setBounds(0,220,600,20);
lblKetqua.setAlignment(1);//canh giua
add(lblKetqua);
txtDientich=new TextField("");
txtDientich.setBounds(200,250,200,30);
txtDientich.setEnabled(false);
add(txtDientich);
txtChuvi=new TextField("");
txtChuvi.setBounds(200,290,200,30);
txtChuvi.setEnabled(false);
add(txtChuvi);
}
public void CreateEVT()
{
cmdOK.addActionListener(new SuKien(this));
}
}
class SuKien implements ActionListener
{
Component component;
public SuKien(Component component)
{
this.component=component;
}
public void actionPerformed(ActionEvent evt)
{
if (evt.getSource()==((b4_ap_TamGiac)component).cmdOK)
{
int a,b,c;
a=Integer.parseInt(((b4_ap_TamGiac)component).txtA.getText());
b=Integer.parseInt(((b4_ap_TamGiac)component).txtB.getText());
c=Integer.parseInt(((b4_ap_TamGiac)component).txtC.getText());
if ((a>0)&&(b>0)&&(c>0)&&(a+b>c)&&(a+c>b)&&(b+c>a))
{
double chuvi,dientich,p;
chuvi=(a+b+c);
p=chuvi/2;
dientich=Math.sqrt(p*(p-a)*(p-b)*(p-c));
((b4_ap_TamGiac)component).txtChuvi.setText(""+chuvi);
((b4_ap_TamGiac)component).txtDientich.setText(""+dientich);
if ((a==b)&&(b==c))
{
((b4_ap_TamGiac)component).lblKetqua.setText("TAM GIAC DEU");
}
else
{
if ((a==b)||(b==c)||(c==a))
{

- 22 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==b*b+a*a))
{
((b4_ap_TamGiac)component
).lblKetqua.setText("TAM GIAC VUONG CAN");
}
else
{
((b4_ap_TamGiac)component
).lblKetqua.setText("TAM GIAC CAN");
}
}
else
{
if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==b*b+a*a))
{
((b4_ap_TamGiac)component
).lblKetqua.setText("TAM GIAC VUONG");
}
else
{
((b4_ap_TamGiac)component
).lblKetqua.setText("TAM GIAC THUONG");
}
}
}
}
else
{
((b4_ap_TamGiac)component).lblKetqua.setText("3 canh khong lap thanh tam giac");
((b4_ap_TamGiac)component).txtDientich.setText("");
((b4_ap_TamGiac)component).txtChuvi.setText("");
}
}
}
}

Chương 5 – Lập Trình Cơ Sở Dữ Liệu


Bài 1 : CSDL : Quản lý sinh viên. CSDL.MDB nằm trong thư mục CLASSES
import java.io.*;
import java.sql.*;
class SinhVien
{
String masv,hoten,ngaysinh,diachi;
public SinhVien(String ma,String ht,String ns,String dc)
{
masv=ma;
hoten=ht;
ngaysinh=ns;
diachi=dc;
}
public void hienthi()
{
System.out.println("MSV : " + masv + "\tHT : " + hoten + "\tNS : " + ngaysinh + "\tDC : " + diachi);
}
};
class BangSV
{
Connection cnn;
public BangSV(Connection cn)

- 23 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

{
cnn=cn;
}
public void hienthi()
{
try
{
Statement ADODB=cnn.createStatement();
String sql="Select * from SinhVien";
ResultSet rst=ADODB.executeQuery(sql);
while (rst.next())
{
String ma=rst.getString(1);
String ht=rst.getString(2);
String ns=rst.getString(3);
String dc=rst.getString(4);
SinhVien sv=new SinhVien(ma,ht,ns,dc);
sv.hienthi();
}
rst.close();
ADODB.close();
}
catch (SQLException ev)
{
ev.printStackTrace();
}
}
};
public class b5_dl_qlSinhvien
{
public static void main(String[] args)
{
Connection cnn=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
File f=new File("csdl.mdb");
cnn=DriverManager.getConnection("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ=" +
f.getCanonicalFile());
BangSV tbSV = new BangSV(cnn);
tbSV.hienthi();
cnn.close();
}
catch (Exception evt)
{
System.out.println("Loi ket noi CSDL");
}
}
}

Bài 2 : CSDL : Quản lý phim. CSDL.MDB nằm trong thư mục CLASSES
import java.io.*;
import java.sql.*;
class Phim
{
String map,tenp,tloai,ddien;
public Phim(String ma,String ten,String tl, String dd)
{
map=ma;
tenp=ten;

- 24 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

tloai=tl;
ddien=dd;
}
public String toString()
{
return "Maphim : " + map + ",\tTenphim : " + tenp + ",\tTheloai : " + tloai + "\tDaodien : " + ddien;
}
}
class MoBang
{
Connection cnn;
public MoBang(Connection cn)
{
cnn=cn;
}
public void hienthi()
{
try
{
Statement Data=cnn.createStatement();
String sql="select maphim,tenphim,tentl,daodien from theloai inner join phim on
theloai.matl=phim.maTL";
ResultSet rst=Data.executeQuery(sql);
while (rst.next())
{
String ma=rst.getString(1);
String ten=rst.getString(2);
String tl=rst.getString(3);
String dd=rst.getString(4);
Phim ph=new Phim(ma,ten,tl,dd);
System.out.println(""+ph.toString());
}
rst.close();
Data.close();
}
catch (SQLException evt)
{
evt.printStackTrace();
}
}
}
public class b5_dl_qlPhim
{
public static void main(String[] args)
{
Connection cnn;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
File fl=new File("csdl.mdb");
cnn=DriverManager.getConnection("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ=" +
fl.getCanonicalFile());
MoBang tbPhim=new MoBang(cnn);
tbPhim.hienthi();
cnn.close();
}
catch (Exception evt)
{
System.out.println("Loi ket noi : " + evt.toString());
}

- 25 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

}
}

Bài 3 : CSDL : Quản lý hàng hoá . qlHangHoa.mdb nằm trong thư mục CLASSES
import java.io.*;
import java.sql.*;
class HangHoa
{
String mah,tenh,dv;
public HangHoa(String mah,String tenh,String dv)
{
this.mah=mah;
this.tenh=tenh;
this.dv=dv;
}
public void hienthi()
{
System.out.println("Mahang : " + mah + "\tTenhang : " + tenh + "\tDVT : " + dv);
}
}
class MoBang
{
Connection cnn;
public HangHoa A[]=new HangHoa[100];
public int n=0;
int i=0;
String ma,ten,dv;
int kt=0;

public MoBang(Connection cn)


{
cnn=cn;
}
public void layDL()
{
n=0;
i=0;
try
{
Statement table=cnn.createStatement();
String strSQL="Select * From HangHoa";
ResultSet rst = table.executeQuery(strSQL);
while (rst.next())
{
ma=rst.getString(1);
ten=rst.getString(2);
dv=rst.getString(3);
HangHoa a=new HangHoa(ma,ten,dv);
A[i]=a;
i=i+1;
n=n+1;
}
rst.close();
table.close();
}
catch (SQLException eLayDL)
{
eLayDL.printStackTrace();
}
}

- 26 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

public void CapNhatDL()


{
int ch=0;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
try
{
do
{
layDL();
System.out.println("\n\tDanh Muc Cac Chuc Nang");
System.out.println("\t1.Them Hang Hoa");
System.out.println("\t2.Sua Hang Hoa");
System.out.println("\t3.Xoa Hang Hoa");
System.out.println("\t4.Hien Thi Danh Sach");
System.out.println("\t0.Thoat Khoi Chuong Trinh");
System.out.print("\tBan chon : ");
ch=Integer.parseInt(in.readLine());
switch (ch)
{
case 1:
ThemMoiHH();
break;
case 2:
CapNhatHH();
break;
case 3:
XoaBoHH();
break;
case 4:
hienthiHH();
break;
}
}
while (ch!=0);
}
catch (Exception evMenu)
{
evMenu.printStackTrace();
}
}
public void hienthiHH()
{
System.out.println("Danh Muc Hang Hoa");
for (i=0;i<n;i++)
A[i].hienthi();
}
public void ThemMoiHH() throws Exception
{
System.out.println("Them Moi Hang Hoa");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
try
{
do
{
kt=0;
System.out.print("Nhap Ma Hang : ");
ma=in.readLine();
//kiem tra trung ma, khi them khong cho phep nhap trung ma
for (i=0;i<n;i++)
if (ma.equals(A[i].mah) || ma.equals(""))

- 27 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

kt=1;
}
while (kt!=0);
System.out.print("Nhap Ten Hang : ");
ten=in.readLine();
System.out.print("Nhap Don Vi Tinh : ");
dv=in.readLine();

Statement table=cnn.createStatement();
String strSQL="INSERT INTO HangHoa(mahang,tenhang,dvt) VALUES ('" + ma + "','" + ten +
"','" + dv + "')";
ResultSet rst = table.executeQuery(strSQL);
}
catch (SQLException evt1)
{
evt1.printStackTrace();
}
}
public void CapNhatHH() throws Exception
{
System.out.println("Cap Nhat Hang Hoa");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
try
{
kt=0;
String masua;
System.out.print("Nhap Ma Hang Can Cap Nhat : ");
masua=in.readLine();
//kiem tra trung ma, khi sua thi ma hang phai ton tai
for (i=0;i<n;i++)
if (ma.equals(A[i].mah)||(ma.equals("")))
kt=1;
if (kt==1)
{
do
{
kt=0;
System.out.print("Nhap Ma Hang Moi : ");
ma=in.readLine();
//ma hang phai chua ton tai hoac trung voi masua
for (i=0;i<n;i++)
if ((ma.equals(A[i].mah)) && (!ma.equals(masua)) && (ma.equals("")))
kt=1;
if (kt==1)
System.out.println("Ma hang ban nhap da ton tai trong CSDL");
}
while (kt!=0);
System.out.print("Nhap Ten Hang : ");
ten=in.readLine();
System.out.print("Nhap Don Vi Tinh : ");
dv=in.readLine();

Statement table=cnn.createStatement();
String strSQL="UPDATE HangHoa SET mahang = '" + ma + "',tenhang = '" + ten + "',dvt
= '" + dv + "' WHERE mahang = '" + masua + "'";
ResultSet rst = table.executeQuery(strSQL);
}
else
{
System.out.print("Ma Hang Khong Ton Tai Trong CSDL");

- 28 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

}
}
catch (SQLException evt1)
{
evt1.printStackTrace();
}
}
public void XoaBoHH() throws Exception
{
System.out.println("Xoa Bo Hang Hoa");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
try
{
kt=0;
System.out.print("Nhap Ma Hang Can Xoa: ");
ma=in.readLine();
//kiem tra ma hang can xoa phai ton tai
for (i=0;i<n;i++)
if (ma.equals(A[i].mah))
kt=1;
if (kt==1)
{
Statement table=cnn.createStatement();
String strSQL="DELETE FROM HangHoa WHERE mahang ='" + ma + "'";
ResultSet rst = table.executeQuery(strSQL);
}
else
{
System.out.print("Ma Hang Khong Ton Tai Trong CSDL");
}
}
catch (SQLException evt1)
{
evt1.printStackTrace();
}
}
}
public class b5_CSDL_qlHH
{
public static void main(String[] args)
{
Connection cnn=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
File db=new File("qlHangHoa.mdb");
cnn=DriverManager.getConnection("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ="
+ db.getCanonicalFile());
MoBang tbl=new MoBang(cnn);
tbl.layDL();
tbl.CapNhatDL();
cnn.close();
}
catch (Exception evCNN)
{
evCNN.printStackTrace();
}
}
}

- 29 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

Chương 6 – Lập Trình Mạng

Bài 1 : LẬP TRÌNH MẠNG : Lấy cấu hình IP của máy và hiển thị ra nền Form
import java.net.*;
import javax.swing.*;
class ThongTin extends JFrame
{
ThongTin(String Title)
{
super(Title);
setDefaultCloseOperation(EXIT_ON_CLOSE);
try
{
InetAddress addr=InetAddress.getLocalHost();
String hostname=addr.getHostName();
String hostaddress=addr.getHostAddress();
String host=addr.getCanonicalHostName();

JLabel lblHostName=new JLabel("Host Name : " + hostname);


lblHostName.setBounds(25,10,200,20);
this.add(lblHostName);
JLabel lblHostAddress=new JLabel("Ip Address : " + hostaddress);
lblHostAddress.setBounds(25,40,200,20);
this.add(lblHostAddress);
JLabel lblHost=new JLabel("Domain Name : " + host);
lblHost.setBounds(25,70,200,20);
this.add(lblHost);

}
catch (UnknownHostException evt)
{
evt.printStackTrace();
}
}
}
public class b6_sk_Information
{
public static void main(String[] args)
{
ThongTin frmInfo=new ThongTin("Thong Tin Cau Hinh Mang");
frmInfo.setBounds(350,100,250,150);
frmInfo.setLayout(null);
frmInfo.setVisible(true);
}
}

Bài 2 : LẬP TRÌNH MẠNG : Viết chương trình chat giữa Client và Server
MayChu.java
import java.io.*;
import java.net.*;
import java.util.*;
class MayChu
{
public static void main(String[] args)
{
try
{
ServerSocket server=new ServerSocket(2812);

- 30 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

System.out.println("Wait connecting....");
Socket client=server.accept();
PrintWriter pw=new PrintWriter(client.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
String st;
boolean ketthuc=false;
do
{
//gui thong bao
System.out.print("send : ");
Scanner scn=new Scanner(System.in);
pw.write(scn.nextLine());
pw.write("\n");
pw.flush();
//nhan thong bao
System.out.print("receive : ");
st=br.readLine();
System.out.println(st);
if (st.equalsIgnoreCase("bye"))
{
ketthuc=true;
}
}
while (!ketthuc);
br.close();
pw.close();
client.close();
}
catch (IOException evt)
{
evt.printStackTrace();
}
}
}

MayKhach.java
import java.io.*;
import java.net.*;
import java.util.*;
class MayKhach
{
public static void main(String[] args)
{
try
{
InetAddress addr=InetAddress.getLocalHost();
Socket server=new Socket("" + addr.getHostAddress(),2812);
System.out.println("Conecting server...");
PrintWriter pw=new PrintWriter(server.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(server.getInputStream()));
String st;
boolean ketthuc=false;
do
{
//nhan thong bao
System.out.print("receive : ");
st=br.readLine();
System.out.println(st);
if (st.equalsIgnoreCase("bye"))
{

- 31 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

ketthuc=true;
}
//gui thong bao
System.out.print("send : ");
Scanner scn=new Scanner(System.in);
pw.write(scn.nextLine());
pw.write("\n");
pw.flush();
}
while (!ketthuc);
pw.close();
br.close();
server.close();
}
catch (IOException evt)
{
evt.printStackTrace();
}

}
}

Chương 7 – Làm Việc Với Tập Tin

Bài 1 : Viết chương trình đọc tập tin Java.txt nằm trong thư mục CLASSES.
import java.io.*;
import java.util.*;

public class b8_file_Read


{
public static void main(String[] args)
{
File fl=new File("java.txt");
try
{
System.out.println("Open File : " + fl.getCanonicalFile());
Scanner scn=new Scanner(new FileInputStream(fl.getCanonicalFile()));
String strData="";
while (scn.hasNext())
strData=strData + scn.nextLine() + "\n";
scn.close();
System.out.println(strData);
}
catch (Exception evt)
{
evt.printStackTrace();
}
}
}

Bài 2 : Viết chương trình ghi dữ liệu vào tập tin Java.txt nằm trong thư mục CLASSES
import java.io.*;
import java.util.*;

public class b8_file_Write


{
public static void main(String[] args)
{
File fl=new File("java.txt");

- 32 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

BufferedReader in=new BufferedReader(new InputStreamReader(System.in));


System.out.println("Nhap DL de ghi vao file, ket thuc bang 'FINISH'");
String strData="",strTemp;
try
{
do
{
System.out.print("Input : ");
strTemp=in.readLine();
if (!strTemp.equals("FINISH"))
strData =strData + strTemp + "\n";
}
while (!strTemp.equals("FINISH"));
PrintWriter pw=new PrintWriter(new FileOutputStream(fl.getCanonicalFile()));
pw.print(strData);
pw.close();
}
catch (Exception evt)
{
evt.printStackTrace();
}
}
}

Bài 3 : Làm việc với tập tin qua giao diện trực quan
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class SOFTWARE extends JFrame implements ActionListener


{
JTextPane txtMain;
JLabel lblFileName;
String strFileName="";
String strData="";
public SOFTWARE(String Titles)
{
super(Titles);
setDefaultCloseOperation(EXIT_ON_CLOSE);
txtMain=new JTextPane();
this.add(new JScrollPane(txtMain),BorderLayout.CENTER);
lblFileName=new JLabel("Chuong Trinh Read - Write Tap Tin Document");
this.add(lblFileName,BorderLayout.SOUTH);
JMenuBar menu=new JMenuBar();
this.setJMenuBar(menu);

JMenu mnuFunction=new JMenu("Function");


menu.add(mnuFunction);

JMenuItem mnuNew=new JMenuItem("New File");JMenuItem mnuOpen=new JMenuItem("Open File");


JMenuItem mnuSave=new JMenuItem("Save File");JMenuItem mnuExit=new JMenuItem("Exit");

mnuFunction.add(mnuNew);mnuFunction.addSeparator();
mnuFunction.add(mnuOpen);mnuFunction.add(mnuSave);
mnuFunction.addSeparator();mnuFunction.add(mnuExit);
mnuNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
mnuOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
mnuSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));

- 33 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

mnuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));

mnuNew.addActionListener(this);mnuOpen.addActionListener(this);
mnuSave.addActionListener(this);mnuExit.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
JMenuItem item=(JMenuItem)evt.getSource();
if (item.getLabel()=="New File")
{
txtMain.setText("");
strData="";
strFileName="";
lblFileName.setText("Chuong Trinh Read - Write Tap Tin Document");

}
if (item.getLabel()=="Open File")
{
JFileChooser cdOpen=new JFileChooser();
cdOpen.showOpenDialog(item);
try
{
strFileName=cdOpen.getSelectedFile().getAbsolutePath();
Scanner scn=new Scanner(new FileInputStream(strFileName));
while (scn.hasNextLine())
{
strData=strData + scn.nextLine() + "\n";
}
scn.close();
txtMain.setText(strData);
lblFileName.setText(strFileName);
}
catch (Exception evtOpen)
{
evtOpen.printStackTrace();
}
}
if (item.getLabel()=="Save File")
{
JFileChooser cdSave=new JFileChooser();
if (strFileName=="")
{
cdSave.showSaveDialog(item);
try
{
strFileName=cdSave.getSelectedFile().getAbsolutePath();
strData=txtMain.getText();
PrintWriter pw=new PrintWriter(new FileOutputStream(strFileName));
pw.print(strData);
pw.close();
lblFileName.setText(strFileName);
}
catch (Exception evtSaveAs)
{
evtSaveAs.printStackTrace();
}
}
else
{
try

- 34 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

{
strData=txtMain.getText();
PrintWriter pw=new PrintWriter(new FileOutputStream(strFileName));
pw.print(strData);
pw.close();
}
catch (Exception evtSave)
{
evtSave.printStackTrace();
}
}
}
if (item.getLabel()=="Exit")
{
System.exit(1);
}
}
}
public class b8_file_JF_RW
{
public static void main(String[] args)
{
SOFTWARE mySoft=new SOFTWARE("Read - Write Text Document");
mySoft.setBounds(220,100,400,400);
mySoft.setVisible(true);
}
}

Lập Trình Phần Mềm Ứng Dụng


Bài 1 : NOTEPAD : Xây dựng chương trình mô phỏng Notepad.
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.text.*;

class CreateNotepad extends JFrame implements ActionListener


{
public JTextPane txtMain;
public String strFileName="";
public JLabel lblStatus;
public CreateNotepad(String title)
{
super(title);
setDefaultCloseOperation(EXIT_ON_CLOSE);
txtMain=new JTextPane();
this.add(new JScrollPane(txtMain),BorderLayout.CENTER);
lblStatus=new JLabel(" Untitled - Notepad");
this.add(lblStatus,BorderLayout.SOUTH);
//Menu Bar : File Edit Format Help
JMenuBar menu=new JMenuBar();
this.setJMenuBar(menu);

//Menu File : New Open Save SaveAs Print Exit


JMenu mnuFile=new JMenu("File");
menu.add(mnuFile);

JMenuItem mnuNew=new JMenuItem("New");JMenuItem mnuOpen=new JMenuItem("Open");

- 35 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

JMenuItem mnuSave=new JMenuItem("Save");JMenuItem mnuSaveAs =new JMenuItem("Save As...");


JMenuItem mnuPrint=new JMenuItem("Print...");JMenuItem mnuExit=new JMenuItem("Exit");

mnuFile.add(mnuNew); mnuFile.add(mnuOpen); mnuFile.addSeparator();


mnuFile.add(mnuSave); mnuFile.add(mnuSaveAs); mnuFile.addSeparator();
mnuFile.add(mnuPrint); mnuFile.addSeparator(); mnuFile.add(mnuExit);

mnuNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
mnuOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
mnuSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));
mnuPrint.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_DOWN_MASK));
mnuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));

mnuNew.addActionListener(this); mnuOpen.addActionListener(this);
mnuSave.addActionListener(this); mnuSaveAs.addActionListener(this);
mnuPrint.addActionListener(this); mnuExit.addActionListener(this);

//Menu Edit : Undo Cut Copy Paste Delete Find Replace SelectAll
JMenu mnuEdit=new JMenu("Edit");
menu.add(mnuEdit);

JMenuItem mnuUndo=new JMenuItem("Undo"); mnuUndo.setEnabled(false);


JMenuItem mnuCut=new JMenuItem("Cut"); JMenuItem mnuCopy=new JMenuItem("Copy");
JMenuItem mnuPaste=new JMenuItem("Paste"); JMenuItem mnuDelete=new JMenuItem("Delete");
mnuDelete.setEnabled(false); JMenuItem mnuFind=new JMenuItem("Find");
mnuFind.setEnabled(false); JMenuItem mnuReplace=new JMenuItem("Replace");
mnuReplace.setEnabled(false); JMenuItem mnuSelectAll=new JMenuItem("Select All");

mnuUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_DOWN_MASK));
mnuCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
mnuCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
mnuPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
mnuFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_DOWN_MASK));

mnuEdit.add(mnuUndo); mnuEdit.addSeparator(); mnuEdit.add(mnuCut); mnuEdit.add(mnuCopy);


mnuEdit.add(mnuPaste); mnuEdit.add(mnuDelete); mnuEdit.addSeparator(); mnuEdit.add(mnuFind);
mnuEdit.add(mnuReplace);mnuEdit.addSeparator(); mnuEdit.add(mnuSelectAll);

mnuUndo.addActionListener(this); mnuCut.addActionListener(this);mnuCopy.addActionListener(this);
mnuPaste.addActionListener(this); mnuDelete.addActionListener(this); mnuFind.addActionListener(this);
mnuReplace.addActionListener(this);mnuSelectAll.addActionListener(this);

//Menu Format : Font Color


JMenu mnuFormat=new JMenu("Format");
menu.add(mnuFormat);

JMenuItem mnuFont=new JMenuItem("Font..."); mnuFont.setEnabled(false);


JMenuItem mnuColor=new JMenuItem("Color..."); mnuColor.setEnabled(false);

mnuFormat.add(mnuFont);mnuFormat.addSeparator();mnuFormat.add(mnuColor);

mnuFont.addActionListener(this); mnuColor.addActionListener(this);

//Menu Help : HelpTopic About


JMenu mnuHelp=new JMenu("Help");
menu.add(mnuHelp);

JMenuItem mnuTopic=new JMenuItem("Help Topics"); mnuTopic.setEnabled(false);


JMenuItem mnuAbout=new JMenuItem("About");

- 36 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

mnuHelp.add(mnuTopic); mnuHelp.addSeparator(); mnuHelp.add(mnuAbout);

mnuTopic.addActionListener(this); mnuAbout.addActionListener(this);

}
public void actionPerformed(ActionEvent evt)
{
JMenuItem item=(JMenuItem)evt.getSource();

//Menu File
if (item.getLabel()=="New")
{
txtMain.setText("");
strFileName="";
lblStatus.setText(" Untitled - Notepad");
}
if (item.getLabel()=="Open")
{
JFileChooser cdOpen=new JFileChooser();
cdOpen.showOpenDialog(item);
try
{
strFileName=cdOpen.getSelectedFile().getAbsolutePath();
Scanner sc=new Scanner(new FileInputStream(strFileName));
lblStatus.setText("File : " + strFileName);
String strData="";
while (sc.hasNextLine())
strData=strData + sc.nextLine() + "\n";
txtMain.setText(strData);
sc.close();
}
catch (Exception et)
{
et.printStackTrace();
}
}
if (item.getLabel()=="Save")
{
if (strFileName=="")
{
JFileChooser cdSave=new JFileChooser();
cdSave.showSaveDialog(item);
try
{
strFileName=cdSave.getSelectedFile().getAbsolutePath();
lblStatus.setText("File : " + strFileName);
PrintWriter out=new PrintWriter(new FileOutputStream(strFileName),true);
out.print(txtMain.getText());
out.close();
}
catch (Exception et)
{
et.printStackTrace();
}
}
else
{
try
{
PrintWriter out=new PrintWriter(new FileOutputStream(strFileName),true);

- 37 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

out.print(txtMain.getText());
out.close();
}
catch (Exception et)
{
et.printStackTrace();
}
}
}
if (item.getLabel()=="Save As...")
{
JFileChooser cdSaveAs=new JFileChooser();
cdSaveAs.showSaveDialog(item);
try
{
strFileName=cdSaveAs.getSelectedFile().getAbsolutePath();
lblStatus.setText("File : " + strFileName);
PrintWriter out=new PrintWriter(new FileOutputStream(strFileName),true);
out.print(txtMain.getText());
out.close();
}
catch (Exception et)
{
et.printStackTrace();
}
}
if (item.getLabel()=="Print...")
{
try
{
MessageFormat header=new MessageFormat("Notepad 1.0");
MessageFormat footer=new MessageFormat("Written by donTRUONGBT");
txtMain.print(header,footer);
}
catch (Exception et)
{
et.printStackTrace();
}
}
if (item.getLabel()=="Exit")
{
System.exit(1);
}
//Menu Edit
if (item.getLabel()=="Cut")
{
txtMain.cut();
}
if (item.getLabel()=="Copy")
{
txtMain.copy();
}
if (item.getLabel()=="Paste")
{
txtMain.paste();
}
if (item.getLabel()=="Select All")
{
txtMain.selectAll();
}

- 38 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

//Menu Help
if (item.getLabel()=="About")
{
JDialog msg=new JDialog();
msg.setLayout(null);
msg.setTitle("About");
JLabel lblSoft=new JLabel("Chuong Trinh Notepad 1.0",JLabel.CENTER);
lblSoft.setBounds(0,10,300,20);
JLabel lblDetail=new JLabel("Người Viết : GV Bùi Tiến Trường");
lblDetail.setBounds(20,50,300,20);
JLabel lblDetail1=new JLabel("Email : dontruongbt@yahoo.com");
lblDetail1.setBounds(20,80,300,20);
JLabel lblDetail2=new JLabel("Mobile : 0989995221");
lblDetail2.setBounds(20,110,300,20);
JLabel lblDetail3=new JLabel("Website : http://dontruongbt.spaces.live.com/");
lblDetail3.setCursor(new Cursor(Cursor.HAND_CURSOR));
lblDetail3.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent ev)
{
String url="http://dontruongbt.spaces.live.com";
String command="cmd /c start " + url;
try
{
Runtime rt=Runtime.getRuntime();
rt.exec(command);
}
catch(Exception ioe)
{
ioe.printStackTrace();
}
}
});
lblDetail3.setBounds(20,140,300,20);msg.add(lblSoft);
msg.add(lblDetail);msg.add(lblDetail1);msg.add(lblDetail2);msg.add(lblDetail3);
msg.setModal(true);msg.setResizable(false); msg.setBounds(270,220,300,210);
msg.setVisible(true);
}
}
}
public class b7_MNU_Notepad
{
public static void main(String[] args)
{
CreateNotepad notepad=new CreateNotepad("Notepad - Written by Truongbt");
notepad.setBounds(120,100,600,400);
notepad.setVisible(true);
}
}

Bài 2 : Lập Trình Mạng : Xây dựng chương trình chat qua giao diện

Máy Chủ
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import java.net.*;

- 39 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

class Form extends JFrame implements ActionListener


{
String st;
JTextPane txtMain=new JTextPane();
JPanel panelTop=new JPanel();
JLabel lblMyIP;
JLabel lblMyPort =new JLabel("\tPort Connect : ");
JTextField txtPort=new JTextField("2812");
JButton cmdStart=new JButton("Start");
JPanel panelBottom=new JPanel();
JTextField txtData=new JTextField("");
JButton cmdSend=new JButton("Send");

InetAddress addr;
ServerSocket server;
Socket client;
PrintWriter pw;
BufferedReader br;
String message;
int Port;

Form(String Title)
{
super(Title);
setDefaultCloseOperation(EXIT_ON_CLOSE);
try
{
addr=InetAddress.getLocalHost();
lblMyIP=new JLabel("My IP Address : "+ addr.getHostAddress());
}
catch (IOException ioeIP)
{
ioeIP.printStackTrace();
}
panelTop.add(lblMyIP);
panelTop.add(lblMyPort);
panelTop.add(txtPort);
panelTop.add(cmdStart);

txtMain.setEditable(false);
txtData.setColumns(30);

panelBottom.add(txtData);
panelBottom.add(cmdSend);

this.add(panelTop,BorderLayout.NORTH);
this.add(new JScrollPane(txtMain),BorderLayout.CENTER);
this.add(panelBottom,BorderLayout.SOUTH);

cmdStart.addActionListener(this);
cmdSend.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
JButton cmd=(JButton)evt.getSource();
if (cmd.getLabel()=="Start")
{
txtMain.setText("Wait Connecting...");
try

- 40 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

{
Port=Integer.parseInt(txtPort.getText());
server=new ServerSocket(Port);
client=server.accept();
txtMain.setText("Client - Server Connected.");
}
catch (IOException ioeCon)
{
ioeCon.printStackTrace();
}
}

if (cmd.getLabel()=="Send")
{
try
{
//gui thong bao
txtMain.setText(txtMain.getText() + "\nServer : " + txtData.getText());
pw=new PrintWriter(client.getOutputStream());
pw.write(txtData.getText());
pw.write("\n");
pw.flush();
}
catch (IOException ioeSend)
{
ioeSend.printStackTrace();
}

try
{
//nhan thong bao
br=new BufferedReader(new InputStreamReader(client.getInputStream()));
message=br.readLine();
System.out.print(message);
txtMain.setText(txtMain.getText() + "\nClient : " + message);
}
catch (IOException ioeSend)
{
ioeSend.printStackTrace();
}
}
}
}
public class b9_FRM_Server
{
public static void main(String[] args)
{
Form Server=new Form("Server");
Server.setBounds(180,120,500,400);
Server.setVisible(true);
}
}

Máy Khách
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import java.net.*;

- 41 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

class Form extends JFrame implements ActionListener


{
String st;
JTextPane txtMain=new JTextPane();
JPanel panelTop=new JPanel();
JLabel lblMyIP;
JLabel lblServerIP=new JLabel("Server IP Address : ");
JTextField txtServerIP;
JLabel lblMyPort =new JLabel("\tPort Connect : ");
JTextField txtPort=new JTextField("2812");
JButton cmdConnect=new JButton("Connect");
JPanel panelBottom=new JPanel();
JTextField txtData=new JTextField("");
JButton cmdSend=new JButton("Send");

InetAddress addr;
Socket server;
PrintWriter pw;
BufferedReader br;
String message;
int Port;
String IP;

Form(String Title)
{
super(Title);
setDefaultCloseOperation(EXIT_ON_CLOSE);
try
{
addr=InetAddress.getLocalHost();
lblMyIP=new JLabel("My IP Address : "+ addr.getHostAddress());
txtServerIP=new JTextField(""+addr.getHostAddress());
}
catch (IOException ioeIP)
{
ioeIP.printStackTrace();
}
panelTop.add(lblMyIP);
panelTop.add(lblServerIP);
panelTop.add(txtServerIP);
panelTop.add(lblMyPort);
panelTop.add(txtPort);
panelTop.add(cmdConnect);

txtMain.setEditable(false);
txtData.setColumns(30);

panelBottom.add(txtData);
panelBottom.add(cmdSend);

this.add(panelTop,BorderLayout.NORTH);
this.add(new JScrollPane(txtMain),BorderLayout.CENTER);
this.add(panelBottom,BorderLayout.SOUTH);

cmdConnect.addActionListener(this);
cmdSend.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
JButton cmd=(JButton)evt.getSource();

- 42 -
Hệ Thống Bài Tập Java Biên soạn : Điện thoại :

if (cmd.getLabel()=="Connect")
{
try
{
IP=txtServerIP.getText();
Port=Integer.parseInt(txtPort.getText());
server=new Socket(IP,Port);
txtMain.setText("Client - Server Connected.");
}
catch (IOException ioeCon)
{
ioeCon.printStackTrace();
}
}
if (cmd.getLabel()=="Send")
{
try
{
//gui thong bao
txtMain.setText(txtMain.getText() + "\nClient : " + txtData.getText());
pw=new PrintWriter(server.getOutputStream());
pw.write(txtData.getText());
pw.write("\n");
pw.flush();
}
catch (IOException ioeReceive)
{
ioeReceive.printStackTrace();
}
}
if (server.isConnected()==true )
{
try
{
//nhan thong bao
System.out.println(evt.getSource().toString());
br=new BufferedReader(new InputStreamReader(server.getInputStream()));
message=br.readLine();
txtMain.setText(txtMain.getText() + "\nServer : " + message);
}
catch (IOException ioeReceive)
{
ioeReceive.printStackTrace();
}
}
}
}
public class b9_FRM_Client
{
public static void main(String[] args)
{
Form Client=new Form("Client");
Client.setBounds(60,120,650,400);
Client.setVisible(true);
}
}

- 43 -

You might also like