功能展示

本系统基于命令台窗口,暂未与图形页面结合。话不多说,先上效果图:

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

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

查看余额:

存钱:

取钱:

记录用户交易明细:

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

注销账户必须验证密码;

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

项目描述

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

项目结构

除去测试模块不谈(对一些功能的测试),本项目基本结构如下:

data

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

service

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

utils

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

view

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

欠缺与总结

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

源码下载

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

基于Java的简单银行管理系统(MVC设计模式)的更多相关文章

  1. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  2. 课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统

    课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架: ...

  3. 基于Java实现简单亚马逊爬虫

    前言:最近博主买了台Kindle,感觉亚马逊上的图书资源质量挺好,还时不时地会有价格低但质量高的书出售,但限于亚马逊并没有很好的优惠提醒功能,自己天天盯着又很累.于是,我自己写了一个基于Java的亚马 ...

  4. 基于java的简单Socket编程

    1TCP协议与UDP协议     1.1 TCP               TCP是(Tranfer Control Protocol)的简称,是一种面向连接的保证可靠传输的协议.通过TCP协议传输 ...

  5. java一个简单的管理系统

    用java实现的简单管理系统 运行出来的状态 实现了新增.删除.借出.归还.排行榜简单的功能! 下面是简单的代码 首先定义一个书籍类,自己打开哦! public class Book implemen ...

  6. 基于.NET6的简单三层管理系统

    前言 笔者前段时间搬砖的时候,有了一个偷懒的想法:如果开发的时候,简单的CURD可以由代码生成器完成,相应的实体.服务都不需要再做额外的注册,这样开发人员可以省了很多事. 于是就开了这个项目,期望实现 ...

  7. 001. 使用IDEA新建一个JAVA最简单的Spring MVC JAVAWEB程序

    1. 我们打开一个空的IDEA 2. 选择Java之后点击Next 3. 点击Next创建空白工程 4. 给工程取个名字,叫MYIDEA 5. 勾选之后,点击This Window按钮 6. 我们可以 ...

  8. 基于mybatis设计简单信息管理系统2

    1.空指针异常 public class CanvasServlet extends HttpServlet { private CanvasService canvasService; privat ...

  9. 基于JAVA WEB的医药管理系统

    学习上可以模仿,但是不可以抄袭! 附加百度链接:http://wenku.baidu.com/link?url=_r44vGCi8pcm6o44YCvkcHGoT_XhB8jURnweao2YVo1j ...

随机推荐

  1. Identity Server 4到今年年底就停止支持了,试一下使用Orchard Core 作为认证服务

    Identity Server 4到今年年底就停止支持了,新的版本需要收费(好像目前是按企业规模,不过将来说不准).我们需要为这种情况做一些技术准备,至少需要为用户多准备一些可选方案.从目前成熟的开源 ...

  2. postgresql使用pg_dump工具进行数据库迁移

    一.使用管理员身份打开cmd,切换到postgresqlp安装目录下的bin目录 必须要以管理员身份打开cmd,否则报拒绝访问 二.把生成的文件上传到服务器上,同样cd 到postgresql的安装b ...

  3. SYCOJ570传纸条

    题目-传纸条 (shiyancang.cn) 算法(线性DP) O(n3)O(n3)首先考虑路径有交集该如何处理.可以发现交集中的格子一定在每条路径的相同步数处.因此可以让两个人同时从起点出发,每次同 ...

  4. 还在用visio?这款画图工具才是真的绝!

    最近有读者私信我,问我推文的配图是用什么工具画的,很好看,也想学习一下.今天就给大家介绍一下这款画图工具--Draw.io 概述 draw.io是一款免费的网页版画图工具(也有桌面版),支持流程图.U ...

  5. Flowable实战(七)用户和组

      在流程中,最重要的参与者是用户.流程定义了任务何时需要用户参与,什么用户可以参与.   组可以理解为我们常说的角色.   Flowable中内置了一套简单的对用户和组的支持,身份管理(IDM ID ...

  6. RHCSA 第四天

    1.使用whereis 查找 locate命令 使用which查找whereis命令 使用locate查找rm命令    2.find命令使用: 使用find命令在当前路径下查找所有的普通文件 使用f ...

  7. 《剑指offer》面试题25. 合并两个排序的链表

    问题描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2-> ...

  8. 【计算机理论】CSAPP ch2

    信息存储 十六进制表示法 (略) 字数据大小 大多数计算机使用8bit的块(字节)作为最小的可寻址的内存单元 字长指明了指针数据的标称大小(?) 64位系统和32位系统向后兼容 C语言中有些数据类型的 ...

  9. Chrome Performance 页面性能分析指南

    1.背景 性能优化是前端开发一个非常重要的组成部分,如何更好地进行网络传输,如何优化浏览器渲染过程,来定位项目中存在的问题.Chrome DevTools给我们提供了2种常用方式 Audits和Per ...

  10. new实例化和反射实例化有什么区别?

    在工厂设计模式中,使用反射实例化,子类可以随便增加,工厂类不需要做任何的修改 使用反射之后最大的好处就是解耦合