Quản lý sinh viên sử dụng đọc/ghi file trong java

Thông tin về thí sinh gồm: Mã thí sinh, Họ tên, Ngày sinh, điểm môn 1, điểm môn 2, điểm môn 3 và Tổng điểm.
Viết chương trình thực hiện các chức năng sau:
1.Nhập thêm thí sinh
Nhập thông tin về thí sinh (không nhập tổng điểm).
Có kiểm tra mã thí sinh khi nhập (không có hai thí sinh mã trùng nhau)
2.Sắp xếp thí sinh
Lựa chọn chức năng hiển thị danh sách thí sinh đã sắp xếp theo
a)Mã thí sinh
b)Tổng điểm
Sắp xếp danh sách thí sinh
Hiển thị kết quả lên màn hình (chỉ hiển thị mã, tên và tổng điểm).
Class hamchung 

package QuanLyTuyenSinh;

import java.io.*;

import java.util.StringTokenizer;

/**

* @author TeA

*

*/

public class CacHamChung {

public static boolean check= true;

//Ham doi cho

public static void doiCho(ThiSinh a, ThiSinh b){

ThiSinh temp;

temp= a;

a= b;

b= temp;

}

//Ham cat ten

public static String catTen(String hoTen){

String ten= “”;

String s= hoTen.toLowerCase();

StringTokenizer strToken= new StringTokenizer(s,” “);

while(strToken.hasMoreTokens()){

ten= strToken.nextToken();

}

return ten;

}

//Ham chuyen ve chu thuong

public static String chuyenChuThuong(String s){

return(s.toLowerCase());

}

//Ham nhap vao 1 so nguyen

public static int nhapInt(){

int n= 0;

do{

try{

check= true;

BufferedReader input= new BufferedReader(new InputStreamReader(System.in));

System.out.print(“”);

n= Integer.parseInt(input.readLine());

}catch(Exception e){

System.out.println(“Xuat hien loi: “+e.getMessage());

check= false;

}

}while(!check);

return n;

}

//Ham nhap vao 1 so thuc

public static float nhapFloat(){

float n= 0;

do{

check= true;

try{

BufferedReader input= new BufferedReader(new InputStreamReader(System.in));

System.out.print(“”);

n= Float.parseFloat(input.readLine());

}catch(Exception e){

System.out.println(“Xuat hien loi: “+e.getMessage());

check= false;

}

}while(!check);

return n;

}

//Ham nhap vao 1 string

public static String nhapString(){

String str=””;

try{

BufferedReader input= new BufferedReader(new InputStreamReader(System.in));

System.out.print(“”);

str= input.readLine();

}catch(IOException e){

System.out.println(“Xuat hien loi: “+e.getMessage());

}return (str);

}


Class chucnang
package QuanLyTuyenSinh;

import java.io.*;

/**

* @author TeA

*bien sl

*/

public class ChucNang {

ThiSinh ts= new ThiSinh();

ThiSinh[] list= new ThiSinh[50];

public void ghiFile(ThiSinh t) {

try{

FileOutputStream fis= new FileOutputStream(“QuanLyTuyenSinh.dat”,true);

PrintWriter pw= new PrintWriter(fis);

pw.println(t.getMaTS());

pw.println(t.getTenTS());

pw.println(t.getNgaySinh());

pw.println(t.getDiem1());

pw.println(t.getDiem2());

pw.println(t.getDiem3());

pw.println(t.getTongDiem());

pw.close();

fis.close();

}catch(IOException io){

System.out.println(“Xuat hien loi: “+io.getMessage());

}

finally{

System.out.println(“Ghi file thanh cong!”);

}

}

public void docFile(){

try{

int count= 1;

FileReader fr= new FileReader(“QuanLyTuyenSinh.dat”);

BufferedReader buffer= new BufferedReader(fr);

buffer.readLine();

while(buffer.readLine()!= null){

count++;

}

ts.setSL(count/7);

buffer.close();

fr.close();

FileReader fr2= new FileReader(“QuanLyTuyenSinh.dat”);

BufferedReader input= new BufferedReader(fr2);

for(int i=1 ; i<=ts.getSL(); i++){

list[i]= new ThiSinh();

list[i].setMaTS(Integer.parseInt(input.readLine()));

list[i].setTenTS(input.readLine());

list[i].setNgaySinh(input.readLine());

list[i].setDiem1(Float.parseFloat(input.readLine()));

list[i].setDiem2(Float.parseFloat(input.readLine()));

list[i].setDiem3(Float.parseFloat(input.readLine()));

list[i].setTongDiem(Float.parseFloat(input.readLine()));

}

}catch(FileNotFoundException fe){

System.out.println(“Xuat hien loi: “+fe.getMessage());

}catch(IOException io){

System.out.println(“Xuat hien loi: “+io.getMessage());

}

}

public void nhap(){

int i= ts.getSL()+1;

list[i]= new ThiSinh();

boolean check= true;

do{

check= true;

System.out.println(“Nhap ma thi sinh: “);

list[i].setMaTS(CacHamChung.nhapInt());

for(int j=1 ; j<=ts.getSL() ; j++){

if(list[i].getMaTS()== list[j].getMaTS()){

check= false;

System.out.println(“Ma sinh vien da ton tai !”);

}

}

}while(!check);

System.out.println(“Nhap ten thi sinh: “);

list[i].setTenTS(CacHamChung.nhapString());

System.out.println(“Nhap ngay sinh thi sinh (dd-mm-yy): “);

list[i].setNgaySinh(CacHamChung.nhapString());

System.out.println(“Nhap diem mon thu 1: “);

list[i].setDiem1(CacHamChung.nhapFloat());

System.out.println(“Nhap diem mon thu 2: “);

list[i].setDiem2(CacHamChung.nhapFloat());

System.out.println(“Nhap diem mon thu 3: “);

list[i].setDiem3(CacHamChung.nhapFloat());

list[i].setTongDiem(list[i].getDiem1(), list[i].getDiem2() , list[i].getDiem3());

ghiFile(list[i]);

}

public void hienThi(ThiSinh t){

System.out.println(“”);

System.out.println(“Ma thi sinh : “+t.getMaTS());

System.out.println(“Ten thi sinh : “+t.getTenTS());

System.out.println(“Ngay sinh thi sinh: “+t.getNgaySinh());

System.out.println(“Diem mon 1 : “+t.getDiem1());

System.out.println(“Diem mon 2 : “+t.getDiem2());

System.out.println(“Diem mon 3 : “+t.getDiem3());

System.out.println(“Tong diem : “+t.getTongDiem());

}

//Ham sap xep theo ma thi sinh

public void sapXepTheoMaTS(){

ThiSinh temp= new ThiSinh();

for(int i=1 ; i<=ts.getSL() ; i++){

for(int j=1 ; j<i ; j++){

if(list[i].getMaTS()<list[j].getMaTS()){

temp= list[i];

list[i]= list[j];

list[j]= temp;

}

}

}

for(int i=1 ; i<=ts.getSL() ; i++){

hienThi(list[i]);

}

}

//Ham sap xep theo tong diem

public void sapXepTheoTongDiem(){

ThiSinh temp= new ThiSinh();

for(int i=1 ; i<=ts.getSL() ; i++){

for(int j=1 ; j<i ; j++){

if(list[i].getTongDiem()<list[j].getTongDiem()){

temp= list[i];

list[i]= list[j];

list[j]= temp;

}

}

}

for(int i=1 ; i<=ts.getSL() ; i++){

hienThi(list[i]);

}

}

//Ham sap xep theo danh sach thi sinh

public void sapXepTheoDanhSach(){

ThiSinh temp= new ThiSinh();

for(int i=1 ; i<=ts.getSL() ; i++){

for(int j=1 ; j<i ; j++){

if(CacHamChung.catTen(list[i].getTenTS()).compareTo(CacHamChung.catTen(list[j].getTenTS())) <0){

temp= list[i];

list[i]= list[j];

list[j]= temp;

}

}

}

for(int i=1 ; i<=ts.getSL() ; i++){

hienThi(list[i]);

}

}

//Ham tim kiem theo ten

public void timKiemTheoTen(){

String tenTK;

int count= 0;

System.out.println(“Nhap ten ban muon tim kiem: “);

tenTK= CacHamChung.nhapString();

for(int i=1 ; i<=ts.getSL() ; i++){

if(tenTK.equals(CacHamChung.catTen(list[i].getTenTS()))){

System.out.println(“Cac thi sinh co “+tenTK+” la: “);

hienThi(list[i]);

count++;

}

}

System.out.println(“Co “+count+” ket qua phu hop”);

}

//Ham tim kiem theo tong diem

public void timKiemTheoTongDiem(){

int td, count= 0;

System.out.println(“Nhap tong diem muon tim kiem: “);

td= CacHamChung.nhapInt();

System.out.println(“Cac thi sinh co tong diem tren “+td+” la: “);

for(int i=1 ; i= td){

hienThi(list[i]);

count++;

}

}

System.out.println(“Co “+count+” ket qua phu hop”);

}

public void lietKeDanhSach(){

for(int i=1 ; i<=ts.getSL() ; i++){

hienThi(list[i]);

}

}

}

