黑马程序员_面试题_交通灯与银行业务

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 

这一部分的笔记主要是对思路的整理,我觉得最好的理解是写代码,而代码呀什么的都帖出来就显得不太合适了,而且我自己也想用自己的方式完成一遍,
这里也就只是总结了一下在做这两个题的过程中出现的一些新知识和比较有用的小技巧.另外就是一个思路的问题.
交通灯管理系统:
小技巧:画图,如果关系比较复杂,画图是个不错的选择
面向对象的编程:谁拥有数据,谁就提供操作这些数据的方法.
新知识:Executors工具对象,这个工具是JDK1.5的新特性,用于创建和管理线程池,有必要专门看看API

现在是以交通灯管理系统的设计(张老师的思路)
分析:它所涉及到的对象有 灯,灯的控制系统,路线,

路线:经过分析,路线有12条,所以直接设计12条路线.第条路线上包括车的集合,随机生成车和定时检测灯并对车放行.
灯:它与路线相对应,一条路线上就有一个灯,所以也是有12个灯.
把它们定义成一个枚举类型,并且设计一个变绿的方法和一个得到下一个变绿的灯的方法
每个Lamp元素代表一个方向上的灯,总共有12个方向,所有总共有12个Lamp元素。
有如下一些方向上的灯,每两个形成一组,一组灯同时变绿或变红,所以,
程序代码只需要控制每组灯中的一个灯即可:
s2n,n2s
s2w,n2e
e2w,w2e
e2s,w2n
s2e,n2w
e2n,w2s
上面最后两行的灯是虚拟的,由于从南向东和从西向北、以及它们的对应方向不受红绿灯的控制,
所以,可以假想它们总是绿灯。

控制系统:相对比较简单,因为对灯的检测呀什么的都在路线上面设计好了,它只用调用路线上的方法就行.

主函数:生成12条路线.并产生控制系统.

补充:对张老师的思路还是理解了的,但是我觉得还是有必要自己实现一下,最近把交通灯管理系统的代码

实现了,所以也就顺便先贴出来分享一下。地址:

http://bbs.itheima.com/thread-38509-1-1.html

银行调度系统的以后补上!

银行业务调度系统:(张老师的思路)
分析:需要号码管理器,由于有三个类型的客户,所以需要三个号码管理器,而它们都是由一个机器管理的,所以需要
用一个管理器机器管理这三个号码管理器.另外需要6个业务窗口.一个客户生成器.总共需要的对象就有:
号码机器: 内部有三个号码管理器的引用,由于它只能有一个,所以必须设计成单例.
号码管理器:该类内部需要用到几个成员,
一个最后生成的号码,用于生成号码时控制号码
一个已经生成的号码的集合,以便让服务窗口查询.
同时提供两个方法,一个方法用于服务窗口取号用,一个用于客户生成号用.
服务窗口:有三种类型,VIP,普通,快速,它们分别服务于这三种客户类型,先把这三种客户类型封装
成一个枚举类,并把其封装在窗口内部,所以它内部应该有:
成员:一个代表客户类型的枚举类,同时它也代表着这个窗口的类型
成员:一个窗口ID
方法:一个开始服务的方法,在该方法内部对客户类型进行判断,并做出对应的处理,可以把处理
的方法封装成另一个方法.
常量类:专门用于存放一些这个工程中用到的常量.
主函数:产生那6个窗口,
根据号码机器生成客户号码.

以上就是张老师对于银行业务调度系统,和交通灯管理系统的思路,当然,光知道思路是不够的,我会找一个时间把
它们实现一次,在实现的时候再对照这个思路,可以更好的理解!就先这样吧,虽然简单了点

转载于:https://www.cnblogs.com/Occasionally-desert/archive/2013/02/15/2912875.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值