Wednesday, April 27, 2016

Bài tập lập trình hướng đối tượng với Java (Số 5)

//Họ Tên: Trần Văn Linh
//MaSV:581597
//Lớp:K58QLTT

Đề:
Thư viện của trường đại học KHTN có nhu cầu cần quản lý việc mượn sách. Sinh viên đăng ký và tham
gia mượn sách thông qua các thẻ mượn mà thư viện đã thiết kế.
- Với mỗi thẻ mượn, có các thông tin sau: số phiếu mượn , ngày mượn, hạn trả , số hiệu sách, và các thông tin riêng về mỗi sinh viên đó.
- Các thông tin riêng về mỗi sinh viên đó bao gồm: Họ tên, MSV, ngày sinh, lớp.
1. Hãy xây dựng lớp SinhVien để quản lý các thông tin riêng về mỗi sinh viên.
2. Xây dựng lớp TheMuon để quản lý việc mượn sách của mỗi đọc giả.
3. Xây dựng các phương thức để nhập và hiện thị các thông tin riêng cho mỗi sinh viên
4. In ra danh sách sinh viên, tên sách mượn cần trả vào ngày cuối tháng

--------------------------------------------------------------------------------------------------------------------------

 Giải:
//Lớp SinhVien
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Scanner;
public class SinhVien
{
    private String hoTen;
    private String mSV;
    private Date ngaySinh;
    private String lop;
 
    public SinhVien()
    {
     
    }
    public SinhVien(String hoTen,String mSV,Date ngaySinh,String lop)
    {
        this.hoTen=hoTen;
        this.mSV=mSV;
        this.ngaySinh=ngaySinh;
        this.lop=lop;
    }
    public void nhapThongTin() throws Exception
    {
        Scanner sc=new Scanner(System.in);
        System.out.print("Nhap ho ten: ");
        this.hoTen=sc.nextLine();
        System.out.print("Nhap ma sinh vien :");
        this.mSV=sc.nextLine();
        System.out.print("Nhap ngay sinh(dd-MM-yy):");
        String ns=sc.nextLine();
        DateFormat df=new SimpleDateFormat("dd-MM-yy");
        this.ngaySinh= df.parse(ns);
        System.out.print("Nhap lop: ");
        this.lop=sc.nextLine();
    }
    public void hienThongTin()
    {
        System.out.println("Ho va ten: "+this.hoTen);
        System.out.println("Ma sinh vien: "+this.mSV);
        System.out.println("Ngay sinh: "+this.ngaySinh);
        System.out.println("Lop : "+this.lop);
    }
 
    public String getHoTen()
    {
        return this.hoTen;
    }
    public String getMSV()
    {
        return this.mSV;
    }
    public Date getNgaySinh()
    {
        return this.ngaySinh;
    }
    public String getLop()
    {
        return this.lop;
    }
}
//Lớp TheMuon
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.util.ArrayList;
import java.io.PrintWriter;
public class TheMuon
{
    private int sPMuon;
    private Date ngayMuon;
    private Date ngayTra;
    private String soHieuSach;
    private SinhVien sv;
    public TheMuon()
    {
        
    }
    public TheMuon(int sPMuon,Date ngayMuon,Date ngayTra,String soHieuSach,SinhVien sv)
    {
        this.sPMuon=sPMuon;
        this.ngayMuon=ngayMuon;
        this.ngayTra=ngayTra;
        this.soHieuSach=soHieuSach;
        this.sv=sv;
    }
    
    public void nhapThongTin() throws Exception
    {
        this.sv=new SinhVien();
        this.sv.nhapThongTin();
        Scanner sc=new Scanner(System.in);
        System.out.print("Nhap so phieu muon:");
        this.sPMuon=sc.nextInt();
        sc.nextLine();
        System.out.print("Nhap so hieu sach: ");
        this.soHieuSach=sc.nextLine();
        this.ngayMuon=new Date();
        System.out.print("Nhap ngay tra:(dd-mm-yy): ");
        String ngt=sc.nextLine();
        DateFormat df=new SimpleDateFormat("dd-MM-yy");
        this.ngayTra=df.parse(ngt);
    }
    public int getNgayTra()
    {
        return this.ngayTra.getDate();
    }
    public void hienThongTin()
    {
        sv.hienThongTin();
        System.out.println("Ten sach tra: "+this.soHieuSach);
    }
  
    public static void main(String[] args) throws Exception
    {
        ArrayList<TheMuon> ds=new ArrayList<TheMuon>();
        Scanner sc=new Scanner(System.in);
        int dem=0;
        char c;
        do
        {
            System.out.println("Nhap thong tin the muon thu "+(dem+1)+" :");
            TheMuon tg=new TheMuon();
            tg.nhapThongTin();
            ds.add(tg);
            dem++;
            System.out.print("Co muon nhap nua khong (Y/N): ");
            c=sc.nextLine().charAt(0);
        }while(c=='y'||c=='Y');
        System.out.println("=============================================");
        for(int i=0;i<ds.size();i++)
            if(ds.get(i).getNgayTra()==30)
                ds.get(i).hienThongTin();
    }
    
}

