我无法使我的程序正常工作.我认为这可能是命名的问题,但我;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();
}
}
}
这里还有设计视图中的名称,以表明这不是一个挂钩问题。我在这里做错了什么?
我测试了你的代码,一旦我有了正确的文件路径,它就运行得很好。我认为您的问题是TestScores.txt文件不在运行代码的同一文件夹中。
如果你这样做是为了获得学习体验,我建议你指定文件的完整路径。否则,您可能需要使用OpenFileDialog对象,以便在运行时指定文件。微软的开发者网络在这里有一篇很好的文章。
此外,如果您想将其用于生产,请考虑使用int.TryParse()方法,而不是int.Parse()[/strong>,这样您就可以处理文本文件中经常出现的错误数据。