标题:求eclipse swing插件附模拟银行存取代码
只看楼主
lyzly520
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-5-30
 问题点数:0 回复次数:1 
求eclipse swing插件附模拟银行存取代码
百度中找了半天不知在哪下载 有谁给个地址哈...
刚在CSDN上找到一个 不过那里我的ID没积分了 下不了
郁闷...
我邮箱super_lyz@不大的话发我也行 先谢谢了哈
下面是我刚完成的模拟银行存取的代码  我用eclipse3.3的
程序代码:
package com.hb.bank;

import    java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

//import java.text.SimpleDateFormat;
//import java.util.Calendar;

public class Bank {
    static BufferedReader br = new BufferedReader(new InputStreamReader(
            System.in));// 输入流

    private static String name;// 定义用户名

    private static String password;// 定义用户密码

    private static double money;// 定义初始余额

    private double saveMoney;// 定义存款变量

    private double takeMoney;// 定义取款变量

    private int saveFlag = 0;// 定义存款操作记录变量

    private int takeFlag = 0;// 定义取款操作记录变量

    String saveDate;// 定义存款时间变量

    String takeDate;// 定义取款时间变量

    int choose;// 定义选择菜单的变量

    ArrayList saveTime = new ArrayList();// 定义动态数组用来存储存款时间

    ArrayList takeTime = new ArrayList();// 定义动态数组用来存储取款时间

    ArrayList save_Money = new ArrayList();// 定义动态数组用来存储取款数目

    ArrayList take_Money = new ArrayList();// 定义动态数组用来存储取款数目

    DecimalFormat df = new DecimalFormat("0.00");// 格式化小数 保留2位

    /**
     * 带参数:账户密码money的构造方法
     */
    public Bank(String name, String password, double money) {
        this.name = name;
        this.password = password;
        this.money = money;
    }

    /**
     * 用户登陆
     */
    public void login() {
        int i = 3;// 定义一个计数器
        // String getName = null;// 初始化输入用户名的字符
        // String getPassword = null;// 初始化输入密码的字符

        // 构造while循环判断输入直到正确
        while (true) {
            System.out.print("请输入用户名:");
            try {
                name = br.readLine();
            } catch (IOException e) {

            }
            System.out.print("请输入密码:");
            try {
                password = br.readLine();
            } catch (IOException e) {

            }
            if (name.equals("admin") && password.equals("admin")) {
                System.out.flush();
                System.out.println("恭喜你,成功登陆!");
                System.out.println("你的余额为" + df.format(money) + "元");
                break;

            } else {
                i--;// 错误一次 计数器递减
                if (i == 0) {
                    System.out.println("输入超过最大次数!程序退出");
                    System.exit(0);
                    // 3次错误 程序退出
                }
                System.out.println("对不起,您输入的用户名或密码错误,请重新输入:" + "你还有" + i
                        + "次机会");

            }

        }

    }

    /**
     * 系统主菜单
     */
    public void showMenu() {
        choose = 0;
        System.out.println("请选择您要进行的操作:1.存款 2.取款 3.查询 4.退出");
        try {
            String strTemp=br.readLine();
//            choose = Integer.parseInt(br.readLine());
            //保证输入的字符长度为1
            if(strTemp.length()==1){
                choose=Integer.parseInt(strTemp);
                // 读取字符转化为int型
            }else
                System.out.println("请输入合法数字");
            
        } catch (NumberFormatException e1) {
            System.out.println("请输入合法数字");
        } catch (IOException e1) {

        }

    }

    /**
     * 定义存款方法
     */
    public void saveMoney() {
        while (true) {
            System.out.println("请输入你要存储的金额(注意请输入数字)输入数字0回菜单:");

            try {
                String strTemp = br.readLine();
                saveMoney = Double.parseDouble(strTemp);
                if (!judgeDouble(strTemp)) {
                    System.out.println("不能包涵非法字符如1D,1d,1f,1F,或以.和-开头");
                    continue;
                }
            } catch (NumberFormatException e) {
                System.out.println("输入错误,请输入数字");
                continue;

            } catch (IOException e) {

            }

            // 输入数字0回菜单
            if (saveMoney == 0) {
                break;
            }

            money += saveMoney;

            // saveDate = new Date();
            saveDate = getTime();// 获取时间格式
            saveTime.add(saveDate);// 添加时间进动态数组
            save_Money.add(saveMoney);// 添加存款数进动态数组
            System.out.println("存款成功!已存入" + df.format(saveMoney) + "元"
                    + "你的可用余额为" + df.format(money) + "元");

            saveFlag++;// 操作记数器

            break;
        }
    }

