Cần Các Cao Nhân Thông Não Giúp, Khai Báo Biến Cục Bộ

nguyenminhutung

New Member
30/12/17
9
0
1
3
Tình hình mới học code java không hiểu mẹ gì có đoạn code mong các cao nhân giúp:
Cái lstTatCaTS đó là biến cục bộ nhưng em khai báo vẫn không đc và em cũng không biết phải sử lý như thế bào mong các pro thông não
 

Attachments

D.A.N_3002

Active Member
14/11/17
177
50
28
18
Bạn up toàn bộ code lên đây đi, có mỗi đoạn thế kia khó hiểu lắm @@
 

nguyenminhutung

New Member
30/12/17
9
0
1
3
code đây mong pro giúp: public class Common {

//Doc file trong java

public static String readFile(String path) {
FileReader fr = null;
String ketqua = "";
try {

String k;
fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
while ((k = br.readLine()) != null) {
ketqua += k + "#";
}

fr.close();
br.close();

} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
}

return ketqua;
}

//Ghi file trong java
public static void GhiThongTinFile(String path, String content) {
FileWriter fw = null;
try {
fw = new FileWriter(path);
BufferedWriter Bw = new BufferedWriter(fw);
Bw.write(content);
Bw.close();
} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

//Ghi file trong java
public static void GhiThongTinFileAppend(String path, String content) {
FileWriter fw = null;
try {
fw = new FileWriter(path, true);
fw.write("\n" + content);
fw.close();

} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
//
public class ThiSinh {

private String soBaoDanh;
private String hoTen;
private String gioiTinh;
private Date ngaySinh;
private String queQuan;
private float diemToan;
private float diemLy;
private float diemHoa;

public String getSoBaoDanh() {
return soBaoDanh;
}

public void setSoBaoDanh(String soBaoDanh) {
this.soBaoDanh = soBaoDanh;
}

public String getHoTen() {
return hoTen;
}

public void setHoTen(String hoTen) {
this.hoTen = hoTen;
}

public String getGioiTinh() {
return gioiTinh;
}

public void setGioiTinh(String gioiTinh) {
this.gioiTinh = gioiTinh;
}

public Date getNgaySinh() {
return ngaySinh;
}

public void setNgaySinh(Date ngaySinh) {
this.ngaySinh = ngaySinh;
}

public String getQueQuan() {
return queQuan;
}

public void setQueQuan(String queQuan) {
this.queQuan = queQuan;
}

public float getDiemToan() {
return diemToan;
}

public void setDiemToan(float diemToan) {
this.diemToan = diemToan;
}

public float getDiemLy() {
return diemLy;
}

public void setDiemLy(float diemLy) {
this.diemLy = diemLy;
}

public float getDiemHoa() {
return diemHoa;
}

public void setDiemHoa(float diemHoa) {
this.diemHoa = diemHoa;
}

public float tongDiem()
{
return (diemToan + diemLy + diemHoa);
}

public boolean isDiemLiet()
{
if(diemToan==1 || diemLy ==1 || diemHoa==1)
{
return true;
}

return false;
}

public boolean isDiemSan()
{
if(!isDiemLiet() && tongDiem()>=15)
{
return true;
}

return false;
}
}
//
public class ThiSinhBusiness {

public ThiSinhBusiness()
{
}

/**
@param path: Đường dẫn tới file được trong trên giao diện
@return Trả về danh sách thí sinh đọc được từ file dữ liệu được chọn
*/
public List<ThiSinh> getDanhSachThiSinh(String path)
{
//Khai báo 1 danh sách là tập các đối tượng thí sinh
List<ThiSinh> lstThiSinh = new ArrayList<ThiSinh>();

//Đọc thông tin từ file
String noidung = Common.readFile(path);

String arr[] = noidung.split("#");

//Duyệt từng dòng thông tin lấy được từ file

ThiSinh objTS = null;

DateFormat f = new SimpleDateFormat("dd/MM/yy");

for(int i=0; i<arr.length; i++)
{
String ts[] = arr.split(";");

if(ts != null && ts.length>0)
{
try {
//Khởi tạo 1 đối tượng thí sinh
objTS = new ThiSinh();

//Gán giá trị cho các thuộc tính của đối tượng
objTS.setSoBaoDanh(ts[0]);
objTS.setHoTen(ts[1]);

if(ts[2].equals("1"))
{
objTS.setGioiTinh("Nữ");
}
else
{
objTS.setGioiTinh("Nam");
}

objTS.setNgaySinh(f.parse(ts[3]));

objTS.setQueQuan(ts[4]);

objTS.setDiemToan(Float.parseFloat(ts[5]));

objTS.setDiemLy(Float.parseFloat(ts[6]));

objTS.setDiemHoa(Float.parseFloat(ts[7]));

//Thêm đối tượng vào danh sách
lstThiSinh.add(objTS);

} catch (ParseException ex) {
System.err.println("Chi tiết lỗi: " + ex.getStackTrace());
}
}
}

return lstThiSinh;
}
}
//

/**
* Hàm hiển thị danh sách thí sinh lên jTable
*/
public static void hienThiDanhSachThiSinh(List<ThiSinh> lstTS)
{
//Khai báo 1 mảng chứa các cột tiêu đề hiển thị trên jTable
String colTieuDe[] = new String[]{"Số BD", "Họ tên", "Giới tính",
"Ngày sinh","Quê quán", "Toán", "Lý", "Hóa", "Tổng điểm"};

//Khai báo 1 đối tượng để sử dụng hiển thị lên jTable
DefaultTableModel model = new DefaultTableModel(colTieuDe, 0);

//Duyệt thông tin từ lstTatCaTS để đưa vào model
Object[] r = null;
DateFormat f = new SimpleDateFormat("dd/MM/yy");

for(ThiSinh ts : lstTS)
{
r = new Object[9];

//Gán thông tin
r[0] = ts.getSoBaoDanh();
r[1] = ts.getHoTen();
r[2] = ts.getGioiTinh();
r[3] = f.format(ts.getNgaySinh());
r[4] = ts.getQueQuan();
r[5] = ts.getDiemToan();
r[6] = ts.getDiemLy();
r[7] = ts.getDiemHoa();
r[8] = ts.tongDiem();
//Đưa thông tin thí sinh vào model
model.addRow(r);
}

//Hiển thị lên jTable
jTableThiSinh.setModel(model);
}

- Hàm xử lý khi chọn file trên giao diện danh sách:

private void btnChonFileActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

JFileChooser jFileChooserChonFile = new JFileChooser();

if(jFileChooserChonFile.showOpenDialog(this)==JFileChooser.APPROVE_OPTION)
{
String path = jFileChooserChonFile.getSelectedFile().getAbsolutePath();
txtPath.setText(path);

ThiSinhBusiness service = new ThiSinhBusiness();

//Lấy thông tin từ file để đưa vào biến toàn cục
lstTatCaTS = service.getDanhSachThiSinh(path);

//Hiển thị danh sách thí sinh
hienThiDanhSachThiSinh(lstTatCaTS);
}
}

- Khi nhấn nút tất cả:

private void rbtnTatCaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

if(!txtPath.getText().isEmpty())
{
ThiSinhBusiness service = new ThiSinhBusiness();

//Lấy thông tin từ file để đưa vào biến toàn cục
lstTatCaTS = service.getDanhSachThiSinh(txtPath.getText());

hienThiDanhSachThiSinh(lstTatCaTS);
}
}

