Một số tài liệu và khoá học bổ ích dành cho bạn:
# Tài liệu: Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu học lập trình [Click để xem]
# Khoá học online: Lập trình Java trong 4 tuần [Click để xem]
Xây dựng project với các lớp theo hình vẽ dưới đây
Code:
// class SV
package vd_adstract_130114;
import java.util.Scanner;
abstract class SV {
String hoTen, diaChi,he;
int namSinh;
// phuong thuc khoi tao
public SV(String hoTen, String diaChi,String he,int namSinh){
this.hoTen=hoTen;
this.diaChi=diaChi;
this.he=he;
this.namSinh=namSinh;
}
// Tinh diem
abstract float TinhDiem();
// diem chu
char DiemChu(){
float diem=TinhDiem();
char dchu;
if(diem<4)
dchu='F';
else if(diem<5.5)
dchu='D';
else if(diem<7)
dchu='C';
else if(diem<8.5)
dchu='B';
else dchu='A';
return dchu;
}
// in ket qua
void InKQ(){
System.out.print("\n\n IN KET QUA SINH VIEN "+he);
System.out.print("\n + Ho ten: "+hoTen);
System.out.print("\n + Dia chi: "+diaChi);
System.out.print("\n + Nam sinh: "+namSinh);
System.out.print("\n + Diem tong ket: "+TinhDiem());
System.out.println("\n + Diem chu: "+DiemChu());
}
}
// class SVCD
package vd_adstract_130114;
class SVCD extends SV{
float dTA,dToan,dLT,dCSDL;
// khoi tao
public SVCD(String hoTen, String diaChi,String he,int namSinh,float dTA, float dToan,float dLT,float dCSDL){
super(hoTen,diaChi,he,namSinh);
this.dCSDL=dCSDL;
this.dLT=dLT;
this.dTA=dTA;
this.dToan=dToan;
}
// Tinh diem
float TinhDiem(){
return (dTA*2+dToan*2+dLT*3+dCSDL*2)/10;
}
}
// class SVDH
package vd_adstract_130114;
public class SVDH extends SV {
float dTA,dToan,dLT,dCSDL,dTTNT;
// khoi tao
public SVDH(String hoTen, String diaChi,String he,int namSinh,float dTA, float dToan,float dLT,float dCSDL,float dTTNT){
super(hoTen,diaChi,he,namSinh);
this.dCSDL=dCSDL;
this.dLT=dLT;
this.dTA=dTA;
this.dToan=dToan;
}
// Tinh diem
float TinhDiem(){
return (dTA*2+dToan*2+dLT*3+dCSDL*2+dTTNT*2)/12;
}
}
// class _adstract_130114 (class main)
package vd_adstract_130114;
import java.util.Scanner;
/**
*
* @author tranxuanthanh
*/
public class Vd_adstract_130114 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// khai bao mang doi tuong
SV[] a =new SV[30];
// Nhap thong tin sinh vien
System.out.print("\n Chon he sinh vien \n 1 - Dai hoc; \n 2 - Cao dang; \n 3 - thoat \n Nhap so: ");
// Nhap he (Dai hoc hoac Cao dang)
Scanner inp=new Scanner(System.in);
int chonHe;
do{
chonHe=inp.nextInt();
if(chonHe!=1 && chonHe!=2&&chonHe!=3)
System.out.print("\n Chon he chua dung!");
}while(chonHe!=1 && chonHe!=2&&chonHe!=3);
// Nhap so sinh vien
System.out.print("\n Nhap so sinh vien \n n= ");
int n;
do{
n=inp.nextInt();
if(n<3 && n>30)
System.out.print("\n Nhap lai so sinh vien!");
}while(n<3 && n>30);
String hoTen, diaChi, he;
int namSinh;
float d1, d2, d3, d4,d5;
switch (chonHe){
// SINH VIEN CAO DANG
case 2:
{
for (int i=0;i<n;i++){
System.out.print("\n Nhap thong tin cho sv thu"+(i+1));
System.out.print("\n + Ho va ten: ");
hoTen = inp.next();
System.out.print("\n + Dia chi: ");
diaChi = inp.next();
he = "Cao dang";
System.out.print("\n + Nam sinh: ");
namSinh = inp.nextInt();
do{
System.out.print("\n + Diem 1: ");
d1 =inp.nextFloat();
if(d1<0&&d1>10)
System.out.print("\n Nhap lai diem! ");
}while(d1<0&&d1>10);
do{
System.out.print("\n + Diem 2: ");
d2 =inp.nextFloat();
if(d2<0&&d2>10)
System.out.print("\n Nhap lai diem! ");
}while(d2<0&&d2>10);
do{
System.out.print("\n + Diem 3: ");
d3 =inp.nextFloat();
if(d3<0&&d3>10)
System.out.print("\n Nhap lai diem! ");
}while(d3<0&&d3>10);
do{
System.out.print("\n + Diem 4: ");
d4 =inp.nextFloat();
if(d4<0&&d4>10)
System.out.print("\n Nhap lai diem! ");
}while(d4<0&&d4>10);
// khoi tao mang doi tuong
a[i] = new SVCD(hoTen,diaChi, he,namSinh,d1,d2,d3,d4);
}
// in danh sach sinh vien co diem chu A
System.out.print("\n * IN DANH SACH SV CO DIEM CHU LA A: \n");
for(int i=0;i<n;i++)
if(a[i].DiemChu()=='A')
a[i].InKQ();
// Doi ten sinh vien sang chu in hoa
System.out.print("\n * IN TEN SINH VIEN DA DOI THANH CHU HOA \n");
for(int i=0;i<n;i++){
a[i].hoTen = a[i].hoTen.toUpperCase();
System.out.print("\n" + a[i].hoTen);
}
}
// SINH VIEN DAI HOC
case 1:
{
for (int i=0;i<n;i++){
System.out.print("\n Nhap thong tin cho sv thu"+(i+1));
System.out.print("\n + Ho va ten: ");
hoTen = inp.next();
System.out.print("\n + Dia chi: ");
diaChi = inp.next();
he = "Dai hoc";
System.out.print("\n + Nam sinh: ");
namSinh = inp.nextInt();
do{
System.out.print("\n + Diem 1: ");
d1 =inp.nextFloat();
if(d1<0&&d1>10)
System.out.print("\n Nhap lai diem! ");
}while(d1<0&&d1>10);
do{
System.out.print("\n + Diem 2: ");
d2 =inp.nextFloat();
if(d2<0&&d2>10)
System.out.print("\n Nhap lai diem! ");
}while(d2<0&&d2>10);
do{
System.out.print("\n + Diem 3: ");
d3 =inp.nextFloat();
if(d3<0&&d3>10)
System.out.print("\n Nhap lai diem! ");
}while(d3<0&&d3>10);
do{
System.out.print("\n + Diem 4: ");
d4 =inp.nextFloat();
if(d4<0&&d4>10)
System.out.print("\n Nhap lai diem! ");
}while(d4<0&&d4>10);
do{
System.out.print("\n + Diem 5: ");
d5 =inp.nextFloat();
if(d5<0&&d5>10)
System.out.print("\n Nhap lai diem! ");
}while(d5<0&&d5>10);
// khoi tao mang doi tuong
a[i] = new SVDH(hoTen,diaChi, he,namSinh,d1,d2,d3,d4,d5);
}
// in danh sach sinh vien co diem chu A
System.out.print("\n * IN DANH SACH SV CO DIEM CHU LA A: \n");
for(int i=0;i<n;i++)
if(a[i].DiemChu()=='A')
a[i].InKQ();
// Doi ten sinh vien sang chu in hoa
System.out.print("\n * IN TEN SINH VIEN DA DOI THANH CHU HOA \n");
for(int i=0;i<n;i++){
a[i].hoTen = a[i].hoTen.toUpperCase();
System.out.print("\n" + a[i].hoTen);
}
}
default :
System.out.print("\n Ket thuc ");
}
}
}