模拟银行ATM系统(基础版)
Account类
private String accountID;//用于存储学生的用户账号(由八位数字组成)
private String accountname;//用于存储账户的名称
private String operatedate;//用于存储操作的时间,由十位字符组成,显示格式"XXXX-XX-XX"
private int operatetype;//用于存储操作账户的类型
private String accountpassword;//用于用户密码,由六位数字组成
private int accountbalance;//用于存储账户余额
private int amount;//操作流水金额
//set函数,设置变量信息
public void setaccountID(String accountID) {this.accountID=accountID;}
public void setaccountname(String accountname) {this.accountname=accountname;}
public void setoperatedate(String operatedate) {this.operatedate=operatedate;}
public void setoperatedate(int operatetype) {this.operatetype=operatetype;}
public void setaccountpassword(String accountpassword) {this.accountpassword=accountpassword;}
public void setaccountbalance(int accountbalance) {this.accountbalance=accountbalance;}
public void setamount(int amount) {this.amount=amount;}
//get函数,读取变量信息
public String getaccountID() {return accountID;}
public String getaccountname() {return accountname;}
public String getopertedate() {return operatedate;}
public int getoperatetype() {return operatetype;}
public String getaccountpassword(){return accountpassword;}
public int getaccountbalance() {return accountbalance;}
public int getamount() {return amount;}
}
import java.util.*;
public class AccountManager {
//定义AccountManager类
Account a=new Account();//定义Account类的一个对象
static Scanner x=new Scanner(System.in);
//模块一
public void denglu() {//模拟输入账号功能
System.out.println("***************************************************************");
System.out.println(" 欢迎使用中国工商银行自动柜员系统");
System.out.println("***************************************************************");
for(; ;) {
System.out.println(" 请输入您的账号:");
a.setaccountID(x.next());
System.out.println("***************************************************************");
if(a.getaccountID().length()!=8)System.out.println("该卡不是工行卡");//判断账号位数是否为8位,不为8位跳转到账号输入界面
else {System.out.println("账号登陆成功");break;}//账号位数为8,跳出循环
}
}
//模块二
public void mima() {//模拟密码输入功能
int j=1;
System.out.println("***************************************************************");
System.out.print(" 欢迎");
System.out.print(a.getaccountID());//输出账号信息
System.out.println("使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
for(int i=1;i<=3;i++) {//模拟密码输入功能
System.out.println(" 请输入您的密码:");
a.setaccountpassword(x.next());
System.out.println("***************************************************************");
if(a.getaccountpassword().length()!=6) {
System.out.println("密码录入错误");
j++;
if(j==4)System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
}//判断密码是否为6位,不为6位跳转到密码输入界面;密码录入三次错误,输出相应语句
else {System.out.println("密码输入成功");break;}//密码位数为6,跳出循环
}
}
//界面表头
public void a() {
System.out.println("***************************************************************");
System.out.print(" 欢迎");
System.out.print(a.getaccountID());//输出账号信息
System.out.println("使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
}
//模块三
public void menu() { //系统主界面
a();
System.out.println(" 1、 存款;");
System.out.println(" 2、 取款;");
System.out.println(" 3、 转账汇款;");
System.out.println(" 4、 修改密码;");
System.out.println(" 5、 查询余额;");
System.out.println("***************************************************************");
}
//模块四
public void cunkuan() {//模拟存款过程
a();
System.out.println(" 请输入存款金额;");
a.setamount(x.nextInt());
a();
a.setaccountbalance(a.getamount()+a.getaccountbalance());
System.out.println(" 当前账户存款操作成功。");
System.out.print(" 当前账户余额为:"+a.getaccountbalance());
System.out.println("元");
}
//模块五
public void qukuan() {//模拟取款过程
a();
System.out.println(" 请输入取款金额;");
a.setamount(x.nextInt());
System.out.println("***************************************************************");
if(a.getamount()>a.getaccountbalance())System.out.println("账户余额不足");
else {
a();
System.out.print(" 当前账户取款操作");
System.out.print(a.getamount());
System.out.println("元成功。");
a.setaccountbalance(a.getaccountbalance()-a.getamount());
System.out.print(" 当前账户余额为:"+a.getaccountbalance());
System.out.println("元");
System.out.println("***************************************************************");
}
}
//模块六
public void zhuanzhang() {//模拟转账汇款功能
a();
System.out.println(" 请输入转账账户;");
a.setaccountID(x.next());
System.out.println("***************************************************************");
a();
System.out.println(" 请输入转账金额;");
a.setamount(x.nextInt());
System.out.println("***************************************************************");
if(a.getamount()>a.getaccountbalance())System.out.println("账户余额不足");
else {
a();
System.out.print(" 请确认是否向");
System.out.print(a.getaccountID());
System.out.print("转账");
System.out.print(a.getamount());
System.out.println("元");
System.out.println("***************************************************************");
System.out.println("N 不转账 Y 确认转账");
String n=x.next();
if(n.equals("N")) menu();
if(n.equals("Y")) {a();
System.out.print("当前账户向");
System.out.print(a.getaccountID());
System.out.print("成功转账");
System.out.print(a.getamount());
System.out.println("元");
a.setaccountbalance(a.getaccountbalance()-a.getamount());
System.out.print(" 当前账户余额为:"+a.getaccountbalance());
System.out.println("元");
System.out.println("***************************************************************");
}
}
}
//模块七
public void xiumi() {
a();
System.out.println("请输入当前密码:");
System.out.println("请输入修改密码:");
System.out.println("请输入确认密码:");
a();
System.out.println(" 当前账户密码修改成功");
System.out.println("***************************************************************");
}
//模块八
public int yue() {
return a.getaccountbalance();
}
public static void main(String[] args) {
AccountManager A = new AccountManager();//定义AccountManager类的一个对象
A.denglu();//输入账号功能
A.mima();//密码输入功能
for(; ;) {
A.menu();
int m=x.nextInt();
switch(m) {
case 1:A.cunkuan();break;
case 2:A.qukuan();break;
case 3:A.zhuanzhang();break;
case 4:A.xiumi();break;
case 5:A.yue();break;
}
}
}
模拟银行ATM系统(基础版)的更多相关文章
- 实验01——java模拟银行ATM系统
用java写的一个模拟银行系统,比较初级. ATM.java package cn.tedu.yinhang; import java.util.Scanner; /** * @author 赵瑞鑫 ...
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- MySQL银行ATM存取款机系统(需求分析)
银行ATM需求文档 一.E-R图形文 二.开发步骤 1.明确需求--数据库设计--编码实现功能--测试 2.绘制e-r图--绘制数据库模型图--使用三大方式规范数据库结构 三.开发思路 1. 模型图综 ...
- 银行ATM机工作流程模拟编程
[编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...
- Java基础面试操作题:线程同步代码块 两个客户往一个银行存钱,每人存三十次一次存一百。 模拟银行存钱功能,时时银行现金数。
package com.swift; public class Bank_Customer_Test { public static void main(String[] args) { /* * 两 ...
- centos 6.x 系统基础优化简版
Centos 6.x 系统基础优化 1.更换国内yum源 删除系统带的centos官方yum源 rm -rf /etc/yum.repos.d/* 使用国内阿里云源 curl -o /etc/yum. ...
- java线程基础巩固---采用多线程方式模拟银行排队叫号以及Runnable接口存在的必要性
采用多线程模拟银行排队叫号: 关于银行拿排队号去叫号的过程我想不必过多解释了,就是有几个业务窗口,并行的处理业务,每处里完一个人,则会叫下一个排队的号去处理业务,一个人是不会被多个窗口工作人员叫号的, ...
- ATM系统开发(Java版)
ATM系统开发 技术点分析 1.面向对象编程 每个用户的账户都是一个对象,所以需要设计账户类Accent用于创建账户对象封装账户信息. 2.使用集合容器 系统需要提供一个容器用于存储这些账户对象的信息 ...
- 高仿中国银行ATM系统
温馨提示由于代码太多只是上传了ATM客户端部分,管理员和超级管理员还有数据库部分上传了工程包,可以直接点击https://i.cnblogs.com/Files.aspx去里面找.package At ...
随机推荐
- sql生成连续日期(年份、月份、日期)
此随笔主在分享日常可能用到的sql函数,用于生成连续日期(年份.月份.日期) 具体的看代码及效果吧! -- ============================================= ...
- Lua table笔记
记录我在使用lua的过程中的一些笔记 默认key为数字递增 local tb={"A",[3]="C","B"} 这个tb通过下标1,2,3 ...
- python创建列表和向列表添加元素方法
今天的学习内容是python中的列表的相关内容. 一.创建列表 1.创建一个普通列表 >>> tabulation1 = ['大圣','天蓬','卷帘'] >>> ...
- chmod、acl权限
R:4W:2X:1 chmod g+r file 给所有者的组内用户加上读的权限chmod o+r file 给其他组用户加上读的权限chmod a+x file 给所有用户加上写执行的权限chmod ...
- C# 隐藏最大化、最小化和关闭三个按钮
在Windows的窗体编程中,基本上每一个窗体都是一个最小化.最大化和关闭按钮的. 一.禁用最大化和最小化 对于最大化和最小化按钮,在C#窗体开发时,各一个属性来启用或禁用这两个按钮. this.Ma ...
- 【转】vue父子组件之间的通信
vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不同情况下又各有不同.最常见的就是父组件为控制组件子组件为视图组件.父组件传递数据给子组件使 ...
- js data日期初始化的5种方法 [转]
创建一个日期对象: 复制代码代码如下: var objDate=new Date([arguments list]); 参数形式有以下5种: 1)new Date("month dd,yy ...
- move或rebuild lob分区对象
当使用如下语法移动或重建一个lob分区对象,将报错: SQL> alter table SHOW_LOB_STORAGE move lob(DDD) store as (tablespace P ...
- 第2章 Java并发机制的底层实现原理
2.2 synchronized的实现原理与应用 当一个线程A执行字节码时遇到monitorenter指令时,会首先检查该指令关联的Object的对象头中的Mark Word状态. 2.2.1 如果是 ...
- leetcode 153. Find Minimum in Rotated Sorted Array 、154. Find Minimum in Rotated Sorted Array II 、33. Search in Rotated Sorted Array 、81. Search in Rotated Sorted Array II 、704. Binary Search
这4个题都是针对旋转的排序数组.其中153.154是在旋转的排序数组中找最小值,33.81是在旋转的排序数组中找一个固定的值.且153和33都是没有重复数值的数组,154.81都是针对各自问题的版本1 ...