java编写银行管理 。ATM管理

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;
    }
}
时间: 2024-10-18 07:02:15

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

Java内存分配、管理小结

 想写这篇总结酝酿了有个来月了,却始终感觉还差点什么东西,一直未敢动笔. 最近两天连夜奋战,重新整理下前面查阅的资料.笔记,还是决定将它写出来. 现在提出几个问题,如果都能熟练回答的大虾,请您飘过.如以往一样,我是小菜,本文自然也是针对小菜阶层的总结. 首先是概念层面的几个问题: Java中运行时内存结构有哪几种? Java中为什么要设计堆栈分离? Java多线程中是如何实现数据共享的? Java反射的基础是什么? 然后是运用层面: 引用类型变量和对象的区别? 什么情况下用局部变量,什么情况下用

Java平台与内存管理

问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.8Java平台与内存管理 1.为什么说Java是平台独立性语言? 平台独立性是指可以在一个平台上编写和编译程序,然后在其他平台上运行 保证Java具有平台独立性的机制为中间码和JVM(Java虚拟机),Java程序编译后不是生成了可执行代码,而是 生成了中间码,不同的平台有不同的JVM,由JVM来把中间码翻译成硬件平台能执行的代码(解释执行) 由上述过程可以看出JVM不具有平台独立性,与硬件平台相关 JVM执行中间码(

java编写Base64密码器

Base64加密算法,应用广泛,尤其是在电子邮件传输上,有很大的用途 用JAVA编写的程序代码如下 import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JFrame; import javax.s

交通银行 Java Socket 服务启动 管理 WINDOWS 版

按照交通银行提供的无界面启动方法试验了很多次,都没有成功,所以自己动手用C# 知识写了一个. 小工具可以判断 交通银行 JAVA SOCKET 服务是否启动,并可以启动/关闭服务 主要代码如下: 判断服务是否启动 引用 :using System.Management; SelectQuery selectQuery = new SelectQuery(“select * from Win32_Process where Name = ‘java.exe’”); object cmdLine =

Java中的会话管理——HttpServlet,Cookies,URL Rewriting(译)

参考谷歌翻译,关键字直接使用英文,原文地址:http://www.journaldev.com/1907/java-session-management-servlet-httpsession-url-rewriting Java Web应用程序中的会话管理(Session Management)是一个非常有趣的话题.Java Servlet中的会话通过不同的方式进行管理,例如Cookie,HttpSession API,URL重写等. 这是Java Web应用程序系列教程中的第三篇文章,您可能

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

引言 内存管理一直是JAVA语言自豪与骄傲的资本,它让JAVA程序员基本上可以彻底忽略与内存管理相关的细节,只专注于业务逻辑.不过世界上不存在十全十美的好事,在带来了便利的同时,也因此引入了很多令人抓狂的内存溢出和泄露的问题. 可怕的事情还不只如此,有些使用其它语言开发的程序员,给JAVA程序员扣上了一个"不懂内存"的帽子,这着实有点让人难以接受.毕竟JAVA当中没有malloc和delete.没有析构函数.没有指针,刚开始接触JAVA的程序员们又怎么可能接触内存这一部分呢,更何况有不

java笔记--用ThreadLocal管理线程,Callable&lt;V&gt;接口实现有返回值的线程

用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程 ThreadLocal在我的笔记"关于线程同步"的第5种方式里面有介绍,这里就不多说了. --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3899890.html  "谢谢-- Callable<V>接口类似于Runnable,两者都是为了哪些其实例可能被另一个线程执行的类设计的, 但是Runnable不会返回

Java编写最大公约数和最小公倍数

package javaapplication24; class NegativeIntegerException extends Exception{ String message; public NegativeIntegerException(){ message="方法的参数值不是正整数";} public String toString(){ return message;} } class MaxCommonDivisor{ public int getMaxCommonD

java编写输入一个数判断是否是回文数,所谓回文数比如121,1221,6778776

package com.hao947; import java.util.Scanner; public class demo5 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int x = 0; x = scanner.nextInt(); System.out.println("请输入一个4-8位的数"); int dig[] = new int[10]; i