Java实现简单的银行管理系统(最基本的功能/易上手)

您所在的位置:网站首页 12368自助查询系统最简单三个步骤 Java实现简单的银行管理系统(最基本的功能/易上手)

Java实现简单的银行管理系统(最基本的功能/易上手)

2024-06-18 02:00:01| 来源: 网络整理| 查看: 265

文章目录 一、简介二、详细设计三、代码四、测试结果五、总结 实现了一个最基本的银行管理系统(基于类与对象),无复杂功能,易于初学者上手操作。基本框架实现后,可继续丰富其功能,实现更强大的管理功能,或实现图形界面、输入输出流保存、连接数据库等等。

一、简介

问题描述 实现一个简单的银行储蓄系统,完成活期用户的存款和取款业务。

基本要求 1.实现描述银行的类,记录系统中现有哪些储户(提示:可用对象数组实现,但须注意判断数组越界的情况),该类中要求包含三个方法: (1)生成新储户的方法; (2)按照账户删除储户的方法; (3)按照账户查询储户的方法,要求显示查询结果。 2.定义储户类。其属性包含账号,存款人姓名、身份证号、地址、存款余额;其操作有存款、取款、显示储户信息。 3.编写测试类,测试上述所要求的各项功能。 设计简单的菜单界面,以供功能选择。

实现的功能 1.增添账户信息 2.存(取)款操作 3.删除账户信息(按卡号/姓名检索) 4.读取账户信息(按卡号/姓名检索)

二、详细设计

本程序用户的存储结构为对象数组 1)Despositor类

package BankSystem; public class Depositor{ private int number; /*卡号*/ private String name; /*姓名*/ private String personId; /*身份证号*/ private String address; /*邮箱地址*/ private String password; /*密码*/ private float balance; /*余额*/ public Depositor(){ /*不带形参的构造函数,用来初始化*/ number=0; name="0"; personId="0"; address="0"; password="123456"; balance=0; } public int shownumber() {return number;} public String showname() {return name;} public String showid() {return personId;} public String showaddress() {return address;} public String showkey() {return password;} public float showbalance() {return balance;} public void inputnumber(int number){this.number=number;} public void inputname(String name){this.name=name;} public void inputid(String id){this.personId=id;} public void inputaddress(String address){this.address=address;} public void inputkey(String password){this.password=password;} public void inputbalance(float balance){this.balance=balance;} public void inputbalance(int money){ this.balance +=money; System.out.println("您已经存入" + money + "元,账户余额为" + balance ); } public void deposit(int money) { this.balance -= money; System.out.println("您已经取出" + money + "元,账户余额为" + balance ); } public void show() { System.out.println("******************************"); System.out.println("*账户创建成功!您的账户信息如下:"); System.out.println("*银行卡号为:"+ number ); System.out.println("*密码为:"+ password); System.out.println("*姓名为:"+ name); System.out.println("*身份证号码为:"+ personId); System.out.println("*邮箱地址为:"+ address); System.out.println("*账户余额为:" + balance); System.out.println("******************************"); } public void show1() { System.out.println("******************************"); System.out.println("*账户信息如下:"); System.out.println("*银行卡号为:"+ number ); //System.out.println("*密码为:"+ password); System.out.println("*姓名为:"+ name); System.out.println("*身份证号码为:"+ personId); System.out.println("*邮箱地址为:"+ address); System.out.println("*账户余额为:" + balance); System.out.println("******************************"); } };

2)增添账户信息

3)存取款操作

4)查询账户信息 Step1 输入管理员密码。正确执行Step2,否则执行Step7。 Step2 : a) 选择按卡号检索,执行Step3, b) 选择姓名检索,执行Step4。 Step3 输出所有账户卡号,输入卡号选择某一账户,执行Step5。 Step4 输出所有账户姓名,输入姓名选择某一账户。 Step5 输出该账户信息。 Step6 输入修改信息。 Step7 返回主菜单。

5)删除账户信息 输入管理员密码以及检索方式同4),此处不再赘述。 Step1 输入要删除的账户,给出删除警告,“是”则执行Step2,“否”则执行Step5。 Step2 如果该账户是已有对象数组的最后一个,则执行Step3,否则执行Step4。 Step3 同时将现有人数COUNT减一,执行Step。 Step4 将最后一个数组的信息赋给要删除的那一个,同时将现有人数COUNT减一。 Step5 返回主菜单。

6)数据的读取与保存(未实现) 采用OutStreamWriter和InputStreamReader,保存在txt文件中,数据用空格隔开,实现数据的读取与保存。

三、代码

在这里插入图片描述 1.Depositor类见上

2.Bank类 银行管理员未用单独的类来实现,以Bank类中的manage()方法来实现

