假设您有一个包含学生数据的文本文件“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
}
}
}
答案 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
对象添加到学生数组中
- 创建一个学生类型的数组。