我想尝试一下,稍等
1、仅供参考:
import javax.swing.*;
public class ATMFrame extends JFrame {
// 窗口的大小、标题等属性
public ATMFrame() {
setSize(600, 400);
setTitle("ATM 柜员机模拟程序");
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
// 初始化界面组件
public void init() {
// 创建面板、文本框、按钮等组件
// 添加监听器
}
// 主函数
public static void main(String[] args) {
ATMFrame frame = new ATMFrame();
frame.init();
frame.setVisible(true);
}
}
查询余额:
public
class ATMFrame extends JFrame
{
// 声明余额变量
private
double balance = 10000;
// 创建查询余额按钮
private
JButton queryButton = new JButton("查询余额");
// 初始化界面组件
public
void init()
{
// 在界面中添加查询余额按钮
add(queryButton);
// 为查询余额按钮添加监听器
queryButton.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e)
{
// 弹出对话框显示余额
JOptionPane.showMessageDialog(null, "当前余额为:" + balance);
}
});
}
}
取款功能:
public class ATMFrame extends JFrame {
// 声明余额变量
private double balance = 10000;
// 创建取款金额文本框和取款按钮
private JTextField amountField = new JTextField(10);
private JButton withdrawButton = new JButton("取款");
// 初始化界面组件
public void init() {
// 在界面中添加文本框和取款按钮
add(amountField);
add(withdrawButton);
// 为取款按钮添加监听器
withdrawButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 获取取款金额
double amount = Double.parseDouble(amountField.getText());
// 判断是否满足要求
if (amount % 100 == 0 && amount <= 5000 && amount <= balance) {
balance -= amount;
JOptionPane.showMessageDialog(null, "取款成功,当前余额为:" + balance);
} else {
JOptionPane.showMessageDialog(null, "取款失败,请检查输入的金额是否合法");
}
}
});
}
}
存款功能:
public class ATMFrame extends JFrame
{
// 声明余额变量
private
double balance = 10000;
// 创建存款金额文本框和存款按钮
private JTextField amountField = new JTextField(10);
private JButton depositButton = new JButton("存款");
// 初始化界面组件
public void init()
{
// 在界面中添加文本框和存款按钮
add(amountField);
add(depositButton);
// 为存款按钮添加监听器
depositButton.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e)
{
// 获取存款金额
double amount = Double.parseDouble(amountField.getText());
// 如果存款金额为正数,则增加余额
if (amount > 0)
{
balance += amount;
JOptionPane.showMessageDialog(null, "存款成功,当前余额为:" + balance);
}
else
{
// 否则,弹出对话框提示错误
JOptionPane.showMessageDialog(null, "存款失败,请输入正数存款金额");
}
}
});
}
}
修改密码:
public class ChangePasswordFrame extends JFrame
{
// 声明密码变量
private String password = "123456";
// 创建旧密码文本框、新密码文本框、确认密码文本框和修改按钮
private JTextField oldPasswordField = new JTextField(10);
private JTextField newPasswordField = new JTextField(10);
private JTextField confirmPasswordField = new JTextField(10);
private JButton changeButton = new JButton("修改");
// 初始化界面组件
public void init()
{
// 在界面中添加文本框和修改按钮
add(oldPasswordField);
add(newPasswordField);
add(confirmPasswordField);
add(changeButton);
// 为修改按钮添加监听器
changeButton.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e)
{
// 获取旧密码、新密码和确认密码
String oldPassword = oldPasswordField.getText();
String newPassword = newPasswordField.getText();
String confirmPassword = confirmPasswordField.getText();
// 判断旧密码是否正确
if (!oldPassword.equals(password))
{
JOptionPane.showMessageDialog(null, "旧密码不正确");
return;
}
// 判断新密码是否符合要求
if (newPassword.length() < 6 || newPassword.equals("666666"))
{
JOptionPane.showMessageDialog(null, "新密码长度不小于6位且不能为6位完全相同的情况");
return;
}
// 判断两次输入的密码是否一致
if (!newPassword.equals(confirmPassword))
{
JOptionPane.showMessageDialog(null, "两次输入的密码不一致");
return;
}
// 如果所有条件都满足,则修改密码
password = newPassword;
JOptionPane.showMessageDialog(null, "密码修改成功");
}
});
}
}
1
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class User { //用户类User
private Set<Integer> set=new TreeSet<Integer>() ; //私有的成员变量——卡号
private String name; //私有的成员变量 姓名
private String miMa; //私有的成员变量 密码
private double yuE; //私有的成员变量 余额
public User(int cardNum, String name, String miMa) {
this.set.add(cardNum) ;
this.name = name;
this.miMa = miMa;
this.yuE = 0;
}
public boolean hasNum(int CardNum) {
Iterator<Integer> iter=set.iterator();
while(iter.hasNext()){
int in=iter.next();
if(in==CardNum){
return true;
}
}
return false;
}
public void setCardNum(int cardNum) {
this.set.add(cardNum);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMiMa() {
return miMa;
}
public void setMiMa(String miMa) {
this.miMa = miMa;
}
public double getYuE() {
return yuE;
}
public void setYuE(double yuE) {
this.yuE += yuE;
}
public void setYuE2(double yuE) {
this.yuE -= yuE;
package com.baidu.HomeWork.Work16;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;
public class Method {
static LinkedList<User> userList = new LinkedList<User>();
Scanner scan = new Scanner(System.in);
double mon;
static int cardNum = 100000;
static int Card = 0;
void saveMon(int Card, int i) {
/*存款方法
* 传入账号Card,循环变量i
*
*
*
*
*
*
*
* */
System.out.println("您的名字是" + userList.get(i).getName());
System.out.println("请输入存款金额");
try {
mon = scan.nextDouble();
} catch (InputMismatchException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
}
userList.get(i).setYuE(mon);
System.out.println("存入" + mon + "元");
System.out.println("现在您的账号余额" + userList.get(i).getYuE());
}
void getMon(int Card, int i) {
/*取款方法
* 传入账号Card,循环变量i
*
*
*
*
*
*
*
* */
System.out.println("您的名字是" + userList.get(i).getName());
System.out.println("请输入取款金额");
try {
mon = scan.nextDouble();
} catch (InputMismatchException e) {
e.printStackTrace();
}
if (mon < userList.get(i).getYuE()) {
userList.get(i).setYuE2(mon);
System.out.println("取出" + mon + "元");
System.out.println("现在您的账号余额" + userList.get(i).getYuE());
}
}
void cha(int Card, int i) {
/*查询方法
* 传入账号Card,循环变量i
*
*
*
*
*
*
*
* */
System.out.println("您的名字是" + userList.get(i).getName());
System.out.println("现在您的账号余额" + userList.get(i).getYuE());
}
void creatUser() {
/*创建用户方法,因为取款机不提供该功能,因此仅调用一次做测试使用
*
*
*
*
*
*
*
* */
String name = "";
String miMa = "";
System.out.println("请输入姓名");
try {
name = scan.next();
} catch (RuntimeException e) {
e.printStackTrace();
}
System.out.println("请输入密码");
try {
miMa = scan.next();
} catch (RuntimeException e) {
e.printStackTrace();
}
userList.add(new User(++cardNum, name, miMa));
System.out.println("您的账号是:" + cardNum);
}
int dengLu() { //登录方法,判断用户是否存在以及密码是否正确
boolean tag = true;
String miMa;
System.out.println("请输入账号");
try {
Card = scan.nextInt();
} catch (InputMismatchException e) {
e.printStackTrace();
} catch (RuntimeException e) {
e.printStackTrace();
}
System.out.println("请输入密码");
miMa = scan.next();
for (int i = 0; i < userList.size(); i++) {
if (userList.get(i).hasNum(Card)) {
if (userList.get(i).getMiMa().equals(miMa)) {
return i;
} else {
System.out.println("密码错误");
break;
}
} else {
}
}
System.out.println("查无此号");
return -2;
package com.baidu.HomeWork.Work16;
import java.util.InputMismatchException;
import java.util.LinkedList;
import java.util.Scanner;
public class GetMonMachine {
static int num = 0;
static boolean tag = true;
static boolean tag_1 = true;
static Scanner scan = new Scanner(System.in);
static Method gm = new Method();
public static void main(String[] args) {
gm.creatUser();
while (tag) { // 主菜单
int num;
if ((num = gm.dengLu()) != -2) {
System.out.println("1.存款");
System.out.println("2.取款");
System.out.println("3.查询余额");
System.out.println("4.退出取款机");
int scan_num = 4;
try {
scan_num = scan.nextInt();
} catch (InputMismatchException e) {
System.out.println("输入非法");
e.printStackTrace();
}
switch (scan_num) { // 主菜单选择
case 1:
gm.saveMon(Method.Card,num);
break;
case 2:
gm.getMon(Method.Card,num);
break;
case 3:
gm.cha(Method.Card,num);
break;
case 4:
tag = false;
break;
default:
System.out.println("输入有误,请重新输入");
break;
是不是这个,可以发给你