package BankSystem; import java.util.Scanner; public class Bank { int i; private Depositor[] depositor = new Depositor[100]; private int accountNum = 0; private String password1; int number = 100000; int j=1; private String manage_password = "@123456"; Scanner sc = new Scanner(System.in); int insert; public Bank() { } // 主界面 public void mainView() { System.out.println("******欢迎登入银行管理系统********"); System.out.println("******请选择业务***************"); System.out.println("******1、创建账户**************"); System.out.println("******2、登入账户**************"); System.out.println("******3、管理员登录**************"); } public void select() { int select = sc.nextInt(); switch(select) { case 1 : this.openAccount(); break; case 2 : this.enter(); break; case 3: this.manage(); break; } } public void manage() { boolean flag = false; System.out.println("请输入您的密码"); String password = sc.next(); if(password.equals(manage_password)) { flag = true; } if(flag == false) { System.out.println("登录失败!!!"); } if(flag == true) { System.out.println("登录成功!!!"); do { System.out.println("请选择操作:"); System.out.println("******1、查改账户信息*****************"); System.out.println("******2、删除账户信息*****************"); System.out.println("******3、按任意键退出*****************"); insert = sc.nextInt(); switch(insert) { case 1 : //1、查询账户信息 System.out.println("请选择操作:"); System.out.println("******1、按卡号检索*****************"); System.out.println("******2、按姓名检索*****************"); insert = sc.nextInt(); switch(insert) { case 1://按卡号 for(int i=0;i System.out.println("用户"+ (++i) +":" + depositor[--i].showname()); } System.out.println("请选择用户:"); insert = sc.nextInt(); if(insert-1 System.out.println("用户"+ (++i) +":" + depositor[--i].shownumber()); } System.out.println("请选择用户:"); insert = sc.nextInt(); if(insert == accountNum){ accountNum--; System.out.println("剩余用户:"); for(int i=0;i depositor[insert-1].inputname(depositor[accountNum-1].showname()); depositor[insert-1].inputnumber(depositor[accountNum-1].shownumber()); depositor[insert-1].inputid(depositor[accountNum-1].showid()); depositor[insert-1].inputkey(depositor[accountNum-1].showkey()); depositor[insert-1].inputaddress(depositor[accountNum-1].showaddress()); depositor[insert-1].inputbalance(depositor[accountNum-1].showbalance()); accountNum--; System.out.println("剩余用户:"); for(int i=0;i System.out.println("用户"+ (++i) +":" + depositor[--i].showname()); } System.out.println("请选择用户:"); insert = sc.nextInt(); if(insert == accountNum){ accountNum--; System.out.println("剩余用户:"); for(int i=0;i depositor[insert-1].inputname(depositor[accountNum-1].showname()); depositor[insert-1].inputnumber(depositor[accountNum-1].shownumber()); depositor[insert-1].inputid(depositor[accountNum-1].showid()); depositor[insert-1].inputkey(depositor[accountNum-1].showkey()); depositor[insert-1].inputaddress(depositor[accountNum-1].showaddress()); depositor[insert-1].inputbalance(depositor[accountNum-1].showbalance()); accountNum--; System.out.println("剩余用户:"); for(int i=0;i System.out.println("请输入您的姓名"); String name = sc.next(); System.out.println("请输入您的密码"); String password = sc.next(); System.out.println("请再次确认您的密码"); String password1 = sc.next(); while (!password1.equals(password)) { System.out.println("对不起,两次输入的密码不一致,请重新输入"); System.out.println("请重新输入您的密码"); password = sc.next(); System.out.println("请再次确认您的密码"); password1 = sc.next(); } System.out.println("请输入您的身份证号码"); String personId = sc.next(); System.out.println("请输入您的邮箱"); String email = sc.next(); depositor[accountNum] = new Depositor(); depositor[accountNum].inputnumber(100000 + j); depositor[accountNum].inputname(name); depositor[accountNum].inputkey(password); depositor[accountNum].inputid(personId); depositor[accountNum].inputaddress(email); depositor[accountNum].show(); //显示账户信息 j++; accountNum++; return depositor[accountNum]; } public Depositor enter() { System.out.println("请输入您的银行卡号"); int id = sc.nextInt(); System.out.println("请输入您的密码"); String password = sc.next(); if (accountNum == 0) { System.out.println("未注册账户,请先注册!"); this.openAccount(); this.mainView(); this.select(); } boolean flag = false; for (i = 0; i //判断Id和输入的账户密码是否一致 flag = true; break; } } if (!flag) { System.out.println("登入失败!!!"); } if (flag) { System.out.println("登入成功!!!!"); do { System.out.println("请选择业务"); System.out.println("******1、存款*****************"); System.out.println("******2、取款*****************"); System.out.println("******3、按任意键退出*************"); insert = sc.nextInt(); switch(insert) { case 1 : System.out.println("******请输入存款金额*****************"); int money = sc.nextInt(); depositor[i].inputbalance(money); break; case 2: System.out.println("******请输入取款金额*****************"); money = sc.nextInt(); depositor[i].deposit(money);//调用取款方法 break; } } while(insert == 1 || insert == 2 ); } return depositor[i]; } }

3、Test类

package BankSystem; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Bank b = new Bank(); while (true) { b.mainView();//调用界面函数 int select = sc.nextInt(); switch(select) { case 1: b.openAccount();//创建账户 break; case 2: b.enter();//登入 break; case 3: b.manage(); break; default: System.out.println("选择业务异常,请重新选择"); break; } System.out.println("是否继续选择其他业务"); System.out.println("退出请按 0"); System.out.println("继续选择其他业务请按 1"); select = sc.nextInt(); if (select == 0) { break; } } } } 四、测试结果

1)主菜单窗口 在这里插入图片描述 2)增添信息 在这里插入图片描述 3) 存取款 在这里插入图片描述 4)按姓名检索 在这里插入图片描述

5)删除 在这里插入图片描述

五、总结

程序未实现修改用户信息的功能,没能实现文件流的处理操作。有需要的朋友可以自行改进。整体来看,代码有些繁琐,部分功能封装不到位,代码重复较多。此外,很多细节并未处理到位,例如对异常的处理等。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