黑马程序员技术交流社区
标题:
关于交通灯案例
[打印本页]
作者:
xieshuhua
时间:
2012-5-19 16:00
标题:
关于交通灯案例
本帖最后由 谢述华 于 2012-5-19 16:08 编辑
大家都不喜欢大段代码,不过我保证只读注释部分就能全部看懂。
张老师的作法个人感觉太复杂了(Lamp中的opposite、valueOf、blackout...),都看不懂。自己做了一个实现部分功能的代码,感觉扩展下也能实现比较复杂的功能...
请问各位老师同学们,是不是工作的时候都不能用下面这种方法解决问题,只能用张老师那样比较标准的表示方法呀?
有没有比较统一的标准啊?是不是主函数只能是简单的调用函数。控制等部分在安全性和扩展性方面必须分开写呀?
求大家帮帮忙,指点下。万分不解....
public class AbsDem{
static int[]x0={0,0,0}; //定义等待通过汽车
static int[]x1={0,0,0};
static int[]x2={0,0,0};
static int[]x3={0,0,0};
public static void main(String[] args1) {
road west=new road(x0); //定义道路
road east=new road(x1);
road south=new road(x2);
road north=new road(x3);
for(int i=0;i<69;i++){ //开始运行,加上while或者改变数字均可控制运行次数。
west.car=x0; //将道路新状态传送road中
west.addCar(); //车辆的随即增加
x0=west.redCar(i%4); //将road计算结果保持。四种状态%区分,可扩展
east.car=x1;
east.addCar();
x1= east.redCar(i%4);
south.car=x2;
south.addCar();
x2=south.redCar((i+2)%4);
north.car=x3;
north.addCar();
x3=north.redCar((i+2)%4);
for(int j:x0) //输出语句
System.out.print(j+" ");
System.out.println("");
for(int j:x1)
System.out.print(j+" ");
System.out.println("");
for(int j:x2)
System.out.print(j+" ");
System.out.println("");
for(int j:x3)
System.out.print(j+" ");
System.out.println("");
System.out.println("");
}
}
}
class road{ //定义道路
int[]car;
road (int[] car){ //初始化构造函数
this.car=car;}
void addCar(){ //定义增加车辆方法
for (int i = 0;i<3;i++)
car[i]+=((int) Math.ceil(Math.random()*30)-1);
}
int[] redCar(int lamp){ //定义减少车辆方法
if(car[2]>10) car[2]-=10; //右行车辆不受灯状态控制
else car[2]=0;
switch(lamp){ //直行车辆
case 1:
if(car[0]>10)
car[0]-=10;
else if(car[0]<=10)
car[0]=0;
break;
case 2:{ //左行车辆
if(car[1]>10)
car[1]-=10;
else if(car[1]<=10)
car[1]=0;
break;
}
}
return car;
}
}
复制代码
作者:
李文富
时间:
2012-5-19 16:14
我个人对此觉得应该是这样,按照面向对象的方法来分析问题,事先就得总体统筹规划好,
每个项目都拆分成适当的大小,分工合作,这样节省开发的时间,提高效率,而且还有个
很好的地方时利用调试、和测试。有很多种开发模型的,看需求来选择合适的就可以。
作者:
xieshuhua
时间:
2012-5-19 17:15
本帖最后由 谢述华 于 2012-5-19 21:43 编辑
你的意思是:针对小的项目,胡乱写可能也能做出来,不过大的项目涉及的内容多,要求细节比较多。
各个部分都要调试,分开来做,能更好的科学规划是吧。我心里也只是有个概念,不知道具体是什么样子。另外我写的是不是也有些可行啊?
作者:
xieshuhua
时间:
2012-5-19 21:42
各位老师师兄们,这个问题涉及到将来的学习方向问题,Java这么多知识,看论坛上提问的各种方向,都学完的话,真的要费很多很多时间。
这么多知识,没有方向知道的话,很容易在Java的海洋里迷失方向。所以有经验的给点指点啊,真的谢谢啦。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2