C#数组计算等级

时间:2017-11-14 20:59:58

标签: c# arrays

感谢帮助。我是C#全新的,虽然我参加了一个入门课程,但是我们的导师为我们提供了解决这个问题的方法。我正在尝试计算最高为10的等级数组,其中我需要找到最低等级,忽略最低等级,然后打印出字母等级。我设法通过我在“整体计算”块中输入的第三方来计算数组的元素。结果目前还没有结果,但我不太确定在哪里解决这个问题。

        const int MAX_SIZE = 10;

    decimal[] quizList = new decimal[MAX_SIZE]; // Array of 10 decimals.

    // Add to List of quiz
    private void btnAdd_Click(object sender, EventArgs e)
    {
        // add grade data to array.
        quizList[count] = Convert.ToInt32(txtList.Text);
        count++;
        quizTotal += quizList[count];
        DisplayProducts();
        FindLowest(quizList, count); // Locate lowest and print out to user.
        if (count == MAX_SIZE) // no more space.
        {
            txtList.Enabled = false;
            btnAdd.Enabled = false;
        }
        txtList.Text = ""; // clear input as soon as user enters data (clarity/convenience purposes)
        txtList.Focus();
    }

    private void DisplayProducts()
    {
        string gradeList;
        lstGrades.Items.Clear(); // Erase list grades.
        for (int i = 0; i < count; i++)
        {
            gradeList = quizList[i].ToString();
            lstGrades.Items.Add(gradeList);
        }
    }

    public decimal FindLowest(decimal[] q, int s)
    {
        decimal smallest = quizList[0];
        for (int i = 0; i < s; i++)
        {
            if (quizList[i] < smallest)
            {
                smallest = quizList[i];
            }
            txtLowest.Text = Convert.ToString(smallest);
        }
        return smallest;
    }

    //Overall Calculation 
    private void btnCalculate_Click(object sender, EventArgs e)
    {


        // Calculate each quiz (
        for (int i = 0; i < quizList.Length; i++)
        {
            decimal resultQuiz;

            // Conversion to specified percentages
            resultQuiz = quizList[i] * Convert.ToDecimal(0.15);
            midTerm = Convert.ToDecimal(txtMidterm.Text) * Convert.ToDecimal(0.30);
            finalExam = Convert.ToDecimal(txtFinalEx.Text) * Convert.ToDecimal(0.40);



            // Calculated Total
            totalGrade = resultQuiz + midTerm + finalExam;
        }

        decimal lowestGrade = FindLowest(quizList, count);

        // Get average without lowest grade.
        average = totalGrade - lowestGrade;

        //Print out Average.
        txtAverage.Text = Convert.ToString(average);

        // Conversion to letter grade based upon percentage.
        if (average >= 90)
        {
            txtLetter.Text = "A";
        }
        else if (average >= 80 && average <= 90)
        {
            txtLetter.Text = "B";
        }
        else if (average >= 70 && average <= 80)
        {
            txtLetter.Text = "C";
        }
        else if (average >= 60 && average <= 70)
        {
            txtLetter.Text = "D";
        }
        else
        {
            txtLetter.Text = "F";
        }
    }

建议将不胜感激。

谢谢

0 个答案:

没有答案