如何将数字编码为字母等级转换程序 [英] How do I code a number to a letter grade conversion program

查看:105
本文介绍了如何将数字编码为字母等级转换程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮我解决这个问题吗?



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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