本帖最后由 陈山 于 2012-11-6 01:54 编辑
前几天班里面的同学上台演讲,演示了一个程序(控制台程序),可以根据你回答的问题,测算出你喜欢的颜色(有点扯吧,呵呵).
大概的流程是这样的:1.演讲者运行程序,控制台出现:
-----本程序可以根据你回答的问题计算出你喜欢的颜色----
你喜欢什么类型的电影?
a.动作 b.爱情 c.剧情
2.演讲者要求一个同学(回答者)来测试,回答者说出选项,由演讲者操作,大概回答了好几个类似的问题。
3.问题回答完毕后,控制台出现"程序正在测算你喜欢的颜色",这时候演讲者要求回答者说出喜欢什么颜色。
4.回答者说出喜欢的颜色(假如是蓝色)后,控制台接着直接出现相对应的颜色("蓝色")。
我觉得这个程序里面肯定是有猫腻的,关键是在最后回答者告诉演讲者喜欢自己喜欢的颜色(蓝色)后,(演讲者操作程序)控制台直接出现了相应的颜色(蓝色)。
对此我在演讲后想编写同样功能的程序如下。
public class Guess {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
A a=new A();
a.produceQ();
String s=sc.nextLine();
a.produce();
int i=sc.nextInt();
a.color(i);
}
}
class A{
String s1="你喜欢的电影类型?"+'\n'+"A:爱情"+"B:动作"+"C:剧情";
public void produceQ(){
System.out.println(s1);
}
public void produce(){
System.out.println("系统正在生成你喜欢的颜色....");
}
public void color(int i){
switch(i){
case 1:System.out.println("你喜欢红色");break;
case 2:System.out.println("你喜欢橙色");break;
case 3:System.out.println("你喜欢黄色");break;
case 4:System.out.println("你喜欢绿色");break;
case 5:System.out.println("你喜欢蓝色");break;
case 6:System.out.println("你喜欢黑色");break;
case 7:System.out.println("你喜欢的紫色");break;
}
}
}
我编写的程序瑕疵在于,回答者告诉我颜色后,我需要在控制台输入相应的数字才能得到他喜欢的颜色(这样就露馅了,呵呵)。谁能帮忙改进下,或者有更好的办法也可跟帖。
|