C# 用C语言编写数组和平均值程序#

C# 用C语言编写数组和平均值程序#,c#,visual-studio,C#,Visual Studio,我正在用C语言编写一个GUI程序,其中包括三个文本框(一个用于姓名输入,一个用于成绩输入,一个用于成绩输出)和五个按钮(一个用于输入名称/等级并添加到相应的数组中,一个用于仅显示刚输入的名称和等级,一个用于显示最低等级,一个用于显示最高等级,一个用于显示班级平均值) 我设计了表单,但需要一些代码方面的帮助,有两个数组,一个用于年级,一个用于姓名,这两个数组中最初存储了五个值。以下是我到目前为止的代码: namespace WindowsFormsApplication3 { using

我正在用C语言编写一个GUI程序,其中包括三个文本框(一个用于姓名输入,一个用于成绩输入,一个用于成绩输出)和五个按钮(一个用于输入名称/等级并添加到相应的数组中,一个用于仅显示刚输入的名称和等级,一个用于显示最低等级,一个用于显示最高等级,一个用于显示班级平均值)

我设计了表单,但需要一些代码方面的帮助,有两个数组,一个用于年级,一个用于姓名,这两个数组中最初存储了五个值。以下是我到目前为止的代码:

    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++;
        }

}
}
命名空间窗口窗体应用程序3
{
使用静态系统控制台;
公共部分课程最高等级:表格
{
int[]等级=新int[]{90,80,60,70,80,};
字符串[]名称=新字符串[]{“Sally”、“Joe”、“Sue”、“Pete”、“Tom”,};
双和=0;
双倍平均;
int x=4;
int y=4;
int z=0;
公共高级程度()
{
初始化组件();
}
私有无效标签1_单击(对象发送方,事件参数e)
{
}
私有无效标签2_单击(对象发送方,事件参数e)
{
}
私有void addStudent\u单击(对象发送者,事件参数e)
{

如果(x您必须在再次添加等级之前重置当前的
总和
,以正确计算平均值:

private void averageGrade_Click(object sender, EventArgs e) {

    sum = 0; // reset sum

    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
z

private void lowestGrade_Click(object sender, EventArgs e) {
    // this probably only needs to be sorted if a value is added or removed (addStudent_Click)           
     Array.Sort(grade, name); 
     outputText.Visible = true;

     // first element (with index 0) will be the lowest because arrays are sorted now
     outputText.Text = name[0] + "  " + grade[0]; 
 }

您还可以使用LINQ
.First()
.Last()
访问集合的第一个或最后一个元素,或者不需要排序。使用LINQ
.Min()
.Max()
方法。

在再次添加等级之前,您必须重置当前的
总和
,以正确计算平均值:

private void averageGrade_Click(object sender, EventArgs e) {

    sum = 0; // reset sum

    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
z

private void lowestGrade_Click(object sender, EventArgs e) {
    // this probably only needs to be sorted if a value is added or removed (addStudent_Click)           
     Array.Sort(grade, name); 
     outputText.Visible = true;

     // first element (with index 0) will be the lowest because arrays are sorted now
     outputText.Text = name[0] + "  " + grade[0]; 
 }

您还可以使用LINQ
.First()
.Last()
来访问集合的第一个或最后一个元素,或者不需要排序使用LINQ
.Min()
.Max()
方法。

尝试..就最低/最高值而言,仅排序并获取数组中的第一个或最后一个..您最好切换到
列表
尝试..就最低/最高值而言,仅排序并获取数组中的第一个或最后一个..您最好切换到
列表