求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();// 实例构造方法 } }