30/09/2018, 18:20

Xin chỉ hộ em chỗ sai code java

Em có code bên dưới em không hiểu sai ở đâu mà::

  1. điểm Trung bình lại ra kết quả thế kia(2.6666667)?

    package javaandrvn;
    

    import java.util.*;
    public class b15_1 {
    static class SinhVien{
    private String hoTen, lopHoc;
    private float dToan, dLy, dHoa, dTB;
    public Object getLopHoc;
    public String getHoTen() {
    return hoTen;
    }
    public void setHoTen(String hoTen) {
    this.hoTen = hoTen;
    }
    public String getLopHoc() {
    return lopHoc;
    }
    public void setLopHoc(String lopHoc) {
    this.lopHoc = lopHoc;
    }
    public float getdToan() {
    return dToan;
    }
    public void setdToan(float dToan) {
    this.dToan = dToan;
    }
    public float getdLy() {
    return dLy;
    }
    public void setdLy(float dLy) {
    this.dLy = dLy;
    }
    public float getdHoa() {
    return dHoa;
    }
    public void setdHoa(float dHoa) {
    this.dHoa = dHoa;
    }
    public float dTB(){
    dTB = ((getdToan() + getdLy() + getdHoa())/3);
    return dTB;
    }
    public void xepLoai(){
    if(0<dTB && dTB<5){
    System.out.println(“Yeu”);}
    else {if(5<= dTB && dTB<6.5){
    System.out.println(“Trung Binh”);}
    else{if(6.5<=dTB && dTB<8){
    System.out.println(“Kha”);}
    else{if(8<=dTB && dTB<=10){
    System.out.println(“Gioi”);}
    else{
    System.out.println(“Ban nhap diem nham, diem phai trong khoang[0,10]”);}
    }
    }
    }
    }
    public void nhapDuLieu(){
    System.out.println("Moi nhap ten sinh vien: ");
    Scanner nhap = new Scanner(System.in);
    String hoTenSV = nhap.nextLine();
    setHoTen(hoTenSV);
    System.out.println("Moi nhap ten lop sinh vien: ");
    String lopSV = nhap.nextLine();
    setLopHoc(lopSV);
    System.out.println("Moi nhap Toan sinh vien: ");
    float diemToan = nhap.nextFloat();
    setdToan(diemToan);
    System.out.println("Moi nhap Ly sinh vien: ");
    float diemLy = nhap.nextFloat();
    setdLy(diemLy);
    System.out.println("Moi nhap Hoa sinh vien: ");
    float diemHoa = nhap.nextFloat();
    setdLy(diemHoa);
    }
    public void showSV(){
    System.out.println(“Ten sinh vien: “+ getHoTen()+” Lop sinh vien: “+ getLopHoc());
    System.out.print(“Diem trung binh cua sinh vien =” + dTB()+” Xep loai: “);
    xepLoai();
    }
    }
    static class GiangVien{
    private String hoTen, lopDay;
    private int namSinh, luong;
    public String getHoTen() {
    return hoTen;
    }
    public void setHoTen(String hoTen) {
    this.hoTen = hoTen;
    }
    public String getLopDay() {
    return lopDay;
    }
    public void setLopDay(String lopDay) {
    this.lopDay = lopDay;
    }
    public int getNamSinh() {
    return namSinh;
    }
    public void setNamSinh(int namSinh) {
    this.namSinh = namSinh;
    }
    public int getLuong() {
    return luong;
    }
    public void setLuong(int luong) {
    this.luong = luong;
    }
    public void nhapDuLieu(){
    System.out.println(“Moi nhap ten Giang vien: “);
    Scanner nhap = new Scanner(System.in);
    String hoTenGV = nhap.nextLine();
    setHoTen(hoTenGV);
    System.out.println(“Moi nhap ten lop Giang vien day: “);
    String lopDayGV = nhap.nextLine();
    setLopDay(lopDayGV);
    System.out.println(“Moi nhap nam sinh Giang vien:”);
    int namSinhGV = nhap.nextInt();
    setNamSinh(namSinhGV);
    System.out.println(“Moi nhap luong Giang vien:”);
    int luongGV = nhap.nextInt();
    setLuong(luongGV);
    }
    public void showGV(){
    System.out.println(“Ten giang vien:” + getHoTen()+” Lop day:”+getLopDay()+” Nam sinh:”+getNamSinh()+” Luong:”+getLuong());
    }
    }
    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    SinhVien a = new SinhVien();
    a.nhapDuLieu();
    a.showSV();
    GiangVien b = new GiangVien();
    b.nhapDuLieu();
    b.showGV();
    if(a.getLopHoc().equals(b.getLopDay())){
    System.out.println("Giang vien "+b.getHoTen()+ " Co day sinh vien "+ a.getHoTen());
    }
    else{
    System.out.println("Giang vien "+b.getHoTen()+ " Khong day sinh vien "+ a.getHoTen());
    }
    }
    }

