2012-02-27 104 views
0

活动类别:Java活动服务类和Java活动应用程序类

开发一个“建议”基于温度的活动的类。应该通过一个带有公共访问器和增变器方法的私有变量来维持温度。需要两个构造函数。默认的构造函数应该将温度设置为0.应该创建第二个构造函数来接受初始温度值。另一个名为建议的方法应该返回一个包含“建议”活动的字符串。当温度高于85时,该方法应该建议游泳。在70到84之间时,该方法应该建议网球。当温度在60到69之间时,建议徒步旅行。当温度低于60时,该方法应该建议棋盘游戏。

客户端应用程序:

创建一个Java客户端应用程序来测试你的类。客户端应该从用户那里获取温度,并使用该类来确定向用户报告的活动。

Activity类代码

/** 
* Java Chatbot Service class 
* @author blake 
* 2/26/2012 
*/ 

public class Activity 
{ 
    private int temperature; 

    public Activity(int newtemperature) 
     { 
     temperature = newtemperature; 
     } 

    public String getActivity() 
     { 
      String a = "board games"; 

      if (temperature > 85) 
      { 
       a = "Suggests Swimming"; 
       return a; 
      } 
      if (84 < temperature && temperature > 70) 
      { 
       a = "Suggests Playing Tennis"; 
       return a; 
      } 
      if (69 < temperature && temperature > 60) 
      { 
      a = "Suggests Hiking"; 
       return a; 
      } 
      if (temperature < 60) 
      { 
       a = "Suggests Playing Board Game"; 
       return a; 
      } 

    return a; 
    } 
} 

活动客户端代码

/** 
* Java Chatbot Service class 
* @author Blake 
* 2/26/2012 
*/ 

import java.util.Scanner; 

public class ActivityClient 
{ 
    public static void main(String[] args) 
    { 
     Scanner in = new Scanner(System.in); 

     System.out.print("Temperature of weather today: "); 
     int temperature = in.nextInt(); 

     Activity act = new Activity(temperature); 
     System.out.println(act.getActivity()); 
    } 
} 

好这里是我遇到的重大问题,这是与布尔表达式。

当我编译并运行程序时,它建议我不想要的活动。

回答这个工作今天

温度:90 建议游泳

今天气温:58 建议玩棋盘游戏

这两个工作

但每当我把

今日温度:77 sugge ST远足(当它应该是网球)

今天气温:66 建议棋盘游戏(当它应该是徒步旅行)

所以我想知道我在做什么毛病的徒步旅行和网球的方法。

回答

0

你的情况是不是真的好。看:

69 < temperature && temperature > 60 

意味着温度超过69,温度超过60。 我想你的意思是:

69>temperature && temperature > 60 
+0

是的这就是我的意思,因为我希望它小于70但大于60但它一直给我一些其他的东西。 – blake 2012-02-27 17:08:56

+0

您可以使用if(){} elseif()...'来提高效率。如果您已经知道只有一个人可以通过并且已经通过,它会避免程序对每个个案进行测试。 – 2012-02-27 17:21:08

0

这里是你的错误:

if (84 < temperature && temperature > 70) 

if (69 < temperature && temperature > 60) 

正确的语句将是

if (84 > temperature && temperature > 70) 

if (69 > temperature && temperature > 60) 
+0

非常感谢你,就像一个魅力现在:)这意味着我必须设置温度之一为假表达然后从现在开始。 – blake 2012-02-27 17:05:44