Java课程设计,学生管理系统设计....求高手帮忙!
将本班学生的信息(每个学生至少包括学号、姓名、科目成绩(至少两门)、学分、平均分),存放于文件stduent.txt中。
A.要求编写函数fun1对10个学生按某科成绩升序或降序(可选择)排序,并将结果(包括名次、学号、姓名、成绩、学分、平均分)存放于文件score.txt中。
B.编写函数fun2,用二分法查找score.txt中某科某个成绩,并将结果打印出来。
-------->以上是要求,可是我学得不好,处理名字啊,成绩啊什么的总是
空指针错误或者其他错误,而且文件也不会啊,哪位高手能帮帮我呢?期末要交了!
------解决方案--------------------import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import
java.io.FileNotFoundException;
import java.io.FileOutputStream;
import
java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import
java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TextClass {
public static void main(String[] args) {
fun1();
Student student = fun2(98);
System.out.println(student.getName());
}
public static void fun1(){
List<Student> studentList = new ArrayList<Student>();
try {
BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream("student.txt"),"utf-8"));
String str;
while((str = in.readLine())!=null){
if(str.startsWith("#")){
continue;
}
System.out.println(str);
String[] strs = str.split(":");
//这里不习惯用数组来做,所以定义了一个学生信息类,在下面。
Student student = new Student();
student.setId(strs[0]);
student.setName(strs[1]);
student.setScore1(Integer.parseInt(strs[2]));
student.setScore2(Integer.parseInt(strs[3]));
student.setCredit(Integer.parseInt(strs[4]));
student.setAvgScore(Double.parseDouble(strs[5]));
studentList.add(student);
}
Collections.sort(studentList, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getScore1()-o2.getScore1();
//用语文成绩进行比较。
}
});
PrintWriter out = new PrintWriter(
new OutputStreamWriter(
new BufferedOutputStream(
new FileOutputStream("score.txt")), "utf-8"));
for(Student student:studentList){
int i = 1;
String scoreStr = "第"+ i++ + "名"+ ":"+student.getId()+":"
+student.getName()+":"+student.getScore1()+":"+student.getScore2()
+":"+student.getCredit()+":"+student.getAvgScore();
out.println(scoreStr);
out.flush();
}
} catch (Unsupported
EncodingException e) {
e.printStackTrace();
} catch (
FileNotFoundException e) {
e.printStackTrace();