Bài Tập Java Số 20: In Điểm Trung Bình
Đề bài
1 file lưu trữ thông tin sinh viên có nội dung như hình dưới:Giải thuật
Ta sử dụng lớp File và FileReader để đọc dữ liệu của file trên. Vì mỗi thông tin cách nhau 1 khoảng trắng nên ta sẽ đếm số khoảng trắng.Mã số sinh viên nằm giữa khoảng trắng thứ 2 và khoảng trắng thứ 3 của dòng. Ta sẽ gán các ký tự này vào một chuỗi s và sẽ thu được mã số sinh viên.
So sánh chuỗi s này với mã số sinh viên mà người dùng nhập. Nếu trùng nhau thì ta sẽ in ra điểm trung bình (nằm sau khoảng trắng thứ 3 của mỗi dòng).
Nếu khác nhau thì ta sẽ tiếp tục so sánh ở các dòng tiếp theo.
Code mẫu
package baitap20;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.FileSystemNotFoundException;
import java.util.Scanner;
import com.sun.glass.ui.SystemClipboard;
public class baitap20 {
public static void main(String[] args) {
File f = new File("E:\\dtb.txt");
String mssv;
System.out.println("Nhap Ma So Vinh Vien: ");
Scanner nhap = new Scanner(System.in);
mssv=nhap.nextLine();
try {
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String data = "";
String dtb="";
int dem=0;
while((data = br.readLine())!=null){
String s="";
int dem1=0;
for(int i=0;i<data.length();i++){
if(data.charAt(i)==' '){
dem1++;
}
if(dem1==2){
s+=data.charAt(i);
}
if(dem1==3){
dem=i+1;
break;
}
}
s=s.trim(); //loai bo khoang trang trong chuoi
if(mssv.equals(s)==true){
for(int j=dem;j<data.length();j++){
dtb+=data.charAt(j);
}
System.out.println(dtb);
break;
}
}
if(dtb==""){
System.out.println("Ma so ban vua nhap khong co trong ho so luu tru");
}
} catch(FileNotFoundException ex){
System.out.println("file khong ton tai");
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Post a Comment