giờ em có 2 class gồm:
- SinhVien.java
package Chappe7;
import java.io.*;
public class SinhVien implements Comparable<SinhVien>{
private String Hoten;
private String Ngaysinh;
private String diaChi;
private String Email;
private String SDT;
private String Mssv;
public SinhVien()
{
this.Hoten = "";
this.Ngaysinh = "";
this.diaChi = "";
this.Email = "";
this.SDT = "";
this.Mssv = "";
}
public SinhVien(String Hoten, String Ngaysinh, String diaChi, String Email, String SDT, String Mssv)
{
this.Hoten = Hoten;
this.Ngaysinh = Ngaysinh;
this.diaChi = diaChi;
this.Email = Email;
this.SDT = SDT;
this.Mssv = Mssv;
}
public void nhap(BufferedReader reader) throws IOException
{
System.out.print("* Họ và tên: ");
this.Hoten = reader.readLine();
System.out.print("* Ngày sinh: ");
this.Ngaysinh = reader.readLine();
System.out.print("* Địa chỉ của bạn: ");
this.diaChi = reader.readLine();
System.out.print("* Email liên lạc của bạn: ");
this.Email = reader.readLine();
System.out.print("* Số điện thoại của bạn: ");
this.SDT = reader.readLine();
System.out.print("* Mã số sv của bạn: ");
this.Mssv = reader.readLine();
}
public void dihoc()
{
System.out.println("- Đi học");
}
public void lambaitapvenha()
{
System.out.println("- Làm bài tập");
}
public void nophocphi()
{
System.out.println("- Nộp học phí");
}
public void Baikiemtra()
{
System.out.println("- Làm bài kiểm tra");
}
public void Diemdanh()
{
System.out.println("- Điểm danh");
}
public String layten()
{
String ten = "";
for (int i = this.Hoten.length()-1; i >= 0; i--)
if (this.Hoten.charAt(i) == ' ') break;
else ten = this.Hoten.charAt(i) + ten;
return ten;
}
@Override
// Phương thức so sánh 2 sinh viên với nhau dựa trên tiêu chí về tên
// -1: Tên của sinh viên This đứng trước tên sinh viên That
// 0: Tên của sinh viên This giống tên sinh viên That
// 1: Tên của sinh viên This đứng sau tên sinh viên That
public int compareTo(SinhVien that)
{
//chuyển thành ký tự chữ hoa thành về chuỗi
String tendau = this.layten().toUpperCase();
//chuyển thành ký tự chữ hoa thành về chuỗi
String tencuoi = that.layten().toUpperCase();
if (tendau.length() < tencuoi.length())
{
for (int i = 0; i < tendau.length(); i++)
if ((int)tendau.charAt(i) < (int)tencuoi.charAt(i)) return -1;
else if ((int)tendau.charAt(i) > (int)tencuoi.charAt(i)) return 1;
return -1; // VD: An < Anh
}
else if (tendau.length() > tencuoi.length())
{
for (int i=0; i < tencuoi.length(); i++)
if ((int)tendau.charAt(i) < (int)tencuoi.charAt(i)) return -1;
else if ((int)tendau.charAt(i) > (int)tencuoi.charAt(i)) return 1;
return 1; // VD: Phuoc > Phu
} return 0;
}
}
và testsinhvien.java
package Chappe7;
import java.io.*;
public class testsinhvien {
public static void main(String[] args) throws NumberFormatException, IOException, NullPointerException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhập vào số lượng sinh viên: ");
int n = Integer.parseInt(reader.readLine());
SinhVien[] list = new SinhVien[n];
int count = 0;
for (SinhVien sv1: list)
{
count++;
System.out.println("Nhập thông tin cho sinh viên thứ " + count + ": ");
sv1.nhap(reader);
}
System.out.println("==================");
System.out.println("* Sắp xếp tăng dần: ");
sortASC(list);
printArray(list);
System.out.println("==================");
System.out.println("S¿p x¿p gi¿m d¿n: ");
sortDESC(list);
printArray(list);
}
public static void sortASC(SinhVien[] list)
{
SinhVien trungGian;
for (int i = 0; i < list.length - 1; i++)
for (int j = i + 1; j < list.length; j++)
if (list[i].compareTo(list[j]) == 1)
{
trungGian = list[i];
list[i] = list[j];
list[j] = trungGian;
}
}
public static void sortDESC(SinhVien[] list)
{
SinhVien trungGian;
for (int i = 0; i < list.length - 1; i++)
for (int j = i + 1 ; j < list.length; j++)
if (list[i].compareTo(list[j]) == -1)
{
trungGian = list[i];
list[i] = list[j];
list[j] = trungGian;
}
}
public static void printArray(SinhVien[] list)
{
for (int i=0; i<list.length; i++)
System.out.println("Sinh viên thứ " + (i+1) + ": " + list[i].toString());
}
}
và khi ouput thì hiện ra:
Nhập vào số lượng sinh viên: 1
Nhập thông tin cho sinh viên thứ 1:
Exception in thread "main" java.lang.NullPointerException
at Chappe7.testsinhvien.main(testsinhvien.java:21)
C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)
MONG MỌI NGƯỜI GIÚP EM VỚI Ạ!!!