经典面试项目—移动用户资费统计系统、银行业务调度系统、交通灯管理系统

移动用户资费统计系统

【项目需求】
模拟实现简易的移动用户资费统计系统逻辑,具体需求如下:
移动运营商A设置两种类型的用户:普通用户及VIP用户,现该运营商已有5个VIP用户和15个普通用户,共计20个用户。

普通用户资费标准如下(不考虑漫游和长途):
【基准资费】
无月租费用。
通话费:0.6元 / 分钟(仅拨打收费,接听免费)
短信费:0.1元 / 条
数据费:5元/ M
【优惠套餐】
话费套餐 :月功能费 20元,最多可拨打60分钟电话,超出时间按照0.5元/ 分钟计费。
短信套餐 :月功能费10元,最多可发送200条短信,超出条数按照0.1元/ 条计费。
数据套餐 :月功能费20元,最多可获50M的流量,超出流量按照3元 / M计费。
注:用户可以选择多种套餐,各功能(通话、短信、数据)计费时,如已选择对应套餐,则按套餐标准计费;如未选择对应套餐,则按对应的基准资费计费。

VIP用户资费标准如下(不考虑漫游和长途):
【基准资费】
月租费用:按天收取,2元 / 天
通话费:0.4元 / 分钟(仅拨打收费,接听免费)
短信费:0.1元 / 条
数据费:3元/ M
【优惠套餐】
套餐1 :月基本费用 100元(无月租费用),提供如下服务:
① 最多可拨打750分钟电话,超出部分按照0.3元 / 分钟计费。
② 最多可发送200条短信,超出条数按照0.1元 / 条计费。
③ 最多可获得100M数据流量,超出流量按照1元 / M计费。
套餐2 :月基本费用 200元(无月租费用),提供如下服务:
① 最多可拨打2000分钟电话,超出部分按照0.2元 / 分钟计费。
② 最多可发送500条短信,超出条数按照0.1元 / 条计费。
③ 最多可获得300M数据流量,超出流量按照0.5元 / M计费。
注:用户最多只能选择一种套餐,如未选择任何套餐,则按照基准资费计费。各类型用户只能选择提供给本类型用户的套餐。

【新用户入网】
① 对于新入网的普通用户,入网当月赠送如下服务:免费拨打60分钟电话,免费发送200条短信,免费获得50M流量。超出赠送的部分按照普通用户基准资费进行计费。
② 对于新入网的VIP用户,入网当月赠送如下服务:免费拨打200分钟电话,免费发送200条短信,免费获得100M数据流量。超出赠送的部分按照VIP用户基准资费进行计费(注意:需按入网天数计算月租费用)。

每月为用户计算一次账单,用户订制的套餐信息和账单信息采用文件方式进行存储(提示:可使用java中的Properties API进行文件操作)。

用户可自由订制或退订所属用户类型的套餐,并从下月起生效。

【异步随机生成客户操作如下】:
① 拨打电话,每次拨打时长为1至10分钟不等(随机决定,以分钟为单位)。
② 发送短信,每次发送条数为1至10条不等(随机决定)。
③ 上网获取数据,每次获取数据流量可为50K,100K,200K, 500K,1M(随机决定)。
④ 订制或退订相应套餐。
⑤ 新用户入网(随机决定用户类型)。

注:随机生成客户操作时间间隔自定,可设置。不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。

银行业务调度系统

当我们去银行取钱时,首先是去取票机上取一张小票,然后在等待区等待呼叫机叫号,如果叫的是自己手中小票上的号,说明轮到自己办理业务了。可当自己看了张老师讲的银行业务调度系统的视频后,让我更清楚的了解银行的业务流程。

下面结合张老师提供的案例分析银行业务调度系统:

系统需求:

(1) 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。

(2) 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。

(3)异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户 :普通客户 :快速客户 = 1 :6 :3。

(4) 客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。

(5) 各类型客户在其对应窗口按顺序依次办理业务。

(6) 当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。

(7)随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。

(8)不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。

交通灯管理系统

模拟实现十字路口的交通灯管理系统逻辑。详细需求例如以下:

  1. 异步随机生成依照各个路线行驶的车辆。

    比如:
    由南向而来去往北向的车辆 ---- 直行车辆
    由西向而来去往南向的车辆 ---- 右转车辆
    由东向而来去往南向的车辆 ---- 左转车辆

  2. 信号灯忽略黄灯,仅仅考虑红灯和绿灯。

  3. 应考虑左转车辆控制信号灯,右转车辆不受信号灯控制。

  4. 详细信号灯控制逻辑与现实生活中普通交通灯控制逻辑同样。不考虑特殊情况下的控制逻辑。

    注:南北向车辆与东西向车辆交替放行。同方向等待车辆应先放行直行车辆而后放行左转车辆。

  5. 每辆车通过路口时间为1秒(提示:可通过线程Sleep的方式模拟)。

  6. 随机生成车辆时间间隔以及红绿灯交换时间间隔自定,能够设置。

  7. 不要求实现GUI。仅仅考虑系统逻辑实现,可通过Log方式展现程序执行结果。

参考资料

传智播客-张孝祥

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值