我无法使我的程序正常工作.我认为这可能是命名的问题,但我;I’我不确定.我该怎么办

本文关键字:问题 不确定 我该怎么办 但我 我的 程序 常工作 工作 | 更新日期: 2023-09-27 18:21:21

我正在制作一个程序,它获取一个.txt文件,读取它,然后显示平均分数、高于平均分数和低于平均分数。没有语法错误,但似乎没有什么能让它正常工作。点击按钮不会有任何作用。

这是我的代码:

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 The_Score_List_V2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void ReadScores(List<int> scoreList)
        {
            try
            {
                StreamReader inputFile = File.OpenText("TestScores.txt");
                while (!inputFile.EndOfStream)
                {
                    scoreList.Add(int.Parse(inputFile.ReadLine()));
                }
                inputFile.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void DisplayScores(List<int> scoreList)
        {
            foreach (int score in scoreList)
            {
                this.scoreList.Items.Add(score);
            }
        }
        private double average(List<int> scoreList)
        {
            int total = 0;
            double average;
            foreach (int score in scoreList)
            {
                total += score;
            }
            average = (double)total / scoreList.Count;
            return average;
        }
        private int AboveAverage(List<int> scoreList)
        {
            int numAbove = 0;
            double avg = average(scoreList);
            foreach (int score in scoreList)
            {
                if (score > avg)
                {
                    numAbove++;
                }
            }
            return numAbove;
        }
        private int BelowAverage(List<int> scoreList)
        {
            int numBelow = 0;
            double avg = average(scoreList);
            foreach (int score in scoreList)
            {
                if (score < avg)
                {
                    numBelow++;
                }
            }
            return numBelow;
        }
        private void getScoresButton_Click(object sender, EventArgs e)
        {
            double averageScore;
            int numAboveAverage;
            int numBelowAverage;
            List<int> scoreList = new List<int>();
            ReadScores(scoreList);
            DisplayScores(scoreList);
            averageScore = average(scoreList);
            averageLabel.Text = averageScore.ToString("n1");
            numAboveAverage = AboveAverage(scoreList);
            this.numAboveAverage.Text = numAboveAverage.ToString();
            numBelowAverage = BelowAverage(scoreList);
            this.numBelowAverage.Text = numBelowAverage.ToString();
        }
        private void exitButton_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

这里还有设计视图中的名称,以表明这不是一个挂钩问题。我在这里做错了什么?

我无法使我的程序正常工作.我认为这可能是命名的问题,但我;I’我不确定.我该怎么办

我测试了你的代码,一旦我有了正确的文件路径,它就运行得很好。我认为您的问题是TestScores.txt文件不在运行代码的同一文件夹中。

如果你这样做是为了获得学习体验,我建议你指定文件的完整路径。否则,您可能需要使用OpenFileDialog对象,以便在运行时指定文件。微软的开发者网络在这里有一篇很好的文章。

此外,如果您想将其用于生产,请考虑使用int.TryParse()方法,而不是int.Parse()[/strong>,这样您就可以处理文本文件中经常出现的错误数据。