功能展示
本系统基于命令台窗口,暂未与图形页面结合。话不多说,先上效果图:
当系统中暂无用户时会提示暂无用户,提醒注册;
输入错误会提示,注册成功后会随机生成卡号,此卡号是由系统随机生成的,要牢记。注册成功后进入功能页面;
查看余额:
存钱:
取钱:
记录用户交易明细:
修改资料,若用户什么不填则不修改,两次输入密码必须一致;暂不演示。
注销账户必须验证密码;
另外还有管理员部分,暂不演示,文末放源码,感兴趣的可以自行了解。其功能如下;
项目描述
本系统涉及的知识点主要包括,面向对象,I/O操作,异常处理,集合等操作。。。
本系统主要针对服务用户以及后台管理人员,各自可以实现各自操作:
项目结构
除去测试模块不谈(对一些功能的测试),本项目基本结构如下:
data
data
模块用于管理数据,两个.dat
文件分别存储用户以及管理员信息,DataPath
保存的是文件的路径,方便操作(绝对路径),FileInOut
主要用于控制文件的读入读出操作,内置两个函数:
service
此模块主要用于对用户数据存储,以及相关操作,接下来一一介绍:
Information
是UserInfo
以及AdminInfo
的父类,用于定义信息
Information
为抽象类,设置此类的目的是方便对数据操作,想要获取任何一种身份的信息,只需要调他们共有的父类就行了,然后再具体身份具体转换,另外InfoList
是直接对信息进行操作(包含了添加,删除,修改等操作)
而文件直接存储的是InfoList
,因此他们都实现了序列化
,结构如下:
utils
工具类,一个是自定义的异常类InfoException
,另一个是控制用户从键盘输入和输出的工具类MyUtils
,其中控制输入密码的部分,因为我为了方便测试,就没有设置为输入隐藏,感兴趣的可以自行设置。
view
视图层,直接与用户交互的模块,其中EnterMain
为程序主入口,通过这个类进入。
AdminLogin
和UserLogin
完成用户以及管理员的登录,以及功能界面的显示,UserMenu
和AdminMenu
是对具体功能的细化,在基础功能上加入了与用户交互的部分。
欠缺与总结
本系统在构思的时候,是想让代码尽量轻量化,避免重复性,因此采用了这种模式,让各部分都相互独立,也方便管理。但是我设计的各个类之间联系不大,就不可避免的还是存在了重复性代码,因此显得有些多余。
但是因为着急完成,抽的课余时间写的,想着锻炼一下,花了三天时间。
我的设计顺序是:先设计信息模块,再对文件操作定义好,再去封装操作信息的功能类,等到这些都完成后,就该最外层与用户直接交互的部分了;先创建两个工具类避免重复调用输入,最后对各个功能加工,加入提示信息。
总之,收获还是很大的,毕竟是自己独立完成的,也加深了我对这种设计模式的认识。
源码下载
点此下载,或可评论区留言说明。
注意因为管理员的账号也是随机生成,因此需要你记下来:
账号:0074700904
密码:admin123456