읽기 파일, 쓰기 파일 및 배열을 사용하는 Java 프로젝트

민족

나는 많은 문제가 있고 정말로 도움이 필요하다는 임무가 있습니다 .iv는 지금까지 왔지만 지금은 붙어 있고 며칠 동안 붙어 있습니다. 다음은 요약입니다.

비합리적 연구에서 학위의 첫해를받는 학생들은 IR101과 IR102의 두 가지 모듈을 수강합니다. 평가 규칙은 다음을 규정합니다. 학생들은 2 단계로 진행하기 위해 두 모듈을 모두 통과해야합니다. 모듈의 합격 점수는 40 점입니다. 두 모듈을 모두 통과하지 못한 학생은 실패한 것으로 간주됩니다. 두 모듈 중 하나만 실패한 학생은 재 시도를 할 수 있습니다. 두 모듈을 모두 통과하지 못한 학생은 1 년을 반복해야합니다. 두 모듈을 모두 통과 한 학생은 다음 척도를 사용하여 총점에 따라 수업을 받게됩니다. 70 – 100 1 위 60 – 69.9 2.1 50 – 59.9 2.2 40 – 49.9 3 위 총점은 두 모듈 점수의 평균입니다. 비합리적 연구를 수강하는 학생들은 다음 파일에 포함되어 있습니다.

IRstudent.txt에는 다음이 포함됩니다. 25987 Alan 25954 Betty 25654 Chris 25622 David 25321 Elsie 25220 Fiona 25212 Greg 25218 Helen 25147 Ian 25196 Jim

학생들이 획득 한 마크는 다음 두 파일에 포함되어 있습니다. 각 줄에는 학생의 ID 번호와 획득 한 마크 (더블)가 있습니다. (학생들은 세 개의 파일에서 같은 순서로 나타나지 않습니다.)

IR101.txt는 다음을 포함합니다 : 25220 68.3 25212 70.5 25218 62.1 25147 38.3 25196 52.0 25987 35.6 25954 70.2 25654 58.6 25622 65.0 25321 51.5

IR102.txt는 다음을 포함합니다 : 25987 20.7 25954 63.4 25218 53.4 25147 47.5 25196 49.8 25654 35.1 25622 57.8 25321 45.6 25220 75.6 25212 72.5

당신의 임무는 세 파일의 정보를 읽고 집계 마크의 내림차순으로 정렬 된 성적표 목록을 현재 디렉토리의 "RankedList.txt"라는 파일에 출력하는 프로그램을 작성하는 것입니다. 성적표는 세 줄로 구성됩니다. 1 행 : 학생 ID와 학생 이름 2 행 : 두 모듈 표시와 총합 표시 표시는 소수점 뒤에 한 자리를 표시해야합니다. 3 행 : 수업과 결과. 클래스는 Fail, 3rd, 2.1, 2.2 또는 1st 여야합니다. 결과는 반복 연도, 지정된 시험에 다시 응시하거나 2 단계로 진행해야합니다. 성적표 목록에서 각 성적표는 "-"행으로 구분되어야합니다. 다음은 이러한 목록에서 발췌 한 예입니다.

37695 Aristotle IR101 52.0 IR102 49.8 Aggregate 50.9 클래스 : 2.2 결과 : 2 단계로 진행

37622 Socrates IR101 38.3 IR102 47.5 Aggregate 42.9 클래스 : 실패 결과 : Resit IR101

입력 파일에 오류가 없다고 가정 할 수 있습니다.

이제 iv는 파일을 열고 읽는 데까지 이르렀지만 거기에서 멈춰 있습니다. 지금까지 내 코드가 있습니다.

import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;


