基于Java的简单银行管理系统(MVC设计模式)

该项目是一个基于命令行的银行系统,包括用户注册、登录、查看余额、存取款、交易记录和修改资料等功能。系统使用面向对象、I/O操作和异常处理等技术,数据存储在.dat文件中。用户界面简洁,通过键盘交互。虽然代码存在冗余,但整体设计思路清晰,有利于模块化管理。项目还包含未展示的管理员功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能展示

本系统基于命令台窗口,暂未与图形页面结合。话不多说,先上效果图:
在这里插入图片描述
当系统中暂无用户时会提示暂无用户,提醒注册;
在这里插入图片描述
输入错误会提示,注册成功后会随机生成卡号,此卡号是由系统随机生成的,要牢记。注册成功后进入功能页面;
在这里插入图片描述
查看余额:
在这里插入图片描述
存钱:
在这里插入图片描述
取钱:
在这里插入图片描述
记录用户交易明细:
在这里插入图片描述
修改资料,若用户什么不填则不修改,两次输入密码必须一致;暂不演示。
在这里插入图片描述
注销账户必须验证密码;
在这里插入图片描述
另外还有管理员部分,暂不演示,文末放源码,感兴趣的可以自行了解。其功能如下;
在这里插入图片描述

项目描述

本系统涉及的知识点主要包括,面向对象,I/O操作,异常处理,集合等操作。。。
本系统主要针对服务用户以及后台管理人员,各自可以实现各自操作:
在这里插入图片描述
在这里插入图片描述

项目结构

除去测试模块不谈(对一些功能的测试),本项目基本结构如下:
在这里插入图片描述

data

data模块用于管理数据,两个.dat文件分别存储用户以及管理员信息,DataPath保存的是文件的路径,方便操作(绝对路径),FileInOut主要用于控制文件的读入读出操作,内置两个函数:
在这里插入图片描述

service

此模块主要用于对用户数据存储,以及相关操作,接下来一一介绍:
InformationUserInfo以及AdminInfo的父类,用于定义信息
Information为抽象类,设置此类的目的是方便对数据操作,想要获取任何一种身份的信息,只需要调他们共有的父类就行了,然后再具体身份具体转换,另外InfoList是直接对信息进行操作(包含了添加,删除,修改等操作)
而文件直接存储的是InfoList,因此他们都实现了序列化,结构如下:
在这里插入图片描述

utils

工具类,一个是自定义的异常类InfoException,另一个是控制用户从键盘输入和输出的工具类MyUtils,其中控制输入密码的部分,因为我为了方便测试,就没有设置为输入隐藏,感兴趣的可以自行设置。
在这里插入图片描述

view

视图层,直接与用户交互的模块,其中EnterMain为程序主入口,通过这个类进入。
AdminLoginUserLogin完成用户以及管理员的登录,以及功能界面的显示,UserMenuAdminMenu是对具体功能的细化,在基础功能上加入了与用户交互的部分。
在这里插入图片描述

欠缺与总结

本系统在构思的时候,是想让代码尽量轻量化,避免重复性,因此采用了这种模式,让各部分都相互独立,也方便管理。但是我设计的各个类之间联系不大,就不可避免的还是存在了重复性代码,因此显得有些多余。
但是因为着急完成,抽的课余时间写的,想着锻炼一下,花了三天时间。
我的设计顺序是:先设计信息模块,再对文件操作定义好,再去封装操作信息的功能类,等到这些都完成后,就该最外层与用户直接交互的部分了;先创建两个工具类避免重复调用输入,最后对各个功能加工,加入提示信息。
总之,收获还是很大的,毕竟是自己独立完成的,也加深了我对这种设计模式的认识。

源码下载

点此下载,或可评论区留言说明。
注意因为管理员的账号也是随机生成,因此需要你记下来:
账号:0074700904
密码:admin123456

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值