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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xieshuhua 中级黑马   /  2012-5-19 16:00  /  1312 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谢述华 于 2012-5-19 16:08 编辑

大家都不喜欢大段代码,不过我保证只读注释部分就能全部看懂。
张老师的作法个人感觉太复杂了(Lamp中的opposite、valueOf、blackout...),都看不懂。自己做了一个实现部分功能的代码,感觉扩展下也能实现比较复杂的功能...
请问各位老师同学们,是不是工作的时候都不能用下面这种方法解决问题,只能用张老师那样比较标准的表示方法呀?
有没有比较统一的标准啊?是不是主函数只能是简单的调用函数。控制等部分在安全性和扩展性方面必须分开写呀?
求大家帮帮忙,指点下。万分不解....
  1. public class AbsDem{
  2. static int[]x0={0,0,0};                           //定义等待通过汽车
  3. static int[]x1={0,0,0};
  4. static int[]x2={0,0,0};
  5. static int[]x3={0,0,0};
  6. public static void main(String[] args1) {
  7. road west=new road(x0);                     //定义道路
  8. road east=new road(x1);
  9. road south=new road(x2);
  10. road north=new road(x3);
  11. for(int i=0;i<69;i++){                          //开始运行,加上while或者改变数字均可控制运行次数。
  12. west.car=x0;                                      //将道路新状态传送road中
  13. west.addCar();                                     //车辆的随即增加
  14. x0=west.redCar(i%4);                         //将road计算结果保持。四种状态%区分,可扩展
  15. east.car=x1;
  16. east.addCar();
  17. x1= east.redCar(i%4);
  18. south.car=x2;
  19. south.addCar();
  20. x2=south.redCar((i+2)%4);
  21. north.car=x3;
  22. north.addCar();
  23. x3=north.redCar((i+2)%4);
  24. for(int j:x0)                                                     //输出语句
  25. System.out.print(j+" ");
  26. System.out.println("");
  27. for(int j:x1)
  28. System.out.print(j+" ");
  29. System.out.println("");
  30. for(int j:x2)
  31. System.out.print(j+" ");
  32. System.out.println("");
  33. for(int j:x3)
  34. System.out.print(j+" ");
  35. System.out.println("");
  36. System.out.println("");
  37. }
  38. }
  39. }
  40. class road{                                                      //定义道路
  41. int[]car;
  42. road (int[] car){                                               //初始化构造函数
  43. this.car=car;}
  44. void addCar(){                                                //定义增加车辆方法
  45. for (int i = 0;i<3;i++)
  46. car[i]+=((int) Math.ceil(Math.random()*30)-1);
  47. }
  48. int[] redCar(int lamp){                                    //定义减少车辆方法
  49. if(car[2]>10) car[2]-=10;                                  //右行车辆不受灯状态控制
  50. else car[2]=0;
  51. switch(lamp){                                                 //直行车辆
  52. case 1:
  53. if(car[0]>10)
  54. car[0]-=10;
  55. else if(car[0]<=10)
  56. car[0]=0;
  57. break;
  58. case 2:{                                                     //左行车辆
  59. if(car[1]>10)
  60. car[1]-=10;
  61. else if(car[1]<=10)
  62. car[1]=0;
  63. break;
  64. }
  65. }
  66. return car;
  67. }
  68. }
复制代码

3 个回复

倒序浏览
我个人对此觉得应该是这样,按照面向对象的方法来分析问题,事先就得总体统筹规划好,
每个项目都拆分成适当的大小,分工合作,这样节省开发的时间,提高效率,而且还有个
很好的地方时利用调试、和测试。有很多种开发模型的,看需求来选择合适的就可以。

评分

参与人数 1黑马币 +2 收起 理由
xieshuhua + 2 有同感,不过纸上得来终觉浅啊、、、.

查看全部评分

回复 使用道具 举报
本帖最后由 谢述华 于 2012-5-19 21:43 编辑

你的意思是:针对小的项目,胡乱写可能也能做出来,不过大的项目涉及的内容多,要求细节比较多。
各个部分都要调试,分开来做,能更好的科学规划是吧。我心里也只是有个概念,不知道具体是什么样子。另外我写的是不是也有些可行啊?
回复 使用道具 举报
各位老师师兄们,这个问题涉及到将来的学习方向问题,Java这么多知识,看论坛上提问的各种方向,都学完的话,真的要费很多很多时间。
这么多知识,没有方向知道的话,很容易在Java的海洋里迷失方向。所以有经验的给点指点啊,真的谢谢啦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马