首先定义一个类:
class Ticket
{
private int distance;
public int Distance
{
get { return distance; }
}
//private decimal price;
public decimal Price
{
get
{
if (distance>=2000)
{
return 1.0m * distance * 0.6m;
}
else if (distance >= 1500)
{
return distance * 0.7m;
}
else if (distance >= 1000)
{
return distance * 0.8m;
}
else if (distance >= 500)
{
return distance * 0.9m;
}
else
{
return distance * 1.0m;
}
}
}
public Ticket(int distance)
{
if (distance < 0)
{
Exception error = new Exception("距离不能为负数!");
throw error;
}
else
{
this.distance = distance;
}
}
public void showPrice()
{
Console.WriteLine("距离为{0}的票价为{1}", distance, Price);
}
}
这是Main函数:
static void Main(string[] args)
{
while (true)
{
string input = Console.ReadLine();
if (input == "exit")
{
Console.WriteLine("程序结束");
break;
}
else
{
int inputnumber = Convert.ToInt32(input);
Ticket car = new Ticket(inputnumber);
car.showPrice();
Console.ReadKey();
}
}
}
问题一:当第一次输入exit程序正常结束运行,若非第一次输入则报错。
问题二:当第一次输入数字时正常,若再继续输入则第一位会丢失。比如输入500则成了0,输入57则成了7
这两个问题感觉是同一个问题,不知道怎么会这样?
|