- Top 5 thí sinh có điểm cao nhất:

private void rbtnTop5SinhVienActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(rbtnTop5SinhVien.isSelected())
{
ThiSinhBusiness service = new ThiSinhBusiness();

//Lấy thông tin từ file để đưa vào biến toàn cục
lstTatCaTS = service.getDanhSachThiSinh(txtPath.getText());

Top5ThiSinh();
}
}

private void Top5ThiSinh()
{
List<ThiSinh> lstTop5 = new ArrayList();

List<ThiSinh> lstTatCa = lstTatCaTS;

//Sắp xếp thí sinh theo điểm từ cao xuống thấp
ThiSinh temp =null;

boolean isDoiCho = false;

for(int i=0; i<lstTatCa.size()-1; i++)
{
for(int j= i+1; j<lstTatCa.size(); j++)
{
if(lstTatCa.get(i).tongDiem() < lstTatCa.get(j).tongDiem())
{
isDoiCho = true;
}
else
{
if(lstTatCa.get(i).tongDiem() == lstTatCa.get(j).tongDiem())
{
if((lstTatCa.get(i).getDiemToan()<lstTatCa.get(j).getDiemToan())
&& !lstTatCa.get(j).getQueQuan().equals("Hà Nội"))
{
isDoiCho = true;
}
}
}

if(isDoiCho)
{
//Thực hiện đổi chỗ
temp = lstTatCa.get(i);

lstTatCa.set(i, lstTatCa.get(j));

lstTatCa.set(j, temp);
}

isDoiCho = false;
}
}

//Lấy tốp 5 điểm thí sinh cao nhất sau khi sắp xếp
for(int i=0; i<5; i++)
{
lstTop5.add(lstTatCa.get(i));
}

//Hiển thị lên giao diện
hienThiDanhSachThiSinh(lstTop5);
}

