私は3つのテキストボックス(名前入力用、グレード入力用、グレード出力用)を含むGUIを使用してプログラムを作成しています。名前/等級を対応する配列に追加します.1つは入力したばかりの名前とグレードだけを表示し、1つは最も低いグレードを表示し、もう1つは最高グレードを表示し、もう1つはクラス平均を表示します。C#で配列と平均を使用してプログラムを書く
私はフォームを設計しましたが、いくつかのコードで助けが必要です。グレードには2つの配列があり、名前には最初に5つの値が格納されています。 、最低/最高グレード継続的に出力することが可能でありながら、いつでもユーザーがクリック
namespace WindowsFormsApplication3
{
using static System.Console;
public partial class highestGrade : Form
{
int[] grade = new int[] { 90, 80, 60, 70, 80, };
string[] name = new string[] { "Sally", "Joe", "Sue", "Pete", "Tom", };
double sum = 0;
double average;
int x = 4;
int y = 4;
int z = 0;
public highestGrade()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void addStudent_Click(object sender, EventArgs e)
{
if (x <= 9)
{
Array.Sort(grade, name);
name[x] = textBox1.Text;
grade[x] = Convert.ToInt32(textBox2.Text);
sum = sum + grade[x];
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
}
}
private void display_Click(object sender, EventArgs e)
{
outputText.Visible = true;
outputText.Text = textBox1.Text + " " + textBox2.Text;
}
private void lowestGrade_Click(object sender, EventArgs e)
{
Array.Sort(grade, name);
outputText.Visible = true;
outputText.Text = name[z] + " " + grade[z];
}
private void button4_Click(object sender, EventArgs e)
{
Array.Sort(grade, name);
outputText.Visible = true;
outputText.Text = name[y] + " " + grade[y];
}
private void averageGrade_Click(object sender, EventArgs e)
{
for (int y = 0; y < 5; y++)
{
sum = sum + grade[y];
}
average = sum/grade.Length;
string avgOutput = Convert.ToString(average);
outputText.Visible = true;
outputText.Text = "Class Average: " + avgOutput;
y++;
}
}
}
私は10人の学生にグレード/名の入力を取るためのプログラムが必要になります。ここに私はこれまで持っているコードです。また、ユーザーがクリックするたびに連続的に合計平均を出力する必要があります。
平均値が正しく計算されていないため、平均ボタンをクリックするたびに合計に加算され続け、最高のグレード値を保持することができません。たとえば、新しい等級を100と入力してから最高級をクリックすると、その等級が表示されます。しかし、次の成績で95を入力すると、100を95に置き換えます。
何か助けていただければ幸いです。
https://www.dotnetperls.com/averageを試してください。一番低いものから最高のものまで並べ替えて、配列の最初か最後を取得してください.... – Trey
リストに切り替えるほうがよいでしょう。 ' –