如何将数字编码为字母等级转换程序 [英] How do I code a number to a letter grade conversion program
问题描述
有人可以帮我解决这个问题吗?
Please can somebody help me fix this?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string gradeLetter;
string gradeNumberStr;
decimal gradeNumber;
Console.Write("Enter the number of the grade: ");
gradeNumberStr = Console.ReadLine();
gradeNumber = decimal. Parse (gradeNumberStr);
if(gradeNumber > 88 )
{
gradeLetter = "A";
}
else if (gradeNumber <=88 && >= 80)
gradeLetter = "B";
{
if else (gradeNumber <=79 && gradeNumber >= 68))
gradeLetter = "C";
}
if (gradeNumber >= 67 && gradeNUmber >= 60)
gradeLetter = "D";
{
else if (gradeNumber < 60)
gradeLetter = "F";
}
else
{
gradeNumber = "Grade" + gradeNumber + " does not exist !";
Console.Writeline("Grade:" + gradeLetter);
}
Console.WriteLine("Press Enter; to Exit...");
Console.Read();
{
}
}
我尝试了什么:
我已经尝试了一切。我在大学但是我不太了解第一次编写代码
What I have tried:
I have tried everything. I am in college but i don't understand much aabout coding first time i do this
推荐答案
请参阅下面的代码
see the code below
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string gradeLetter;
string gradeNumberStr;
decimal gradeNumber;
Console.Write("Enter the number of the grade: ");
gradeNumberStr = Console.ReadLine();
gradeNumber = decimal.Parse(gradeNumberStr);
if (gradeNumber > 88)
{
gradeLetter = "A";
}
else if (gradeNumber <= 88 && gradeNumber >= 80)
{
gradeLetter = "B";
}
else if (gradeNumber <= 79 && gradeNumber >= 68)
{
gradeLetter = "C";
}
else if (gradeNumber >= 67 && gradeNumber >= 60)
{
gradeLetter = "D";
}
else if (gradeNumber < 60)
{
gradeLetter = "F";
}
else
{
gradeLetter = "Grade" + gradeNumber.ToString() + " does not exist !";
}
Console.WriteLine("Grade:" + gradeLetter);
Console.WriteLine("Press Enter; to Exit...");
Console.Read();
}
}
}
ok ...你实际上并没有说出错了,但是你有一些想法你要去哪里
1)我将开始
ok ... you dont actually say what's wrong, but you have some idea of where you're headed
1) I'm going to start with
decimal gradeNumber;
gradeNumber = decimal. Parse (gradeNumberStr);
为什么小数?根据你的数字,你能得到65.5吗?
如果有人在65.arrgh中键入会发生什么 - 该程序将如何处理? (让我建议'严重')
我建议像
why decimal ? by your numbers, can you get 65.5 for example ?
what happens if someone keys in 65.arrgh - how is the program going to handle that ? (let me suggest 'badly')
I would suggest something like
int gradeNumber = 0;
try
{
gradeNumber = Convert.ToInt32(gradeNumberStr);
}
catch (System.Exception ex)
{
System.Console.WriteLine("Error in the input format - {0} Is not a valid integer", gradeNumberStr);
System.Console.WriteLine("Press Enter To Exit";
System.Console.ReadLine();
Environment.Exit(0);
}
所以,gradeNumber现在是一个int - 如果从字符串到数字的转换失败,则会打印一条消息,在用户按Enter键后,程序将退出
2)然后我们将(提示)
so, gradeNumber is now an int - if the conversion from a string to a number fails, a message is printed and after the user presses Enter, the program exits
2) then we'll get to (hint)
if (cond1)
{
// do something
}
else if (cond2)
{
// do something else
}
else if (cond3)
{
// do something else
}
else
{
// final do something
}
看看你的代码(它的所有地方) - 但它是否遵循我所放置的模式?
3)
Have a look at your code (its all over the place) - but does it follow the pattern of what I put ?
3)
else if (gradeNumber <=88 && >= 80)
(与(2)结合使用) - 看看逻辑运算符/条件 - 您认为这会起作用吗?我的建议是将其写成表格
(in conjunction with (2)) - have a look at logical operators/conditions - do you think thats going to work ? my suggestion would be to write it in the form
else if (x <= y && x >= z)
你能看到微妙的区别吗?
4)你不需要的程序顶部的大多数'使用' - 为什么这个
Can you see the subtle difference ?
4) most of those 'usings' at the top of the program you dont need - why is this
using System.Threading.Tasks;
特别包括在内? (提示 - 摆脱它!)
particularly included ? (hint - get rid of it !!)
我在大学但我不喜欢我第一次做这个时很难理解
I am in college but i don't understand much aabout coding first time i do this
可以看到它。我重新格式化了你的代码,这是一团糟。
One can see it. I have reformatted your code, it's a mess.
我试过了一切。
你可以尝试什么,它一样,它没有帮助。
建议:
- 忘掉你的项目现在。
- 按照tutos学习编程。 Tutos项目在这里并不有用,它们在这里教你编码。
- 使用带有自动缩进的程序员文本编辑器。缩进有助于查看程序的逻辑(请参阅您的代码重新格式化)。
您的代码是一团糟:
- 不要在代码上随机散布 {
和}
,它们是代码逻辑的一部分。建议:保持一致。
You could have tried nothing, its the same, it don't help.
Advice:
- Forget your project for now.
- Study programming by following tutos. Tutos projects are not here to be useful, they are here to teach you coding.
- Use a programmer text editor with automatic indentation. Indentation helps to see the logic of the program (see your code reformatted).
Your code is a mess:
- Don't scatter {
and }
randomly on the code, they are part of the logic of your code. Advice: be consistent.
// This is normal writing
if(gradeNumber > 88 )
{
gradeLetter = "A";
}
else if (gradeNumber <=88 && >= 80)
// Why don't you use the same writing as with grad A ?
gradeLetter = "B";
// Here you break the logic with the { and } out of order
{
// if else does not exost
if else (gradeNumber <=79 && gradeNumber >= 68))
gradeLetter = "C";
}
// why no "else" here
if (gradeNumber >= 67 && gradeNUmber >= 60)
gradeLetter = "D";
{
else if (gradeNumber < 60)
gradeLetter = "F";
}
我告诉过你这是一团糟吗?
为了给你看一点改写
Did I told you it's a mess ?
A little rewriting just to show you
if(gradeNumber > 88 )
{
gradeLetter = "A";
}
else if (gradeNumber <=88 && >= 80) // error here (compare with next condition
{
gradeLetter = "B";
}
else if (gradeNumber <=79 && gradeNumber >= 68))
{
gradeLetter = "C";
}
else if (gradeNumber >= 67 && gradeNUmber >= 60)
{
gradeLetter = "D";
}
else if (gradeNumber < 60)
[
gradeLetter = "F";
}
只有正确使用缩进ans {}
。还有很多问题。
这篇关于如何将数字编码为字母等级转换程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!