当前位置: 首页 > 知识库问答 >
问题:

从一个txt文件读取,排序,并输出到另一个txt文件

阎知
2023-03-14

我希望有人会花时间帮助我。我是Java新手,正在上一堂课尝试学习它。我有一个任务,我已经开始和删除了可能30次。我就是不喜欢这个。作业如下:

从txt文件中读取3列整数。一列有学生号,一列是作业的分数,第三列是作业的最大可能分数。(各10分学生5人)。

我必须至少使用1个数组。

列出从作业中获得的总分数,并合计5名学生在10项作业中每个人可能获得的最高分数。然后将学生号、分数、作业的最大可能分数、百分率以及最后的学生字母分数输出到另一个txt文件中。

12345 10 15
12345 25 25
12345 89 100
12345 23 25
12345 9 10
12345 42 50
12345 75 100
12345 92 100
12345 40 50
12345 48 50
23456 12 15
23456 23 25
23456 99 100
23456 24 25
23456 9 10
23456 47 50
23456 88 100
23456 95 100
23456 35 50
23456 45 50
34567 10 15
34567 24 25
34567 87 100
34567 23 25
34567 9 10
34567 45 50
34567 97 100
34567 98 100
34567 38 50
34567 48 50
45678 8 15
45678 21 25
45678 78 100
45678 22 25
45678 9 10
45678 46 50
45678 76 100
45678 92 100
45678 37 50
45678 39 50
56789 8 15
56789 21 25
56789 78 100
56789 21 25
56789 8 10
56789 42 50
56789 72 100
56789 88 100
56789 32 50
56789 34 50
import java.awt.List;    
import java.io.FileNotFoundException;    
import java.io.FileReader;    
import java.util.ArrayList;    
import java.util.Arrays;    
import java.util.Scanner;    
import java.util.IOException;

public class gradesSummary {
    public static void main(String[] args) throws FileNotFoundException {
        ArrayList<Integer> l1 = new ArrayList<Integer>(1);
        ArrayList<Integer> l2 = new ArrayList<Integer>(2);
        ArrayList<Integer> l3 = new ArrayList<Integer>(3);


        Scanner s = new Scanner(new FileReader("grades.txt")); 

        while (s.hasNext()) {
            l1.add(s.nextInt());
            l2.add(s.nextInt());
            l3.add(s.nextInt());
        }

        s.close();

        System.out.println(l1);  
        System.out.println(l2);  
        System.out.println(l3);
    }   
}

从这里我要去哪里?

我已经完成了大部分代码。我现在需要打印到一个新的文本文件。以下是我的新html" target="_blank">代码:

公共类GradesSummary{public static void main(string[]args)抛出FileNotFoundException{

     int x = 1;
        Scanner inputFile = new Scanner(new File("grades.txt"));
        int[] studentNum = new int[100];
        int[] score = new int[100];
        int[] maxScore = new int[100];
        int[] totalScore = new int[6];
        int[] totalMaxScore = new int[6];
        int[] studentNumber = new int[6];
        double[] percentage = new double[6];
        //int[] totalScore = new int[100];
        //int[] totalMaxScore = new int[100];

        //int totalMaxScore = 0;
        //int totalScore = 0;
        //double percentage = 0.00;
        studentNum[0] = 0;
        while(inputFile.hasNext()){
                studentNum[x] = inputFile.nextInt();
                score[x] = inputFile.nextInt();
                maxScore[x] = inputFile.nextInt();
                x++;            
        }
        int y = 0;
        studentNumber[y] = studentNum[1]; 
        for (x = 1; x < 100; x++){
            if (x > 1 && studentNum[x] != studentNum[x-1]){
                percentage[y] = (double)totalScore[y] / (double)totalMaxScore[y];
                y++;
                studentNumber[y] = studentNum[x];
            }

            totalMaxScore[y] += maxScore[x];
            totalScore[y] += score[x];
        }

        for (int z = 0; z<= 4; z++){
            System.out.println(z + " " +studentNumber[z]+" "+percentage[z]);
        }
      }

对于创建一个新的文本文件来打印学生数、totalscore、totalmaxscore、百分比等级和字母等级有什么建议吗?

谢谢你能给我的任何帮助。

共有1个答案

宗冠宇
2023-03-14

实现这一点的OOP方法是创建一个Student类,使用int id和一个数组赋值。请注意,每个学生都以相同的顺序收到相同的作业,所以您可以创建一个10个最高分数的数组并存储总和。

 类似资料:
  • 问题内容: 我正在尝试将字典写到txt文件。然后使用键入键,以读取dict值。我感觉好像只想走一步,但现在已经找了一段时间。 我得到这个错误 我的代码: 问题答案: 您的代码 几乎正确 !没错,您只差一步。当您读入文件时,您将以字符串形式读取它;但是您想将字符串转换成字典。 您看到的错误消息是因为是字符串,而不是字典。 我首先写道,您可以只将字符串输入其中,但这不起作用!您需要做其他事情。 例 这

  • 问题内容: 我使用/output:D:\list.txt产品通过cmd命令获得了应用程序列表,并获得了名称,版本。但是,当我尝试使用java检索列表时,每个字母后的输出都有空格。 样品: 从文本文件 用Java读取时 有办法解决这个问题吗? 我只是使用此代码: 问题答案: 这可能是由于编码问题。尝试使用字符集

  • 所以,我试图让我的程序从文本文件中读入一个结构数组,它编译得很好,但看起来并没有真正读入值?...我不知道为什么。这是代码的相关部分: 这是txt文件(标题:Planets.txt) 水星120 50 500 12.1 30 2金星120 50 500 29.1 30 6地球120 50 500 32.2 30 7月亮120 15 50 5.3 30 2火星120 50 500 12.2 30 4

  • 我已经创建了一个程序,其中有一个名为groups.txt.的文件这个文件包含一个名称列表。要删除一个组,它必须存在于文件中。我使用Scanner方法在每一行中搜索名称。如果它包含该行,它将val设置为1。这会触发val==1条件。在此块期间我想做的,是尝试从groups.txt文件中删除groupName。为此,我创建了一个名为TempFile的新txt文件,它复制了groups.txtEXCEP

  • 问题内容: 我有以下问题:我有一个近500mb的文件。它的文字全部排成一行。文本以虚拟行结尾分隔,称为ROW_DEL,并在文本中如下所示: 现在我需要进行以下操作,我想将此文件分成几行,这样我得到一个文件: 这个问题,即使我使用Windows文本编辑器将其打开,也会由于文件太大而中断。 是否可以像我在C#,Java或Python中提到的那样拆分此文件?什么是最好的灵魂,不要过度杀伤我的CPU。 问

  • 我的项目中有这样一段代码: 没有错误,应用程序运行正常,但是变量中从来没有任何文本,我确信txt文件中有文本! 我已经尝试过不同的方法来读取文本文件(使用BufferedReader、Scanner、FileInputStream和FileReader),但都不起作用。 另外,我几乎可以肯定问题不在变量中,因为我尝试通过代码(使用运行时)打开文件,它正常打开了正确的文件。 好的,我尝试添加,但是仍