Wednesday, April 27, 2016

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();
    }
}

0 comments:

Post a Comment