嗖嗖移动大厅需求分析
一.E-R图文档
二. 开发步骤
1) 主次菜单
用户登录 用户注册 使用嗖嗖 花费充值 资费说明 退出系统
2) 二级菜单
本月账单查询 套餐余量查询 打印消费详单 套餐变更 办理退网
三.项目分析
1.创建实体类接口
本项目所涉及的实体类主要包括嗖嗖移动卡、话痨套餐、网虫套餐、超人套餐、消费记录、使用场景。
嗖嗖移动卡(MoblieCard) :卡号(cardNumber) 、用户名(userName)、 密码 (passWord)、 所属套餐 (serPack)、
当月消费金额(consumAmount)、 账户余额 (money)、当月实际通话时长 (realTakTlme)、 当月实际发送短信条数
(realSMSCount)、当月实际 上网流量(realFlow) .
话痨套餐(TalkPackage) :通话时长(talkTlme) 、短信条数(smsCount) 、套餐资费(price) .
网虫套餐(NetPackage) :上网流量(flow)、 套餐月资费 (price)
超人套餐(SuperPackage) :通话时长(talkTime) 、短信条数(smsCount) 、上网流量 (flow)、套餐资费 (price) 。
消费信息(ConsumInfo) :卡号(cardNumber)、 消费类型 (type) 、消费数据(consumData) 。
使用场景(Scene) :场景类型(type) 、场景消费数据(data)、场景描述 (description)。
打电话功能(CallService) :打电话方法(void Call())
发短信功能(Sendservice) :发短信方法(void Send())
上网功能(NetService) :上网方法 (void NetPlay()
- 创建工具类
已注册嗖嗖用户列表: Map<String,MoblieCard> card;
所有卡号的消费记录: Map<String,List<ConsumInfo>>consumInfo
注册新卡: void addCard(MoblieCard card)
话费充值: void changeMoney(String number,double money}
使用嗖嗖: void userSoso[String number)
资费说明: void showDescription()
本月账单查询: void showAmountDetial(tring number)
套套余量查询: void showRemainDetail(Sting number)
打印消费详单: void printAmountDetail(String number)
套餐变更: void changePack(Sting numberString packNum)
办理退网: void delCard{String number)
根据卡号和密码验证该卡是否注册: void isExist (String number,String passWord)
根据卡号验证该卡是否注册: void isExistCard(Sring number)
生成随机卡号: String createNumber()
生成指定个数的卡号列表: String[ getNewNumbers(int count)
添加指定卡号的消费记录: void addConsumInfo(string number,ConsumInfo info)
根据用户选择的套餐序号返回套餐对象: ServicePackage create(int packid)
四.项目需求
可以根据项目的主流实现业务类,即实现功能菜单。这样根据主菜单继续实现具体功能,这样清理整个项目的脉络结构,也有利于在后续开发之中随意进行调试。
功能分析
嗖嗖移动项目的各个功能都是
挂在功能菜单上的,其中主菜
单包含6个功能。当用户输入
1~5的功能编号后,验证卡号,
如果该卡的卡号已经注册,则
执行相应功能后返回主菜单:
否则,退出系统。
思路分析
1.实现主菜单
实现业务类SosoMgr的
mianMenu()
方法,使用o-while循环内嵌套
switch分
支结构完成。当选择用户
登录后,进入二级菜单,
2.实现二级菜单
实现业务类SosoMgreSCardMenu0
方法,二级菜单的实现方式与主
菜单类似。
3实现用户登录身份验证
实现工具关cardU1中的
iEitCard(Sring number String
passWord)判断该卡是否存在,
三.进度安排
根据主次菜单的分类,先实现主菜单的6个选择项,再根据不同的选择实现二级菜单的内容。
四.项目总结
本次的项目作为第一单元 Java部分的总结训练,内容要盖全面,设计广泛,与之前的项目相比,难度较大。
由于功能较多,刚开始实现起来还是比较困难的。在刚开始做的时候,首先得要理清应该具有哪写类,应该具
有哪些属性和方法。在我做的时候没有一开始就理清这些东西, 以至于我做到一半又不得不提取一些公共的属性和方法去重建一个公共类, 通过调用公共方法实现某些运算。
在这次的项目中,最让我头痛的在实现打印消费详单的功能时候,输入输出流的知识点掌握不够好,做起来感到困难,也不得不一次次的翻书或者查资料。这次的项目案例算是一个不小的项目练习,
这让我深刻感受到Java编程中标识符见名知义的重要性,在做项目的过程中定义了太多的属性名、方法名和临时变量名,很多都表示相同的意思但是用在不同的地方又必须加以区分,
所以在命名时注意规范且易懂相当重要,否则的话在些项目的过程中很容易因名称混乱。程序调用出错。耽误了太多的时间。第单元的Javo部分到此就算是画上句号了,
但是我仍然在本次的项目练习中看到很多不足的地方,我会利用好课余的时间去回顾自2在第单元中薄弱的地方, 也会继续努力保持好状态去接收接下来的新知识。加油吧!