public class Task2 {

public Scanner input;
int reg;
double ir101,ir102l;
double aggregate;
String student_name;
ArrayList<Student> students = new ArrayList<Student>();

public void openIRstud()throws Exception{
    JFileChooser IRstudchooser = new JFileChooser();
    if(IRstudchooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
        java.io.File inFile = IRstudchooser.getSelectedFile();
        input = new Scanner(inFile);
        System.out.println("IRstudents file read successfully.");
    }
}
public void openIR101()throws Exception{
    JFileChooser IR101chooser = new JFileChooser();
    if(IR101chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
        java.io.File inFile = IR101chooser.getSelectedFile();
        input = new Scanner(inFile);
        System.out.println("IR101 file read successfully.");
    }
}
public void openIR102()throws Exception{
    JFileChooser IR102chooser = new JFileChooser();
    if(IR102chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
        java.io.File inFile1 = IR102chooser.getSelectedFile();
        input = new Scanner(inFile1);
        System.out.println("IR102 file read successfully.");
    }
}
public void readIRstud (){
    while(input.hasNext()){
        String irstudid = input.next();
        String irname = input.next();
        System.out.printf(" %s %s\n", irstudid, irname);
    }
    System.out.println("Complete.");
}
public void readIR101 (){
    while(input.hasNext()){
        String ir101studid = input.next();
        String ir101mark = input.next();
        System.out.printf(" %s %s\n", ir101studid, ir101mark);
    }
    System.out.println("Complete.");
}
public void readIR102 (){
    while(input.hasNext()){
        String ir102studid = input.next();
        String ir102mark = input.next();
        System.out.printf(" %s %s\n", ir102studid, ir102mark);
    }
    System.out.println("Complete.");
}
public void Student(){
    while (input.hasNext()) {
        String line = input.nextLine();
        Student e = new Student();
        e.reg = Integer.parseInt(line.split(" ")[0]);
        e.ir101 = Double.parseDouble(line.split(" ")[1]);
        students.add(e);
    }
}
}

그리고 여기에 내 기본이 있습니다 (지금까지 파일을 읽었으며 작동하는지 확실하지 않은 배열에 저장하는 것만 테스트합니다) PS 이것은 별도의 클래스입니다.

import java.io.IOException;


public class Task2test {
    public static void main(String[] args)throws Exception {
    Task2 r = new Task2();

    System.out.println("***** Marks Processing *****");
    System.out.println("Please select a file for IRstudents:");
    r.openIRstud();
    System.out.println("Now reading file IRstudents.");
    r.readIRstud();
    r.Student();

    System.out.println("Please select a file for IR101:");
    r.openIR101();
    System.out.println("Now reading IR101.");
    r.readIR101();
    r.Student();

    System.out.println("Please select a file for IR102:");
    r.openIR102();
    System.out.println("Now reading IR102.");
    r.readIR102();

}
}

이 작업을 수행하는 데 도움이 될 것입니다. 머리를 뽑을 준비가 거의되었습니다! 감사합니다!

엘리 엘 루벤스 다 로사

먼저 작업을 구분해야합니다.

1-프로젝트에 필요한 클래스를 정의합니다.

2-기능을 정의합니다.

3-IRstudent.txt 파일을 읽고 학생 목록을 만듭니다.

4-IR101.txt 파일을 읽고 마크를 학생들과 연결합니다.

5-IR102.txt 파일을 읽고 마크를 학생들과 연결합니다.

6-학생에 대한 종합 마크와 outcame 클래스를 생성합니다.

7-학생들을 집계하여 표시합니다.

8-결과를 저장할 새 파일 RankedList.txt를 만듭니다.

9-학생 정보를이 파일에 씁니다.

그래서 단계별로 가자.

1-프로젝트에 필요한 클래스를 정의합니다.

클래스 학생.

  • idStudent

  • 이름

  • markIR101

  • markIR102

  • 마크 추가

Class RankedList

  • 명부

  • 수업

  • 결과

2-기능을 정의합니다.

수업 학생

  • 목록 getStudentList (java.io.File irStudentsFile);
  • void setIR101Mark (java.io.File ir101File, List sudents);
  • void setIR102Mark (java.io.File ir102File, List sudents);

Class RankedList

  • 학생 목록;
  • addStudent (학생 학생);
  • orderByAgregateMark ();
  • writeToFile ();

** 3, 4, 5, 6 단계 **

