Bai Tap OOP Voi Ngon Ngu Java Co Bai Giai Chi Tiet – Chủ Đề: Đề thi java (Có lời giải chi tiết) Đề – StuDocu

Chủ Đề: Đề thi java (Có lời giải chi tiết)

Đề 1:
1>Xay dung lop phan so voi hai thuoc tinh rieng xac dinh tu so va mau so
cua phan so va xay dung cac Phuong thuc:
-Cac toan tu tao lap
-Cac phep toan cong ,tru ,nhan ,chia cac phan so
-phep kiem tra mot phan so co phai toi gian hay ko
-Phep tim dang toi gian cua phan so.
2>Viet chuong trinh ung dung thuc hien viec nhap vao mot day cac phan so
va in ra man hinh dang toi gian cua cac phan so do.

PHP Code:
import java.*;
class PhanSo
{
protected int ts,ms;
PhanSo(){}
PhanSo(int tu,int mau)
{
ts=tu;
ms=mau;
}
static int nhapgt()throws IOException
{
String str;
DataInputStream stream=new DataInputStream(Syste
m);
str=stream();
return Integer(str).intValue();
}
PhanSo nhapps(int x)throws IOException
{
int tu,mau;
System.out("Nhap phan so thu "+x);
System.out("Tu so: ");
tu=nhapgt();
System.out("Mau so: ");
do
{

mau=nhapgt();
if (mau== 0 ) System.out("Nhap lai:
");
} while (mau== 0 );
PhanSo ps=new PhanSo(tu,mau);
return ps;
}
static int UCLN(int a,int b)
{
while (a!=b)
if (a>b) a=a-b;
else b=b-a;
return a;
}
static PhanSo toigian(PhanSo ps)
{
PhanSo phanso=new PhanSo();
phanso.ts=ps/UCLN(Math(ps),Math(ps
.ms));
phanso.ms=ps/UCLN(Math(ps),Math(ps
.ms));
return phanso;
}
static PhanSo tong(PhanSo ps1,PhanSo ps2)
{
PhanSo phanso=new PhanSo();
phanso.ts=ps1ps2+ps2ps1;
phanso.ms=ps1ps2;
if(phanso!= 0 )
phanso=toigian(phanso);
return phanso;
}
static PhanSo hieu(PhanSo ps1,PhanSo ps2)
{
PhanSo phanso=new PhanSo();
phanso.ts=ps1ps2.ms-ps2ps1;
phanso.ms=ps1ps2;
if(phanso!= 0 )
phanso=toigian(phanso);
return phanso;
}
static PhanSo tich(PhanSo ps1,PhanSo ps2)
{
PhanSo phanso=new PhanSo();
phanso.ts=ps1ps2;
phanso.ms=ps1ps2;
if(phanso!= 0 )

if (ps2!= 0 )
{
System.out("Phan so thuong(phan so
1/phan so 2): ");
hthi(thuong(ps1,ps2));
}
else System.out("Khong the thuc hien phep
chia phan so 1/phan so 2 ");
System.out();
if (ps1!= 0 )
{
System.out("Phan so thuong(phan so
2/phan so 1): ");
hthi(thuong(ps2,ps1));
}
else System.out("Khong the thuc hien phep
chia phan so 2/phan so 1 ");
System.out();
}
}

Đề 2:
Một đơn vị sản xuất gồm có các cán bộ là công nhân, kỹ sư, nhân viên.

  • Mỗi cán bộ cần quản lý lý các thuộc tính: Họ tên, năm sinh, giới tính, địa
    chỉ
  • Các công nhân cần quản lý: Bậc (công nhân bậc 3/7, bậc 4/7 …)
  • C·c kỹ sư cần quản lý: Ngành đào tạo
  • Các nhân viên phục vụ cần quản lý thông tin: công việc
  1. Xây dựng các lớp NhanVien, CongNhan, KySu kế thừa từ lớp CanBo
  2. Xây dựng các hàm để truy nhập, hiển thị thông tin và kiểm tra về các
    thuộc tính của các lớp.
  3. Xây dựng lớp QLCB cài đặt các phương thức thực hiện các chức năng sau:
  • Nhập thông tin mới cho cán bộ
  • Tìm kiếm theo họ tên
  • Hiển thị thông tin về danh sách các cán bộ
  • Thoát khỏi chương trình.

PHP Code:
import java.*;
class CanBo
{
protected String hvt,dc,gt;
protected int ns;
CanBo(){}
}
class CongNhan extends CanBo

Tóm Tắt

{

protected String bac;
CongNhan(){}
}
class NhanVien extends CanBo
{
protected String congviec;
NhanVien(){}
}
class KySu extends CanBo
{
protected String nganhdt;
KySu(){}
}
class QLCB
{
static String nhapgt()throws IOException
{
String str;
DataInputStream stream = new DataInputSt
ream(System);
str =stream();
return str;
}
static boolean ssxau(String s1,String s2)
{
if (s1(s2)) return fals
e;
else return true;
}
static int nhapnn()throws IOException
{
String nn;
System.out("Nghe nghiep: ");
do{
nn=nhapgt();
if (ssxau(nn,"nv")&&ssxau(nn,"cn")&&
ssxau(nn,"ks"))
System.out("Ban chi co
the nhap nv/cn/ks: ");
} while (ssxau(nn,"nv")&&ssxau(nn,"cn"
)&&ssxau(nn,"ks"));
if (ssxau(nn,"nv")==false) return 1 ;
else
if (ssxau(nn,"cn")==false) return 2 ;
else
if (ssxau(nn,"ks")==false) return

System.out("So can bo: ");
scb=Integer(nhapgt()).intValue()
;
NhanVien NV []=new NhanVien[scb];
CongNhan CN []=new CongNhan[scb];
KySu KS []=new KySu[scb];
System.out("Nhap thong tin cho c
ac CB: ");
for(i= 0 ;i<scb;i++)
{
System.out("Ho ten: ");
hvt=nhapgt();
System.out("Nam sinh: ");
ns=Integer(nhapgt()).int
Value();
System.out("Gioi tinh: ");

gt=nhapgt();
System.out("Dia chi: ");
dc=nhapgt();
nn=nhapnn();
switch (nn){
case 1 :
NV[snv]=new NhanVien();
NV[snv].hvt=hvt;
NV[snv].gt=gt;
NV[snv].ns=ns;
NV[snv].dc=dc;
System.out("Cong v
iec: ");
NV[snv].congviec=nhapgt(
);
snv++;
break;
case 2 :
CN[scn]=new CongNhan();
CN[scn].hvt=hvt;
CN[scn].gt=gt;
CN[scn].ns=ns;
CN[scn].dc=dc;
System.out("Bac: "
);
CN[scn].bac=nhapgt();
scn++;
break;
case 3 :
KS[sks]=new KySu();

KS[sks].hvt=hvt;
KS[sks].gt=gt;
KS[sks].ns=ns;
KS[sks].dc=dc;
System.out("Nghanh
dao tao: ");
KS[sks].nganhdt=nhapgt()
;
sks++;
break;
default: System.out(
);
}
}
System.out("——–HIEN THI—-
–");
for(i= 0 ;i<scb;i++)
{
if (NV[i]!=null)
hienthinv(NV[i]);
if (CN[i]!=null)
hienthicn(CN[i]);
if (KS[i]!=null)
hienthiks(KS[i]);
}
String ht;
System.out("——–TIM KIEM—-
—");
System.out("Moi ban nhap ho ten ca
n tim: ");
ht=nhapgt();
for(i= 0 ;i<scb;i++)
{
if (NV[i]!=null&&timkiem(NV[i],h
t))
hienthinv(NV[i]);
if (CN[i]!=null&&timkiem(CN[i],h
t))
hienthicn(CN[i]);
if (KS[i]!=null&&timkiem(KS[i],h
t))
hienthiks(KS[i]);
}
}
}

str =stream();
return str;
}
static void nhaptl(TaiLieu tl)throws IOException
{
System.out("Ma tai lieu: ");
tl=nhapgt();
System.out("NXB: ");
tl=nhapgt();
System.out("So ban phat hanh: ");
tl=nhapgt();
}
static void nhapsach(Sach sh)throws IOException
{
nhaptl(sh);
System.out("Ten tac gia: ");
sh=nhapgt();
System.out("So trang: ");
sh=nhapgt();
}
static void nhaptapchi(TapChi tc)throws IOException
{
nhaptl(tc);
System.out("So phat hanh: ");
tc=nhapgt();
System.out("Thang phat hanh: ");
tc=nhapgt();
}
static void nhapbao(Bao bao)throws IOException
{
nhaptl(bao);
System.out("Ngay phat hanh: ");
bao=nhapgt();
}
static void hienthitl(TaiLieu tl)
{
System.out("Ma tai lieu: "+tl);
System.out("NXB: "+tl);
System.out("So ban phat hanh: "+tl)
;
}
static void hienthisach(Sach sa)
{
System.out("———-SACH———");
hienthitl(sa);
System.out("Ten tac gia: "+sa);
System.out("So trang: "+sa);

}

static void hienthitc(TapChi tc)
{
System.out("———-TAP CHI———
");
hienthitl(tc);
System.out("So phat hanh: "+tc);
System.out("Thang phat hanh: "+tc);

}
static void hienthibao(Bao bao)
{
System.out("———BAO———-");
hienthitl(bao);
System.out("Ngay phat hanh: "+bao);

}
static int nhaplc()throws IOException
{
String a;
System.out("Ten tai lieu: ");
do{
a=nhapgt();
if (a("sach")==false&&a
alsIgnoreCase("tapchi")==false&&a("bao")==false
)
System.out("Ban chi co the nhap sac
h/tapchi/bao: ");
} while (a("sach")==false&&a.
equalsIgnoreCase("tapchi")==false&&a("bao")==fa
lse);
if (a("sach")) return 1 ;
else
if (a("tapchi")) return 2 ;
else
if (a("bao")) return 3 ;
else return 0 ;
}
static void timtl(Sach sa,TapChi tc,Bao bao,int lc)throw
s IOException
{
switch (lc)
{
case 1 :
if(sa!=null)
hienthisach(sa);
break;

if (SA[i]!=null) hienthisach(SA[i]);
if (TC[i]!=null) hienthitc(TC[i]);
if (BA[i]!=null) hienthibao(BA[i]);
}
System.out("————Tim kiem——–
—");
int lc=nhaplc();
for (int i= 0 ;i<n;i++)
timtl(SA[i],TC[i],BA[i],lc);
}
}

Đề 4:
Các thí sinh dự thi đại học bao gồm các thí sinh thi khối A, thí sinh thi khối
B, thí sinh thi khối C

  • C·c thí sinh cần quản lý các thuộc tính: Số báo danh, họ tên, địa chỉ, ưu
    tiÍn.
  • Thí sinh thi khối A thi các môn: Toán, lý, hoá
  • Thí sinh thi khối B thi các môn: Toán, Hoá, Sinh
  • Thí sinh thi khối C thi các môn: văn, Sử, Địa
  1. Xây dựng các lớp để quản lý các thí sinh sao cho sử dụng lại được nhiều
    nhất.
  2. Xây dựng lớp TuyenSinh cài đặt các phương thức thực hiện các nhiệm vụ
    sau:
  • Nhập thông tin về các thí sinh dự thi
  • Hiển thị thông tin về một thí sinh
  • Tìm kiếm theo số báo danh
  • Kết thúc chương trình.

PHP Code:
import java.*;
class ThiSinh
{
protected String hvt,dc,ut;
protected int sbd;
ThiSinh(){}
}
class KhoiA extends ThiSinh
{
protected String Mon1,Mon2,Mon3;
KhoiA(){}
KhoiA(String m1,String m2,String m3)
{
Mon1=m1;
Mon2=m2;
Mon3=m3;

}

}

class KhoiB extends KhoiA
{
KhoiB(){}
KhoiB(String m1,String m2,String m3)
{
Mon1=m1;
Mon2=m2;
Mon3=m3;
}
}
class KhoiC extends KhoiA
{
KhoiC(){}
KhoiC(String m1,String m2,String m3)
{
Mon1=m1;
Mon2=m2;
Mon3=m3;
}
}

class TuyenSinh
{
static String nhapgt()throws IOException
{
String str;
DataInputStream stream = new DataInputStream(Sys
tem);
str =stream();
return str;
}
static void nhapts(ThiSinh ts)throws IOException
{
System.out("SBD: ");
ts.sbd=Integer(nhapgt()).intValue();
System.out("Ho va ten: ");
ts=nhapgt();
System.out("Dia chi: ");
ts=nhapgt();
System.out("Uu tien: ");
ts=nhapgt();
}
static void hienthi(KhoiA ts)
{ System.out("——————–");
System.out("SBD: "+ts);

,"Hoa");
nhapts(TSA[a]);
a++;
break;
case 2 :
TSB[b]=new KhoiB("Toan","Hoa
","Sinh");
nhapts(TSB[b]);
b++;
break;
case 3 :
TSC[c]=new KhoiC("Van","Su",
"Dia");
nhapts(TSC[c]);
c++;
break;
default: System.out();
}
}
System.out("———-HIEN THI———-
— ");
for(int j= 0 ;j<n;j++)
{
if (TSA[j]!=null)
hienthi(TSA[j]);
if (TSB[j]!=null)
hienthi(TSB[j]);
if (TSC[j]!=null)
hienthi(TSB[j]);
}
}
}

Đề 5:
Để quản lý các hộ dân trong một khu phố, ngưßi ta quản l ̋ c·c thÙng tin
như sau:

  • Với mỗi hộ dân, có các thuộc tính:
  • Số thành viên trong hộ ( số ngưßi)
  • Số nhà của hộ dân đó. ( Số nhà được gắn cho mỗi hộ dân)
  • Thông tin về mỗi cá nhân trong hộ gia đình.
  • Với mỗi cá nhân, ngưßi ta quản lý các thông tin như: họ và tên, tuổi, năm
    sinh, nghề nghiệp.
  1. Hãy xây dựng lớp Nguoi để quản lý thông tin về mỗi cá nhân.

  2. Xây dựng lớp KhuPho để quản lý thông tin về các hộ gia đình.

  3. Viết các phương thức nhập, hiển thị thông tin cho mỗi cá nhân.

  4. Cài đặt chương trình thực hiện các công việc sau:

  • Nhập vào một dãy gồm n hộ dân (n – nhập từ bàn phím).
  • Hiển thị ra màn hình thông tin về các hộ trong khu phố.

PHP Code:
import java.*;
class Nguoi
{
protected String hvt,ns,nn;
Nguoi(){}
}
class KhuPho
{
protected int stv,sn;
KhuPho(){}
Nguoi tv[];
}
class QL
{
static String nhapgt()throws IOException
{
String str;
DataInputStream stream = new DataInputStream(Sys
tem);
str =stream();
return str;
}
static void nhap(KhuPho kp)throws IOException
{
System.out("So nha: ");
kp.sn=Integer(nhapgt()).intValue();
System.out("So thanh vien: ");
kp.stv=Integer(nhapgt()).intValue();
kp=new Nguoi[kp];
for(int i= 0 ;i<kp;i++)
{
System.out("Thanh vien thu "+(i+
1 ));
kp[i]=new Nguoi();
System.out("Ho ten: ");
kp[i].hvt=nhapgt();
System.out("Nam sinh: ");
kp[i].ns=nhapgt();
System.out("Nghe nghiep: ");
kp[i].nn=nhapgt();
}

khách trọ.

  • Với mỗi cá nhân, ngưßi ta cần quản lý các thông tin : Họ và tên, tuổi, năm
    sinh, số chứng minh thư nhân dân.
  1. Hãy xây dựng lớp Nguoi để quản lý thông tin cá nhân về mỗi c· nh‚n
  2. Xây dựng lớp KhachSan để quản lý các thông tin về khách trọ.
  3. Viết các phương thức : nhập, hiển thị các thông tin về mỗi khách trọ
  4. Cài đặt chương trình thực hiện các công việc sau:
  • Nhập vào một dãy gồm n khách trọ ( n – nhập từ bàn phím)
  • Hiển thị ra màn hình thông tin về các cá nhân hiện đang trọ á khách sạn
    đó.

PHP Code:
import java.*;
class Nguoi
{
protected String hvt,ns,scm;
Nguoi(){}
}
class KhachSan
{
protected String snt,lp,gp;
KhachSan(){}
Nguoi kt;
}
class QL
{
static String nhapgt()throws IOException
{
String str;
DataInputStream stream = new DataInputStream(Sys
tem);
str =stream();
return str;
}
static void nhap(KhachSan ks)throws IOException
{
System.out("So ngay tro: ");
ks=nhapgt();
System.out("Loai phong: ");
ks=nhapgt();
System.out("Gia phong(d/ngay): ");
ks=nhapgt();
ks=new Nguoi();
System.out("Thong tin ca nhan cua khach
");
System.out("Ho ten: ");

ks.kt=nhapgt();
System.out("Nam sinh: ");
ks.kt=nhapgt();
System.out("So CM nhan dan: ");
ks.kt=nhapgt();
}
static void hienthi(KhachSan ks)
{
System.out("Ho ten: "+ks.kt);
System.out("Nam sinh: "+ks.kt);
System.out("So CMND: "+ks.kt);
}
public static void main(String args[])throws IOException
{
int n;
System.out("So khach tro: ");
n=Integer(nhapgt()).intValue();
KhachSan KT []=new KhachSan[n];
System.out("——–NHAP THONG TIN——
—");
for(int j= 0 ;j<n;j++)
{
System.out("Khach tro thu "+(j+ 1
));
KT[j]=new KhachSan();
nhap(KT[j]);
}
System.out("———-HIEN THI———-
— ");
for(int j= 0 ;j<n;j++)
{
System.out("——————–
— ");
System.out("Khach tro thu "+(j+ 1
));
hienthi(KT[j]);
}
}
}

Đề 7:
Để quản lý hồ sơ học sinh của trưßng THPT, ngưßi ta cần quản lý những
thông tin như sau:

  • Các thông tin về : lớp, khoá học, kỳ học, và các thông tin cá nhân của mỗi