package Demo;

import java.util.Date;
import java.util.Scanner;
//date是数据库中的一个用法,初始化后输出的是操作时的时间
public class Test3 {
static int n=0;//用于计算共有多少个账户
static int bo=0;//用来判断取款是否成功
static account []a=new account [50];//创建数组,用来存账户
static String yh;//存取进行操作的账号
static int m=0;//用来记录要操作的账户是数组中的第几个
static int o=0;//用来记录要转账的账户是数组中的第几个
static String mm;//用来存储要操作的账户的密码
static char ch='x';//while循环使用
static Scanner sca=new Scanner(System.in);//用于输入内容
public static void main(String []args)
{
a[n++]= new account("1","2","3","4",500.0);//创建一个账户
a[n++]= new account("2","3","4","4",1000.0);//创建一个账户 //输入用户账号和密码
//如果账号输入错误就重新输入,如果密码输入错误就退出操作
//输入账号 while(ch=='x')
{
System.out.println("请输入你的账号");
yh=sca.next();
System.out.println("请输入你的密码");
mm=sca.next();
int n2=0;//用来判断是否账号输入正确
for(int i=0;i<n;i++)
{
if(a[i].getcdnum().equals(yh))
{
n2=1;
m=i;
} }
if(n2==0)
{
System.out.println("你输入的卡号是错的,请重新输入");
}
else
{
ch='z';
}
} //输入密码 int n1=0;
if(a[m].getmima().equals(mm))
{
n1=1;
}
if(n1==0)
{
System.out.println("密码错误,无法进行操作");
}
//用户操作
else
{
while(ch=='z')//因为ch是static的,所以ch已被改编成‘z’
{
System.out.println("请输入你需要进行的操作:");
System.out.println("1:存款");
System.out.println("2:取款");
System.out.println("3:转账汇款");
System.out.println("4:修改密码");
System.out.println("5:查询余额");
System.out.println("6:退出"); int xz=sca.nextInt();//输入选项 switch (xz)
{
case 1://存款
{
System.out.println("请输入存款的金额");
int j1=sca.nextInt();
cunkuan(j1);
System.out.println("余额是"+a[m].getye());//输出进行的操作类型和进行操作的时间 break;
}
case 2://取款
{ qukuan();
if(bo==1)
{
System.out.println("取款成功");
a[m].settype("取款");
System.out.println(a[m].getdate().toString() + a[m].gettype());//输出进行的操作类型和进行操作的时间
}
else
{
System.out.println("取款失败");
}
break;
}
case 3://转账
{ System.out.println("请输入需要转账的账户");
String cd1=sca.next();
int tj=0;
for(int i=0;i<n;i++)
{
if(a[i].getcdnum().equals(cd1))
{
o=i;
tj=1;
}
}
if(tj==0)
{
System.out.println("账号错误");
}
else
{
System.out.println("请输入需要转的金额");
double j1=sca.nextDouble();
if(a[m].getye()<j1)
{
System.out.println("余额不足");
}
else
{
zhuanzhang(cd1,j1);
a[m].settype("转账");
System.out.println(a[m].getdate().toString()+a[m].gettype());
}
}
break;
}
case 4://修改密码
{
System.out.println("请输入原密码:");
String m1=sca.next();
if(a[m].getmima().equals(m1))
{
System.out.println("请输入新的密码:");
String m2=sca.next();
a[m].setmima(m2);
a[m].settype("修改密码");
System.out.println(a[m].getdate().toString()+a[m].gettype());
}
else
{
System.out.println("密码输入错误");
}
break;
}
case 5://显示余额
{
System.out.println("余额是"+a[m].getye());
a[m].settype("显示余额");
System.out.println(a[m].getdate().toString()+a[m].gettype());
break;
}
case 6://退出
{
ch='x';
}
}
}
}
}
private static account account(String string, String string2, String string3, String string4, double d) {
// TODO Auto-generated method stub
return null;
}
static void cunkuan(double ck)
{
double c=a[m].getye();
a[m].setye(c+ck);
a[m].settype("存款");
a[m].setdate(); System.out.println(a[m].getdate().toString() + a[m].gettype());
}
static int qukuan()
{
bo = 0;//bo是静态的,所以需要在使用时,重新置为零
System.out.println("请输入你需要取款的金额:");
System.out.println("1:100元");
System.out.println("2:500元");
System.out.println("3:1000元");
System.out.println("4:1500元");
System.out.println("5:2000元");
System.out.println("6:5000元");
System.out.println("7:其他");
int sz=sca.nextInt();
switch(sz)
{
case 1:
{
if(a[m].getye()>=100)
{
a[m].setye(a[m].getye()-100);
bo=1;
}
break;
}
case 2:
{
if(a[m].getye()>=500)
{
a[m].setye(a[m].getye()-500);
bo=1;
}
break;
}
case 3:
{
if(a[m].getye()>=1000)
{
a[m].setye(a[m].getye()-1000);
bo=1;
}
break;
}
case 4:
{
if(a[m].getye()>=1500)
{
a[m].setye(a[m].getye()-1500);
bo=1;
}
break;
}
case 5:
{
if(a[m].getye()>=2000)
{
a[m].setye(a[m].getye()-2000);
bo=1;
}
break;
}
case 6:
{
if(a[m].getye()>=5000)
{
a[m].setye(a[m].getye()-5000);
bo=1;
}
break;
}
case 7:
{
System.out.println("请输入你想取的金额");
double sz1=sca.nextDouble();
if(a[m].getye()>=sz1)
{
a[m].setye(a[m].getye()-sz1);
bo=1;
}
break;
}
}
return bo;
}
static void zhuanzhang(String cd,double j)
{
a[m].setye(a[m].getye()-j);//要操作的账户余额减去j
a[o].setye(a[o].getye()+j);//要转账的用户余额加上j
}
}
class account{
private String cdnum;//银行卡号
private String name;//用户姓名
private String type;//操作类型
private Date date;//操作时间
private String mima;//密码
private double ye;//余额
account(String c,String n,String d,String m,double y)
{
cdnum=c;
name=n;
date=new Date();
mima=m;
ye=y;
type = "创建账户";
}
void setcdnum(String c)
{
cdnum=c;
}
String getcdnum()
{
return cdnum;
}
void setname(String n)
{
name=n;
}
String getname()
{
return name;
} void settype(String n)
{
type=n;
}
String gettype()
{
return type;
} void setdate()
{
date = new Date();
}
Date getdate()
{
return date;
}
void setmima(String m)
{
mima=m;
}
String getmima()
{
return mima;
}
void setye(double y)
{
ye=y;
}
double getye()
{
return ye;
}
}