다음은 문제를 해결하기위한 코드 샘플이지만 6 단계까지만 수행했으며 이제 프로젝트를 완료 할 조건이 있다고 생각합니다.

   import java.io.File;
   import java.io.IOException;
   import java.math.BigDecimal;
   import java.math.BigInteger;
   import java.util.LinkedList;
   import java.util.List;
   import java.util.StringTokenizer;
   import java.util.function.Consumer;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   import java.util.stream.Stream;

   public class Student {

private int idStudent;
private String name;
private BigDecimal ir101Mark;
private BigDecimal ir102Mark;
private BigDecimal agregateMark;

public int getIdStudent() {
    return idStudent;
}

public void setIdStudent(int idStudent) {
    this.idStudent = idStudent;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public BigDecimal getIr101Mark() {
    return ir101Mark;
}

public void setIr101Mark(BigDecimal ir101Mark) {
    this.ir101Mark = ir101Mark;
}

public BigDecimal getIr102Mark() {
    return ir102Mark;
}

public void setIr102Mark(BigDecimal ir102Mark) {
    this.ir102Mark = ir102Mark;
}

public BigDecimal getAgregateMark() {
    return agregateMark;
}

public void setAgregateMark(BigDecimal agregateMark) {
    this.agregateMark = agregateMark;
}

public static List<Student> getStudentList(java.io.File irStudentsFile){

    List<Student> students = new LinkedList<>();
    Stream<String> lines;
    try {
        lines = java.nio.file.Files.lines(irStudentsFile.toPath());
    } catch (IOException ex) {
        return null;
    }

    lines.forEach((Consumer<? super String>) line -> 
        {
            Student student = new Student();
            StringTokenizer sToken = new StringTokenizer(line, " ");
            student.setIdStudent(Integer.valueOf(sToken.nextToken()));
            student.setName(sToken.nextToken());

            students.add(student);
        } 

    );

    return students;
}

public static void setIR101Mark(java.io.File ir101File, List<Student> students){
    Stream<String> lines;
    try {
        lines = java.nio.file.Files.lines(ir101File.toPath());
    } catch (IOException ex) {
        return;
    }

    lines.forEach((Consumer<? super String>) new Consumer<String>() {

        @Override
        public void accept(String line) {
            Student student = null;
            StringTokenizer sToken = new StringTokenizer(line, " ");
            int idStudent = Integer.valueOf(sToken.nextToken());

            for (Student student1 : students) {
                if (student1.getIdStudent() == idStudent) {
                    student = student1;
                }
            }

            if (student == null) {
                return;
            }

            student.setIr101Mark(BigDecimal.valueOf(Double.valueOf(sToken.nextToken())));
        }
    }
    );
}

public static void setIR102Mark(java.io.File ir102File, List<Student> students){
    Stream<String> lines;
    try {
        lines = java.nio.file.Files.lines(ir102File.toPath());
    } catch (IOException ex) {
        return;
    }

    lines.forEach((Consumer<? super String>) new Consumer<String>() {

        @Override
        public void accept(String line) {
            Student student = null;
            StringTokenizer sToken = new StringTokenizer(line, " ");
            int idStudent = Integer.valueOf(sToken.nextToken());

            for (Student student1 : students) {
                if (student1.getIdStudent() == idStudent) {
                    student = student1;
                }
            }

            if (student == null) {
                return;
            }

            student.setIr102Mark(BigDecimal.valueOf(Double.valueOf(sToken.nextToken())));
        }
    }
    );
}

public static void agregateMark(List<Student> students){
    students.forEach(student ->{
        BigDecimal agregate = 
                student.getIr101Mark()
                .add(student.getIr102Mark())
                .divide(BigDecimal.valueOf(Double.valueOf(2)));

        student.setAgregateMark(agregate);
    });
}

public static void main(String args[]){
    File irStudentFile = new File("D:\\IRstudent.txt");
    File ir101File = new File("D:\\IR101.txt");
    File ir102File = new File("D:\\IR102.txt");
    List<Student> students = Student.getStudentList(irStudentFile);
    Student.setIR101Mark(ir101File, students);
    Student.setIR102Mark(ir102File, students);
    Student.agregateMark(students);



    System.out.println("*** List of students ***");
    students.forEach(student -> {
        System.out.println("id: " + student.getIdStudent());
        System.out.println("Name: " + student.getName());
        System.out.println("IR 101 Mark: " + student.getIr101Mark());
        System.out.println("IR 102 Mark: " + student.getIr102Mark());
        System.out.println("Agregate Mark: " + student.getAgregateMark());
        System.out.println("----------------------------------------------");
    });
}

}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java를 사용하여 CSV 파일 읽기 및 쓰기

분류에서Dev

json 파일에 지정된 키를 사용하여 배열 쓰기 및 읽기

분류에서Dev

Perl은 문자열로 텍스트 파일 읽기 및 쓰기

분류에서Dev

Java-텍스트 파일 읽기 및 쓰기

분류에서Dev

Java NIO를 사용하여 대용량 파일 읽기 및 쓰기

분류에서Dev

파일 시스템을 사용하지 않고 일시적으로 데이터 읽기 및 쓰기

분류에서Dev

읽기 및 쓰기 권한이있는 모든 파일을 표시하고 결과를 파일로 표시

분류에서Dev

C / C ++에서 바이트 배열로 파일 읽기 및 쓰기

분류에서Dev

BitSet 및 FileOutputStream을 사용하여 파일에 비트 쓰기

분류에서Dev

특정 내용에서 텍스트 파일 읽기 및 파일 쓰기

분류에서Dev

vim 일부 읽기 전용 및 일부 읽기 및 쓰기에서 여러 파일 열기

분류에서Dev

유닉스 시스템에서 파일을`읽기 ()`또는`쓰기 ()`하려면 왜 명시 적으로`open ()`및`close ()`파일을 사용해야합니까?

분류에서Dev

노드 : 데이터 읽기, 변환 및 스트림 및 파이프를 사용하여 파일에 쓰기

분류에서Dev

C #을 사용하여 파일 읽기, 쓰기, 읽기

분류에서Dev

파이썬 읽기 및 쓰기 파일 프로그램

분류에서Dev

<< 및 >>를 오버로드하여 클래스의 파일 쓰기 및 읽기에 사용하는 방법

분류에서Dev

Java sentinel-텍스트 파일을 배열로 읽기

분류에서Dev

Java 프로젝트 폴더 내에 .txt 파일을 만들고 여기에 쓰는 방법

분류에서Dev

Java에서 텍스트 파일 읽기 및 데이터 사용

분류에서Dev

파일에 float 배열 읽기 및 쓰기

분류에서Dev

HDF5 파일에서 numpy 배열 읽기 및 쓰기

분류에서Dev

Java 읽기 및 동일한 파일에 쓰기

분류에서Dev

PYTHON에서 행 읽기, 나열 할 프로세스 및 파일에 쓰기

분류에서Dev

삭제할 수없는 파일 생성 및 Java를 사용하여 읽기 / 쓰기

분류에서Dev

파일 열을 배열로 읽기

분류에서Dev

배열로 파일 읽기

분류에서Dev

Java 프로젝트 폴더의 txt 파일에 쓰기

분류에서Dev

Java의 큰 텍스트 파일에서 효율적인 읽기 및 쓰기

분류에서Dev

Python에서 파일을 쓰기 및 읽기 가능하게 만들기

Related 관련 기사

  1. 1

    Java를 사용하여 CSV 파일 읽기 및 쓰기

  2. 2

    json 파일에 지정된 키를 사용하여 배열 쓰기 및 읽기

  3. 3

    Perl은 문자열로 텍스트 파일 읽기 및 쓰기

  4. 4

    Java-텍스트 파일 읽기 및 쓰기

  5. 5

    Java NIO를 사용하여 대용량 파일 읽기 및 쓰기

  6. 6

    파일 시스템을 사용하지 않고 일시적으로 데이터 읽기 및 쓰기

  7. 7

    읽기 및 쓰기 권한이있는 모든 파일을 표시하고 결과를 파일로 표시

  8. 8

    C / C ++에서 바이트 배열로 파일 읽기 및 쓰기

  9. 9

    BitSet 및 FileOutputStream을 사용하여 파일에 비트 쓰기

  10. 10

    특정 내용에서 텍스트 파일 읽기 및 파일 쓰기

  11. 11

    vim 일부 읽기 전용 및 일부 읽기 및 쓰기에서 여러 파일 열기

  12. 12

    유닉스 시스템에서 파일을`읽기 ()`또는`쓰기 ()`하려면 왜 명시 적으로`open ()`및`close ()`파일을 사용해야합니까?

  13. 13

    노드 : 데이터 읽기, 변환 및 스트림 및 파이프를 사용하여 파일에 쓰기

  14. 14

    C #을 사용하여 파일 읽기, 쓰기, 읽기

  15. 15

    파이썬 읽기 및 쓰기 파일 프로그램

  16. 16

    << 및 >>를 오버로드하여 클래스의 파일 쓰기 및 읽기에 사용하는 방법

  17. 17

    Java sentinel-텍스트 파일을 배열로 읽기

  18. 18

    Java 프로젝트 폴더 내에 .txt 파일을 만들고 여기에 쓰는 방법

  19. 19

    Java에서 텍스트 파일 읽기 및 데이터 사용

  20. 20

    파일에 float 배열 읽기 및 쓰기

  21. 21

    HDF5 파일에서 numpy 배열 읽기 및 쓰기

  22. 22

    Java 읽기 및 동일한 파일에 쓰기

  23. 23

    PYTHON에서 행 읽기, 나열 할 프로세스 및 파일에 쓰기

  24. 24

    삭제할 수없는 파일 생성 및 Java를 사용하여 읽기 / 쓰기

  25. 25

    파일 열을 배열로 읽기

  26. 26

    배열로 파일 읽기

  27. 27

    Java 프로젝트 폴더의 txt 파일에 쓰기

  28. 28

    Java의 큰 텍스트 파일에서 효율적인 읽기 및 쓰기

  29. 29

    Python에서 파일을 쓰기 및 읽기 가능하게 만들기

뜨겁다태그

보관