Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 10 của 10
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Cần giúp về LỚP TRỪU TƯỢNG

    Mình có 1 bài tập về lớp trừu tượng !!!

    Yêu cầu cài đặt lớp Sinh Viên gồm : điểm môn 1 , điểm môn 2 kế thừa từ lớp Con Người
    Yêu cầu cài đặt phương thức thay đổi thông tin của sinh viên truyền vào tham số là sinh viên (truyền tham biến ) , phương thức cho phép lựa chọn cách thay đổi -0: thay đổi điểm môn 1 , -1 thay đổi điểm môn 2
    Lớp ConNguoi như thế này :

    Mã:
    abstract class Nguoi
    {
    	protected String Ten;
    	protected int namSinh;
    	public void nhap()
    	{
    		Scanner x=new Scanner(System.in);
    		System.out.print("Ho va Ten           : ");
    		Ten=x.nextLine();
    		System.out.print("Nam Sinh            : ");
    		namSinh=x.nextInt();
    	}
    	public void xuat()
    	{
    		System.out.println ("Ho va Ten        : "+Ten);
    		System.out.println ("Nam sinh         : "+namSinh);
    	}
    	abstract void input();
    	abstract void output();
    	abstract float Tongdiem();
    }
    class SinhVien extends Nguoi
    {
    	private float diem1;
    	private float diem2;
    	public void input()
    	{
    		super.nhap();
    		Scanner x=new Scanner(System.in);
    		System.out.print("Diem mon 1         : ");
    		diem1=x.nextFloat();
    		System.out.print("Diem mon 2         : ");
    		diem2=x.nextFloat();
    	}
    	public void output()
    	{
    		super.xuat();
    		System.out.println ("Diem mon 1      : "+diem1);
    		System.out.println ("Diem mon 2      : "+diem2);
    	}
             ................................................
    }
    Mình chưa định hướng được cách xây dựng hàm cho yêu cầu thứ hai ...mong các bạn giúp !!!Tks

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lớp Người nó bị sao hả bạn ? Lớp Người gồm : Tên và Năm Sinh , mình khai báo 2 phương thức trừu tượng là input() và output()
    Cái Switch thì mình nghĩ là đúng rồi , nhưng còn cái yêu cầu cài đặt phương thức thay đổi thông tin của sinh viên truyền vào tham số là sinh viên ---> cái này mình chưa hiểu ý của nó ra sao

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Yêu cầu cài đặt lớp Sinh Viên gồm : điểm môn 1 , điểm môn 2 kế thừa từ lớp Con Người
    Theo yêu cầu đề bài thì 2 cái điểm của bạn phải nằm trong lớp Người mới đúng chứ nhỉ?

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn ơi cái Lớp Sinh Viên gồm có điểm môn 1 , điểm môn 2 , các phương thức nhập điểm , và kèm theo 2 yêu cầu như trên ak bạn :|

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hey , cái câu

    nhưng còn cái yêu cầu cài đặt phương thức thay đổi thông tin của sinh viên truyền vào tham số là sinh viên
    -
    này mình ko hiểu ji hết trơn à ! có điều là cái lớp người nó ko có thuộc tính điểm nào , nằm hoàn toàn ở lớp sinh viên nên khi cho phương thức ảo
    Mã:
    abstract float tongdiem()
    là có vấn đề , nếu mà theo nguyên lì thiết kế hướng đối tượng thì sai hoàn toàn !

    ps : bạn viết yêu cầu rõ ràng ra thì mọi người mới giúp đc chớ mơ hồ kiểu này thì mình chịu thui !

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thế này bạn ơi
    Lớp Người gồm có : Tên , Năm Sinh
    Xây dựng Lớp Sinh Viên kế thừa lớp Người
    + Lớp Sinh Viên gồm có : thuộc tính điểm môn 1 , điểm môn 2 , các phương thức nhập điểm , tính tổng điểm , phương thức thay đổi thông tin của sinh viên truyền vào tham số là sinh viên ( truyền tham biến ) , phương thức cho phép lựa chọn cách thay đổi -0 : thay đổi điểm môn 1 , -1 thay đổi điểm môn 2

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hàm thay đổi thuộc tính của lớp Sinh Viên mà lại có tham số là lớp Sinh Viên? Ai cho đề mà kì cục quá vậy. Nếu hàm này thuộc một lớp Controller nào đó thì còn chấp nhận được. Thay đổi lớp sinh viên thì đơn giản chỉ là set method với 2 điều kiện thôi.

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cái đề thế đó bạn ...kêu là viết phương thức thay đổi thông tin của sinh viên truyền vào tham số là sinh viên ( truyền tham biến ) ...mình cũng đang ko hiểu chỗ này , nên cũng chưa định hình được cách viết

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hey , ko biết như thế này có đúng yêu cầu ko ? nhưng thiết kế lớp người thấy có vấn đề ! :-ss


    Mã:
    import java.util.Scanner; public class SinhVien extends Nguoi{    private float diem1;    private float diem2;    public void input()    {        super.nhap();        Scanner x=new Scanner(System.in);        System.out.print("Diem mon 1         : ");        diem1=x.nextFloat();        System.out.print("Diem mon 2         : ");        diem2=x.nextFloat();    }    public void output()    {        super.xuat();        System.out.println ("Diem mon 1      : "+diem1);        System.out.println ("Diem mon 2      : "+diem2);    }        float Tongdiem() {        int a = 0;        System.out.println("Moi ban thay doi diem , nhan phim 1 hoac 0");        Scanner x = new Scanner(System.in);        a = x.nextInt();                switch(a){        case 0 :             System.out.println("Moi ban thay doi mon thu 1 ");            diem1 = x.nextInt();            break;        case 1 : System.out.println("Moi ban thay doi mon thu 2 !");            diem2 = x.nextInt();            break;        }                return 0;    }    public static void main(String []args){        SinhVien a = new SinhVien();        a.input();        a.output();        a.Tongdiem();        a.output();    }}

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Theo mình thì có thể thiết kế lại như sau:
    1.Class Nguoi thì không cần abstract nếu không bắt buộc, có 2 field và setter, getter và phương thức nhập xuất 2 field này.
    2.Class SinhVien:
    - kế thừa Class người thì sẽ dùng luôn các trường và phương thức của Nguoi
    - tạo thêm 2 field diem1, diem2 và setter, getter.
    - viết phương thức nhập xuất khác, trong các phương thức này gọi phương thức của lớp cha
    - viết thêm phương thức thay đổi thông tin điểm như sau:

    public void thaydoiDiem(SinhVien sv){
    //set các trường của tham số vào object hiện tại
    this.diem1 = sv.getDiem1();
    this.diem2 = sv.getDiem2();

    }

    Để làm việc với phương thức thaydoiDiem thì làm gọi lại hàm nhập để nạp thông tin vào tham số cho hàm thaydoiDiem.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •