【Java大数据期末】银行管理系统(MySQL数据库)

诚接C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业,
标价10-20每份,如有需要请加文章最下方QQ。

本文资源:https://download.csdn.net/download/weixin_47040861/88850902icon-default.png?t=N7T8https://download.csdn.net/download/weixin_47040861/88850902


1.题目要求

银行管理系统:

通过Java控制台开发一个银行管理系统,使用MySQL作为后台数据,实现银行管理员工功能和顾客功能。具体要求如下:

(1)管理员功能:登录、添加顾客、删除顾客、计算存储金额、富豪排行榜、退出。

(2)顾客功能:登录、存款、取款、转账、修改密码、退出。

2.实现效果

注意:使用前请保证您电脑中的MySQL数据库能够正常使用,且eclipse已经安装了JDBC

该项目分为三个Java文件,其中Main.java文件为项目入口,Administrators.java文件和Customer.java文件分别存储了管理员与顾客对应的功能函数

1.主函数

首先在Main.java文件中定义了一些基本信息,包括MySQL的用户名和密码,使用该项目文件前请先将项目中的用户名和密码修改为您自己的。

启动项目后,该项目首先会验证是否存在名称为“bank”的数据库,若不存在则创建,同时创建administrators和customer表用于存储管理员和用户数据,若存在则建立连接,需要注意的是,数据库和表的创建都是由项目自动完成的,请勿手动创建以避免冲突

        try {System.out.println("连接到数据库...");in.conn = DriverManager.getConnection(DB_URL, USER, PASS);// 检查是否存在名为 'bank' 的数据库createDatabase(in.conn, "bank");// 切换到 'Bank' 数据库in.conn.setCatalog("bank");// 检查 'Administrators' 表是否存在if (!tableExists(in.conn, "administrators")) {createAdministratorsTable(in.conn);}//清空管理员数据String deleteQuery = "DELETE FROM " + "administrators";try (Statement statement = in.conn.createStatement()) {statement.executeUpdate(deleteQuery);}insertAdminData(in.conn, "root", "123456");//添加一条管理员数据// 检查 'Customer' 表是否存在if (!tableExists(in.conn, "customer")) {createCustomerTable(in.conn);}} catch (SQLException se) {se.printStackTrace();} catch (Exception e) {e.printStackTrace();}

创建完成后打印操作界面,根据用户输入的操作编号调用对应的功能:

2.管理员功能

用户输入操作编号后输入对应的账号和密码即可进入对应的操作界面,这里先以管理员操作界面做演示:

1.添加顾客

依次输入顾客身份证号、账号、密码、余额,若输入格式正确则成功添加顾客账户

添加后的数据库表:

2.删除顾客

输入账号和身份证号删除对应顾客数据

删除后的数据库表:

3.计算存储金额

输入操作编号后输出当前顾客的总余额

4.富豪排行榜

输入操作编号后对所有用户的余额进行降序排序后输出

3.顾客功能

输入管理员添加的账户后进入操作界面:

1.存款

根据用户输入的存款金额增加对应的余额,同时打印顾客余额:

修改后的数据库:

2.取款

根据用户输入的存款金额减少对应的余额,同时打印顾客余额:

3.转账

根据顾客输入的对应账号和转账金额修改数据,从顾客账户中减少对应金额,同时给另一个账号增加对应金额:

修改后的数据库:

4.修改密码

用户首先输入原密码和新密码,当原密码与数据库中的密码匹配时则修改为新密码:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/260256.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter实现阶梯式线程增加的压测

安装相应jmeter 插件 1:安装jmeter 管理插件: 下载地址:https://jmeter-plugins.org/install/Install/,将下载下来的jar包放到jmeter文件夹下的lib/ext路径下,然后重启jmeter。 2:接着打开 选项-Plugins Ma…

《Java 简易速速上手小册》第8章:Java 性能优化(2024 最新版)

文章目录 8.1 性能评估工具 - 你的性能探测仪8.1.1 基础知识8.1.2 重点案例:使用 VisualVM 监控应用性能8.1.3 拓展案例 1:使用 JProfiler 分析内存泄漏8.1.4 拓展案例 2:使用 Gatling 进行 Web 应用压力测试 8.2 JVM 调优 - 魔法引擎的调校8…

图的遍历(广度优先遍历BFS,深度优先遍历DFS)

目录 图的遍历概念: 图的广度优先遍历(BFS): 代码实现如下: 测试如下: 注意: 图的深度优先遍历(DFS): 代码实现如下: 测试如下&#xff1…

SSL证书怎么申请最合适

SSL证书对于网络安全的作用毋庸置疑,作为数字证书的一种,皆是由权威数字证书机构验证网站身份后进行颁发,可以实现浏览器和网站服务器数据加密传输。而网站安装部署SSL证书后会在浏览器页面显示安全锁标志,而后数据传输协议则从ht…

Swift Combine 使用 print 操作符调试管道 从入门到精通二十四

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三Swift Combine 发布者publisher的生命周期 从入门到精通四Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五Swift Com…

【数据结构】每天五分钟,快速入门数据结构(一)——数组

目录 一.初始化语法 二.特点 三.数组中的元素默认值 四.时间复杂度 五.Java中的ArrayList类 可变长度数组 1 使用 2 注意事项 3 实现原理 4 ArrayList源码 5 ArrayList方法 一.初始化语法 // 数组动态初始化(先定义数组,指定数组长度&#xf…

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

DS:栈和队列的相互实现

创作不易,感谢友友们三连!! 一、前言 栈和队列的相互实现是用两个栈去实现队列或者是用两个队列去实现栈,这样其实是把问题复杂化的,实际中没有什么应用价值,但是通过他们的相互实现可以让我们更加深入地理…

PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout等 !!

文章目录 1、为什么使用Dropout? 2、Dropout的拓展1:R-Dropout 3、Dropout的拓展2:Multi-Sample Dropout 4、Dropout的拓展3:DropConnect 5、Dropout的拓展4:Standout 6、Dropout的拓展5:Gaussian Dropout …

Jest和Mocha对比:两者之间有哪些区别?

什么是单元测试? 所谓单元测试,是对软件中单个功能组件进行测试的一种软件测试方式,其目的是确保代码中的每一个基本单元都能正常运行。因此,开发人员在应用程序开发的整个过程(即代码编写过程)中都需要进行…

Avalonia学习(二十四)-系统界面

目前项目式练习,界面内容偏多,所以不给大家贴代码了,可以留言交流。此次为大家展示的是物联项目的例子,仅仅是学习,我把一些重点列举一下。 界面无边框 以前的样例主要是通过实现控件来完成的,前面已经有窗…

美团外卖商超药店商品销量

外卖药店商品月销量 外卖商超商品月销量

学习总结19

# 奶牛的耳语 ## 题目描述 在你的养牛场&#xff0c;所有的奶牛都养在一排呈直线的牛栏中。一共有 n 头奶牛&#xff0c;其中第 i 头牛在直线上所处的位置可以用一个整数坐标 pi(0< pi < 10^8) 来表示。在无聊的日子里&#xff0c;奶牛们常常在自己的牛栏里与其它奶牛交…

术业有专攻!三防加固平板助力工业起飞

在日常使用中的商业电脑比较追求时效性&#xff0c;以市场定位做标准&#xff0c;内部元件只需满足一般要求就行&#xff0c;使用寿命比较短。而三防平板电脑是主要运用在复杂、恶劣的环境下所以在需求方面较高,需要保证产品在恶劣条件下正常使用&#xff0c;满足行业领域的需求…

Jakarta Bean Validation

Validation 官网 https://beanvalidation.org/ 常见注解 Bean Validation中定义的注解&#xff1a; 注解详细信息Null被注释的元素必须为 nullNotNull被注释的元素必须不为 nullAssertTrue被注释的元素必须为 trueAssertFalse被注释的元素必须为 falseMin(value)被注释的元素…

【linux】体系结构和os管理

冯诺依曼体系结构 输入单元&#xff1a;包括键盘, 鼠标&#xff0c;扫描仪, 写板等 中央处理器(CPU)&#xff1a;含有运算器和控制器等 输出单元&#xff1a;显示器&#xff0c;打印机等 这里的存储器指的是内存 三者是相互连接的&#xff0c;设备之间会进行数据的来回拷贝&am…

【springboot+vue项目(十五)】基于Oauth2的SSO单点登录(二)vue-element-admin框架改造整合Oauth2.0

Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统框架&#xff0c;提供了丰富的组件和功能&#xff0c;可以帮助开发者快速搭建现代化的后台管理系统。 一、基本知识 &#xff08;一&#xff09;Vue-element-admin 的主要文件和目录 vue-element-admin/ |…

人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_001---人工智能工作笔记0096

使用centos安装,注意安装之前,保证系统可以联网,然后执行yum update 先去更新一下系统,可以省掉很多麻烦 20240219_150031 这里我们使用centos系统吧,使用习惯了. ChatGlm首先需要一台个人计算机,或者服务器, 要的算力,训练最多,微调次之,推理需要算力最少 其实很多都支持C…

stable diffusion webui学习总结(2):技巧汇总

一、脸部修复&#xff1a;解决在低分辨率下&#xff0c;脸部生成异常的问题 勾选ADetailer&#xff0c;会在生成图片后&#xff0c;用更高的分辨率&#xff0c;对于脸部重新生成一遍 二、高清放大&#xff1a;低分辨率照片提升到高分辨率&#xff0c;并丰富内容细节 1、先通过…

【LeetCode】树的BFS(层序遍历)精选6题

目录 1. N 叉树的层序遍历&#xff08;中等&#xff09; 2. 二叉树的锯齿形层序遍历&#xff08;中等&#xff09; 3. 二叉树的最大宽度&#xff08;中等&#xff09; 4. 在每个树行中找最大值&#xff08;中等&#xff09; 5. 找树左下角的值&#xff08;中等&#xff09…