Wednesday, April 27, 2016

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

Đề:
Để quản lý khách hàng đến thuê phòng trọ của một khách sạn, người ta cần quản lý những thông tin sau:
- Số ngày trọ, loại phòng trọ, giá phòng, và các thông tin cá nhân về mỗi 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, ngày 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ị, xóa các thông tin về một 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 đó.
- Tính số tiền cần phải trả nếu một khách hàng trả phòng trọ (căn cứ vào số CMND để tìm kiếm trong mảng)

//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 soCMND;
   public Nguoi()
   {
     
   }
   public Nguoi( String hoTen,Date ngaySinh,String soCMND)
   {
       this.hoTen=hoTen;
       this.ngaySinh=ngaySinh;
       this.soCMND=soCMND;
   }
   public void nhapThongTin(Scanner sc)
   {
       System.out.print("Nhap ho va ten khach hang: ");
       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 so chung minh nhan dan: ");
       this.soCMND=sc.nextLine();
   }
   public void hienThongTin()
   {
       System.out.println("Ho va Ten: "+this.hoTen);
       System.out.println("Ngay sinh: "+this.ngaySinh);
       System.out.println("So chung minh nhan dan: "+this.soCMND);
   }
   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 thoi gian.!");
       }
       return ns;
   }
   public String getSoCMND()
    {
        return this.soCMND;
    }
}

//lop Khach San
import java.util.Scanner;
import java.util.Date;
public class KhachSan 
{
    private int soNgaytro;
    private String loaiP;
    private double giaP;
    Nguoi nguoi;
    
    public KhachSan()
    {
        
    }
    public KhachSan(int soNgaytro, String loaiP,double giaP, Nguoi nguoi)
    {
        this.soNgaytro=soNgaytro;
        this.loaiP=loaiP;
        this.giaP=giaP;
        this.nguoi=nguoi;
    }
    
    public void nhapThongTin(Scanner sc)
    {
        nguoi=new Nguoi();
        this.nguoi.nhapThongTin(sc);
        System.out.print("Nhap so ngay tro: ");
        this.soNgaytro=sc.nextInt();
        sc.nextLine();
        System.out.print("Nhap loai phong tro: ");
        this.loaiP=sc.nextLine();
        System.out.print("Nhap gia phong: ");
        this.giaP=sc.nextDouble();sc.nextLine();
    }
    public void hienThongTin()
    {
        nguoi.hienThongTin();
        System.out.println("So ngay tro: "+this.soNgaytro);
        System.out.println("Loai phong: "+this.loaiP);
        System.out.println("Gia phong: "+this.giaP);
    }
    public double thanhTien()
    {
        return this.soNgaytro*this.giaP;
    }
    
    public Nguoi getKhach()
    {
        return this.nguoi;
    }
    public void xoa()
    {
        this.nguoi=new Nguoi();// xoa thong tin ve nguoi
        this.soNgaytro=0;
        this.loaiP=null;
        this.giaP=0;
    }
}
//Lớp test
import java.util.Scanner;
import java.util.ArrayList;
public class Test
{
    public static void main(String[] args)
    {
             Scanner sc=new Scanner(System.in);
          ArrayList<KhachSan> ds;
          int n;
          
          System.out.print("Nhap so luong khach tro: ");
          n=sc.nextInt();sc.nextLine();
          
          ds=new ArrayList<KhachSan>(n);
          KhachSan b;
          for(int i=0;i<n;i++)
          {
              b=new KhachSan();
              b.nhapThongTin(sc);
              ds.add(b);
          }
          System.out.println("Danh sach khach tro: ");
          for(int i=0;i<ds.size();i++)
             ds.get(i).hienThongTin();
          String tim;
          System.out.print("Nhap so chung minh nhan dan cua khach hang can thanh toan: ");
          tim=sc.nextLine();
          for(int i=0;i<ds.size();i++)
            if(ds.get(i).getKhach().getSoCMND().equalsIgnoreCase(tim))
                 System.out.println("Tien phai thanh toan: "+ds.get(i).thanhTien());
 }
}


0 comments:

Post a Comment