感谢帮助。我是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";
}
}
建议将不胜感激。
谢谢