- Danh sách điểm sàn và bị điểm liệt:

private void danhSachThiSinhDatDiemSan()
{
//Khai báo 1 danh sách chứa thí sinh đạt điểm sàn
List<ThiSinh> lstThiSinhDiemSan = new ArrayList();

for(ThiSinh ts : lstTatCaTS)
{
if(ts.isDiemSan())
{
//Thêm vào danh sách
lstThiSinhDiemSan.add(ts);
}
}

//Hiển thị lên jTable
hienThiDanhSachThiSinh(lstThiSinhDiemSan);
}

private void danhSachThiSinhBiLiet()
{
//Khai báo 1 danh sách chứa thí sinh bị liệt
List<ThiSinh> lstThiSinhBiLiet = new ArrayList();

for(ThiSinh ts : lstTatCaTS)
{
if(ts.isDiemLiet())
{
//Thêm vào danh sách
lstThiSinhBiLiet.add(ts);
}
}

//Hiển thị lên jTable
hienThiDanhSachThiSinh(lstThiSinhBiLiet);
}

private void rbtnDiemSanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(rbtnDiemSan.isSelected())
{
danhSachThiSinhDatDiemSan();
}

}

private void rbtnDiemLietActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(rbtnDiemLiet.isSelected())
{
danhSachThiSinhBiLiet();
}
}
 

D.A.N_3002

Active Member
14/11/17
177
50
28
18
Bạn phải khai báo cái lstTatCaTS thành List chứ @@ bạn bảo nó là biến cục bộ mà @@
PHP:
List lstTatCaTS = service.getDanhSachThiSinh(txtPath.getText());
 
Sửa lần cuối:

D.A.N_3002

Active Member
14/11/17
177
50
28
18
- Biến cục bộ : Là biến chỉ sử dụng ở trong thân hàm mà nó được khai báo
- Biến toàn cục : Là biến mà bất kì hàm nào ở bất kì đâu cũng có thể sử dụng
 

nguyenminhutung

New Member
30/12/17
9
0
1
3
không em nghi sai ạ: phải là biến toàn cục đúng em khai báo ngoài thân hàm rồi nhưng vẫn báo lỗi ạ
 

D.A.N_3002