Bài tập lập trình hướng đối tượng với Java (Số 4)

//Họ Tên: Trần Văn Linh
//MaSV:581597
//Lớp:K58QLTT

Đề:
Khoa CNTT-DHTN cần quản lý việc thanh toán tiền lương cho các cán bộ giáo viên trong khoa. Để quản
lý được, thì nhà quản lý cần có những thông tin như sau:
- Với mỗi cán bộ giáo viên, có các thông tin như sau: lương cứng, thướng, phạt, lương thực lĩnh và các
thông tin cá nhân của mỗi cán bộ giáo viên
- Các thông tin cá nhân của mỗi cán bộ giáo viên: Họ và tên, ngày sinh, quê quán.
1. Hãy xây dựng lớp Nguoi để quản lý các thông tin cá nhân về mỗi cán bộ giáo viên
2. Xây dựng lớp CBGV ( cán bộ giáo viên) để quản lý các thông tin về mỗi cán bộ giáo viên
3. Xây dựng các phương thức : nhập, hiển thị các thông tin cá nhân của mỗi cán bộ giáo viên
4. Tính lương thực lĩnh cho mỗi cán bộ nếu công thức tính lương được tính như sau:
Lương thực lĩnh=Lương cứng + thưởng - phạt
5. In ra danh sách những cán bộ có lương thực lĩnh >= 8 triệu
    Giải

//Lớp Nguoi
import java.util.Scanner;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Nguoi
{
    private String hoTen;
    private Date ngaySinh;
    private String queQuan;
 
    public Nguoi()
    {
        this.ngaySinh=new Date();
    }
    public Nguoi(String hoTen,Date ngaySinh,String queQuan)
    {
        this.hoTen=hoTen;
        this.ngaySinh=ngaySinh;
        this.queQuan=queQuan;
    }
 
    public void nhapThongTin(Scanner sc)
    {
        System.out.print("Nhap ho ten: ");
        this.hoTen=sc.nextLine();
        System.out.println("Nhap ngay sinh(dd-MM-yyyy): ");
        String ns=sc.nextLine();
        this.ngaySinh=chuyenStringDate(ns);
        System.out.print("Nhap que quan: ");
        this.queQuan=sc.nextLine();
    }
    public Date chuyenStringDate(String str)
    {
        Date ns=null;
        SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
        try
        {
            ns=sdf.parse(str);
        }
        catch(Exception e)
        {
            System.out.println("Loi dinh dang ngay thang.!");
        }
        return ns;
    }
    public void hienThongTin()
    {
         System.out.println("Ho va ten: "+this.hoTen);
         System.out.println("Ngay Sinh: "+this.ngaySinh);
         System.out.println("Que quan: "+this.queQuan);
    }

}
//Lop CBGV
import java.util.Scanner;
import java.util.Date;
public class CBGV extends Nguoi
{
    private double luongCung;
    private double thuong;
    private double lThuclinh;
    private double phat;
    
    public CBGV()
    {
        
    }
    public  CBGV(String hoTen,Date ngaySinh,String queQuan,double luongCung,double thuong,double phat)
    {
        super( hoTen,ngaySinh, queQuan);
        this.luongCung=luongCung;
        this.thuong=thuong;
        this.phat=phat;
        this.lThuclinh=this.luongCung+this.thuong-this.phat;
    }
    
    public void nhapThongTin(Scanner sc)
    {
        super.nhapThongTin(sc);
        System.out.print("Nhap luong cung: ");
        this.luongCung=sc.nextDouble();
        System.out.print("Nhap thuong: ");
        this.thuong=sc.nextDouble();
        System.out.print("Nhap phat: ");
        this.phat=sc.nextDouble();sc.nextLine();
        this.lThuclinh=this.luongCung+this.thuong-this.phat;
    }
    public void hienThongTin()
    {
        super.hienThongTin();
        System.out.println("Luong cung: "+this.luongCung);
        System.out.println("Thuong: "+this.thuong);
        System.out.println("Phat: "+this.phat);
        System.out.println("Luong thuc linh: "+this.lThuclinh);
    }
    
    public double getLuongThucLinh()
    {
       return this.lThuclinh;
    }
    public static void main(String[] args)
    {
        CBGV dsCB[];
        Scanner sc=new Scanner(System.in);
        System.out.print("Nhap so luong can bo :");
        int n=sc.nextInt();sc.nextLine();
        dsCB=new CBGV[n];
        for(int i=0;i<n;i++)
        {
            System.out.println("Nhap can bo thu "+(i+1)+": ");
            dsCB[i]=new CBGV();
            dsCB[i].nhapThongTin(sc);
        }
        
        System.out.println("Can bo co luong thuc linh >=8trieu:");
        for(int i=0;i<n;i++)
        {
            if(dsCB[i].getLuongThucLinh()>=8000000)
                dsCB[i].hienThongTin();
        }
    }
}


Bài tập lập trình hướng đối tượng với Java (số 3)

