不是现在很多软件都有单位换算吗?就拿长度来说吧,比如每一个框填上你要换算的数字,然后选单位(米,千米,英里....等),然后再选择需要转成什么单位,所以还需要选择一次(还是 米,千米,英里....等),那好 比如你想算一下120米等于多少英寸,那你在每一个框填120,然后选择“米”,然后再选择需要转换成的“英寸” ,然后第二个框里就会显示出转换后的结果,实现起来简单还是复杂?
我的方案有两种
一、switch case实现 ,嵌套 通过第一个单位选择进入第一个switch,然后第二个单位选择进入第二个switch
二、用if else 类似上面的 if(第一个选择 && 第二个选择)
伪代码:
一、if else
XXXXXXXXXXXXXXXXXXd("千米"); //初始化输入单位标签
XXXXXXXXXXXXXXXXXXd("米");
XXXXXXXXXXXXXXXXXXd("分米");
XXXXXXXXXXXXXXXXXXd("千米"); //初始化输出单位标签
XXXXXXXXXXXXXXXXXXd("米");
XXXXXXXXXXXXXXXXXXd("分米");
string I = comboBox1.Text; //输入单位选择
string O = comboBox2.Text; //输出单位选择
string Ix_ = textBox1.Text; //输入数值
string Ox_ = textBox2.Text; //输出数值
int Ix = 0;
if (Ix_ != string.Empty)
Ix = XXXXXXXXrse(Ix_);
if (I == "千米" && O == "米")
Ox_ = (Ix * 1000).ToString();
else if (I == "千米" && O == "分米")
Ox_ = (Ix * 10000).ToString();
............
textBox2.Text = Ox_;
................
}
二、用switch case实现
XXXXXXXXXXXXXXXXXXd("千米"); //初始化输入单位标签
XXXXXXXXXXXXXXXXXXd("米");
XXXXXXXXXXXXXXXXXXd("分米");
XXXXXXXXXXXXXXXXXXd("千米"); //初始化输出单位标签
XXXXXXXXXXXXXXXXXXd("米");
XXXXXXXXXXXXXXXXXXd("分米");
string I = comboBox1.Text; //输入单位选择
string O = comboBox2.Text; //输出单位选择
string Ix_ = textBox1.Text; //输入数值
string Ox_ = textBox2.Text; //输出数值
int Ix = 0;
if (Ix_ != string.Empty)
Ix = XXXXXXXXrse(Ix_);
switch(I)
{
case "千米":
switch(O)
{
case "米": Ox_ = (Ix * 1000).ToString(); break;
case "分米": Ox_ = (Ix * 10000).ToString(); break;
}
break;
case "米":
switch (O)
{
case "千米": Ox_ = (Ix * 0.001).ToString(); break;
case "分米": Ox_ = (Ix * 10).ToString(); break;
}
break;
//...............
}
textBox2.Text = Ox_;
不晓得还有没有更好的方法?
200字以内,仅用于支线交流,主线讨论请采用回复功能。