一、设计梗概

做一个简单的银行、账户演示程序。

(1)定义一个账户类,包含用户名、密码、余额等属性、存钱、取钱等方法。

(2)定义一个银行类,包含银行名、账户列表等属性,开账户、查账户的功能。账户列表可以使用集合相关的类,如ArrayList,最好同时使用泛型。

(3)定义一个测试类及main函数,在其中创建一个银行,开设一些账号,模拟存钱、取钱、显示余额等。

二、内容完善

代码中第二部分的泛型尚未完成,后期会继续完善

三、代码内容

package practise;

import java.util.*;

import java.util.Scanner;

public class bank {

public static void main(String[]arg){

System.out.println("欢迎来到小猪银行!");

boolean out = true;boolean out0=true; //out和out0用于退出循环,回到初始界面

Welcome welcome = new Welcome(); //新建一个欢迎类

Count count = new Count(); //新建一个Count类(用户账户)

WorkerCount workerCount=new WorkerCount(); //新建一个WorkerCount类(工作人员账户)

workerCount.countContent.add(new java.lang.String("账号:佩奇,密码:1314")) ;

System.out.println("请选择你的账户类型:输入数字0:进入普通账户|输入数字1:进入工作人员账户");

Scanner scan = new Scanner(System.in); //用于扫描键盘输入,以做出下一步操作,下同

int judgment = scan.nextInt();

boolean rightInput=false;//rightInput判断用户输入是否正确,如果错误则提示重新输入

while (true) {

if (judgment == 0) { //judgment==0时,进入客户服务端

rightInput=true; //将rightInput设置成ture

welcome.welcomeCustomer(); //触发顾客账号登录程序

Scanner Input = new Scanner(System.in);

System.out.print("\n请输入如下数字进入客户服务:");

while (out) {

System.out.println("输入数字0:查询账户余额" +

" | 输入数字1:提取现金" +

" | 输入数字2:存入现金" +

" | 输入数字3:退卡");

int input = Input.nextInt();

switch (input) {

case 0:

System.out.print("账户余额为:" + count.banlance + "\n\n请继续下一步操作:\n");

break;

case 1:

count.WithdrawMoney();

break;

case 2:

count.deposit();

break;

case 3:

out = false;

}

}

System.out.println("感谢您的使用,欢迎下次光临!");

}

if (judgment == 1) {

rightInput=true;

welcome.welcomeWorker(); //触发工作人员登录程序

Scanner Input = new Scanner(System.in);

System.out.print("\n请输入如下数字进行不同操作:");

while (out0) {

System.out.println("输入数字0:查询银行名" +

" | 输入数字1:查询账户列表" +

" | 输入数字2:开账户" +

" | 输入数字3:关账户"+

" | 输入数字4:退出系统");

int input0 = Input.nextInt();

switch (input0) {

case 0:

workerCount.bankname();

break;

case 1:

workerCount.countlist();

break;

case 2:

workerCount.opencount();

break;

case 3:

workerCount.closecount();

break;

case 4:

out0=false;

}

}

}

if (rightInput==true)System.out.println("请重新开始您的操作");

else System.out.println("输入错误,请重新输入");

}

}

}

class Welcome{ //输入客户的账号密码,并测试信息是否正确

public void welcomeCustomer(){

while(true) {

boolean sign = false; //该标志用于退出循环,账号密码正确则break

Scanner scanner_login = new Scanner(System.in);

System.out.println("请输入您的账号名:");

String CountName = scanner_login.next();

Scanner scanner_Password = new Scanner(System.in);

System.out.println("请输入您的数字密码:");

int CountPassword = scanner_login.nextInt();

Count count_test = new Count(CountName, CountPassword, sign); //Count类reture sign,if true则退出循环,继续执行main函数

if (count_test.CountTest()) break;

}

}

public void welcomeWorker(){ //执行方法与顾客类似

while(true) {

boolean sign = false;

Scanner Workerscanner_login = new Scanner(System.in);

System.out.println("请输入您的账号名:");

String WorkerName = Workerscanner_login.next();

Scanner Workerscanner_Password = new Scanner(System.in);

System.out.println("请输入您的数字密码:");

int WorkerPassword = Workerscanner_login.nextInt();

WorkerCount Workercount_test = new WorkerCount(WorkerName, WorkerPassword, sign);

if (Workercount_test.WorkerCountTest()) break;

}

}

}