    /**
     * 定义取款方法
     */
    public void takeMoney() {
        while (true) {
            System.out.println("请输入你要取款的金额(注意请输入数字)输入数字0回菜单:");

            try {
                String strTemp = br.readLine();
                takeMoney = Double.parseDouble(strTemp);
                if (!(judgeDouble(strTemp))) {
                    System.out.println("不能包涵非法字符如1D,1d,1f,1F,或以.-+等开头");
                    continue;
                }

            } catch (NumberFormatException e) {
                System.out.println("输入错误,请输入数字");
                continue;
            } catch (IOException e) {

            }

            // 输入数字0回菜单
            if (takeMoney == 0) {
                break;
            }

            // 输入的数目比余额大就不能取款
            if (!(money < takeMoney)) {

                money -= takeMoney;// 余额减少
                System.out.println("取款成功!已取出" + df.format(takeMoney) + "元."
                        + "你的余额为" + df.format(money) + "元");

                // takeDate = new Date();
                takeDate = getTime();// 获取时间格式
                takeTime.add(takeDate);// 添加时间进动态数组
                take_Money.add(takeMoney);// 添加取款进动态数组

                takeFlag++;// 操作记数器
                break;
            } else {
                System.out.println("余额不足,请重新输入:");
                continue;// 返回继续输入
            }

        }
    }

    /**
     * 定义查询方法
     */
    public void findRecode() {
        System.out.println("你的余额为" + df.format(money) + "元;");

        // 如果操作计数器为0 则执行循环打印
        if (saveFlag == 0) {
            System.out.println("您没有存款纪录!");
        } else {
            for (int i = 0; i < saveTime.size(); i++) {
                System.out.println("您在" + saveTime.get(i) + "存入"
                        + df.format(save_Money.get(i)) + "元");
            }

        }
        if (takeFlag == 0) {
            System.out.println("您没有取款纪录!");
        } else {
            for (int j = 0; j < takeTime.size(); j++) {
                System.out.println("您在" + takeTime.get(j) + "取出"
                        + df.format(take_Money.get(j)) + "元");
            }
        }
    }

    /**
     * 构造函数 登陆成功进行操作
     */
    public Bank() {
        // String choose = null;
        while (true) {
            showMenu();
            switch (choose) {

            // 存款
            case 1:
                saveMoney();// 调用存款方法
                break;

            // 取款
            case 2:
                takeMoney();// 调用取款方法
                break;

            // 输入3为查询
            case 3:
                findRecode();// 调用查询方法
                break;

            // 输入4为退出
            case 4:
                System.out.println("程序退出");
                System.exit(0);

                // 输入其它的就为不合法,返回重新输入
            default: {
                System.out.println("输入无效!请认真输入");
                break;
            }
            }
        }
    }

    /**
     * 获得系统当前时间
     */
    public String getTime() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
        return sdf.format(new Date(System.currentTimeMillis()));// new
        // Date()为获取当前系统时间

    }

    /**
     * 判断用户输入的浮点数是否为“.xx”、“-xx”、“+xx”、“xxd/D”、“xxf/F”、“xxxe/Ex”型数据,这些数据输入在银行系统是不被允许的
     * 
     * @param floatString
     *            用户输入的浮点数字符串(必须已经确定是浮点数!)
     * @return 若floatString是“.xx”、“-xx”、“+xx”、“xxd/D”、“xxf/F”、“xxxe/Ex”型数据则返回false,否则返回true
     */
    public boolean judgeDouble(String floatString) {
        if ('.' == floatString.charAt(0) || '-' == floatString.charAt(0)
                || '+' == floatString.charAt(0))// 判断用户是否输入了“.xx”、“-xx”、“+xx”数据,若是返回false
        {
            return false;
        }
        for (int i = 0; i < floatString.length(); i++) {
            if ('e' == floatString.charAt(i) || 'E' == floatString.charAt(i))// 如果输入的是中间带e/E的数据(即科学计数法数据),则返回false
            {
                return false;
            } else if ('d' == floatString.charAt(i)
                    || 'D' == floatString.charAt(i))// 如果输入的是结尾带d/D的数据,则返回false
            {
                return false;
            } else if ('f' == floatString.charAt(i)
                    || 'F' == floatString.charAt(i))// 如果输入的是结尾带f/F的数据,则返回false
            {
                return false;
            }

        }

        return true;

    }

    /**
     * 入口函数
     */
    public static void main(String[] args) throws IndexOutOfBoundsException {

        Bank b = new Bank(name, password, money);
        b.login();// 调用登陆
        new Bank();// 实例构造方法
    }
}

搜索更多相关主题的帖子: eclipse swing 银行 插件 存取 
2008-05-30 22:50
qiuhan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-5-3
得分:0 
先谢谢了啊!!!
2008-06-20 21:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-216778-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.403610 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved