java做一个简单的银行账户演示程序_JAVA初学(七):银行账户演示程序
一、设计梗概
做一个简单的银行、账户演示程序。
(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初学(七):银行账户演示程序相关推荐
- 如何复制java卡,使用java做一个简单的集卡程序
使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...
- java做一个简单的数据库,哪个嵌入式数据库用Java写成一个简单的键/值存储?
我最近问了一个关于Neo4j的问题,我有工作,似乎很好.它是可嵌入的,它是用Java编写的,没有(太)许多依赖. 然而,它是一个图形数据库,我不知道这是一个好主意或不使用它作为一个简单的键/值存储. ...
- 用java做一个简单的打字游戏
Java也是可以做桌面程序的.只不过需要运行在装有JDK的电脑环境上,所以应用不是很广泛,但是用来提高自身的代码逻辑还是可以的!偶有一天看到金山的打字通,就想起何不做个简单的打字游戏用来练练手.于是就 ...
- 用java做一个简单记事本_用记事本写一个简单的java程序
用记事本写一个简单的java程序 第一步: 安装好jdk,并设置好环境变量. 桌面-计算机(右键)-属性-高级系统设置-环境变量-path-在变量值后加上:和jdk安装路径加上(路径即为C:\Prog ...
- 用java做一个简单的万年历
一个简单的万年历制作 简单介绍万年历的各功能实现: 1.首先键盘输入查询的年份和月份 Scanner sc = new Scanner(System.in); System.out.println(& ...
- java做一个简单的文件管理器
前言 马上大四了,在大三结束后进入一家国企的研发组工作,短短的两个月实习大部分时间都是在自己学习.最近几天突然有点困倦,决定把之前做的一些东西分享出来. 目的与内容 运用面向对象程序设计思想,基于Ja ...
- 利用java做一个简单的计算器
共两个类.还只是完成+.-.×.÷运算而已. GUI只是用了AWT,很简单,相信一看就能懂了. Calculator.java public class Calculator{ private Str ...
- java 做计算器 百度云_用Java做一个简单的计算器
窗体 package Calc; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * * 计算器程序6261 ...
- Java怎么做一个简单网页呢?
学java的同学在接触到Java web开发之后都跃跃欲试想要尝试自己开发一个页面,那么应该如何操作呢?都需要使用到哪些技术呢?下面小千就来告诉你. 需要使用到的技术 java 语言知识, jsp 知 ...
- 做一个简单的银行、账户演示程序。 (1)定义一个账户类,包含用户名、密码、余额等属性、存钱、取钱等方法。 (2)定义一个银行类,包含银行名、账户列表等属性,开账户、查账户的功能。账户列表可以使用集
做一个简单的银行.账户演示程序. (1)定义一个账户类,包含用户名.密码.余额等属性.存钱.取钱等方法. (2)定义一个银行类,包含银行名.账户列表等属性,开账户.查账户的功能.账户列表可以使用集合相 ...
最新文章
- 看oracle 的数据库位数
- C语言二进制标识符,C语言入门基础大全,自学C语言必备知识!
- 阿里巴巴成立首个IoT生态联盟 将打通技术标准
- 古诗-豪放派和婉约派
- @Springboot搭建项目controller层接收json格式的对象失败
- 驱动级的自动按键_Aqara全自动智能推拉锁D100,体验全自动开门的便捷
- 项目配置不当引发了数据泄露,人已裂开!!
- 数据结构Java版之基数排序(四)
- 人机协作机器人发展趋势_人工智能非万能!智能安防机器人下一站:人机协作...
- oracle exadata咨询,Oracle Exadata专家手册
- WebView如何引用本地字体
- 库房--库存信息增加导出Excel表格功能
- 神舟Z7-KP7SC笔记本电脑-游戏实机帧数截图与鲁大师跑分
- ntp服务器安装和配置文件,NTP服务的安装、配置和使用
- [源码解析] 深度学习流水线并行 PipeDream(6)--- 1F1B策略
- JumpServer开源堡垒机完成龙芯架构兼容性认证
- 微软服务器ip,微软服务器环境中的IP地址管理
- JAVA程序运行流程
- Android控件 SeekBar
- Java减肥计划(swith版)
热门文章
- linux tcp 缓冲区 参数,Linux TCP 缓冲区参数调优
- 3dmax材质通道插件_3dmax插件外挂神器【疯狂模渲大师蓝色经典版】第九章:渲染后期教程...
- window ngnix php配置文件,Window下PHP和Nginx的配置
- 一键启动按钮线断了_【汽车用车】汽车一键启动功能不仅只用来打火,还可以这么操作?...
- Echarts:柱状图X轴数据隔一个显示下标
- 04. Django基础:路由配置
- JavaScript:数组、函数和对象
- 电脑基本快捷键,你知道多少?
- 算法面试_怎么简单高效的理解递归?//TODO
- pcl_viewer 常用实用指令