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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

amazon41762

初级黑马

  • 黑马币:0

  • 帖子:9

  • 精华:0

本帖最后由 刘胜寒 于 2013-5-18 03:36 编辑

  1. //打折卡小软件
  2. //通过曾经的消费数额来确定折扣 1000-2000元 9折  2000-5000元8折  5000元以上7折
  3. //思路:先定义打折卡的 用户的名称、消费金额、地址和所享受到折扣
  4. class Dazheka
  5. {
  6.         private String name;
  7.         private int cost=10;
  8.         private String address;
  9.         private double zhekou=1;
  10.         public void setCost(int a)
  11.     {
  12.                 if (a>0)
  13.                 {
  14.                         cost +=a;
  15.                 }
  16.                 else
  17.                         cost -=a;
  18.         }
  19.         public int getCost ()

  20.         {
  21.                 return  cost;
  22.         }
  23.         public void setName(String n)
  24.         {
  25.                 name=n;
  26.         }
  27.         public String getName()
  28.         {
  29.                 return  name;
  30.         }
  31.         public void setAddress(String b)
  32.         {
  33.                 address=b;
  34.         }
  35.         public String getAddress()
  36.         {
  37.                 return address;
  38.         }
  39.         public void setZhekou()
  40.         {
  41.                 if (cost>=1000)
  42.                 {
  43.                         zhekou-=0.1;
  44.                 }
  45.                 else if (cost>=2000)//这一块 不管cost怎么变  折扣 都不变是怎么回事啊
  46.                 {
  47.                         zhekou-=0.2;
  48.                 }
  49.                 else if (cost>=5000)
  50.                 {
  51.                         zhekou-=0.3;
  52.                 }
  53.                         
  54.         }
  55.         public double getZhekou()
  56.         {
  57.                 return  zhekou;
  58.         }
  59.         void dayin()
  60.         {
  61.         System.out.println("name:"+name);
  62.         System.out.println("address:"+address);
  63.         System.out.println("cost:"+cost);
  64.         System.out.println("zhekou:"+zhekou);

  65.         }

  66. }
  67. class Zhekou1
  68. {
  69.         public static void main (String[] args)
  70.         {
  71.         Dazheka z=new Dazheka();
  72.         z.setName("zhanghao");
  73.         z.setCost(3000);
  74.         z.setAddress("xiangyang");
  75.         z.dayin();
  76.         }
  77. }
复制代码
无论我的cost的值怎么变 我的zhekou的值就是不变。。
这是怎么回事啊???

点评

楼主我趁这黑夜给你结贴,希望楼主海涵。楼主问题解决了吧。 否则的话,接着让他未解决吧。。  发表于 2013-5-18 03:36

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

4 个回复

倒序浏览
没人在吗?
回复 使用道具 举报
好好看看你的这个方法,逻辑有问题,而且这个方法没有被调用
public void setZhekou() {
                if (cost >= 1000) {
                        zhekou -= 0.1;
                } else if (cost >= 2000)// 这一块 不管cost怎么变 折扣 都不变是怎么回事啊
                {
                        zhekou -= 0.2;
                } else if (cost >= 5000) {
                        zhekou -= 0.3;
                }

        }

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
  1. class Zhekou1
  2. {
  3.         public static void main (String[] args)
  4.         {
  5.         Dazheka z=new Dazheka();
  6.         z.setName("zhanghao");
  7.         z.setCost(3000);
  8.                 //z.setZhekou();  没调用判断折扣方法,所以打折不变,加上这句就行
  9.         z.setAddress("xiangyang");
  10.         z.dayin();
  11.         }
  12. }
复制代码
  1. public void setZhekou()    //折扣方法,改成这样,能实现你要的功能
  2.         {
  3.                 if (cost >= 1000 && cost < 2000)
  4.                 {
  5.                         zhekou-=0.1;
  6.                 }
  7.                 else if (cost >= 2000 && cost < 5000)//这一块 不管cost怎么变  折扣 都不变是怎么回事啊
  8.                 {
  9.                         zhekou-=0.2;
  10.                 }
  11.                 else if (cost >= 5000)
  12.                 {
  13.                         zhekou-=0.3;
  14.                 }
  15.                         
  16.         }
复制代码

点评

谢谢了 总算解决了 原来要调用一下 我以为不用返回打印就没管  发表于 2013-5-14 18:48
你的第二十五分。。。是我给的。好开心。好开心  发表于 2013-5-14 12:16

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
你的setZheKou方法有问题。
当cost不小于1000时会执行if中的语句,当cost小于1000时才会执行下面的语句。
但是你在else中判断的是cost不小于2000,不小于5000的情况,这根本不可能执行到。
所以才会现出问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马