【发布时间】:2020-02-18 19:31:45
【问题描述】:
我正在尝试解决一个问题。 我的老师希望我们做一个带有温度转换器的 C# 控制台,从摄氏到华氏并进行切换。问题是我在编码中不断出现错误,我不知道我从哪里开始出错以至于完全迷失了方向。顺便提一下,我还处于起步阶段,希望能得到一些帮助。
我们应该编写一个程序,显示以摄氏度为单位的温度列表,转换为华氏温度,反之亦然。提供了一个菜单供用户选择转换类型:该菜单应不断重复,直到用户选择 0 退出。
选择选项1时,程序计算并显示在选择选项2的下一个图像中转换为摄氏度的华氏度的0到212度的值之间的值列表,程序列出了0到100摄氏度的值转换为华氏度。
这是我的开始:
using System;
namespace TempconverterA2
{
class TemperatureConverter
{
public void Start()
{
Console.WriteLine("**************************************");
Console.WriteLine("\t MAIN MENU");
Console.WriteLine("**************************************");
Console.WriteLine(" Convert Fahrenheit to Celsius : 1");
Console.WriteLine(" Convert Celsius to Farenheit : 2");
Console.WriteLine(" Exit the Converter : 0");
Console.WriteLine("**************************************");
Console.WriteLine("\nYour choice: ");
switch (choice)
{
case 1:
CalculateFarenheitToCelsius(F = 9 / 5 * C + 32);
break;
case 2:
CalculateCelsiusToFarenhet(C = 5 / 9 * (F - 32));
case 0: //do nothing (exists to loop)
break;
default:
Console.WriteLine("Invalid option. Choose between 0 and 2.");
break;
} while (choice != 0) ;
public void CalculateCelsiusToFarenhet()
{
double convertedValue = 0;
stringtextOut = string.Empty;
for (int i= 0, i <= 100; i += 5)
{
convertedValue = CalculateCelsiusToFarenhet(i);
textOut = string.Format("{0,16:f2} C = {1,6:f2} F", i, convertedValue);
Console.WriteLine(textOut);
}
Console.WriteLine();
}
}//End of Start
【问题讨论】:
-
Dia Di,在“switch”中使用之前,您是否将任何内容分配给“choice”?它目前可能在某处被声明为 int 并且默认为 0,因此最终它只是对开关的“默认”进行操作.. 猜测而不查看完整的 cs 文件。
-
CalculateFarenheitToCelsius()的定义是什么?此外,您将参数传递给CalculateCelsiusToFarenhet(),但该方法不接受参数。 -
这里有几个明显的错误: 1. 你没有声明选择(编译错误)。 2.您没有为用户输入的选择分配值(运行时错误)。 3.CalculateFarenheitToCelsius 函数不存在(编译错误)。 4. while 语句后缺少右括号(编译错误)。 5. 即使函数不带参数(编译错误),您也使用参数调用CalculateCelsiusToFarenhet。 6. 您在CalculateCelsiusToFarenhet 中调用CalculateCelsiusToFarenhet,没有基本情况。这将导致无限递归(运行时堆栈溢出)
-
我建议您在尝试 OOP 之前再次阅读初学者指南并从一个主要功能程序开始。
-
我在这里同意@Steve。除了 OOP 实践之外,您还缺少功能性实践。观看一些关于函数式编程语言(如 C)的初学者视频。
标签: c# console-application converters temperature