gpt4 book ai didi

C# 成绩计算器

转载 作者:行者123 更新时间:2023-11-30 23:19:42 25 4
gpt4 key购买 nike

我目前正在编写一个成绩计算器,它可以将 3 个考试成绩相加,并根据平均成绩给出一个字母等级。到目前为止,除了一件事之外,我已经能够毫无问题地编写所有代码。在这个计算器中,我添加了一个复选框,如果选中,该复选框会降低最低等级并平均掉最高 2 分。我几周前才开始编程,不知道如何开始编码。我应该使用 if 语句还是循环?如果你们有任何关于消除不必要的代码或其他任何东西的技巧,请随时指出。

 public frmGradeCalculator()
{
InitializeComponent();
}




private void chkDropLowest_CheckedChanged(object sender, EventArgs e)
{


}
private void btnClear_Click(object sender, EventArgs e)
{
// Clear Text

txtTest1.Clear();
txtTest2.Clear();
txtTest3.Clear();
txtAverage.Clear();
txtLetterGrade.Clear();

// Set Focus

txtTest1.Focus();
}

private void btnCalculate_Click(object sender, EventArgs e)
{
// Declare variables

byte bytTest1;
byte bytTest2;
byte bytTest3;
float fltAverage;
string strLetterGrade = "F";

// Convert to text

if (byte.TryParse(txtTest1.Text, out bytTest1))
{
}
else
{
MessageBox.Show("Invalid Number!",
"Yancarlos Grade Calculator",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
txtTest1.Focus();
return;
}

if (byte.TryParse(txtTest2.Text, out bytTest2))
{
}
else
{
MessageBox.Show("Invalid Number!",
"Yancarlos Grade Calculator",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
txtTest2.Focus();
return;
}
if (byte.TryParse(txtTest3.Text, out bytTest3))
{
}
else
{
MessageBox.Show("Invalid Number!",
"Yancarlos Grade Calculator",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
txtTest3.Focus();
return;
}

// Formula

fltAverage = (bytTest1 + bytTest2 + bytTest3) / 3;

if (fltAverage <= 59.9)
{
strLetterGrade = "F";
}
else if (fltAverage <= 63.9)
{
strLetterGrade = "D-";
}
else if (fltAverage <= 66.9)
{
strLetterGrade = "D";
}
else if (fltAverage <= 69.9)
{
strLetterGrade = "D+";
}
else if (fltAverage <= 73.9)
{
strLetterGrade = "C-";
}
else if (fltAverage <= 76.9)
{
strLetterGrade = "C";
}
else if (fltAverage <= 79.9)
{
strLetterGrade = "C+";
}
else if (fltAverage <= 83.9)
{
strLetterGrade = "B-";
}
else if (fltAverage <= 86.9)
{
strLetterGrade = "B";
}
else if (fltAverage <= 89.9)
{
strLetterGrade = "B+";
}
else if (fltAverage <= 93.9)
{
strLetterGrade = "A-";
}
else if (fltAverage <= 96.9)
{
strLetterGrade = "A";
}
else
{
strLetterGrade = "A+";
}



// convert back to user

txtAverage.Text = fltAverage.ToString("f1");
txtLetterGrade.Text = strLetterGrade.ToString();

}

private void btnExit_Click(object sender, EventArgs e)
{
// Exit application

Application.Exit();
}

private void frmGradeCalculator_Load(object sender, EventArgs e)
{

}
}

最佳答案

要回答您关于是使用循环还是 if 语句的具体问题,所有复选框控件都有一个您可以检查的 Checked 属性。

if(chkDropLowest.Checked)
{
//Calculate average without the lowest test
}

就设计而言,我建议您不要为特定按钮分配太多功能。相反,我会创建一个从该按钮调用的新方法(如果您将来决定使用新控件,这样您就很安全)

例子:

private string CalculateLetterGrade(byte test1, byte test2, byte test3)
{
string letterGrade;

if(chkDropLowest.Checked)
{
//Drop lowest test then calculate average
}
else
{
//Use all tests then calculate average
}

//Determine the string for the letter grade, then return it

return letterGrade;
}

您似乎已经制定了一般逻辑,所以我会把它留给您。

关于C# 成绩计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40142608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com