创建数组,读取文件并创建新文件 - java

时间:2018-05-09 23:43:39

标签: java file class text-files

假设您有一个包含学生数据的文本文件“students.txt”。文件中的每一行都由名字,姓氏,test1的分数,test2的分数和最终的分数组成。一行的不同字段用“:”分隔。学生的第一行包含行数(学生)。

创建一个包含以下属性的Student学生:

将First_Name

Last_Name

Grade_Test1

Grade_Test2

Grade_Final

Total_Score

此外,班级学生包含:

- 用4个参数定义的构造函数,初始化,学生类型的新对象的名字,姓氏,Grade Test1和Grade test1。

- 使用以下公式计算总分的方法:Test1 * 0.2 + Test2 * 0.2 + Final * 0.6

每个属性分别使用

-6个访问器方法。

编写Java程序:

- 创建一个学生类型的数组。

- 阅读文件并填写学生数组(您应该计算每个学生的总分)。

- 创建一个名为“Result.txt”的新文件。在此文件中写入成功学生列表(总分> = 60)。每行应包含每个学生的名字,姓氏和总分。写下所有学生的总分的平均值。

我一直在努力解决这个问题,我对你的编程并不擅长

public class Student{
private String FirstName;
private String LastName;
private double Test1;
private double Test2;
private double Final;
private double TotalScore;
public Student(String f, String l, double t1, double t2){
    FirstName = f;
    LastName = l;
    Test1 = t1;
    Test2 = t2;
}
public void CalculateTotal(){
    TotalScore = Test1*0.2 + Test2*0.2 + Final*0.6;
}
public String getFirstName(){
    return FirstName;
}
public String getLastName(){
    return LastName;
}
public double getTest1(){
    return Test1;
}
public double getTest2(){
    return Test2;
}
public double getFinal(){
    return Final;
}
public double getTotalScore(){
    return TotalScore;
}

}

public class AppStudent {
public static void main (String[] args){
    Student [] array;
    String fileName = "students.txt";
    Scanner inputStream = null;
    try {
        inputStream = new Scanner(new File(fileName));
    }
    catch (FileNotFoundException e){
        System.out.println("ERROR");
        System.exit(0);
    }
    while (inputStream.hasNextLine()){
        String line = inputStream.next();
        String ary[]= line.split(" : ");
        //heres where I'm struggling
    }
}

}

1 个答案:

答案 0 :(得分:0)

首先

  

一行的不同字段用“:”

分隔

所以你的代码应该是

String ary[]= line.split(":");

现在假设该字段与Student构造函数

的顺序匹配
public Student(String f, String l, double t1, double t2)

您可以创建Student

Student std = new Student (arr[0], arr[1], 
                          Double.valueof (arr[2]), Double.valueOf (arr[3]));

然后可以将这个新的Student对象添加到学生数组中

  

- 创建一个学生类型的数组。