如何使用读取文件中的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用读取文件中的数据相关的知识,希望对你有一定的参考价值。

编写一个从文本文件中读取一组考试分数的程序。计算以下内容:a)班级学生总数b)每个字母年级的学生百分比c)全班分数范围d)全班平均成绩

老实说,我非常迷失,我知道如何打开文件并阅读其中的内容,但不知道如何使用它。我意识到我拥有的代码对我尝试做的事情没有任何帮助。只是不确定去哪里

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApp2

public partial class Form1 : Form

    public Form1()
    
        InitializeComponent();
    

    private void button1_Click(object sender, EventArgs e)
    
        string strStudent;

        StreamReader studentsFile;
        studentsFile = File.OpenText("Exam_scores.txt");


        for (int count = 1; count < 5; count++)
                        
            //Read data                
            strStudent = studentsFile.ReadLine();                

            //Display records                
            studentsListBox.Items.Add(strStudent);

                    
        // close the connection            
        studentsFile.Close();
        



Exam_scores File 

96
53
92
30
97
76
78
45
81
49
91
42
67
40
43
53
80
85
77
92
47
45
72
36
83
36
34
71  
96
56
87
86  
87
98
96
97
55
44
53
93
67
38
82
64
96
答案

不是将分数添加到列表框中,而是将字符串转换为int并将其添加到List中,这使您的计算变得容易。另外,您正在for循环中将文件的长度硬编码为5,这是行不通的。您可以将for循环替换为此:

List<int> scores = new List<int>();
using (StreamReader sr = File.OpenText("Exam_scores.txt"))

    string s = "";
    while ((s = sr.ReadLine()) != null)
    
        int score = int.Parse(s);
        scores.Add(score);
    

然后,您可以进行以下计算。

int totalStudents = scores.Count;
var percentStudentsWithA = scores.Count(x => x >= 90) / scores.Count;
var percentStudentsWithB = scores.Count(x => x >= 80 && x < 90) / scores.Count;
....
var lowestRange = scores.Min();
var highestRange = scores.Max();
var average = (decimal)scores.Sum() / (decimal)scores.Count();
另一答案

直接将文件读取为字符串数组:

var scores = File.ReadAllLines("Exam_scores.txt");

现在,您有一个字符串数组,但是要执行计算,您将需要一个int数组:

var intScores = scores.Select(x => Convert.ToInt32(x));

到目前为止,到目前为止,您可以开始进行计算了:

var totalNumberOfStudents = intScores.Count();
var minScore = intScores.Min();
var maxScore = intScores.Max();
var avgScore = intScores.Average();

我希望这足以使您理解。

以上是关于如何使用读取文件中的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 灵活读取 Excel 内容?

如何在不使用临时文件的情况下从 Java 中的嵌套 zip 文件中读取数据?

怎么读取列表控件中的数据

WPF 中.XAML文件如何读取资源文件?

如何使用读取文件中的数据

java - 如何使用Java从文件夹中的所有文件中一一读取数据? [复制]