Kết quả:

Moi nhap ten sinh vien: 
Nguyen Van A
Moi nhap ten lop sinh vien: 
15A
Moi nhap Toan sinh vien: 
4
Moi nhap Ly sinh vien: 
4
Moi nhap Hoa sinh vien: 
4
Ten sinh vien: Nguyen Van A Lop sinh vien: 15A
Diem trung binh cua sinh vien =2.6666667 Xep loai: Yeu
Moi nhap ten Giang vien: 
Nguyen Van B
Moi nhap ten lop Giang vien day: 
15A
Moi nhap nam sinh Giang vien:
1993
Moi nhap luong Giang vien:
140
Ten giang vien:Nguyen Van B Lop day:15A Nam sinh:1993 Luong:140
Giang vien Nguyen Van B Co day sinh vien Nguyen Van A

Xin mọi người chỉ dạy ạ, em xin cảm ơn!( ngồi 2 tiếng viết code lại thành ra thế này )

Nguyễn Hữu Quyền viết 20:23 ngày 30/09/2018

Em nói ý tưởng với yêu cầu của chương trình ra đi , anh đi về rồi code thử cho em một bài

Bảo Ngọc viết 20:27 ngày 30/09/2018

Đây là đề bài ạ:smile

:Bài 1: Tạo package nhân sự, trong có 2 class là sinh viên và giảng viên
Class sinh viên gồm các thuộc tính: họ tên, lớp học, điểm toán, lý, hóa.
Class giảng viên gồm các thuộc tính: họ tên, lớp dạy, năm sinh, lương.
Tạo đối tượng học sinh a.
Tạo đối tượng giảng viên b.
Các giá trị của thuộc tính a và b nhập vào từ bàn phím.
Xử lý dữ liệu báo ra thông tin của a và b, tính và báo ra điểm trung bình của a,
xếp loại học lực, báo b có dạy a hay không!
Các thuộc tính để private, sử dụng phương thức getter, setter.
Lập trình hướng đối tượng!

Mong anh chỉ ra chỗ sai của em để rút kinh nghiệm trước ạ

Nguyen Ca viết 20:34 ngày 30/09/2018

if(a.getLopHoc()==b.getLopDay()){

mới nhìn qua: chỗ này dùng equal.

float diemToan = nhap.nextFloat();
setdToan(diemToan);
System.out.println("Moi nhap Ly sinh vien: ");
float diemLy = nhap.nextFloat();
setdToan(diemLy);
System.out.println("Moi nhap Hoa sinh vien: ");
float diemHoa = nhap.nextFloat();
setdToan(diemHoa);

sao setToan không vậy @@

Bảo Ngọc viết 20:34 ngày 30/09/2018

sao setToan không vậy @@

Chỗ này em quên không sửa vì tội copy ở trên. vừa sửa lại rồi nhưng vẫn sai anh ạ.

mới nhìn qua: chỗ này dùng equal.

em nghĩ if phải == chứ ạ? em viết code thế không được ạ?

Nguyen Ca viết 20:36 ngày 30/09/2018

Ref : Hỏi về 2 kiểu so sánh trong Java

Bảo Ngọc viết 20:32 ngày 30/09/2018

Hai anh xem chỉ em nốt dTB với hai cái kia em xử lý được rồi ạ

Nguyen Ca viết 20:32 ngày 30/09/2018

float diemToan = nhap.nextFloat();
setdToan(diemToan);
System.out.println("Moi nhap Ly sinh vien: ");
float diemLy = nhap.nextFloat();
setdLy(diemLy);
System.out.println("Moi nhap Hoa sinh vien: ");
float diemHoa = nhap.nextFloat();
setdLy(diemHoa); --->bug here

như trên nhé, mà em tập debug đi.

Bảo Ngọc viết 20:35 ngày 30/09/2018

oh thành công rồi em cảm ơn hai anh nhiều nha. Tiện thể Anh có link nào dạy debug chi tiết không ạ? em toàn tìm thấy mấy cách debug kiểu cách hàm thực hiện nhưng không biết giá trị của cái nào đó mình cần nó thay đổi thế nào, và nó bug nhảy không chi tiết ạ .

Nguyen Ca viết 20:22 ngày 30/09/2018

Dùng eclipse hả, tối về skype ta , ta chỉ cho 1 phát là biết,: v .
skype:nguyenhuuca

Bảo Ngọc viết 20:36 ngày 30/09/2018

anh online chưa chỉ em với ạ?

Bài liên quan
0