基于Java的简单银行管理系统(MVC设计模式)
功能展示
本系统基于命令台窗口,暂未与图形页面结合。话不多说,先上效果图:

当系统中暂无用户时会提示暂无用户,提醒注册;

输入错误会提示,注册成功后会随机生成卡号,此卡号是由系统随机生成的,要牢记。注册成功后进入功能页面;

查看余额:

存钱:

取钱:

记录用户交易明细:

修改资料,若用户什么不填则不修改,两次输入密码必须一致;暂不演示。

注销账户必须验证密码;

另外还有管理员部分,暂不演示,文末放源码,感兴趣的可以自行了解。其功能如下;

项目描述
本系统涉及的知识点主要包括,面向对象,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
基于Java的简单银行管理系统(MVC设计模式)的更多相关文章
- 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销
第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...
- 课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统
课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架: ...
- 基于Java实现简单亚马逊爬虫
前言:最近博主买了台Kindle,感觉亚马逊上的图书资源质量挺好,还时不时地会有价格低但质量高的书出售,但限于亚马逊并没有很好的优惠提醒功能,自己天天盯着又很累.于是,我自己写了一个基于Java的亚马 ...
- 基于java的简单Socket编程
1TCP协议与UDP协议 1.1 TCP TCP是(Tranfer Control Protocol)的简称,是一种面向连接的保证可靠传输的协议.通过TCP协议传输 ...
- java一个简单的管理系统
用java实现的简单管理系统 运行出来的状态 实现了新增.删除.借出.归还.排行榜简单的功能! 下面是简单的代码 首先定义一个书籍类,自己打开哦! public class Book implemen ...
- 基于.NET6的简单三层管理系统
前言 笔者前段时间搬砖的时候,有了一个偷懒的想法:如果开发的时候,简单的CURD可以由代码生成器完成,相应的实体.服务都不需要再做额外的注册,这样开发人员可以省了很多事. 于是就开了这个项目,期望实现 ...
- 001. 使用IDEA新建一个JAVA最简单的Spring MVC JAVAWEB程序
1. 我们打开一个空的IDEA 2. 选择Java之后点击Next 3. 点击Next创建空白工程 4. 给工程取个名字,叫MYIDEA 5. 勾选之后,点击This Window按钮 6. 我们可以 ...
- 基于mybatis设计简单信息管理系统2
1.空指针异常 public class CanvasServlet extends HttpServlet { private CanvasService canvasService; privat ...
- 基于JAVA WEB的医药管理系统
学习上可以模仿,但是不可以抄袭! 附加百度链接:http://wenku.baidu.com/link?url=_r44vGCi8pcm6o44YCvkcHGoT_XhB8jURnweao2YVo1j ...
随机推荐
- JSP请求响应流程入门介绍
一个完整的jsp请求响应流程可以简单的使用下图表示: 过滤器:直观的了解,就是对请求做一个过滤作用,比如身份验证,验证不通过的不让他继续往下走 Servlet:请求处理中心,这个也是我们写业务逻辑的地 ...
- MATLAB/SIMULINK生成代码错误之change the default character encoding setting
SIMULINK点击生成C代码报错 错误提示: Error encountered while executing PostCodeGenCommand for model 'RTW_sc3': Cl ...
- web自动化,下拉滚动到底部/顶部和下拉滚动到指定的元素
在web自动化,经常会遇到页面显示内容太多的时候,页面就会出现滚动条,一般有两种方式进行下拉,一种是直接下拉到底部/顶部/中部,或者直接给定元素,直接下拉到指定元素的位置. 两种方式的共同点: 两种方 ...
- java同时替换多个字符串
参考资料: https://blog.csdn.net/qq_39390545/article/details/106020221 来自为知笔记(Wiz)
- Hive建表和内外部表的使用
原文链接: https://www.toutiao.com/i6766784274965201415 一.普通建表方式 create table stu_info( id int, name stri ...
- 安装Apache-storm-0.9.1-incubating图解教程
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6596214331988247054/ 安装步骤 (1) 安装Zookeeper集群,可以参考前一篇文章,本文已安装 ...
- Linux内核模块学习
注:本文是<Linux设备驱动开发详解:基于最新的Linux 4.0内核 by 宋宝华 >一书学习的笔记,大部分内容为书籍中的内容. 书籍可直接在微信读书中查看:Linux设备驱动开发详解 ...
- kafka学习笔记(四)kafka的日志模块
概述 日志段及其相关代码是 Kafka 服务器源码中最为重要的组件代码之一.你可能会非常关心,在 Kafka 中,消息是如何被保存和组织在一起的.毕竟,不管是学习任何消息引擎,弄明白消息建模方式都是首 ...
- Spring Boot Admin,贼好使!
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序.应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 ...
- Hello world.java
Hello world 1.随便新建一个文件夹,存放源代码 2.新建一个Java文件 文件后缀名为.java Hello.java [注意点]系统可能显示没有后缀名,我们需要手动打开 3.编写代码 p ...