模拟银行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 ...
随机推荐
- python shell与反弹shell
python shell与反弹shell 正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接 反弹shell,攻击端是服务端,被攻击端是客户端正常shell,攻击端是客户端, ...
- 为什么会出现Notice: Undefined index: submit in D:\xampp\htdocs\test.php on line 19
事例如下": <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- xshell远程登录工具的星号密码查看方法
当我们在使用ftp,或者xshell等远程登录工具的时候,连接的密码是用星号*处理的,无法查看到,该如何查看到原始的密码呢? 推荐一款星号密码查看器,可以查看一些软件的带星号的密码,非常好用. 下载地 ...
- 解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题
我这里故意放了一个超过100M的文件 后续,git add ,git commit 然后,git push 此时会发现出现了错误.如果,我们再这里直接在文件系统中删除这个大的文件,然后再次提交,会发现 ...
- C语言 文件的读写操作
//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ #include<stdio.h> #include<stdlib.h> void ...
- Linux中“!"的神奇用法
前言 实际上,不起眼的“!”在linux中有着很多让你惊叹的妙用.本文就来细数那些“!”的神奇用法. 执行上一条命令 例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令: $ wher ...
- 第一次使用Open Live Writer维护BlogJava
换了电脑,又重装了一堆东西,现在才把Open Live Writer整好.顺便记下几个心得: Open Live Writer已经没办法从网站上下载了,介绍个方法,可以把地址直接拷贝到迅雷里面,然后请 ...
- node 打开浏览器
npm install --save opn const opn = require('opn'); // 使用默认浏览器打开 // opn('http://sindresorhus.com'); / ...
- MySQL高级知识(五)——索引分析
前言:前面已经学习了explain(执行计划)的相关知识,这里利用explain对索引进行优化分析. 0.准备 首先创建三张表:tb_emp(职工表).tb_dept(部门表)和tb_desc(描述表 ...
- windows通过node环境搭建安装npm,cnpm,vue-cli
1首先下载node,官网地址:https://nodejs.org/en/ 左边是稳定版,右边是最新版,安装过程一样,我选择的是稳定版. 按照步骤一步一步的安装就行,注意路径就可以了. 友情链接:ht ...