文章目录

  • 一、简介
  • 二、详细设计
  • 三、代码
  • 四、测试结果
  • 五、总结

实现了一个最基本的银行管理系统(基于类与对象),无复杂功能,易于初学者上手操作。基本框架实现后,可继续丰富其功能,实现更强大的管理功能,或实现图形界面、输入输出流保存、连接数据库等等。

一、简介

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

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

  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<accountNum;i++) {System.out.println("用户"+ (++i) +":" + depositor[--i].shownumber());                           }System.out.println("请选择用户:");insert = sc.nextInt();if(insert-1<accountNum)depositor[insert-1].show1();elseSystem.out.println("无用户!");break;case 2://按姓名for(int i=0;i<accountNum;i++) {System.out.println("用户"+ (++i) +":" + depositor[--i].showname());                           }System.out.println("请选择用户:");insert = sc.nextInt();if(insert-1<accountNum)depositor[insert-1].show1();elseSystem.out.println("无用户!");break;}break;case 2://  2、删除账户信息    System.out.println("请选择操作:");System.out.println("******1、按卡号检索*****************");System.out.println("******2、按姓名检索*****************");insert = sc.nextInt();switch(insert) {case 1://按卡号for(int i=0;i<accountNum;i++) {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<accountNum;i++) {System.out.println("用户"+ (++i) +":" + depositor[--i].shownumber());                         }System.out.println("删除成功!");}    else {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<accountNum;i++) {System.out.println("用户"+ (++i) +":" + depositor[--i].shownumber());                           }System.out.println("删除成功!");}//depositor[insert-1].show1();break;case 2://按姓名for(int i=0;i<accountNum;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<accountNum;i++) {System.out.println("用户"+ (++i) +":" + depositor[--i].showname());                          }System.out.println("删除成功!");}    else {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<accountNum;i++) {System.out.println("用户"+ (++i) +":" + depositor[--i].showname());                         }System.out.println("删除成功!");}break;}break;}} while(insert == 1 || insert == 2 );}}public Depositor openAccount(){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 < accountNum; i++) {if (id == depositor[i].shownumber() && password.equals(depositor[i].showkey())) {//判断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)删除

五、总结

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

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

  1. 用java实现简单的银行管理系统

    用java实现简单的银行管理系统 页面代码之一: mvc设计模式,分包 分包图片 简单效果演示: 登陆主页面 注册页面 登录: 功能页面! 存款 转账 查看近期流水账单! 页面代码之一: packag ...

  2. java银行流水打印系统_基于java实现简单的银行管理系统

    页面代码之一: package org.vector.view; import java.awt.Font; import java.awt.event.ActionEvent; import jav ...

  3. 简单的银行管理系统(接口)

    简单的银行管理系统(接口) 本例要求实现银行卡系统的银联接口,详细要求如下: 银联接口,用于描述银联统一制定的规则,该接口提供检测密码方法.取钱方法以及查询余额方法. 工商银行接口,用于描述工商银行发 ...

  4. Java课程设计之银行管理系统(实现GUI可视化+IO流储存数据)

    本人学校在大二时有Java课程设计,本打算在网上找一个简单的银行管理系统借鉴一下,后来得知老师要求要实现可视化,在网上多次查找没有理想的可视化银行管理系统,无奈花费一星期自学了GUI方面的代码,课上老 ...

  5. 简单的银行管理系统(功能齐备)

    简单的银行管理系统(功能齐备) 我们直接上功能代码.(一个系统中最难的莫过于实现其特有功能) 1--------用户注册或者管理员注册 private static void UserZhuce(Ar ...

  6. java模拟简单的银行账户,可用于存取款,查询业务操作

    ** java模拟简单的银行账户,可用于存取款,查询账户信息,银行查询当前客户数量操作 ** 本篇的内容关于:创建一个银行账户Account类,实现存款(deposit).取(withDraw)和查询 ...

  7. 基于Java的简单零食商城管理系统

    标题# 基于Java的简单零食商城管理系统 专业团队开发,接受定制 联系VX:Alfalfa-cx 专属源码网站欢迎浏览:http://www.eqicode.com/Code/Index.html ...

  8. java实现简单的图书管理系统(以及代码中用了特殊注释TODO,XXX,FIXME),compare接口

    参考来自 java实现简单的图书管理系统_Jewel's blog-CSDN博客_java图书管理系统一.项目分布Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get. ...

  9. JAVA简单的银行管理系统

    账户类 package Account;public abstract class Account {private int id;//账号private String password;//密码pr ...

  10. (JAVASwing界面)java实现简单的人事管理系统(数据库原理课程设计)

    题目:人事管理系统 重要!!!! 此文章可以作为报告提交,只需要按照你们的格式调整即可,文章内容符合大学报告格式. 摘要(包含两个部分): 1.课题需要完成的内容 人事管理系统是企业管理系统中不可缺少 ...

最新文章

  1. 64位 ubuntu android studio gradle 权限不够 缺少文件和权限导致
  2. readv和writev函数
  3. 全网最细节的sds讲解,轻松拿下offer
  4. 软件分享:将应用一键打包成dmg文件
  5. rfid6-写成platform驱动
  6. python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)
  7. Cisco路由器全局、接口、协议调试指南
  8. 苹果php环境,苹果电脑安装PHP环境步骤-PHP问题
  9. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
  10. Android应用程序启动过程源代码分析(5)
  11. 规范化之路(一) Checkstyle插件安装使用
  12. 【转】SIP 中的Dialog,call,session 和 transaction
  13. Boost Asio Examples(整理)
  14. Linux通过Shell进行数学运算
  15. 蒸汽流量计算软件_海口气体腰轮订制,涡街流量计脉冲,期待合作
  16. 【OpenCV入门教程】图像加噪
  17. Enigma机密码加密解密的实现
  18. 【JMX】1. 什么是JMX、JDK中的JMX实现
  19. 全球最大电音音乐节Tomorrowland | FTX Europe将与电子音乐节Tomorrowland合作
  20. [哈希]PAT1039 Course List for Student

热门文章

  1. Discussion: 神经网络neural network与计量经济学模型econometric model比较
  2. Tracepro——解决辐照度图中关键区域对比度不明显问题
  3. PPT模板下载网站推荐
  4. foxmail html模板,Foxmail“邮件模板”功能全攻略
  5. 「斑愿称为最肝」小狮子前端知识食谱 / 生日之际,好运分享 / 秋招和你手摸手入大厂【史上最全指北】 | CSDN技术征文
  6. 用Python和Pygame写游戏-从入门到精通(实战三:植物大战僵尸1)
  7. 穷养的女孩和富养的女孩的区别在哪?
  8. 桌面计算机主流硬盘接口,M.2和U.2谁更好?主流硬盘接口大扫盲
  9. LoadRunner教程(7)-LoadRunner 创建测试场景
  10. 怎么用wps抽签_怎么制作抽签,WPS表格怎么制作抽签程序表格