class Count{

String name;int password;boolean sign;

int banlance=10000;

Count(){};

Count(String name,int password,boolean sign){ //构造方法,sign标记用于跳出循环

this.name=name;

this.password=password;

this.sign=sign;

}

public boolean CountTest(){

if (name.equals("佩奇")){

if (password==1314){

System.out.println("账号名及密码输入正确");

sign=true;

}else System.out.println("密码输入错误,请重新输入");

}else System.out.println("账号名输入错误,请重新输入");

return sign; //此处reture sign

}

public void deposit(){ //用于存入现金

Scanner scanner=new Scanner(System.in);

System.out.println("How mach do you want to deposit?");

int deposit_money=scanner.nextInt();

this.banlance=this.banlance+deposit_money;

System.out.println("已存入:"+deposit_money+"元,剩余金额为:"+this.banlance +"元"+"\n\n请继续下一步操作:");

}

public void WithdrawMoney(){ //用于提取现金

Scanner scanner=new Scanner(System.in);

System.out.println("How mach do you want to withdraw?");

int withdraw_money=scanner.nextInt();

if (this.banlance>=withdraw_money){

this.banlance=this.banlance-withdraw_money;

System.out.println("已取出:"+withdraw_money+"元,剩余金额为:"+this.banlance +"元"+"\n\n请继续下一步操作:");

}

}

}

class WorkerCount{ //工作人员账户

List countContent= new ArrayList();

String name;int password;boolean sign;String bankName="小猪银行";

WorkerCount(){};

WorkerCount(String name,int password,boolean sign){ //构造方法,同时判断用户名是否输入正确

this.name=name;

this.password=password;

this.sign=sign;

}

public boolean WorkerCountTest(){

if (name.equals(bankName)){

if (password==520520){

System.out.println("账号名及密码输入正确");

sign=true;

}else System.out.println("密码输入错误,请重新输入");

}else System.out.println("账号名输入错误,请重新输入");

return sign;

}

public void bankname(){

System.out.println("银行名为:"+this.bankName);

while (true) {

Scanner scanner1 = new Scanner(System.in);

System.out.println("修改银行名请按:1,退出请按0");

int inputNumber = scanner1.nextInt();

if (inputNumber==0)break;

else {

Scanner scanner2 = new Scanner(System.in);

System.out.println("请输入您要修改的银行名:");

String bankName = scanner2.next();

this.bankName=bankName;

System.out.println("新的银行名为:"+this.bankName+",请继续下一步操作:"); //此处功能任有缺陷,新修改的银行名在重启系统时无法仍旧会变成“小猪银行”,暂时没想到办法完善

}

}

}

public void countlist(){

for (int i = 0 ; i < WorkerCount.this.countContent.size() ; i++ )

{

System.out.println(WorkerCount.this.countContent.get(i));

}

}

public void opencount(){

String[]opendArray=new String[2];

while (true) {

Scanner scanner0 = new Scanner(System.in);

System.out.println("请输入设置的账号名");

opendArray[0] = scanner0.next();

Scanner scanner1 = new Scanner(System.in);

System.out.println("请输入设置的密码");

opendArray[1] = scanner1.next();

countContent.add(new String("账号:"+opendArray[0]+",密码:"+opendArray[1]));

System.out.println("您的账号为:"+opendArray[0]+"密码为:"+opendArray[1]+"确认请按1,重新设置请按0");

Scanner scanner2 = new Scanner(System.in);

int judge = scanner2.nextInt();

if (judge==1)break;

}

}

public void closecount(){

while (true) {

Scanner scanner0 = new Scanner(System.in);

System.out.println("您要关闭的账号名为:");

String closename = scanner0.next();

Scanner scanner1 = new Scanner(System.in);

System.out.println("请输入密码:");

int password = scanner0.nextInt();

int i=countContent.indexOf(new String("账号:"+closename+","+"密码:"+password));

Scanner scanner2 = new Scanner(System.in);

System.out.println("您关闭的账号序号为:"+closename+";确认请按1,重新设置请按0");

int judge = scanner2.nextInt();

if (judge==1){this.countContent.remove(i); break;}

}

}

}

注:鉴于作者水平有限,如有更好的算法欢迎评价。

