嗨,我想制作一个可以接受摄氏或周长的温度计算器,并将该温度转换为另一个等级。如果输入摄氏温度,它将转换为华氏温度,反之亦然。
说明:
为此,您必须设计和编码一种方法,将一个温度刻度转换为另一个温度刻度并返回结果。这个方法应该有两个参数,一个用于转换温度值,另一个用于指示转换为哪个温度刻度。
您的方法应该进行编码,以便其他类或应用程序可以访问它。另外,请确保方法中只有一个return语句。
到目前为止,我已经创建了这个代码,但它显示了2个小错误,我不知道如何修复它们。
**错误1.常量值'67'无法转换为'char'
错误2.常量值'70'无法转换为'char'**
命名空间Lab7 { public partial class frmTemperatureConverter:Form { public frmTemperatureConverter() { 的InitializeComponent(); }
private void txtValueToConver_TextChanged(object sender, EventArgs e)
{
}
private void btnConvert_Click(object sender, EventArgs e)
{
char chr;
string str1;
string str2;
object[] objArray;
if (this.txtConvert.Text != "")
{
double num1 = double.Parse(this.txtConvert.Text);
if (this.radCelsius.Checked)
{
chr = 67;
str1 = "farenheit";
str2 = "celsius";
}
else
{
chr = 70;
str1 = "celsius";
str2 = "farenheit";
}
double num2 = Math.Round(this.ConvertTemperature(num1, chr), 2);
this.lblResult.Text = string.Concat(new object[] { num1, " ", str1, " converts to ", num2, " ", str2 });
}
else
{
this.lblResult.Text = "Please enter a numeric temperature to convert.";
this.txtConvert.Focus();
}
}
public double ConvertTemperature(double inTemp, char toScale)
{
double num;
if (toScale == 70)
{
num = inTemp * 1.80 + 32.00;
}
else
{
if (toScale == 67)
{
num = (inTemp - 32.00) / 1.80;
}
else
{
num = inTemp;
}
}
return num;
}
private void btnClear_Click(object sender, EventArgs e)
{
this.txtConvert.Text = "";
this.lblResult.Text = "";
this.txtConvert.Focus();
this.radCelsius.Checked = true;
}
private void btnExit_Click(object sender, EventArgs e)
{
base.Close();
}
}
}
答案 0 :(得分:1)
问题是67和70不是字符 - 它们是整数。
最简单的方法是将变量“chr”设为整数。那么你应该改名也许 - 也许更改为“toScale” - 与参数名称相同。
或者您可以将变量“chr”保留为char,并使用值“C”代替67而使用“F”代替70.此方法也使得更容易理解程序。
答案 1 :(得分:0)
问题是这些问题:
char chr;
chr = 67;
chr = 70;
chr是char类型,因此您需要将此数字转换为char:
chr = (char)67;