java自动取款机模拟程序报告含源代码

合集下载

Java实现ATM取款机程序

Java实现ATM取款机程序

Java实现ATM取款机程序本⽂实例为⼤家分享了Java实现ATM取款机程序的具体代码,供⼤家参考,具体内容如下对象说明:功能:该程序的功能为实现模拟银⾏ATM⾃动取款机取款,存款,查询余额,转账等功能,只是完成了基本的功能。

思路:第⼀、登录判断,密码限制三次,使⽤for循环。

第⼆、成功登录,选择相应的功能,使⽤switch语句。

第四、实现功能的反复循环操作,因为次数不确定,使⽤while结构。

第五、对每个功能模块进⾏填充完善。

代码展⽰:import java.util.Scanner;public class BankATM {public static void main(String[] args) {Scanner input = new Scanner(System.in);String cardNum = "6228123123"; // 卡号int pwd = 888888; // 密码boolean flag = true; // 声明布尔类型变量double surplus = 1000;// 余额// 界⾯System.out.println("---------欢迎使⽤⼯商银⾏ATM机---------");/** ⽤于进⾏登录的次数限制⽌ **/for (int i = 1; i <= 3; i++) {System.out.println("请插⼊您的银⾏卡:");String inputCard = input.next();System.out.println("请输⼊您的密码:");int inputPwd = input.nextInt();// 验证账号和密码if (inputCard.equals(cardNum) && inputPwd == pwd) {flag = true;break;} else {if (i <= 2) {System.out.println("对不起,密码输⼊不正确,你还有" + (3 - i) + "次机会!");} else {System.out.println("对不起,您的卡已被锁定!");break;}flag = false;}}/** 登录成功后选择功能 */if (flag) {char answer = 'y';while (answer == 'y') {System.out.println("请选择功能:1.取款 2.存款 3.查询余额 4.转账 5.退出");int choice = input.nextInt();switch (choice) {case 1:// 执⾏取款操作System.out.println("--->取款");System.out.println("请输⼊取款⾦额:");double getMoney = input.nextDouble();if (getMoney > 0) {if (getMoney <= surplus) {if (getMoney % 100 == 0) {System.out.println("请取⾛您的钞票!余额为¥" + (surplus - getMoney));} else {System.out.println("对不起,不能取零钱!");}} else {System.out.println("对不起,余额不⾜!");}} else {System.out.println("请输⼊正确的⾦额:");}break;case 2:// 执⾏存款操作System.out.println("--->存款");System.out.println("请把钞票整理后放⼊存钞⼝:");double saveMoney = input.nextDouble();if (saveMoney > 0 && saveMoney <= 10000) {if (saveMoney % 100 == 0) {surplus += saveMoney;System.out.println("存款成功!余额为¥" + surplus);} else {double backMoney = saveMoney % 100;surplus = saveMoney + surplus - backMoney;System.out.println("存款成功!余额为¥" + surplus);System.out.println("请取⾛零钱¥" + backMoney);}} else if (saveMoney > 10000) {System.out.println("⼀次最多存⼊⼀万元,请分批存⼊!");} else {System.out.println("存⼊的钞票是假钞,⽆效没收!");}break;case 3:// 执⾏查询余额System.out.println("--->查询余额");System.out.println("您卡上的余额是:" + surplus);break;case 4:// 执⾏转账操作System.out.println("--->转账");System.out.println("请输⼊转账⾦额:");double goMoney = input.nextDouble(); // 转账⾦额if (goMoney > 0) {if (goMoney <= surplus) {System.out.println("转账成功!余额为¥" + (surplus - goMoney)); } else {System.out.println("对不起,请确保卡上有⾜够的余额!");}} else {System.out.println("转账失败!请输⼊正确的⾦额:");}break;case 5:// 执⾏退出操作// System.out.println("--->退出");System.out.println("谢谢您的使⽤!");return;default:System.out.println("对不起,您选择的功能有误!");break;}// switch endSystem.out.println("继续吗?y/n");answer = input.next().charAt(0);} // while endSystem.out.println("谢谢您的使⽤!");}}}效果截图:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

Java项目实现模拟ATM机

Java项目实现模拟ATM机

Java项⽬实现模拟ATM机本⽂实例为⼤家分享了Java实现模拟ATM机的具体代码,供⼤家参考,具体内容如下项⽬名称模拟ATM机项⽬描述简单实现ATM机功能代码实现测试类public class Test {//模拟多功能ATM机public static void main(String[] args) {ATM atm = new ATM();atm.opearte();}}主类:实现主⽅法public class ATM {private Bank bank;public ATM(){bank = new Bank();}private void success(BankCard bankCard) {while (true) {System.out.println("请选择:1、查询余额,2、取款,3、存款,4、转账,5、退卡");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();if (choice == 5) {return;}switch (choice) {case 1:int money = bank.printf(bankCard);System.out.println("余额:" + money);break;case 2:System.out.println("请输⼊取款⾦额:");money = scanner.nextInt();bankCard.withdraw(money);break;case 3:System.out.println("请输⼊存款⾦额:");money = scanner.nextInt();bankCard.deposit(money);break;case 4:System.out.println("请输⼊对⽅账户id:");int id = scanner.nextInt();BankCard card = bank.transfer(id);if(card != null){System.out.println("请输⼊转账⾦额:");money = scanner.nextInt();if(money <= bankCard.getMoney()){bankCard.withdraw(money);card.deposit(money);}else {System.out.println("转账失败");}}else {System.out.println("未找到该账户");}break;default:}}}private void login(){ //登录System.out.println("请输⼊账号,密码");Scanner scanner = new Scanner(System.in);int id = scanner.nextInt();int password = scanner.nextInt();BankCard bankCard = bank.search(id,password);if(bankCard != null){System.out.println("登录成功");success(bankCard);}else {System.out.println("登录失败,请注册");}}private void register(){ //注册System.out.println("请输⼊账号,密码");Scanner scanner = new Scanner(System.in);int id = scanner.nextInt();int password = scanner.nextInt();BankCard bankCard = bank.search(id,password);if(bankCard != null){System.out.println("该账号已存在,请直接登录");}else {bank.addcard(id,password);System.out.println("注册成功");}}public void opearte() {while (true) {System.out.println("请选择:1、登录,2、注册,3、退出");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();if (choice == 3) {return;}switch (choice) {case 1:login();break;case 2:register();break;default:}}}}银⾏类:⼀个银⾏对应多个ATM机public class Bank {private BankCard[] bankCards;private final int INITSIZE = 10;private int size;public Bank(){bankCards = new BankCard[INITSIZE];size = 0;}public BankCard search(int id,int password){ //搜索BankCard[] bankCard = bankCards;for(int i=0;i<size;i++){if(bankCards[i].getId() == id && bankCards[i].getPassword() == password){ return bankCard[i];}}return null;}public void addcard(int id,int password){ //注册BankCard bankCard = new BankCard(id, password);if (size == bankCards.length){bankCards = Arrays.copyOf(bankCards,bankCards.length * 2);}bankCards[size++] = bankCard;}public int printf(BankCard bankCard){ //显⽰余额return bankCard.getMoney();}public BankCard transfer(int id){for(int i=0;i<size;i++){if(bankCards[i].getId() == id){return bankCards[i];}}return null;}}银⾏卡类:不同账户的操作public class BankCard {private int id;private int password;private int money;private int size = 0;public BankCard(int id,int password){this.id = id;this.password = password;money = 0;}public int getId(){return id;}public int getPassword(){return password;}public int getMoney(){return money;}public void withdraw(int money){ //取款if(this.money >= money){this.money -= money;}else {System.out.println("取款失败");}}public void deposit(int money){ //存款this.money += money;}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

Java模拟实现ATM机

Java模拟实现ATM机

Java模拟实现ATM机Java模拟ATM机,供⼤家参考,具体内容如下实现登录,查询,转账,取款,修改密码,退出功能。

源码package bank;import java.io.*;import java.util.Scanner;//ATM类public class Atm {private String[] user;//⽤户全部信息private double money;//修改钱数private double userMoney;//⽤户的钱private String newPassword;private String userInFo;private int index;private int a =0;private int count = 10;public void show(){//显⽰界⾯index = logIn();if(index != -1){working();}}private String[] newStringUser(String[] str){count=count+10;String[] newUser = new String[count];for(int i=0;i<a;i++)newUser[i] = str[i];return newUser;}private void getUser(){//从⽂件获取全部⽤户String str;String[] strings = new String[count];File file = new File("src\\bank\\user");FileReader fileReader = null;BufferedReader bufferedReader = null;try{fileReader = new FileReader(file);bufferedReader = new BufferedReader(fileReader);while((str = bufferedReader.readLine())!=null){if(a<=count)strings[a++] = str;elsestrings = newStringUser(strings);}user = new String[a];for(int i=0;i<a;i++)user[i] = strings[i];strings = null;}catch(Exception e){e.printStackTrace();if((fileReader!=null)&&(bufferedReader!=null)){try {bufferedReader.close();fileReader.close();} catch (IOException e1) {e1.printStackTrace();}}}}private int logIn(){//⽤户登录getUser();String name,password,user;int number = -1;Scanner input = new Scanner(System.in);a:while(i<3){System.out.println("请输⼊⽤户名:");name = input.nextLine();System.out.println("请输⼊⽤户密码:");password = input.nextLine();user = name + "*" + password;for(int j=0;j<er.length;j++){a = er[j].split("\\*");userInFo = a[0]+"*"+a[1];if(userInFo.equals(user)){number = j;break a;}}i++;System.out.println("账户或密码错误请重新输⼊。

ATM自助取款机系统java代码(大全)

ATM自助取款机系统java代码(大全)

ATM自助取款机系统java代码(大全)第一篇:ATM自助取款机系统java代码(大全)public void actionPerformed(ActionEvent e)//界面显示控制 {String IC_Number=“";String password=”“;String IC_No=”“;z30.setVisible(false);floatleftmoney=0;floatmoneys=0;float mon=0;float money1=0;float money2=0;if(true){int No_50=0,No_100=0;String strin=”select NO_50,NO_100 from ATM ATM_ID='123456789'“;ResultSetrsSQLSelect=executeQuery(stri n);try{ if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString(”NO_50“));No_100=Integer.parseInt(rsSQLSelect.getString(”NO_100“));where}}catch(Exception er){System.out.println(”查询ATM机信息出错!“);}if(No_50==0&&No_100==0){z1.setVisible(false);t1.setText(”对不起,本ATM自动取款机暂停服务!“);cl.show(c,”1“);}}cl.show(c,”1“);if(e.getSource()==z1){t3.setText(”“);text1.setText(”“);cl.show(c,”2“);}if(e.getSource()==z4||e.getSource()==z6||e.getSource()==z1 1||e.getSource()==z16||e.getSource()==z18||e.getSource()==z22) { closeDBConnectio n();cl.show(c,”1“);}if(e.getSource()==z2){ closeDBConnection();System.exit(0);}if(e.getSource()==z3){ IC_Number=text1.getText().trim();if(getname(IC_Number)){z5.setVisible(true);pw1.setVisible(true);t4.setVisible(true);pw1.setText(”“);t5.setText(”“);cl.show(c,”3“);}else{t3.setText(”您输入的卡号不存在,请重新输入!“);cl.show(c,”2“);}}if(e.getSource()==z5){password=pw1.getText().trim();IC_Number=text1.getText().tr im();if(!login(IC_Number,password)){t5.setText(”您输入的密码错误,请重新输入!“);pw1.setText(”“);n--;cl.show(c,”3“);}else{t5.setText(”“);cl.show(c,”4“);}if(n<0){n=2;t5.setText(”您已经三次输入错误密码,谢谢您的使用,欢迎下次光临!“);z5.setVisible(false);pw1.setVisible(false);t4.setVisible(false);cl.show(c,”3“);}}if(e.getSource()==z7){t33.setText(”“);cl.show(c,”5“);}if(e.getSource()==z8)//余额查询 { DBAccess d=new DBAccess();String str3=”“;String stri=”“;IC_Number=text1.getText().trim();t29.setText(IC_Number);leftmoney=getmoney(IC_Number);t30.setText(Float.toString(leftmoney));stri=”selectbank_name from IC,bank where IC.bank_NO=bank.bank_NO and IC_ID='“+IC_Number+”'“;ResultSetrsSQLSelect=d.executeQu ery(stri);try{if(rsSQLSelect.next()){str3=rsSQLSelect.getString(”bank_name“);//mit();}} catch(Exception er){}t32.setText(str3);cl.show(c,”10“);}if(e.getSource()==z9){t23.setText(”“);cl.show(c,”9“);}if(e.getSource()==z10){t28.setText(”“);cl.show(c,”11“);}if(e.getSource()==z12){ DBAccess d=new DBAccess();IC_Number=text1.getText().trim();fetchmoney=Integ er.parseInt(text2.getText());if(fetchmoney<=0){t9.setText(”取款金额非法!请重新输入!“);text2.setText(”“);cl.show(c,”6“);return;}if(fetchmoney>1000){t9.setText(”每次交易金额最大为1000元!“);text2.setText(”“);cl.show(c,”6“);return;}if(fetchmoney%50!=0){t9.setText(”取款金额只能为50的倍数!“);text2.setText(”“);cl.show(c,”6“);return;} leftmoney=getmoney(IC_Number);if(fetchmoney>leftmoney){t9.setText(”您的余额不足,请重新输入取款金额!“);text2.setText(”“);cl.show(c,”6“);return;}int No_50=0,No_100=0,x_50=0,x_100=0,mo=0;String str1=”select NO_50,NO_100 from ATM where ATM_ID='123456789'“;ResultSetrsSQLSelect=d.executeQuery(s tr1);try{ if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString(”NO_50“));No_100=Integer.parseIn t(rsSQLSelect.getString(”NO_100“));}}catch(Exception er){System.out.println(”查询ATM机信息出错!“);}x_100=fetchmoney/100;if(No_100{ mo=fetchmoney-No_100*100;x_50=mo/50;if(x_50>No_50){t9.setText(”取款机现钞不足!“);text2.setText(”“);cl.show(c,”6“);return;}else{No_50=No_50-x_50;No_100=0;}}else{No_100=No_100-x_100;x_50=(fetchmoney-x_100*100)/50;if(x_50>No_50){t9.setText(”取款机50面值现钞不足!“);text2.setText(”“);cl.show(c,”6“);return;}else{No_50=No_50-x_50;}}String str2=”update ATM set NO_50=“+No_50+” where ATM_ID='“+ATM_id+”'“;String str3=”update ATM set NO_100=“+No_100+” whereATM_ID='“+ATM_id+”'“;d.executeUpdate(str2);d.executeUpd ate(str3);setmoney(fetchmoney,IC_Number);t12.setText(Float.toString(fetchmoney));cl.show(c,”7“);text2.setText(”");第二篇:ATM取款机java课程设计黄淮学院JAVA 课程设计报告题目:《ATM柜员机》课程设计学院:信息工程学院专业:计算机科学与技术指导老师:二0一三年六月目录课程设计过程概述.......................................................................................3 2 课程设计题目描述和基本设计要求...........................................................3 3 系统需求分析...............................................................................................3 3.1 功能需求分析···················································································· 3 3.2 其他需求分析.................................................................................... 4 4 系统设计........................................................................................................4 4.1 总体设计........................................................................................... 4 4.2 ATM柜员机界面设计......................................................................... 5 4.3 各功能模块设计.. (7)4.3.1 登陆页面模块设计............................................................. 7 4.3.2 选择服务模块设计............................................................. 8 4.3.3 取款模块设计..................................................................... 9 4.3.4 修改密码模块设计............................................................. 9 4.3.5 退卡模块设计. (10)4.4 异常处理情况说明.......................................................................... 10 5 系统实现与测试.........................................................................................11 6 课程设计总结.............................................................................................13 6.1 遇到的问题及解决办法.................................................................. 13 6.2 心得体会......................................................................................... 14 参考文献..........................................................................................................15 附录 (15)ATM初始账号:000000初始密码:123456ATM柜员机课程设计过程概述2013年6月,JAVA课程设计在1#楼六楼机房进行,持续时间为两周。

ATM取款机

ATM取款机

任务描述:1、查询余额:初始余额为10000元。

2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

3、ATM存款:不能出现负存款。

P1:初始界面面板P2:菜单界面面板P3:取款界面面板P4:存款界面面板P5:查询余额界面面板源代码如下:import javax.swing.JOptionPane;public class NewJFrame extends javax.swing.JFrame {String zh,ma;//账号,密码String mon="10000";public NewJFrame() {initComponents();p1.setVisible(true);p2.setVisible(false);p3.setVisible(false);p4.setVisible(false);p5.setVisible(false);}private voidtf1ActionPerformed(java.awt.event.ActionEvent evt) {}private voidtf2ActionPerformed(java.awt.event.ActionEvent evt) {}private voidb1ActionPerformed(java.awt.event.ActionEvent evt) { zh=tf1.getText();ma=tf2.getText();if(zh.equals("")||ma.equals(""))JOptionPane.showMessageDialog(this, "用户名或密码不能为空!请重新输入!", "警告", JOptionPane.WARNING_MESSAGE);if((ma.equals("123456"))&&(zh.equals("000000"))) { p1.setVisible(false);p2.setVisible(true);}else{JOptionPane.showMessageDialog(this, "用户名或密码错误!", "警告", JOptionPane.WARNING_MESSAGE);p1.setVisible(true);tf1.setText("");tf2.setText("");tf1.requestFocus( );p2.setVisible(false);}}private voidb2ActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0);}private voidb3ActionPerformed(java.awt.event.ActionEvent evt) { p2.setVisible(false);p5.setVisible(true);tf5.setText(mon);}private voidb4ActionPerformed(java.awt.event.ActionEvent evt) { p3.setVisible(true);p2.setVisible(false);}private voidb5ActionPerformed(java.awt.event.ActionEvent evt) { p2.setVisible(false);p4.setVisible(true);tf3.setText("");tf3.requestFocus();}private voidb6ActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0);}private voidb7ActionPerformed(java.awt.event.ActionEvent evt) {if(tf5.getText().equals("")){tf5.setText(mon);}int a=Integer.parseInt(tf3.getText());int b=Integer.parseInt(tf5.getText());tf3.setText("");tf3.requestFocus();if(a%50!=0){JOptionPane.showMessageDialog(this, "输入有误!", "警告", JOptionPane.WARNING_MESSAGE);tf3.setText("");tf3.requestFocus();}else{mon=""+(a+b);tf3.setText(""+mon);p4.setVisible(false);p2.setVisible(true);}}private voidb8ActionPerformed(java.awt.event.ActionEvent evt) { p2.setVisible(true);p4.setVisible(false);}private voidb9ActionPerformed(java.awt.event.ActionEvent evt) {if(tf5.getText().equals("")){tf5.setText(mon);}int a=Integer.parseInt(tf4.getText());int b=Integer.parseInt(tf5.getText());if(a%100!=0||a>5000){JOptionPane.showMessageDialog(this, "输入有误!", "警告", JOptionPane.WARNING_MESSAGE);tf4.setText("");tf4.requestFocus();}else{if((b-a)<0){JOptionPane.showMessageDialog(this, "余额不足!", "警告", JOptionPane.WARNING_MESSAGE);tf4.setText("");tf4.requestFocus();}else{mon=""+(b-a);tf5.setText(""+mon);tf4.setText("");p2.setVisible(true);p3.setVisible(false);}}}private voidb10ActionPerformed(java.awt.event.ActionEvent evt) { p2.setVisible(true);p3.setVisible(false);}private voidb12ActionPerformed(java.awt.event.ActionEvent evt) { p2.setVisible(true);p5.setVisible(false);}private voidtf5ActionPerformed(java.awt.event.ActionEvent evt) { }private voidtf4ActionPerformed(java.awt.event.ActionEvent evt) { }private voidtf3ActionPerformed(java.awt.event.ActionEvent evt) { }/*** @param args the command line arguments*/public static void main(String args[]) {java.awt.EventQueue.invokeLater(newRunnable() {public void run() {new NewJFrame().setVisible(true);}});}// Variables declaration - do not modify private javax.swing.JButton b1;private javax.swing.JButton b10;private javax.swing.JButton b12;private javax.swing.JButton b2;private javax.swing.JButton b3;private javax.swing.JButton b4;private javax.swing.JButton b5;private javax.swing.JButton b6;private javax.swing.JButton b7;private javax.swing.JButton b8;private javax.swing.JButton b9;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JLabel jLabel4;private javax.swing.JLabel jLabel5;private javax.swing.JLabel jLabel6;private javax.swing.JLabel jLabel7;private javax.swing.JLabel jLabel8;private javax.swing.JPanel jPanel1;private javax.swing.JPanel jPanel2;private javax.swing.JPanel p1;private javax.swing.JPanel p2;private javax.swing.JPanel p3;private javax.swing.JPanel p4;private javax.swing.JPanel p5;private javax.swing.JTextField tf1;private javax.swing.JPasswordField tf2; private javax.swing.JTextField tf3;private javax.swing.JTextField tf4;private javax.swing.JTextField tf5;// End of variables declaration }。

基于java_ATM机_银行存取款系统的设计与实现(含源文件)

基于java_ATM机_银行存取款系统的设计与实现(含源文件)

本科毕业论文(设计)银行存取款系统的设计与实现姓名:__ ________ 系别: 计算机与信息技术学院_专业:_ 计算机科学与技术_ 学号:__ _____指导教师:__ _ _________年月日目录引论 (1)1银行存取款系统概述 (1)1.1背景 (1)1.2意义 (1)2 银行存取款系统需求分析 (1)2.1系统需求 (1)2.2功能需求 (1)2.2.1用户注册和登陆功能 (1)2.2.2用户存取款转账和查询历史功能 (1)2.3软件属性需求 (2)2.4业务流程描述 (2)3.银行存取款系统总体设计 (2)3.1系统设计概述 (2)3.2注册帐户 (2)3.3登录 (2)3.4存款 (2)3.5取款 (2)3.6转账 (2)3.7查询历史 (2)3.8退出 (3)4 Oracle数据库的设计 (3)4.1 Oracle数据库设计概论 (3)4.2 表的结构设计 (3)4.2.1用户表 (3)4.2.2历史表 (3)4.3 PL/SQL存储过程的设计 (3)4.3.1用户表存储过程的设计 (4)4.3.2历史表存储过程的设计 (4)5 银行存取款系统的实现 (5)5.1用户登陆模块的实现 (5)5.1.1界面样式 (5)5.1.2功能实现 (5)5.2新用户注册模块的实现 (6)5.2.1界面样式 (6)5.2.2功能实现 (6)5.3用户操作模块的实现 (7)5.3.1界面样式 (8)5.3.2功能实现 (8)5.4存款模块的实现 (9)5.4.1界面样式 (9)5.4.2功能实现 (9)5.5取款模块的实现 (10)5.5.1界面样式 (11)5.5.2功能实现 (11)5.6转账模块的实现 (12)5.6.1界面样式 (12)5.6.2功能实现 (12)5.7查询历史记录模块的实现 (15)5.7.1界面样式 (15)5.7.2功能实现 (15)6发布程序及分包规范 (16)结论 (16)参考文献 (17)致谢 (17)银行存取款系统的设计与实现摘要计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。

ATM柜员机模拟系统_代码

ATM柜员机模拟系统_代码

Win.javaimport java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Win extends JFrame implements ActionListener { JTextField text[]=new JTextField[6];JTextArea show=new JTextArea(9,30);JTable table;//标签JButton insert,update,select,delete,C,Q;Win() {setLayout(new FlowLayout());for(int i=0;i<5;i++) {text[i]=new JTextField(10);}add(new JLabel("卡号:"));add(text[0]);add(new JLabel(":"));add(text[1]);add(new JLabel("密码:"));add(text[2]);add(new JLabel("余额:"));add(text[3]);add(new JLabel("序号:"));add(text[4]);C=new JButton("存款");C.addActionListener(this);add(C);Q=new JButton("取款");Q.addActionListener(this);add(Q);update=new JButton("修改密码");update.addActionListener(this);add(update);insert=new JButton("添加新用户");insert.addActionListener(this);add(insert);select=new JButton("查询用户信息");select.addActionListener(this);add(select);delete=new JButton("删除用户信息");delete.addActionListener(this);add(delete);add(new JScrollPane(show));add(new JLabel("提示:1.每次取款金额为100的倍数,总额不能超过5000元,支取金额不允许透支"));add(new JLabel("2.存款金额不能为负存款"));add(new JLabel("3.新密码长度不小于6位,不允许出现6位完全相同的情况"));setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {Operation modify=new Operation();modify.setDatasourceName("XX");if(e.getSource()==insert){modify.setSQL("INSERT INTO XX VALUES('"+text[4].getText()+"','"+text[0].getText()+"','"+text[1].getText()+"','"+tex t[2].getText()+"','"+text[3].getText()+"')");String backMess=modify.modifyRecord();show.append("添加新用户"+backMess);}else if(e.getSource()==C){Connection con=null;Statement sql;ResultSet rs = null;try{double n=2000;con=DriverManager.getConnection("jdbc:odbc:XX","","");con.setAutoCommit(false);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM XX WHERE 卡号='123456'");//查询rs.next();double money=rs.getDouble(5);System.out.println("操作前用户的余额:"+money);double money1=money+n; //存款sql.executeUpdate("UPDATE XX SET 余额=+'"+money1+"' WHERE 卡号='123456'"); //存款后更新余额mit();con.setAutoCommit(true); //提交事务结果到数据库sql=con.createStatement(); //创建数据库操作对象}catch(SQLException e1){ try{ con.rollback(); } //如果操作失败则结束事务catch(SQLException exp){}System.out.println(""+e);}}else if(e.getSource()==Q){ Connection con=null;Statement sql;ResultSet rs = null;try{double n=5000;con=DriverManager.getConnection("jdbc:odbc:XX","","");con.setAutoCommit(false);sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM XX WHERE 卡号='123456'");rs.next();double money=rs.getDouble(5);System.out.println("操作前用户的余额:"+money);double money2=money-n; //取款sql.executeUpdate("UPDATE XX SET 余额=+'"+money2+"' WHERE 卡号='123456'"); //取款后更新余额mit();con.setAutoCommit(true);sql=con.createStatement();}catch(SQLException e1){ try{ con.rollback(); }catch(SQLException exp){}System.out.println(""+e);}}else if(e.getSource()==update){modify.setSQL("UPDATE XX SET XX.密码 =+'"+text[2].getText()+"' WHERE (((XX.卡号)=+'"+text[0].getText()+"'));");String backMess=modify.modifyRecord();show.append("修改密码"+backMess);}else if(e.getSource()==delete){modify.setSQL("DELETE * FROM XX WHERE (((XX.卡号)=+'"+text[0].getText()+"'));");String backMess=modify.modifyRecord();show.append("删除用户信息"+backMess);}else if(e.getSource()==select){Query query =new Query();query.setDatasoureName("XX");query.setTableName("XX");Object a[][]=query.getRecord();String b[]={"序号","卡号","","密码","余额"};table=new JTable(a,b);JFrame frame=new JFrame();frame.add(new JScrollPane(table));frame.setVisible(true);frame.setBounds(400,400,600,200);}}public void setBounds(int i, int j, int k, int l) {}}Operation.javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Operation{String datasourceName=""; //数据源名称String SQL,message=""; //表名public Operation() //增删改的主代码{try{ Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver"); } //操作数据源catch(Exception e){}}public void setSQL(String SQL) //建立一个新的数据源{ this.SQL=SQL; }public void setDatasourceName(String s){ datasourceName=s.trim(); }public String modifyRecord(){Connection con=null;Statement sql=null;try{ String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement();sql.execute(SQL);message="操作成功";con.close();}catch(SQLException e){ message=e.toString(); }return message;} /*数据源读取初始化*/public void setTableName(String string) {} //表名public Object[][] getRecord() //存放操作结果数组{ return null; }}Query.javaimport java.sql.*;import .httpserver.Authenticator.Result;public class Query{ String datasourceName=""; //数据源名String tableName=""; //表名Object a[][];public Query(){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} //桥接器 catch(ClassNotFoundException e){System.out.print(e);}}public void setDatasoureName(String s){ datasourceName=s.trim(); }public void setTableName(String s){ tableName=s.trim(); }public Object[][] getRecord() //获取表中记录{Connection con;PreparedStatement sql; //预处理命令ResultSet rs; //结果集try{String uri="jdbc:odbc:"+datasourceName;String number="";String password="";con=DriverManager.getConnection(uri,number,password); //初始化连接DatabaseMetaData metadata=con.getMetaData();//连接对象调用getMetaData()方法返回一个DatabaseMetaData对象ResultSet rs1=metadata.getColumns(null,null,tableName,null);//将表中的字段信息以行列的形式存储在Result中int 字段个数=0;while(rs1.next()){ 字段个数++;}int n=getAmount();a=new Object[n][字段个数];sql=con.prepareStatement("SELECT * FROM "+tableName); //查询表名rs=sql.executeQuery();int m=0;while(rs.next()) //输出结果集中的数据{ for(int k=1;k<=字段个数;k++){ a[m][k-1]=rs.getString(k); }m++;}con.close();}catch(SQLException e){ System.out.println("请输入正确的表名"+e); }return a;}public int getAmount(){Connection con;Statement sql;ResultSet rs;try{String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_RE AD_ONLY); //以只读方式滚动查询rs=sql.executeQuery("SELECT * FROM "+tableName); //获取所在行st();int rows=rs.getRow(); //当前游标所指行号return rows;}catch(SQLException exp){System.out.println(""+exp);return 0;}}public void inputQueryResult() {}}ATM.javapublic class ATM {public static void main(String args[]){ Win win=new Win();win.setBounds(400,300,400,300); //设置组件在容器中的位置和本身的大小win.setTitle("ATM自动柜员机");}}。

JAVA版ATM自动取款机程序

JAVA版ATM自动取款机程序
this.money=money;
}
public void setPassword(String p) {
this.password=p;
}
public void setMoney(double m) {
this.money=m;
}
protected String getCode() {
M0p.setLayout(new FlowLayout());
M1p.setLayout(new FlowLayout());
M2p.setLayout(new FlowLayout());
M3p.setLayout(new FlowLayout());
M4p.setLayout(new FlowLayout());
return code;
}
protected String getPassword() {
return password;
}
public double getMoney() {
return money;
}
}
class ATM extends JFrame implements ActionListener
}
//登录后的初始界面
public void init(){
contentpane.remove(Mpane);
Mpane = new JPanel();
JPanel M0p = new JPanel();
JPanel M1p = new JPanel();
JPanel M2p = new JPanel();
Jb2 = new JButton("ATM取款");

Java编写的模拟ATM取款机程序

Java编写的模拟ATM取款机程序

Java编写的模拟ATM取款机程序Java编写的模拟ATM取款机程序/*** @version 1.0* @author Devil_Angel* 该程序的功能为实现模拟银行ATM自动取款机提款,查询等功能.**/import java.io.*;/*该类为实现客户信息及部分功能*/class Account {private String code =null; //信用卡号private String name =null; //客户姓名private String password=null; //客户密码private double money =0.0; //卡里金额/********************/public Account(String code,String name,String password,double money){this.code=code;/doc/f911678336.html,=name;this.password=password;this.money=money;}protected String get_Code() {return code;}protected String get_Name() {return name;}protected String get_Password() {return password;}public double get_Money() {return money;}/*得到剩余的钱的数目*/protected void set_Balance(double mon) {money -= mon;}}/**********实现具体取款机功能*********/class ATM {Account act;// private String name;// private String pwd;public ATM() {act=new Account("000000","Devil","123456",50000); }/***********欢迎界面***********/protected void Welcome(){String str="---------------------------------";System.out.print(str+"\n"+"欢迎使用Angel模拟自动取款机程序.\n"+str+"\n");System.out.print(" 1.>取款."+"\n"+" 2.>查询信息."+"\n"+" 3.>密码设置."+"\n"+" 4.>退出系统."+"\n");}/**********登陆系统**********/protected void Load_Sys() throws Exception{String card,pwd;int counter=0;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));do {System.out.println("请输入您的信用卡号:");card=br.readLine();System.out.println("请输入您的密码:");pwd=br.readLine();if(!isRight(card,pwd)){System.out.println("您的卡号或密码输入有误.");counter++;}elseSysOpter();}while(counter<3);Lock_Sys();}/**********系统操作**********/protected void SysOpter() throws Exception{int num;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请选择您要操作的项目(1-4):");num=br.read(); //num为ASICC码转换的整数switch(num) {case 49: BetBalance(); break;case 50: Inqu_Info(); break;case 51: Set_Password(); break;case 52: Exit_Sys(); break;}System.exit(1);}/**********信息查询**********/protected void Inqu_Info() {System.out.print("---------------------\n"+act.get_Code()+"\n"+act.get_Name()+"\n"+act.get_Money()+"\n"+"-----------------------");}/**********取款**********/public void BetBalance() throws Exception{String str=null,str1;BufferedReader br=new BufferedReader(new InputStreamR eader(System.in));do {System.out.println("请输入您要取的数目:");str=br.readLine();str1=String.valueOf(act.get_Money());if(/doc/f911678336.html,pareTo(str1) >0) {System.out.println("超过已有的钱数,请重新输入您要取的数目:");}else {/*操作成功*/// act.set_Balance(str);System.out.println("取款成功,请收好您的钱.");Welcome();SysOpter();}}while(true);}/**********判断卡内是否有钱**********/protected boolean isBalance() {if(act.get_Money()<0) {// System.out.println("对不起,您的钱数不够或卡已透支.");return false;}return true;}/********卡号密码是否正确******/protected boolean isRight(String card,String pwd){if(act.get_Code().equals(card) && act.get_Password().equals(pwd))return true;elsereturn false;}/**********密码修改**********/protected void Set_Password() throws Exception{String pwd=null;int counter=0;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));do {System.out.println("请输入旧密码:");pwd=br.readLine();if(act.get_Password().equals(pwd)){do {System.out.println("请输入新密码:");String pwd1=br.readLine();System.out.println("请再次输入新密码:");String pwd2=br.readLine();if(!pwd1.equals(pwd2)){System.out.println("两次输入不一致,请再次输入.");}else{System.out.println("密码修改成功,请使用新密码."); Welcome();SysOpter();}}while(true);}}while(counter>3);}/**********锁定机器**********/protected void Lock_Sys() {System.out.println("对不起,您的操作有误,卡已被没收."); System.exit(1);}/**********结束系统**********/protected void Exit_Sys() {System.out.println("感谢您使用本系统,欢迎下次在来,再见!"); System.exit(1);}}public class Text{public static void main(String[] args) throws Exception {ATM atm=new ATM();atm.Welcome();atm.Load_Sys();// atm.Exit_Sys();}}。

java基础:模拟ATM取款机

java基础:模拟ATM取款机

java基础:模拟ATM取款机package com.atm;import java.util.Scanner;/*** ATM类实现** @author 向往的⽣活*/public class ATM {public static void main(String[] args) {String[] user = new String[2];String[] password = new String[2];double[] amount = new double[2];loginSelect(user, password, amount);}/*** 登录业务的菜单选择** @param user* @param password*/public static void loginSelect(String[] user, String[] password,double[] amount) {System.out.println("#####欢迎#####");int n = 1;while (true) {System.out.println("A.开户");System.out.println("B.登录");System.out.println("C.退出");System.out.println("D.修改密码");Scanner scanner = new Scanner(System.in);System.out.println("选择菜单:");String number = scanner.nextLine();number = number.toUpperCase();char[] chr = number.toCharArray();switch (chr[0]) {case'A':openAnAccount(user, password);loginSelect(user, password, amount);break;case'B':int index = login(user, password);// 记录登录⼈的下标if (index != -1) {select(user, password, amount, index);} else {n++;// 登录3次失败,则退出if (n == 3) {break;}}break;case'C':System.out.println("退出ATM");System.exit(-1);break;case'D':updatePassword(user, password);System.out.println("修改密码");break;default:System.out.println("录⼊的操作错误!");break;}}}/*** 核⼼业务菜单选择** @param user* @param password*/public static void select(String[] user, String[] password,double[] amount, int index) {while (true) {System.out.println("###########您好:" + user[index] + "#########"); System.out.println("A.存款");System.out.println("B.取款");System.out.println("C.转账");System.out.println("D.查询账户余额");System.out.println("E.返回主菜单");Scanner scanner = new Scanner(System.in);System.out.println("选择菜单:");String input = scanner.nextLine();input = input.toUpperCase();char chr = input.toCharArray()[0];switch (chr) {case'A':saveMoney(user, amount, index);break;case'B':getMoney(user, amount, index);break;case'C':transferAccounts(user, amount, index);break;case'D':query(user, amount, index);break;case'E':loginSelect(user, password, amount);break;default:System.out.println("操作错误请重新输⼊!");break;}}}/*** 登录** @return*/public static int login(String[] user, String[] password) {Scanner input = new Scanner(System.in);System.out.println("请输⼊⽤户名:");String userName = input.nextLine();System.out.println("请输⼊密码:");String pwd = input.nextLine();// 通过userName数据,找到user下标,int index = -1;for (int i = 0; i < user.length; i++) {if (user[i] == null) {System.out.println("请去开户,您没有注册卡号!");loginSelect(user, password, null);return -1;} else {if (user[i].equals(userName)) {index = i;break;}}}// 然后通过user下标找到password中相应的密码。

java自动取款机模拟程序报告含源代码

java自动取款机模拟程序报告含源代码

合肥学院计算机科学与技术系课程设计报告2013~2014学年第一学期课程面向对象课程设计课程设计名称自动取款机模拟程序学生姓名夏中雨学号1204013021专业班级12计本(3)指导教师胡春玲、张贯虹20 13年12月一、前言 3二、需求分析 31、功能需求 3A、管理端方面 3B、客户端方面 32、基本的安全控制机制。

43、性能需求: 44、出错处理需求 4三、设计理论和环境 41、系统设计理论 42、系统设计环境 4四、系统数据库设计 41、数据库构建语句 42、表构建语句 5五、总体设计 5B、管理端界面 53、删除银行卡账户对话框: 74、查询: 75、显示全部: 8C、客户端界面 92、客户端操作界面 103、余额查询 104、修改密码 115、存款 116、取款 12六、具体设计 121、各类主要功能及相互关系。

122、关键代码。

13(2)、删除银行卡 14(3)、验证客户登陆 15(4)、余额查询 16(5)、修改密码 17(7)、取款 19(8)、连接数据库 21七、总结 21八、参考文献 221、前言基于进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力的考虑和全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

学院进行了此项课程设计教学活动,此次课程设计的主要任务是为了训练同学们利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

针对这次课程设计任务,我对于给定的题目,进行了详细分析,理清了思路,弄明白了应该分几步走,每一步应该怎么走。

顺利完成了课程设计任务。

项目任务要求:1、程序分为两部分:管理端和客户端。

2、管理端负责管理所有的银行卡,管理员(省略身份验证)可以增加和删除银行卡。

(1)每张银行卡由卡号唯一标识,卡号由12位阿拉伯数字组成;(2)新增的银行卡密码均为“123456”,卡内金额均为0元;(3)只有管理员增加的银行卡才能登陆客户端;(4)删除后的银行卡将不能再登陆客户端。

ATM取款机java代码

ATM取款机java代码

import java.util.Scanner;public class Test8_5 {Scanner input=new Scanner(System.in);int pass=123456;double countmoney=10000;double getmoney=0;int change;double allgetmoney=0;public void ATMinputpass(){for (int i = 1; i <=3; i++) {System.out.println("请输入密码:");Int userpass=input.nextInt();If(userpass>=100000&&userpass<=999999){if(userpass==pass){ATMwelcome();}else{System.out.println("您输入的密码有误!");continue;}}else{System.out.println("请重新输入6位密码!");continue;}}System.out.println("对不起!请带上您的有效证件到柜台办理相关手续!");}public void ATMwelcome(){System.out.println("请选择您想要的操作:\n1、取款2、查询\n3、修改密码4、退出");change=input.nextInt();if(change==1){ATMget();}else if(change==2){ATMselect();}else if(change==3){ATMpass();}else if(change==4){ATMexit();}}public void ATMget(){System.out.println("请输入您需要的金额:");getmoney=input.nextDouble();if(countmoney>getmoney){if(getmoney%100==0){if(getmoney<2500){allgetmoney=allgetmoney+getmoney;if(allgetmoney>5000){System.out.println("您今日的交易金额已超5000,无法再次交易!");System.out.println("您是否要继续其他操作!1(继续)/2(退出)");change=input.nextInt();if(change==1){ATMwelcome();}else if(change==2){ATMexit();}}else{countmoney=countmoney-getmoney;System.out.println("交易完成您的余额为:"+countmoney+"元");System.out.println("您是否要继续其他操作!1(继续)/2(退出)");change=input.nextInt();if(change==1){ATMwelcome();}else if(change==2){ATMexit();}}}else{System.out.println("您交易的金额大于2500!不能完成交易!");ATMget();}}else{System.out.println("请输入100的整数!");ATMget();}}else{System.out.println("您的卡上余额不足!不能完成交易!");}}public void ATMselect(){System.out.println("您帐户的余额为:"+countmoney+"元");System.out.println("您是否要进行其他操作1(继续)/2(退出)");change=input.nextInt();if(change==1){ATMwelcome();}else if(change==2){ATMexit();}}public void ATMpass(){System.out.println("请输入您的原始密码:");int userinpass=input.nextInt();if(userinpass==pass){System.out.println("请输入您的新密码:");int newpass1=input.nextInt();System.out.println("请再次输入您的新密码:");int newpass2=input.nextInt();if(newpass1==newpass2){pass=newpass2;System.out.println("修改密码成功!");System.out.println("是否要继续其他操作!1(继续)/2(退出)");change=input.nextInt();if(change==1){ATMwelcome();}else if(change==2){ATMexit();}}else{System.out.println("两次输入的密码不一致!");ATMpass();}}else if(userinpass!=pass){System.out.println("您输入的原始密码有误!感谢您的使用!");ATMinputpass();}}public void ATMexit(){System.out.println("谢谢使用!");ATMinputpass();}}。

Java模拟客户银行取款案例

Java模拟客户银行取款案例

Java模拟客户银行取款案例以下是一个Java模拟客户银行取款案例的示例代码:```javaimport java.util.Scanner;public class Bankprivate String accountNumber;private double balance;public Bank(String accountNumber, double balance)this.accountNumber = accountNumber;this.balance = balance;}public void withdraw(double amount)if (amount <= balance)balance -= amount;System.out.println("取款成功,取款金额:" + amount + ",账户余额:" + balance);} elseSystem.out.println("余额不足,取款失败");}}public static void main(String[] args)Scanner scanner = new Scanner(System.in);double amount;doSystem.out.println("请输入取款金额(输入0退出):");amount = scanner.nextDouble(;bank.withdraw(amount);} while (amount != 0);}```这个案例模拟了一个简单的客户银行取款系统,首先创建了一个Bank类,包含了账户号码和账户余额两个属性,并且定义了一个取款方法withdraw(。

在withdraw(方法中,如果取款金额小于等于账户余额,则进行取款操作,并打印出取款成功的信息;如果取款金额大于账户余额,则打印出余额不足的信息。

java课程设计报告_自动取款机模拟程序

java课程设计报告_自动取款机模拟程序

学院计算机科学与技术系课程设计报告2014~2015学年第一学期课程JAVA课程设计课程设计名称自动取款机模拟程序学生学号专业班级指导教师2014年9月自动取款机模拟程序一、课程设计过程概述这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。

这次课程设计的主要容是独立用JAVA语言开发一个小的应用程序名称:自动取款机模拟程序容:在PC机上设计一个自动取款机的模拟程序,实现现实中取款机的大部分功能。

二、任务和要求1.程序分为两部分:管理端和客户端。

2.管理端负责管理所有的银行卡,管理员可以增加和删除银行卡。

(1)每银行卡由卡号唯一标识,卡号由9位阿拉伯数字组成;(2)新增的银行卡密码均为“123456”,卡金额均为0元;(3)只有管理员增加的银行卡才能登陆客户端;(4)删除后的银行卡将不能再登陆客户端。

3.客户端负责常见的取款机操作。

(1)客户端需要登陆,用户输入正确的银行卡号和密码,系统核对无误后才能进行操作;(2)登陆后,用户可以进行查询余额、取款、存款和修改密码的操作;(3)修改密码时,用户需输入两次新密码,确定无误后方可更改;(4)取款和存款操作,有操作结果提示,如“操作成功”或“余额不足,操作失败”等。

三、数据库设计程序中包括用户客户端和管理客户端,所以在数据库中需要设计用户信息表和管理员信息表分别来保存用户信息和管理员信息(数据库采用MySQL )。

表1用户信息表(user )表2管理员信息表(admin )列名数据类型及长度 是否为空 主键 默认值 说明 adminName Varchar (10) NO 主键 管理员 passwordVarchar (10)NOadmin管理员密码四、系统设计1、设计框架图一 总体设计框架列名 数据类型及长度 是否为空 主键 默认值 说明 cardNum Varchar (12)NO 主键 用户 password Int(6) NO 123456 用户密码 balanceInt(10)NO余额2、总体设计我所设计的ATM机主要是由登录页面模块还由选择服务模块组成,在登录时可选择用户登录或管理员登陆。

atm机 JAVA课程设计报告

atm机 JAVA课程设计报告

附件2:《计算机程序设计》课程设计报告题目:模拟ATM班级:姓名:指导教师:2014年6月19日一、功能描述开发者记录界面实现效果、实现思想、关键技术、代码优化等方面。

(1)实现效果(2)实现思想要想实现取款功能,首先显示“取款”窗口或对话框,输入取款金额,然后在文本框内显示,单击确定就可以取款成功。

这就需要给取款按钮注册监听,编写监听器类。

(3)关键代码如下:注册监听:import java.awt.event.*;btTake.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubnew Take(myCard).init();}});(4)代码优化如下:添加背景:import javax.swing.*;JPanel panelTake = new JPanel(null);((JPanel)this.getContentPane()).setOpaque(false);ImageIcon img=new ImageIcon("image//a.jpg");JLabel background=new JLabel(img);this.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));background.setBounds(0,0,560,300);panelTake.add(background);设置字体的粗细、大小、颜色:import java.awt.*;记录界面实现效果、实现思想、关键技术、代码优化等方面。

(1)实现效果(2)实现思想要想实现修改密码功能,首先显示“修改密码”窗口或对话框,输入现在的密码,然后在文本框内显示,单击确定。

java项目 ATM银行系统 源代码

java项目 ATM银行系统 源代码

//初始密码为123456import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyATM extends JFrame implements ActionListener{ JPanelpanelfirst,panelmain,panel3,panel4,panel5,panel6,panel7,panelchangepw d,panelchangepwded,panelsave,panelsaved,panelremain,paneltrans,panelt ransed,panelmobile,panelmobiled,panelconsult;JButtonbtn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btnsure,btnba ck,btnok,btncard,btngetcard,btnincard;JButtonbtn00,btn01,btn02,btn03,btn04,btn05,btn06,btn07,btn08,btn09,btn010,bt nback1,btnremain,btnremain1,btnremain2;JButtonbtn000,btn001,btn002,btn003,btn004,btn005,btn006,btn007,btn008,btn009 ,btn100,btn200,btn300,btn1000,btn500,btnsure1,btnback2,btn0010,btnquo k1,btnquok2,btnquok3,btnquok4;JButtonbtnpwd,btnpwd1,btnpwd2,btnpwd3,btnpwd4,btn11,btn12,btn13,btn14,btn15, btn16,btn17,btn18,btn19,btn20,btnsave,btnsave1,btnsave2,btnsaved,btns aved1,btnsaved2,btnsaved3;JButtonbtntra,btntra1,btntra2,btntraed,btntraed1,btn21,btn22,btn23,btn24,btn 25,btn26,btn27,btn28,btn29,btn30,btncon,btncon1;JButtonbtnmo,btnmo1,btnmo2,btnmo30,btnmo50,btnmo100,btnmo200,btnmo500,btnmo1 0,btnmo11,btnmo12,btnmo13,btnmo14,btnmo15,btnmo16,btnmo17,btnmo18,btn mo19,btnmoed,btnmoed1;JTextField txt2,txttrans,txttrans1,txttrans2,txtmo,txtmo1;JLabellbljixu,lblpwd,lblwrong,lblqukuan,lblquok1,lblquok2,lblpwd1,lblpwd2,l blpwd3,lblpwd4,lblsave,lblsave1,lblsaved,lblremain,lblremain1,lbltra, lbltra1,lbltra2,lbltraed,lbltraed1;JLabellblwel,lblwel1,lblmo,lblmo1,lblmo2,lblmo3,lblmoed,lblmoed1,lblcon,lbl con1;JPasswordField txt1,txtpwd,txtpwd1;Container container;CardLayout Layout;int money,savemoney,mobilemoney=0;double lastmoney,trainsmoney;String userpwd,cardnum,trains,username;booleanflag=true,flag1=false,flag2=false,flag3=true,flag4=false,flag5=false;//构造方法public MyATM(){super("罗灿银行");this.setSize(435,350);this.setLocation(500, 250);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );//设置不可改变窗口大小this.setResizable(false);//设置程序小图标this.setIconImage(this.getToolkit().getImage("images\\haizei.jpg" ));}//布局public void setLayout(){//用卡片布局Layout=new CardLayout();container=getContentPane();container.setLayout(Layout);//添加第一张卡片panelfirst=new JPanel(null);//设置卡片的背景颜色panelfirst.setBackground(new Color(119,119,253));lbljixu=new JLabel("请放入磁卡,然后继续操作");//设置卡片在Panel中的位置lbljixu.setBounds(140,90,350,30);//为第一张卡片添加一个Labelpanelfirst.add(lbljixu);//为第一张卡片添加一个按钮btncard=new JButton("继续");btncard.setBounds(310,180,80,30);//为按钮注册事件监听器btncard.addActionListener(this);//开始时设置按钮不可按btncard.setEnabled(false);panelfirst.add(btncard);//为第一张卡片添加一个按钮btngetcard=new JButton("取卡");btngetcard.setEnabled(false);btngetcard.setBounds(310,220,80,30);btngetcard.addActionListener(this);panelfirst.add(btngetcard);//为第一张卡片添加一个按钮btnincard=new JButton("插卡");btnincard.setBounds(40,220,80,30);btnincard.addActionListener(this);panelfirst.add(btnincard);container.add(panelfirst,"first");//添加登录输入密码卡片panelmain=new JPanel(null);panelmain.setBackground(new Color(119,119,253)); lblpwd=new JLabel("请输入您的银行卡密码:"); panelmain.add(lblpwd);lblpwd.setBounds(150, 20, 150, 30);//设置文本框为密码型txt1=new JPasswordField(12);//文本框不可选中txt1.enable(false);panelmain.add(txt1);//文本框的输入内容用*显示txt1.setEchoChar('*');txt1.setBounds(115,50,200,30);//添加选择按钮btnsure=new JButton("确定");btnsure.addActionListener(this);panelmain.add(btnsure);btnsure.setBounds(70,160,80,30);//添加重输按钮btn010=new JButton("重输");btn010.addActionListener(this);panelmain.add(btn010);btn010.setBounds(175,160,80,30);btnback=new JButton("退出");btnback.addActionListener(this); panelmain.add(btnback);btnback.setBounds(280,160,80,30);lblwrong=new JLabel("请注意保护好您的密码!"); panelmain.add(lblwrong);lblwrong.setBounds(150,90,200,30);//添加输入按钮btn01=new JButton("1");btn01.addActionListener(this);panelmain.add(btn01);btn01.setBounds(45,210,60,30);btn02=new JButton("2");btn02.addActionListener(this);panelmain.add(btn02);btn02.setBounds(115,210,60,30);btn03=new JButton("3");btn03.addActionListener(this);panelmain.add(btn03);btn03.setBounds(185,210,60,30);btn04=new JButton("4");btn04.addActionListener(this);panelmain.add(btn04);btn04.setBounds(255,210,60,30);btn05=new JButton("5");btn05.addActionListener(this);panelmain.add(btn05);btn05.setBounds(325,210,60,30);btn06=new JButton("6");btn06.addActionListener(this);panelmain.add(btn06);btn06.setBounds(45,260,60,30);btn07=new JButton("7");btn07.addActionListener(this);panelmain.add(btn07);btn07.setBounds(115,260,60,30);container.add(panelmain,"main");btn08=new JButton("8");btn08.addActionListener(this);panelmain.add(btn08);btn08.setBounds(185,260,60,30);btn09=new JButton("9");btn09.addActionListener(this);panelmain.add(btn09);btn09.setBounds(255,260,60,30);btn00=new JButton("0");btn00.addActionListener(this);panelmain.add(btn00);btn00.setBounds(325,260,60,30);//添加主界面卡片panel3=new JPanel(null);panel3.setBackground(new Color(119,119,253));lblwel=new JLabel(username+",欢迎使用罗灿银行ATM系统"); lblwel.setBounds(20,15,350,30);panel3.add(lblwel);lblwel1=new JLabel("请选择您需要的交易类型");lblwel1.setBounds(220,55,350,30);panel3.add(lblwel1);btn3=new JButton("取款服务");btn3.addActionListener(this);btn3.setBounds(20,90,100,30);panel3.add(btn3);btn4=new JButton("修改密码");btn4.addActionListener(this);btn4.setBounds(20,150,100,30);panel3.add(btn4);btn5=new JButton("存款服务");btn5.addActionListener(this);btn5.setBounds(20,210,100,30);panel3.add(btn5);btn6=new JButton("查询余额");btn6.addActionListener(this);btn6.setBounds(20,270,100,30);panel3.add(btn6);btn7=new JButton("转账服务");btn7.addActionListener(this);btn7.setBounds(300,90,100,30);panel3.add(btn7);btn8=new JButton("通信交费");btn8.addActionListener(this);btn8.setBounds(300,150,100,30);panel3.add(btn8);btn9=new JButton("咨询服务");btn9.addActionListener(this);btn9.setBounds(300,210,100,30);panel3.add(btn9);btn10=new JButton("退出操作");btn10.addActionListener(this);btn10.setBounds(300,270,100,30);panel3.add(btn10);container.add(panel3,"three");//添加取款页面卡片panel4=new JPanel(null);panel4.setBackground(new Color(119,119,253));lblqukuan=new JLabel("请输入您的取款数:");panel4.add(lblqukuan);lblqukuan.setBounds(115, 20, 150, 30);lblqukuan=new JLabel("提示:只能是100元或100元的整数倍。

java课程设计报告-自动取款机模拟程序

java课程设计报告-自动取款机模拟程序

学院计算机科学与技术系课程设计报告2014~2015学年第一学期课程JAVA课程设计课程设计名称自动取款机模拟程序学生姓名学号专业班级指导教师2014年9月自动取款机模拟程序一、课程设计过程概述这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。

这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序名称:自动取款机模拟程序内容:在PC机上设计一个自动取款机的模拟程序,实现现实中取款机的大部分功能。

二、任务和要求1.程序分为两部分:管理端和客户端。

2.管理端负责管理所有的银行卡,管理员可以增加和删除银行卡。

(1)每张银行卡由卡号唯一标识,卡号由9位阿拉伯数字组成;(2)新增的银行卡密码均为“123456”,卡内金额均为0元;(3)只有管理员增加的银行卡才能登陆客户端;(4)删除后的银行卡将不能再登陆客户端。

3.客户端负责常见的取款机操作。

(1)客户端需要登陆,用户输入正确的银行卡号和密码,系统核对无误后才能进行操作;(2)登陆后,用户可以进行查询余额、取款、存款和修改密码的操作;(3)修改密码时,用户需输入两次新密码,确定无误后方可更改;(4)取款和存款操作,有操作结果提示,如“操作成功”或“余额不足,操作失败”等。

三、数据库设计程序中包括用户客户端和管理客户端,所以在数据库中需要设计用户信息表和管理员信息表分别来保存用户信息和管理员信息(数据库采用MySQL)。

表1用户信息表(user)表2管理员信息表(admin)四、系统设计1、设计框架图一总体设计框架2、总体设计我所设计的ATM机主要是由登录页面模块还由选择服务模块组成,在登录时可选择用户登录或管理员登陆。

其中用户的选择服务模块由取款模块、存款模块、查询余额模块、修改密码模块、退卡模块组成,管理员的选择服务模块由新建用户模块、删除用户模块、退出模块组成。

模拟银行ATM自动取款机

模拟银行ATM自动取款机

*** @version 1.0* @author Devil_Angel* 该程序地功能为实现模拟银行ATM自动取款机提款,查询等功能.**/import java.io.*。

/*该类为实现客户信息及部分功能*/class Account {private String code =null。

//信用卡号private String name =null。

//客户姓名private String password=null。

//客户密码private double money =0.0。

//卡里金额/********************/public Account(String code,String name,String password,double money>{this.code=code。

=name。

this.password=password。

this.money=money。

}protected String get_Code(> {return code。

}protected String get_Name(> {return name。

}protected String get_Password(> {return password。

}public double get_Money(> {return money。

}/*得到剩余地钱地数目*/protected void set_Balance(double mon> {money -= mon。

}}/**********实现具体取款机功能*********/class ATM {Account act。

// private String name。

// private String pwd。

public ATM(> {act=new Account("000000","Devil","123456",50000>。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥学院计算机科学与技术系课程设计报告2013~2014学年第一学期课程面向对象课程设计课程设计名称自动取款机模拟程序学生姓名夏中雨学号**********专业班级12计本(3)指导教师胡春玲、张贯虹20 13年12月一、前言 (3)二、需求分析 (3)1、功能需求 (3)A、管理端方面 (3)B、客户端方面 (3)2、基本的安全控制机制。

(4)3、性能需求: (4)4、出错处理需求 (4)三、设计理论和环境 (4)1、系统设计理论 (4)2、系统设计环境 (4)四、系统数据库设计 (4)1、数据库构建语句 (4)2、表构建语句 (5)五、总体设计 (5)B、管理端界面 (5)3、删除银行卡账户对话框: (7)4、查询: (7)5、显示全部: (8)C、客户端界面 (9)2、客户端操作界面 (10)3、余额查询 (10)4、修改密码 (11)5、存款 (11)6、取款 (12)六、具体设计 (12)1、各类主要功能及相互关系。

(12)2、关键代码。

(13)(2)、删除银行卡 (14)(3)、验证客户登陆 (15)(4)、余额查询 (16)(5)、修改密码 (17)(7)、取款 (19)(8)、连接数据库 (21)七、总结 (21)八、参考文献 (22)一、前言基于进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力的考虑和全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

学院进行了此项课程设计教学活动,此次课程设计的主要任务是为了训练同学们利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

针对这次课程设计任务,我对于给定的题目,进行了详细分析,理清了思路,弄明白了应该分几步走,每一步应该怎么走。

顺利完成了课程设计任务。

项目任务要求:1、程序分为两部分:管理端和客户端。

2、管理端负责管理所有的银行卡,管理员(省略身份验证)可以增加和删除银行卡。

(1)每张银行卡由卡号唯一标识,卡号由12位阿拉伯数字组成;(2)新增的银行卡密码均为“123456”,卡内金额均为0元;(3)只有管理员增加的银行卡才能登陆客户端;(4)删除后的银行卡将不能再登陆客户端。

3、客户端负责常见的取款机操作。

(1)客户端需要登陆,用户输入正确的银行卡号和密码,系统核对无误后才能进行操作;(2)登陆后,用户可以进行查询余额、取款、存款和修改密码的操作;(3)修改密码时,用户需输入两次新密码,确定无误后方可更改;(4)取款和存款操作,有操作结果提示,如“操作成功”或“余额不足,操作失败”等。

4、界面尽可能模仿自动取款机的实际界面。

5、对于失败操作,尽可能采用异常捕捉的机制来完成。

二、需求分析1、功能需求自动取款机模拟程序需要实现的功能主要包括以下几个方面:A、管理端方面○1新增银行卡账户○2删除银行卡账户B、客户端方面○1查询账户余额○2修改密码○3存款2、基本的安全控制机制。

○1客户从客户端登录时,需要进行身份,身份合法才能进入本系统○2客户修改密码时,必须输入两次新密码,确保无误后方可修改且新密码必须与旧密码不同○3取款和存款操作时,要有操作提示,确保客户对每一步的操作不存在疑惑和不解3、性能需求:通过分析,系统性能需求如下:○1系统的高速性、稳定性、安全性。

○2系统人机界面友好,易学易用。

○3系统维护成本较低。

4、出错处理需求当操作中出现了不正确的操作内容时需要停止该操作并给出提示。

三、设计理论和环境1、系统设计理论该程序使用JDBC-ODBC桥与数据库连接,主要定义:主类和操作类。

主类的主要功能是提供等待用户的操作的主界面(菜单)。

操作类中定义与数据库的连接、提供各种操作界面(增、删、改及统计等操作)。

2、系统设计环境该系统程序设计在Eclipse、JDK1.5或JBuilder运行环境下实现。

四、系统数据库设计本软件系统经过我详细分析,我认为所用到的数据库内仅需一张信息表,针对于此,我前期所做的构建数据库及信息表的数据库代码如下:1、数据库构建语句CREATE DATABASE BankON(NAME = Bank,FILENAME=‘C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\Bank.mdf ’,SIZE = 10MB,MAXSIZE = 50MB,FILEGROWTH = 5MB)(NAME = Bank_log.ldf,FILENAM=‘C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\Bank_log.ldf ’,SIZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB)2、表构建语句CREATE TABLE 信息(卡号 CHAR(12) PRIMARY KEY,密码 CHAR(6) NOT NULL,余额 MONEY NOT NULL)五、总体设计A、主登陆界面:用户选择登陆端口选择管理端入口进入管理端,选择客户端入口进入客户端类‘系统开始’实现此页面布局,点击“管理端入口”调用类‘管理端口’进入管理操作界面,点击“客户端入口”调用类‘客户端口’进入客户操作界面。

B、管理端界面1、主界面:程序的主界面,实现基本的查询功能及响应各种动作按钮类‘管理端口’和类‘管理界面’实现此页面布局,点击“添加”,调用类‘新建银行卡’进入新建银行卡界面;点击“删除”,删除选定的银行卡账户;点击“返回”,返回上一层界面。

2、增加银行卡账户界面:新增银行卡,新用户可利用此账户的卡号和密码登陆修改账户信息点击“添加”时,连接数据库,执行相应的instert SQL语句实现新增银行卡账户功能,点击“取消”时,关闭此界面,调用类‘管理界面’,返回管理端主界面。

3、删除银行卡账户对话框:删除选定的银行卡后,该银行卡用户将不能再利用该卡号和密码登陆客户端修改账户信息点击“确定”,将删除选定的账户信息,点击“取消”,取消删除账户信息。

4、查询:管理员可根据账户卡号来查询账户信息点击操作主界面上“查询”按钮,显示卡号为输入卡号值的账户信息。

5、显示全部:点击此按钮,管理员可一览所有帐户信息点击操作主界面上“显示全部”按钮,显示所有账户信息。

C、客户端界面1、客户端登陆界面:用户通过输入用户名和密码验证登陆类‘客户端口’实现此页面布局,用户输入卡号和密码,点击“确认”,系统验证用户输入的密码与输入的卡号相对应的密码是否相同,验证合法后调用类‘客户界面’,进入客户操作主界面。

若非法,则关闭界面,拒绝用户登陆退出系统。

2、客户端操作界面类‘客户界面’实现此页面布局,主要含有六个按钮“余额查询”,“存款”,“退卡”,“修改密码”,“取款”,“返回”六个按钮及相应的响应方法。

当点击各种按钮时,调用相应的响应方法或相应的类,实现各种操作;3、余额查询点击余额查询,显示账户余额。

4、修改密码设置用户修改密码界面布局,用户需两次输入新密码且两次输入相同,点击“确定”执行SQL语句,修改账户信息。

点击“取消”,取消修改密码。

5、存款用户输入存入的金额数点击“确定”执行SQL语句,修改账户信息。

点击“取消”取消存款操作。

6、取款用户点击金额按钮取出或输入与界面上金额不同的金额,点击“确定”执行SQL语句,修改账户信息。

点击“回主菜单”,取消取款操作。

六、具体设计1、各类主要功能及相互关系。

link:连接数据库,其余类若要连接数据库,需调用此类。

Main: 主类,软件运行入口。

系统开始:主登陆界面,根据选择的方式,分别调用类‘管理端口’或类‘客户端口’进入管理界面或客户界面。

管理端口:一个扩展JFrame的容器类,设置管理端主界面布局,包含一个管理界面类(扩展类)及分别实现添加、删除、返回等功能的按钮,包括相应的响应方法。

管理界面:一个扩展JPanel的容器类,包含一个DefaultTableModel的表用来显示账户信息及两个分别实现查询功能及显示全部账户信息功能的按钮,包括相应的响应方法。

新建银行卡:一个扩展JFrame的容器类,当在类‘管理界面’点击“添加”按钮时被调用。

此类包含两个按钮,点击“添加”时,连接数据库,执行相应的instert SQL语句实现新增银行卡账户功能,点击“取消”时,关闭此界面,调用类‘管理界面’,返回管理端主界面。

客户端口:扩展JFrame类的容器类,设置客户端登陆界面布局,含有两个客户文本框,点击“确认”,系统验证用户输入的密码与输入的卡号相对应的密码是否相同,验证合法后调用类‘客户界面’,进入客户操作主界面。

若非法,则关闭界面,拒绝用户登陆退出系统。

客户界面:扩展JFrame类,设置客户端操作主界面布局,主要含有六个按钮“余额查询”,“存款”,“退卡”,“修改密码”,“取款”,“返回”六个按钮及相应的响应方法。

当点击各种按钮时,调用相应的响应方法,实现各种操作。

存款:扩展JFrame类,设置用户存款取款界面布局,用户输入存入的金额数点击“确定”执行SQL语句,修改账户信息。

取款:扩展JFrame类,设置用户取款取款界面布局,用户点击金额按钮取出或输入与界面上金额不同的金额,点击“确定”执行SQL语句,修改账户信息。

修改密码:扩展JFrame类,设置用户修改密码界面布局,用户需两次输入新密码且两次输入相同,点击“确定”执行SQL语句,修改账户信息。

2、关键代码。

(1)、新建银行卡public void actionPerformed(ActionEvent e) {if(e.getSource()==btnAdd){//点击确定按钮try{Long a;String number = txtCard.getText();String mm = "123456";//默认密码是123456String ye = "0";//默认余额是0a=Long.parseLong(number);//将输入卡号转换为长整形String addDatas[] = new String[3];addDatas[0]=number;addDatas[1]=mm;addDatas[2]=ye;if(addDatas[0].length()==12){//判断卡号是否为12位addEmployee(addDatas);//调用addEmployee方法eface.showData("");this.dispose();}elselabCard2.setText("格式错,新建卡号必须为12位数字");}catch(NumberFormatException g){labCard2.setText("格式错误,新建卡号必须为12位数字");}//若输入卡号转换为长整形出现异常将捕捉,判断输入是否由数字构成 }if(e.getSource()==btnCancel){this.dispose();//点击取消,退出界面}}private void addEmployee(String[] addDatas){try {String sql = "insert into 信息 values('"+addDatas[0]+"',";sql+="'"+addDatas[1]+"',";sql+="'"+addDatas[2]+"')";//插入link link1=new link();//连接数据库this.stm=link1.stm;this.conn=link1.conn;stm.executeUpdate(sql);//执行SQL语句} catch (Exception e) {e.printStackTrace();}finally{try {stm.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}}(2)、删除银行卡if(e.getSource()==btnDel){if(emp.updateKey!=null){if(JOptionPane.showConfirmDialog(this,"if(e.getSource()==btnDel){ if(emp.updateKey!=null){if(JOptionPane.showConfirmDialog(this,"确定删除记录吗?","员工删除",JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION){deleteData();emp.updateKey = null;String queryString="";emp.showData(queryString);}//创建一个对话框}",JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION){ del eteData();//点击“确定”,调用方法deleteDateemp.updateKey = null;String queryString="";emp.showData(queryString);//删除后,再次显示全部账号信息}}private void deleteData() {try {String sql = "delete from 信息where 卡号='"+emp.updateKey+"'";//删除语句link link1=new link();//连接数据库this.stm=link1.stm;this.conn=link1.conn;stm.executeUpdate(sql);//执行删除SQL语句} catch (Exception e) {e.printStackTrace();}finally{try {stm.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}(3)、验证客户登陆public void actionPerformed(ActionEvent e) {if(e.getSource()==okey){//点击“确定”String number = txtCard1.getText();//获取的卡号String mm=txtCard2.getText();//获取的密码String Datas[] = new String[2];Datas[0]=number;Datas[1]=mm;yz(Datas);//调用方法yz}if(e.getSource()==cancel)new系统开始();this.dispose();//点击“取消”,关闭界面,返回上一层界面}public void yz(String[] Datas){try{int a,b;Long c;a=Integer.parseInt(Datas[1]);c=Long.parseLong(Datas[0]);String sql="select * from 信息where 卡号='"+Datas[0]+"'";//检索与输入的卡号相对应的密码link link1=new link();//连接数据库this.conn=link1.conn;this.stm=link1.stm;rs=stm.executeQuery(sql);//执行SQL语句while(rs.next()){String mm=rs.getString(2);b=Integer.parseInt(mm);if(a==b){new客户界面(Datas[0],Datas[1]);this.dispose();}elsethrow new Exception();}} catch (Exception e) {this.dispose();}finally{try {rs.close();stm.close();conn.close();}catch(NullPointerException e){this.dispose();} catch (SQLException e) {e.printStackTrace();}}}(4)、余额查询public void showye(){try {String sql="select * from 信息 where 卡号 ='"+卡号+"'";link link1 = new link();//连接数据库this.conn=link1.conn;this.stm=link1.stm;rs=stm.executeQuery(sql);//执行查询SQL语句while(rs.next()){String str="余额为"+rs.getString("余额")+",请选择下一步操作";labCard2.setText(str);//在界面上显示余额}} catch (Exception e) {e.printStackTrace();}finally{try {rs.close();stm.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}}(5)、修改密码public void actionPerformed(ActionEvent e) {if(e.getSource()==butcancel){this.dispose();bCard2.setText("修改密码操作失败");}//点击取消,取消修改密码操作if(e.getSource()==butokey){String mm1,mm2;int a,b,c;mm1=text1.getText();//获取第一次输入的新密码mm2=text2.getText();//获取第二次输入的新密码try{a=Integer.parseInt(mm1);b=Integer.parseInt(mm2);c=Integer.parseInt(czjm.密码);if(mm1.length()==6){//判断新密码是否为6位if(a==b){//判断两次输入是否相同if(a!=c){altermm(mm1);//调用方法altermmthis.dispose();bCard2.setText("修改密码成功,请选择下一步操作");}elselabel3.setText("新密码必须与旧密码不同");}elselabel3.setText("两次输入的密码必须相同");}elselabel3.setText("密码必须为六位数字");}catch(NumberFormatException g){label3.setText("密码必须为六位数字");}}}public void altermm(String mm){try{String sql="update 信息 set 密码='"+mm+"' where 卡号='"+czjm.卡号+"'";link link1=new link();//连接数据库this.conn=link1.conn;this.stm=link1.stm;stm.executeUpdate(sql);//执行更新SQL语句}catch(SQLException e){bCard2.setText("修改密码操作失败");} catch (ClassNotFoundException e) {bCard2.setText("修改密码操作失败");}finally{try {czjm.密码=mm;stm.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}}(6)、存款if(e.getSource()==butokey){//点击确定按钮,确定存款try{String money;double mon;money=text.getText();//获取输入金额mon=Double.parseDouble(money);if(mon%100==0){//判断输入的金额是否合理ck(mon);//调用方法ckthis.dispose();bCard2.setText("存款成功,请选择下一步操作");}elselabel2.setText("存入金额最小面额为100元");}catch(NumberFormatException q){label2.setText("输入金额格式不正确");}}public void ck(Double money){try{String sql="select * from 信息 where 卡号 ='"+czjm.卡号+"'";link link1=new link();//连接数据库this.conn=link1.conn;this.stm=link1.stm;rs=stm.executeQuery(sql);//执行查询SQL语句,查询原有余额while(rs.next()){money=money+Double.parseDouble(rs.getString("余额"));//在获取的输入金额上加上原有金额}}catch(Exception f){f.printStackTrace();}try{String sql="update 信息set 余额='"+Double.toString(money)+"'where 卡号 ='"+czjm.卡号+"'";stm.executeUpdate(sql);//执行更新SQL语句}catch(Exception e){e.printStackTrace();}finally{try {rs.close();stm.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}(7)、取款public void actionPerformed(ActionEvent e) {if(e.getSource()==exit){//点击退出,取消取款,关闭界面this.dispose();客户界面 cajm=new客户界面(czjm.卡号,czjm.密码);bCard2.setText("取款失败,请选择下一步操作");}if(e.getSource()==壹){//取100元qk(100); //调用方法qk取款}if(e.getSource()==贰){//取200元qk(200); //调用方法qk取款}if(e.getSource()==伍){//取500元qk(500); //调用方法qk取款}if(e.getSource()==拾){//取1000元qk(1000); //调用方法qk取款}if(e.getSource()==廿伍){//取2500元qk(1500); //调用方法qk取款}if(e.getSource()==伍拾){//取5000元qk(5000); //调用方法qk取款}if(e.getSource()==okey){//点击确定,取款金额位用户输入金额try{String money;double mon;money=text.getText();//获取用户输入金额mon=Double.parseDouble(money);if(mon%100==0){//判断取款金额是否合理qk(mon); //调用方法qk取款this.dispose();//取款后,关闭界面}elselabel2.setText("取出金额最小面额为100元");}catch(NumberFormatException q){label2.setText("输入金额格式不正确");}}}public void qk(double money){double mon = 0;try{String sql="select * from 信息 where 卡号 ='"+czjm.卡号+"'";link link1=new link();//连接数据库this.conn=link1.conn;this.stm=link1.stm;rs=stm.executeQuery(sql);//执行搜索SQL语句while(rs.next()){mon=Double.parseDouble(rs.getString("余额"));}}catch(Exception f){f.printStackTrace();}try{if(mon>money){//判断是否余额不足String sql="update 信息set 余额。

相关文档
最新文档