//Họ Tên: Trần Văn Linh
//MaSV:581597
//Lớp:K58QLTT

Đề:
Để 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 học sinh.
- Với mỗi học sinh, các thông tin cá nhân cần quản lý gồm có: Họ và tên, ngày sinh, quê quán.
1. Hãy xây dựng lớp Nguoi để quản lý các thông tin cá nhân của mỗi học sinh.
2. Xây dựng lớp HSHocSinh (hồ sơ học sinh) để lý các thông tin về mỗi học sinh.
3. Xây dựng các phương thức : nhập, hiển thị các thông tin về 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 danh sách gồm n học sinh ( n- nhập từ bàn phím)
- Hiển thị ra màn hình tất cả những học sinh sinh năm 1985 và quê ở Thái Nguyên
- Hiển thị ra màn hình tất cả những học sinh của lớp 10A1

Giải
//Lop Nguoi
import java.util.Scanner;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Nguoi
{
    private String hoTen;
    private Date ngaySinh;
    private String queQuan;
 
    public Nguoi()
    {
        this.ngaySinh=new Date();
    }
    public Nguoi(String hoTen,Date ngaySinh,String queQuan)
    {
        this.hoTen=hoTen;
        this.ngaySinh=ngaySinh;
        this.queQuan=queQuan;
    }
 
    public void nhapThongTin()
    {
        Scanner sc=new Scanner(System.in);
        System.out.print("Nhap ho ten: ");
        this.hoTen=sc.nextLine();
        System.out.print("Nhap ngay sinh (dd-mm-yyyy): ");
        String ns=sc.nextLine();
        this.ngaySinh=chuyenStringDate(ns);
        System.out.print("Nhap que quan: ");
        this.queQuan=sc.nextLine();
    }
    public void hienThongTin()
    {
         System.out.println("Ho va ten: "+this.hoTen);
         System.out.println("Ngay Sinh: "+this.ngaySinh);
         System.out.println("Que quan: "+this.queQuan);
    }
    public Date chuyenStringDate(String str)
    {
        Date ns=null;
        SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy");
        try
        {
            ns=sdf.parse(str);
        }catch(Exception e)
        {
            System.out.println("Loi dinh dang ngay thang.!");
        }
        return ns;
    }
    public String getQueQuan()
    {
        return this.queQuan;
    }
    public Date getNgaySinh()
    {
        return this.ngaySinh;
    }

}
//lớp HSHocSinh
import java.util.Scanner;
import java.util.Date;
public class HSHocSinh extends Nguoi 
{
    private String lop;
    private String khoaHoc;
    
    public HSHocSinh ()
    {
        
    }
    public HSHocSinh(String hoTen,Date ngaySinh,String queQuan,String lop,String khoaHoc)
    {
        super( hoTen, ngaySinh, queQuan);
        this.lop=lop;
        this.khoaHoc=khoaHoc;
    }
    
    public void nhapThongTin()
    {
        super.nhapThongTin();
        Scanner sc=new Scanner(System.in);
        System.out.print("Nhap ten lop: ");
        this.lop=sc.nextLine();
        System.out.print("Nhap khoa hoc: ");
        this.khoaHoc=sc.nextLine();
    }
    public void hienThongTin()
    {
        super.hienThongTin();
        System.out.println("Lop: "+this.lop);
        System.out.println("Khoa hoc: "+this.khoaHoc);
    }
    
    public String getLop()
    {
        return this.lop;
    }
}
//Lớp Test

import java.util.ArrayList;
import java.util.Scanner;
public class Test
{
   public static void main(String[] args) throws Exception
   {
       ArrayList<HSHocSinh> ds;
       int n;
       Scanner sc=new Scanner(System.in);
       try
       {     
           System.out.print("Nhap so luong hoc sinh: ");
           n=sc.nextInt();
           sc.nextLine();
        }catch(Exception e)
        {
            n=1;
        }
       String tl=null;
       ds=new ArrayList<HSHocSinh>(n);
       HSHocSinh b=new HSHocSinh();
       while(true)
       {
           b.nhapThongTin();
           ds.add(b);
           System.out.print("Ban co muon nhap nua khong (c/k): ");
           tl=sc.nextLine();
           if(tl.equalsIgnoreCase("k"))
                break;
       }
       for(int i=0;i<n;i++)
       {
           System.out.println("--------------------");
           ds.get(i).hienThongTin();
           System.out.println("--------------------");
       }
       
       System.out.println("Nhung sinh vien que o thai nguyen va sinh nam 1985 la: ");
       for(int i=0;i<n;i++)
           if((ds.get(i).getNgaySinh().getYear()-1900==1985) && (ds.get(i).getQueQuan().equalsIgnoreCase("Thai Nguyen")))
                ds.get(i).hienThongTin();
        
       System.out.println("Nhung sinh vien hoc lop 10A1 la: ");
       for(int i=0;i<ds.size();i++)
            if(ds.get(i).getLop().equalsIgnoreCase("10A1"))
                ds.get(i).hienThongTin();
    }
}