java做一个简单的银行账户演示程序_JAVA初学(七):银行账户演示程序相关推荐

  1. 如何复制java卡,使用java做一个简单的集卡程序

    使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...

  2. java做一个简单的数据库,哪个嵌入式数据库用Java写成一个简单的键/值存储?

    我最近问了一个关于Neo4j的问题,我有工作,似乎很好.它是可嵌入的,它是用Java编写的,没有(太)许多依赖. 然而,它是一个图形数据库,我不知道这是一个好主意或不使用它作为一个简单的键/值存储. ...

  3. 用java做一个简单的打字游戏

    Java也是可以做桌面程序的.只不过需要运行在装有JDK的电脑环境上,所以应用不是很广泛,但是用来提高自身的代码逻辑还是可以的!偶有一天看到金山的打字通,就想起何不做个简单的打字游戏用来练练手.于是就 ...

  4. 用java做一个简单记事本_用记事本写一个简单的java程序

    用记事本写一个简单的java程序 第一步: 安装好jdk,并设置好环境变量. 桌面-计算机(右键)-属性-高级系统设置-环境变量-path-在变量值后加上:和jdk安装路径加上(路径即为C:\Prog ...

  5. 用java做一个简单的万年历

    一个简单的万年历制作 简单介绍万年历的各功能实现: 1.首先键盘输入查询的年份和月份 Scanner sc = new Scanner(System.in); System.out.println(& ...

  6. java做一个简单的文件管理器

    前言 马上大四了,在大三结束后进入一家国企的研发组工作,短短的两个月实习大部分时间都是在自己学习.最近几天突然有点困倦,决定把之前做的一些东西分享出来. 目的与内容 运用面向对象程序设计思想,基于Ja ...

  7. 利用java做一个简单的计算器

    共两个类.还只是完成+.-.×.÷运算而已. GUI只是用了AWT,很简单,相信一看就能懂了. Calculator.java public class Calculator{ private Str ...

  8. java 做计算器 百度云_用Java做一个简单的计算器

    窗体 package Calc; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * * 计算器程序6261 ...

  9. Java怎么做一个简单网页呢?

    学java的同学在接触到Java web开发之后都跃跃欲试想要尝试自己开发一个页面,那么应该如何操作呢?都需要使用到哪些技术呢?下面小千就来告诉你. 需要使用到的技术 java 语言知识, jsp 知 ...

  10. 做一个简单的银行、账户演示程序。 (1)定义一个账户类,包含用户名、密码、余额等属性、存钱、取钱等方法。 (2)定义一个银行类,包含银行名、账户列表等属性,开账户、查账户的功能。账户列表可以使用集

    做一个简单的银行.账户演示程序. (1)定义一个账户类,包含用户名.密码.余额等属性.存钱.取钱等方法. (2)定义一个银行类,包含银行名.账户列表等属性,开账户.查账户的功能.账户列表可以使用集合相 ...

最新文章

  1. 看oracle 的数据库位数
  2. C语言二进制标识符,C语言入门基础大全,自学C语言必备知识!
  3. 阿里巴巴成立首个IoT生态联盟 将打通技术标准
  4. 古诗-豪放派和婉约派
  5. @Springboot搭建项目controller层接收json格式的对象失败
  6. 驱动级的自动按键_Aqara全自动智能推拉锁D100,体验全自动开门的便捷
  7. 项目配置不当引发了数据泄露,人已裂开!!
  8. 数据结构Java版之基数排序(四)
  9. 人机协作机器人发展趋势_人工智能非万能!智能安防机器人下一站:人机协作...
  10. oracle exadata咨询,Oracle Exadata专家手册
  11. WebView如何引用本地字体
  12. 库房--库存信息增加导出Excel表格功能
  13. 神舟Z7-KP7SC笔记本电脑-游戏实机帧数截图与鲁大师跑分
  14. ntp服务器安装和配置文件,NTP服务的安装、配置和使用
  15. [源码解析] 深度学习流水线并行 PipeDream(6)--- 1F1B策略
  16. JumpServer开源堡垒机完成龙芯架构兼容性认证
  17. 微软服务器ip,微软服务器环境中的IP地址管理
  18. JAVA程序运行流程
  19. Android控件 SeekBar
  20. Java减肥计划(swith版)

热门文章

  1. linux tcp 缓冲区 参数,Linux TCP 缓冲区参数调优
  2. 3dmax材质通道插件_3dmax插件外挂神器【疯狂模渲大师蓝色经典版】第九章:渲染后期教程...
  3. window ngnix php配置文件,Window下PHP和Nginx的配置
  4. 一键启动按钮线断了_【汽车用车】汽车一键启动功能不仅只用来打火,还可以这么操作?...
  5. Echarts:柱状图X轴数据隔一个显示下标
  6. 04. Django基础:路由配置
  7. JavaScript:数组、函数和对象
  8. 电脑基本快捷键,你知道多少?
  9. 算法面试_怎么简单高效的理解递归?//TODO
  10. pcl_viewer 常用实用指令