Java 基础 利用数组来实现银行注册开户、存钱、取钱

1、主界面 放置于BankSystem类中

思路:
(1)用输入语句完成主界面的编写
(2)用Scanner实现键盘录入数据
(3)用switch语句完成操作的选择
(4)用循环再次回到主界面

public class BankSystem {public static void main(String[] args) {//输出语句完成主界面while (true) {System.out.println("----------欢迎来到银行自助系统--------");System.out.println("               系统功能:");System.out.println("               A、开户");System.out.println("               B、存钱");System.out.println("               C、取钱");System.out.println("               D、退出");System.out.println("            请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作选择switch (line) {case "A"://System.out.println("开户");BankUtil.addUser();break;case "B"://System.out.println("存钱");BankUtil.severmoney();break;case "C"://System.out.println("取钱");BankUtil.costmoney();break;case "D":System.out.println("谢谢使用");
//                    break;System.exit(0);//JVM退出default:System.out.println("请输入正确选项!");break;}}}}

2、开户功能、存钱功能、取钱功能 放置在BankUtil工具类中

public class BankUtil {public static int ID = 100;public static int k = 0;//初始化数组以后每次加1static Users[] userodd = new Users[0];//创建集合对象,用于存储用户数据//copy方法:将老数组放置新数组中public static Users[] arraycopy() {Users[] user = new Users[userodd.length + 1];for (int i = 0; i < userodd.length; i++) {user[i] = userodd[i];}return user;}//定义一个方法,用于开户添加用户信息public static void addUser() {//键盘录入用户信息Scanner sc = new Scanner(System.in);System.out.println("请输入你的姓名:");String name = sc.nextLine();Scanner sc2 = new Scanner(System.in);System.out.println("请输入你的初始余额:");double rest = sc2.nextDouble();System.out.println("请输入你的密码:");String password = sc.nextLine();//把用户所填信息添加到数组中userodd = arraycopy();//把对象放进对象数组Users user = new Users(name, rest, password);//用户ID自增user.setIdcard(BankUtil.ID++);//数组长度加一userodd[BankUtil.k++] = user;//给出添加成功提示System.out.println("恭喜你,开户成功!");System.out.println("银行卡账号:" + user.getIdcard());System.out.println("姓名:" + user.getName());System.out.println("余额:" + user.getRest());System.out.println("开过户的用户有");//遍历数组,输出当前开过户的用户信息for (Users x : userodd) {System.out.println(x);}}public static void severmoney() {//键盘录入用户信息Scanner sc = new Scanner(System.in);System.out.println("请输入你的卡号:");int Idc = sc.nextInt();Scanner sc3 = new Scanner(System.in);System.out.println("请输入你的密码:");String password = sc3.nextLine();Scanner sc2 = new Scanner(System.in);System.out.println("请输入你要存的金额:");double money = sc2.nextDouble();
// 引入flag 变量解决遍历数组无法判断输出错误提示的问题boolean flag = true;while (flag) {for (int i = 0; i < userodd.length; i++) {if (Idc == userodd[i].getIdcard() && password.equals(userodd[i].getPassword())) {userodd[i].severmoney(money);System.out.println("存款成功!");System.out.println("银行卡账号:" + userodd[i].getIdcard());System.out.println("姓名:" + userodd[i].getName());System.out.println("余额:" + userodd[i].getRest());System.out.println();flag = false;}}break;}if (flag) {System.out.println("您输入的账号或密码不正确!请重新输入:");severmoney();}}public static void costmoney() {//键盘录入用户信息Scanner sc = new Scanner(System.in);System.out.println("请输入你的卡号:");int Idc = sc.nextInt();Scanner sc3 = new Scanner(System.in);System.out.println("请输入你的密码:");String password = sc3.nextLine();Scanner sc2 = new Scanner(System.in);System.out.println("请输入你要取的金额:");double money = sc2.nextDouble();boolean flag = true;while (flag) {for (int i = 0; i < userodd.length; i++) {if (Idc == userodd[i].getIdcard() && password.equals(userodd[i].getPassword())) {if (money <= userodd[i].getRest()) {userodd[i].costmoney(money);System.out.println("取款成功!");System.out.println("银行卡账号:" + userodd[i].getIdcard());System.out.println("姓名:" + userodd[i].getName());System.out.println("余额:" + userodd[i].getRest());System.out.println();flag = false;}}}break;}if (flag) {System.out.println("您输入的账号或密码不正确!请重新输入:");costmoney();}}}

用户数组 储存用户信息 放置于Users 类中

public class Users {//银行卡号private int idcard;//姓名private String name;//余额private double rest;//密码private String password;@Overridepublic String toString() {return "Users{" +"idcard=" + idcard +", name='" + name + '\'' +", rest=" + rest +", password='" + password + '\'' +'}';}//存取钱金额private double money;public void severmoney(double money){this.rest+=money;}public void costmoney(double money){this.rest-=money;}public Users() {}public Users(String name, double rest, String password) {this.name = name;this.rest = rest;this.password = password;}public int getIdcard() {return idcard;}public void setIdcard(int idcard) {this.idcard = idcard;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getRest() {return rest;}public void setRest(double rest) {this.rest = rest;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}
}

Java 基础 利用数组来实现银行注册开户、存钱、取钱相关推荐

