A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 申延超 中级黑马   /  2012-9-11 12:30  /  2066 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 申延超 于 2012-9-13 10:15 编辑

写一个Ticket类,有一个距离属性(只读,在构造方法中赋值),不能为负数,有一个价格属性,
价格属性只读,根据距离计算价格(1元/1公里)
0-100公里   票价不打折
100-200公里 总额打9.5折
200-300公里 打9折
300公里以上 打8折
写一个方法,可以显示这张票的信息

求标准答案

3 个回复

倒序浏览
本帖最后由 许庭洲 于 2012-9-11 15:02 编辑

namespace 计算价格
{
    public class Ticket
   {
        private float  distance;
        private float  price;
        public string Distance
       {
            get
            {
                return  distance;
            }
        }

        public string Price
        {
            get
           {
                return price;
           }
        }
        // 得价格
       public float getPrice()
       {
             if(distance>0 && distance< 100)
                   price = 1*distance;
             if(distance>100 && distance< 200)
                  price = 1*distance*9.5;
             if(distance>200 && distance< 300)
                  price = 1*distance*9.0;
             if(distance>300)
                 price = 1*distance*8.0;
              return price;
        }
        // 构造函数,只用一个属性:姓名
         public Ticket(float  sDistance)
        {
                return distance;
         }
    }

    public class MainClass
   {
         public static void Main()
        {
             Ticket t1= new Ticket(68.0);
             t1.getPrice();
             // 打印出票价
            Console.WriteLine("这张票的价格信息是:{0}", t1.getPrice());
          }
     }
}
回复 使用道具 举报
namespace 票价问题
{
    public class Ticket
        {
        public Ticket(int distance) //构造一个Ticket的方法,方法里有一个int类型的变量distance
        {
            
            this.distance = distance;

            if (distance >= 300)
            {
                price = distance * 0.8m;
            }
            else if (distance >= 200 && distance < 300)
            {
                price = distance * 0.9m;
            }
            else if (distance >= 100 && distance < 200)
            {
                price = distance * 0.95m;
            }
            else if (distance >= 0 && distance < 100)
            {
                price = distance;
            }
            else
            {// 当输入的数据小于零的时候,出现了异常
                throw new Exception("出现异常的代码了,这里的距离不允许是负数...");
            }
        }
        int distance;
        public int Distance
        {
            get { return this.distance; }
        }
        decimal price;
        public decimal Price
        {
            get { return this.price; }
        }
        public void ShowTicket()
        {
            Console.WriteLine("这张票的距离为{0},折后价格为{1}", distance, this.price);
        }
    }
}
回复 使用道具 举报
不知道是不是你要的。。。
static void Main(string[] args)
        {
            double distance;
            while (true)
            {
                distance = double.Parse(Console.ReadLine());
                if (distance < 0)
                {
                    Console.WriteLine("距离不得为负数!");
                    continue;
                }
                Ticket obj = new Ticket(distance);
                obj.PrintInfo();
            }
        }
-----------------这是Ticket类--------------
class Ticket
    {
        public Ticket(double distance)
        {
            this.distance = distance;
            if (distance < 100)
                price = distance;
            else if (distance < 200)
                price = distance * 0.95;
            else if (distance < 300)
                price = distance * 0.9;
            else price = distance * 0.8;
        }

        private double distance;
        private double price;

        public double Distance
        {
            get{return distance;}
        }
        public double Price
        {
            get { return price; }
        }

        public void PrintInfo()
        {
            Console.WriteLine("距离:{0}  价格:{1}", this.distance,this.price);
        }
    }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马