java编写银行管理 。ATM管理的更多相关文章

  1. 第一次尝试使用JAVA编写的ATM机程序

    package study; import java.util.Scanner; public class ATM { private static int[] users = { 111111, 2 ...

  2. JAVA中GridBagLayout布局管理器应用详解

    很多情况下,我们已经不需要通过编写代码来实现一个应用程序的图形界面,而是通过强大的IDE工具通过拖拽辅以简单的事件处理代码即可很轻松的完成.但是我们不得不面对这样操作存在的一些问题,有时候我们希望能够 ...

  3. Java平台与内存管理

    问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.8Java平台与内存管理 1.为什么说Java是平台独立性语言? 平台独立性是指可以在一个平台上编写和编译程序, ...

  4. 选择 Java 编写 iOS 与 安卓 App的八大理由

    [编者按]本文作者为 RoboVM 的 CEO 兼联合创始人 Henric Müller,主要介绍选用 Java 编写移动应用的八大理由.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在过 ...

  5. 基于 Web 的数据挖掘--自动抽取用 HTML、XML 和 Java 编写的信息

    简介: 不可否认,万维网是到目前为止世界上最丰富和最密集的信息来源.但是,它的结构使它很难用系统的方法来利用信息.本文描述的方法和工具将使那些熟悉 Web 最常用技术的开发人员能快速而便捷地获取他们所 ...

  6. 网页动物园2.0发布,经过几个月的努力,采用JAVA编写!

    网页动物园2.0发布,经过几个月的努力,采用JAVA编写! 网页动物园2.0 正式发布!游戏发布 游戏名称: 网页动物园插件 游戏来源: 原创插件 适用版本: Discuz! X1.5 - X3.5 ...

  7. JVM内存管理------JAVA语言的内存管理概述

    引言 内存管理一直是JAVA语言自豪与骄傲的资本,它让JAVA程序员基本上可以彻底忽略与内存管理相关的细节,只专注于业务逻辑.不过世界上不存在十全十美的好事,在带来了便利的同时,也因此引入了很多令人抓 ...

  8. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  9. java 编写hadoop程序中使用第三方libxx.so库

    在使用java编写hadoop处理程序时遇到了,java使用依赖的第三方libxx.so库的情况,找到了一种可行的方法,记录一下,希望对别人也有帮助: 加入需要使用的lib库为libxxx.so 1. ...

随机推荐

  1. Zynq-7000 FreeRTOS(二)中断:串口Uart中断

    总结Zynq-7000器件的PS上的串口中断,为FreeRTOS中断实验做准备.

  2. 安装CentOS 7.4时服务器出现No Caching mode page found问题的解决方法

    2019-03-27 前提准备条件: 操作系统:centos 7.4:服务器使用U盘安装,U盘使用UltraISO制作启动盘 安装过程出现的问题: [sdb] No Caching mode page ...

  3. JavaScript数据结构-17.图结构

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. Rechnernetz

    1.Der Aufbau des Internets 1.1 Randabschnitt Er besteht aus Rechner,der mit Internet verbunden ist.D ...

  5. Scrum 冲刺博客第六篇

    一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 判断用户输入的答案是否正确并将其输出到界面中 今天计划完成的工作 对排行榜 ...

  6. Django 中文文档地址

    http://djangobook.py3k.cn/2.0/ MK一下

  7. C C++ OC指针常量和常量指针区别

    看Effective Objective-C 2.0  编写高质量iOS与OS X代码的52个有效方法这本书的时候看到有一个说多用类型常量,少用#define预处理指令 ,在这里面有说到指针常量,之前 ...

  8. [MVC]多文件、超大文件上传

    话不多说,上代码. <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script> & ...

  9. spring security认证

    1 开发基于表单的认证 Spring security核心的功能 认证(你是谁?) 授权(你能干什么?) 攻击防护(防止伪造身份) spring security实现了默认的用户名+密码认证,默认用户 ...

  10. docker部署ELK日志处理

    docker环境下部署的ELK系统,日志处理,保留最近五个小时的日志 dockerlog.sh #!/bin/bash logs=`find /var/lib/docker/containers/ - ...