- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在编写一个成绩计算器,它可以将 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/
我正在尝试在 JavaScript 中创建一个正则表达式搜索,它会接受以下等级中的一个:A、B+、B、C+、C、D、F、AF 或 WF。 我有以下正则表达式:^A-?|[BCD][+-]?|[AW]?
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。它不符合 Stack Overflow guidelines 。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题
我正在制作一个学生数据库,其中包含类(class) ID、类(class)名称、每门类(class)的学分、通过/失败声明和成绩。我的目标是让按钮显示总和(成绩)/总和(学分) 这是我编写的代码,它给
我正在努力弄清楚如何实现这个计数。模型是用户、测试、等级 用户 has_many 测试,测试 has_many 成绩。 每个等级都有一个计算分数(strong_pass、pass、fail、stron
我是一名优秀的程序员,十分优秀!