Active Member
14/11/17
177
50
28
18
đúng rồi code em coppy nhưng thiếu phần đó em mong pro giúp với ạ
Vậy bạn up lại code đầy đủ lên đi a @@ hoặc là gửi toàn bộ file project của bạn lên đây, tại các class bạn chia lằng nhằng quá @@ và bạn còn thiếu phần khai báo GUI trong đoạn code trên kia
 

hoithegiantinhlagi

Active Member
13/3/13
331
105
43
BR-VT
Tình hình mới học code java không hiểu mẹ gì có đoạn code mong các cao nhân giúp:
Cái lstTatCaTS đó là biến cục bộ nhưng em khai báo vẫn không đc và em cũng không biết phải sử lý như thế bào mong các pro thông não
1/ Bạn cẩn thận ngôn từ.
2/ Đã viết tiếng Việt cố gắng viết đúng chính tả.
3/ lstTatCaTS là biến cục bộ chỉ trong function đó thôi thì mình ko thấy bạn khai báo nó chỗ nào trong function đó cả. Còn nếu khai báo ngoài fuction thì nó là biến toàn cục, và tuỳ vào pre modifier mà nó sẽ có tầm vực như thế nào.
 
  • Like
Reactions: JackV

JackV

Administrator
Staff member
code đây mong pro giúp: public class Common {

//Doc file trong java

public static String readFile(String path) {
FileReader fr = null;
String ketqua = "";
try {

String k;
fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
while ((k = br.readLine()) != null) {
ketqua += k + "#";
}

fr.close();
br.close();

} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
}

return ketqua;
}