  1. Java基础之数组与集合

    Java基础之数组与集合 一.数组 二.冒泡排序算法 三.选择排序算法 四.二维数组 五.Arrays 工具 六.宠物管理系统 七.集合 Collection 八.List 九.重写 equals 方 ...

  2. Java基础——利用DMO4J编写一个商品管理系统

    题目:这里有一份XML文件用于储存商品信息,编写一个商品管理系统,可以对XML文件进行增删查改的操作. <?xml version="1.0" encoding=" ...

  3. Java基础-遍历数组

    Java基础-遍历数组 1.语法简介 2.一维数组 3.二维数组 4.三维数组 1.语法简介 在Java中,对for语句的功能给予了扩充.加强,以便更好的遍历数组. 语法格式如下: for(声明循环变 ...

  4. javascript案例31——简易ATM机、简易银行、存钱取钱。

    一.案例描述 模拟简易的ATM机,模拟银行取钱存钱. 题目描述有四个功能: 存钱 取钱 显示余额 退出 注意: 默认里面本身有100块钱. 如果存钱,就用输入的钱数加上先前的钱,然后弹出余额. 如果取 ...

  5. 一文带你深入理解【Java基础】· 数组

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  6. java基础(十) 数组类型

    ###1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) {Class ...

  7. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a正在的初始化为一个数组 ...

  8. Java基础之数组练习

    1.java能动态分配数组吗? 答:可以.int i = 12;int[] myInt = new int[i]; 2.我怎么知道数组的长度? 答:'.length'属性获取 3.数组有没有lengt ...

  9. Java银行开户,取钱,存钱,查询余额,退出。。。。。

    一:上码 package com.wyj.two;import java.util.Scanner;/*** 封装的练习*/ public class Demo8 {public static voi ...

最新文章

  1. ERROR: Unable to load class 'org.gradle.api.internal.component.Usage'.
  2. ML 03、机器学习的三要素
  3. SQL Server 数据库的整理优化的基本过程(二)
  4. 面试时算法题的解答思路
  5. android JSONObject的使用
  6. swift string转int_swift中结构体和类的区别(值类型和引用类型的区别)
  7. vector的逆序输出(神奇的vector)
  8. Memcache简介
  9. 关于解决MyEclipse的耗内存的办法
  10. 基于python下django框架 实现校园二手书籍交易系统详细设计
  11. TFTPD32不能传输数据的解决与尝试
  12. 贪心算法设计作业调度c语言,c语言贪心算法
  13. matlab如何事先申明结构体数组,【matlab定义结构体数组】
  14. 百度实习生招聘笔试题1
  15. fNIRS | 非平稳波形的预处理方法
  16. 点云上的深度学习及其在三维场景理解中的应用————PointNet(一)
  17. XGBoost原理介绍
  18. 组织打羽毛球活动的一些心得
  19. Linux入门+环境搭建云服务器
  20. 使用css3中的var()实现改变scss的变量值

热门文章

  1. linux远程部分文件传输不了,远程传输文件(linux之scp简单操作)
  2. 提供3Dmax,Zbrush,C4D,MAYA,MD,进来看看
  3. Java相关课程系列笔记之一Java学习笔记
  4. 在 ASP.NET Core 中上传文件
  5. CubeMX生成的代码烧录一次后无法再烧录(识别)STM32,需按住reset后放开才能烧录
  6. C++/Qt读取二进制STL文件
  7. pylon保存图片_pylon界面中文说明-德国basler工业相机.pdf
  8. 金融业信贷风控算法5-时间序列模型概述
  9. cmake 检测到cuda版本与实际版本不相符
  10. 详解微信「看一看」多模型内容策略与召回