Class ThiSinh

package QuanLyTuyenSinh;

import java.util.Scanner;

public class ThiSinh {

/**

* @param args

*/

private int maTS;

private String tenTS;

private String ngaySinh;

private float diem1;

private float diem2;

private float diem3;

private float tongDiem;

private int sl= 0;

public ThiSinh[] list;

public void setMaTS(int maTS){

this.maTS= maTS;

}

public int getMaTS(){

return maTS;

}

public void setTenTS(String tenTS){

this.tenTS= tenTS;

}

public String getTenTS(){

return tenTS;

}

public void setNgaySinh(String ngaySinh){

this.ngaySinh= ngaySinh;

}

public String getNgaySinh(){

return ngaySinh;

}

public void setDiem1(float diem1){

this.diem1= diem1;

}

public float getDiem1(){

return diem1;

}

public void setDiem2(float diem2){

this.diem2= diem2;

}

public float getDiem2(){

return diem2;

}

public void setDiem3(float diem3){

this.diem3= diem3;

}

public float getDiem3(){

return diem3;

}

public void setTongDiem(float getDiem1, float getDiem2, float getDiem3){

this.tongDiem= getDiem1+ getDiem2+ getDiem3;

}

public void setTongDiem(float tongDiem){

this.tongDiem= tongDiem;

}

public float getTongDiem(){

return tongDiem;

}

public void setSL(int sl){

this.sl= sl;

}

public int getSL(){

return sl;

}

public ThiSinh(){

}

public static void menu(){

System.out.println(“”);

System.out.println(“**************** Quan ly tuyen sinh ****************”);

System.out.println(“1. Nhap thi sinh”);

System.out.println(“2. Sap xep theo ma thi sinh”);

System.out.println(“3. Sap xep theo tong diem thi sinh”);

System.out.println(“4. Sap xep theo danh sach thi sinh”);

System.out.println(“5. Tim kiem theo ten”);

System.out.println(“6. Tim kiem theo tong diem”);

System.out.println(“7. Liet ke danh sach thi sinh”);

System.out.println(“8. Thoat !”);

}

public static void main(String[] args) throws Exception{

// TODO Auto-generated method stub

Scanner input= new Scanner(System.in);

ChucNang cn= new ChucNang();

ThiSinh t= new ThiSinh();

while(true){

menu();

cn.docFile();

System.out.println(“so luong= “+t.getSL());

int choice= input.nextInt();

System.out.println(“”);

if(choice== 8){

System.out.println(“….Thoat khoi chuong trinh….”);

System.exit(0);

}

switch(choice){

case 1:

cn.nhap();

break;

case 2:

System.out.println(“2. Sap xep theo ma thi sinh(tang dan)”);

cn.sapXepTheoMaTS();

Thread.sleep(5000);

break;

case 3:

System.out.println(“3. Sap xep theo tong diem thi sinh (tang dan)”);

cn.sapXepTheoTongDiem();

Thread.sleep(5000);

break;

case 4:

System.out.println(“4. Sap xep theo danh sach thi sinh”);

cn.sapXepTheoDanhSach();

Thread.sleep(5000);

break;

case 5:

System.out.println(“5. Tim kiem theo ten”);

cn.timKiemTheoTen();

Thread.sleep(5000);

break;

case 6:

System.out.println(“6. Tim kiem theo tong diem”);

cn.timKiemTheoTongDiem();

Thread.sleep(5000);

break;

case 7:

System.out.println(“8. Liet ke danh sach thi sinh”);

cn.lietKeDanhSach();

Thread.sleep(5000);

break;

}

}

}

}