//Ghi file trong java
public static void GhiThongTinFile(String path, String content) {
FileWriter fw = null;
try {
fw = new FileWriter(path);
BufferedWriter Bw = new BufferedWriter(fw);
Bw.write(content);
Bw.close();
} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

//Ghi file trong java
public static void GhiThongTinFileAppend(String path, String content) {
FileWriter fw = null;
try {
fw = new FileWriter(path, true);
fw.write("\n" + content);
fw.close();

} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
//
public class ThiSinh {

private String soBaoDanh;
private String hoTen;
private String gioiTinh;
private Date ngaySinh;
private String queQuan;
private float diemToan;
private float diemLy;
private float diemHoa;

public String getSoBaoDanh() {
return soBaoDanh;
}

public void setSoBaoDanh(String soBaoDanh) {
this.soBaoDanh = soBaoDanh;
}

public String getHoTen() {
return hoTen;
}

public void setHoTen(String hoTen) {
this.hoTen = hoTen;
}

public String getGioiTinh() {
return gioiTinh;
}

public void setGioiTinh(String gioiTinh) {
this.gioiTinh = gioiTinh;
}

public Date getNgaySinh() {
return ngaySinh;
}

public void setNgaySinh(Date ngaySinh) {
this.ngaySinh = ngaySinh;
}

public String getQueQuan() {
return queQuan;
}

public void setQueQuan(String queQuan) {
this.queQuan = queQuan;
}

public float getDiemToan() {
return diemToan;
}

public void setDiemToan(float diemToan) {
this.diemToan = diemToan;
}

public float getDiemLy() {
return diemLy;
}

public void setDiemLy(float diemLy) {
this.diemLy = diemLy;
}

public float getDiemHoa() {
return diemHoa;
}

public void setDiemHoa(float diemHoa) {
this.diemHoa = diemHoa;
}

public float tongDiem()
{
return (diemToan + diemLy + diemHoa);
}

public boolean isDiemLiet()
{
if(diemToan==1 || diemLy ==1 || diemHoa==1)
{
return true;
}

return false;
}

public boolean isDiemSan()
{
if(!isDiemLiet() && tongDiem()>=15)
{
return true;
}

return false;
}
}
//
public class ThiSinhBusiness {

public ThiSinhBusiness()
{
}

/**
@param path: Đường dẫn tới file được trong trên giao diện
@return Trả về danh sách thí sinh đọc được từ file dữ liệu được chọn
*/
public List<ThiSinh> getDanhSachThiSinh(String path)
{
//Khai báo 1 danh sách là tập các đối tượng thí sinh
List<ThiSinh> lstThiSinh = new ArrayList<ThiSinh>();

//Đọc thông tin từ file
String noidung = Common.readFile(path);

String arr[] = noidung.split("#");

//Duyệt từng dòng thông tin lấy được từ file

ThiSinh objTS = null;

DateFormat f = new SimpleDateFormat("dd/MM/yy");

for(int i=0; i<arr.length; i++)
{
String ts[] = arr.split(";");

if(ts != null && ts.length>0)
{
try {
//Khởi tạo 1 đối tượng thí sinh
objTS = new ThiSinh();

//Gán giá trị cho các thuộc tính của đối tượng
objTS.setSoBaoDanh(ts[0]);
objTS.setHoTen(ts[1]);

if(ts[2].equals("1"))
{
objTS.setGioiTinh("Nữ");
}
else
{
objTS.setGioiTinh("Nam");
}

objTS.setNgaySinh(f.parse(ts[3]));

objTS.setQueQuan(ts[4]);

objTS.setDiemToan(Float.parseFloat(ts[5]));

objTS.setDiemLy(Float.parseFloat(ts[6]));

objTS.setDiemHoa(Float.parseFloat(ts[7]));

//Thêm đối tượng vào danh sách
lstThiSinh.add(objTS);

} catch (ParseException ex) {
System.err.println("Chi tiết lỗi: " + ex.getStackTrace());
}
}
}

return lstThiSinh;
}
}
//

/**
* Hàm hiển thị danh sách thí sinh lên jTable
*/
public static void hienThiDanhSachThiSinh(List<ThiSinh> lstTS)
{
//Khai báo 1 mảng chứa các cột tiêu đề hiển thị trên jTable
String colTieuDe[] = new String[]{"Số BD", "Họ tên", "Giới tính",
"Ngày sinh","Quê quán", "Toán", "Lý", "Hóa", "Tổng điểm"};

//Khai báo 1 đối tượng để sử dụng hiển thị lên jTable
DefaultTableModel model = new DefaultTableModel(colTieuDe, 0);

//Duyệt thông tin từ lstTatCaTS để đưa vào model
Object[] r = null;
DateFormat f = new SimpleDateFormat("dd/MM/yy");

for(ThiSinh ts : lstTS)
{
r = new Object[9];

//Gán thông tin
r[0] = ts.getSoBaoDanh();
r[1] = ts.getHoTen();
r[2] = ts.getGioiTinh();
r[3] = f.format(ts.getNgaySinh());
r[4] = ts.getQueQuan();
r[5] = ts.getDiemToan();
r[6] = ts.getDiemLy();
r[7] = ts.getDiemHoa();
r[8] = ts.tongDiem();
//Đưa thông tin thí sinh vào model
model.addRow(r);
}

//Hiển thị lên jTable
jTableThiSinh.setModel(model);
}

- Hàm xử lý khi chọn file trên giao diện danh sách:

private void btnChonFileActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

JFileChooser jFileChooserChonFile = new JFileChooser();

if(jFileChooserChonFile.showOpenDialog(this)==JFileChooser.APPROVE_OPTION)
{
String path = jFileChooserChonFile.getSelectedFile().getAbsolutePath();
txtPath.setText(path);

ThiSinhBusiness service = new ThiSinhBusiness();

//Lấy thông tin từ file để đưa vào biến toàn cục
lstTatCaTS = service.getDanhSachThiSinh(path);

//Hiển thị danh sách thí sinh
hienThiDanhSachThiSinh(lstTatCaTS);
}
}

- Khi nhấn nút tất cả:

private void rbtnTatCaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

if(!txtPath.getText().isEmpty())
{
ThiSinhBusiness service = new ThiSinhBusiness();

//Lấy thông tin từ file để đưa vào biến toàn cục
lstTatCaTS = service.getDanhSachThiSinh(txtPath.getText());

hienThiDanhSachThiSinh(lstTatCaTS);
}
}

