Создание массива, чтение файла и создание нового файла - Java - PullRequest
0 голосов
/ 10 мая 2018

Предположим, вы получили текстовый файл «Students.txt», который содержит данные студентов. Каждая строка в файле состоит из имени, фамилии, оценки за тест1, оценки за тест2 и оценки за финал. Различные поля строки разделены «:». Первая строка студента содержит количество строк (студентов).

Создать класс ученика, составленный из следующих атрибутов:

First_Name

Фамилия

Grade_Test1

Grade_Test2

Grade_Final

Total_Score

Кроме того, ученик класса содержит:

- Конструктор с 4 параметрами для инициализации: имя, фамилия, Оценка класса 1 и Оценка класса 1 для нового объекта типа «ученик».

- метод расчета общего балла по следующей формуле: Тест1 * 0,2 + Тест2 * 0,2 + Финал * 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 голосов
/ 10 мая 2018

Во-первых

Различные поля строки разделены «:»

поэтому ваш код должен быть

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 может быть добавлен к вам. Массив учеников

-Создать массив типа студента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...