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. 【HADR】搭建实战

    Summary: 简单的HADR,只用一台虚拟机,两个实例间搭建.工作量不大,一般5分钟左右能够完成. 步骤: 1.设定归档模式 2.使用备份建立standby数据库 3.设定hadr相关的参数 4. ...

  2. 老司机谈APK瘦身套路-图片资源篇

    APK作为Android系统安装包的文件格式,一直备受广大用户的关注,APK越是臃肿肥大,在下载安装过程中,它们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率会越低(因为竞品中 ...

  3. Android AES加密工具类实现(基础回顾)

    package com.powercreator.cms.util; import java.security.SecureRandom; import javax.crypto.Cipher; im ...

  4. JavaScript数据结构-16.二叉树计数

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

  5. devise在引擎中安装后,设置访问自定义页面

    rails generate devise:views User Turn on scoped_views in config/initializer/devise.rb view config.sc ...

  6. 使用go实现的lisp

    去年10月份的时候,就有这个打算了. 也是在上个月左右,抽空弄出来了个go语言实现的lisp. 当然,不能和common lisp比,函数的数量是远远不如的,也不能自己定义类型/类,同时宏系统也非常简 ...

  7. 删除Panl控件中窗体的方法

    //删除窗体方法 private void CloseFrm() { foreach (Control item in panel1.Controls) { if (item is Form) //判 ...

  8. 百度搜索URL参数含义

    序号 参数 含义 1 tn 搜索框所属网站.比如 tn=sitehao123,就是 http://www.hao123.com/ 左上那个搜索框(指通过什么方式到达百度首页搜索界面;) 2 s?wd ...

  9. [javaSE] IO流(管道流)

    之前我们使用io流,都是需要一个中间数组,管道流可以直接输入流对接输出流,一般和多线程配合使用,当读取流中没数据时会阻塞当前的线程,对其他线程没有影响 定义一个类Read实现Runable接口,实现r ...

  10. java四则运算----前缀、中缀、后缀表达式

    接到一个新需求,需要实现可配置公式,然后按公式实现四则运算. 刚拿到需求,第一反应就是用正则匹配‘(’,‘)’,‘+’,‘-’,‘*’,‘/’,来实现四则运算,感觉不复杂. 然后开始coding.发现 ...