- Top 5 thí sinh có điểm cao nhất:

private void rbtnTop5SinhVienActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(rbtnTop5SinhVien.isSelected())
{
ThiSinhBusiness service = new ThiSinhBusiness();

//Lấy thông tin từ file để đưa vào biến toàn cục
lstTatCaTS = service.getDanhSachThiSinh(txtPath.getText());

Top5ThiSinh();
}
}

private void Top5ThiSinh()
{
List<ThiSinh> lstTop5 = new ArrayList();

List<ThiSinh> lstTatCa = lstTatCaTS;

//Sắp xếp thí sinh theo điểm từ cao xuống thấp
ThiSinh temp =null;

boolean isDoiCho = false;

for(int i=0; i<lstTatCa.size()-1; i++)
{
for(int j= i+1; j<lstTatCa.size(); j++)
{
if(lstTatCa.get(i).tongDiem() < lstTatCa.get(j).tongDiem())
{
isDoiCho = true;
}
else
{
if(lstTatCa.get(i).tongDiem() == lstTatCa.get(j).tongDiem())
{
if((lstTatCa.get(i).getDiemToan()<lstTatCa.get(j).getDiemToan())
&& !lstTatCa.get(j).getQueQuan().equals("Hà Nội"))
{
isDoiCho = true;
}
}
}

if(isDoiCho)
{
//Thực hiện đổi chỗ
temp = lstTatCa.get(i);

lstTatCa.set(i, lstTatCa.get(j));

lstTatCa.set(j, temp);
}

isDoiCho = false;
}
}

//Lấy tốp 5 điểm thí sinh cao nhất sau khi sắp xếp
for(int i=0; i<5; i++)
{
lstTop5.add(lstTatCa.get(i));
}

//Hiển thị lên giao diện
hienThiDanhSachThiSinh(lstTop5);
}

- Danh sách điểm sàn và bị điểm liệt:

private void danhSachThiSinhDatDiemSan()
{
//Khai báo 1 danh sách chứa thí sinh đạt điểm sàn
List<ThiSinh> lstThiSinhDiemSan = new ArrayList();

for(ThiSinh ts : lstTatCaTS)
{
if(ts.isDiemSan())
{
//Thêm vào danh sách
lstThiSinhDiemSan.add(ts);
}
}

//Hiển thị lên jTable
hienThiDanhSachThiSinh(lstThiSinhDiemSan);
}

private void danhSachThiSinhBiLiet()
{
//Khai báo 1 danh sách chứa thí sinh bị liệt
List<ThiSinh> lstThiSinhBiLiet = new ArrayList();

for(ThiSinh ts : lstTatCaTS)
{
if(ts.isDiemLiet())
{
//Thêm vào danh sách
lstThiSinhBiLiet.add(ts);
}
}

//Hiển thị lên jTable
hienThiDanhSachThiSinh(lstThiSinhBiLiet);
}

private void rbtnDiemSanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(rbtnDiemSan.isSelected())
{
danhSachThiSinhDatDiemSan();
}

}

private void rbtnDiemLietActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(rbtnDiemLiet.isSelected())
{
danhSachThiSinhBiLiet();
}
}
Code này có gì đó sai sai, đã chỉnh tham số i cho mảng rồi mà vẫn k dễ tách các lớp.
Nếu giúp đỡ của các bạn chưa ok thì bạn nên tách từng class vào tag [ php ] để dễ đọc và code không bị mất chi tiết.
Hướng Dẫn Việc Post Code Cho Dễ Nhìn Với Tag [ Php ]
 
  • Like
Reactions: D.A.N_3002