2021-03-23java写出一个银行的ATM机的小程序

java写出一个银行的ATM机的小程序

public static void main(String[] args) {
			ATM();
}
public static void ATM(){
			Scanner sc = new Scanner(System.in);
			System.out.println("账号");
			int a = sc.nextInt();
			System.out.println("密码");
			int p = sc.nextInt();
			int i=1;
			while(a!=666666 && p!=111111 && i<=2){
				System.out.println("输入错误,请重新输入账号");
				 a = sc.nextInt();
				System.out.println("输入错误,请重新输入密码");
				 p = sc.nextInt();
				 i++;
			}
			if(a==666666 && p==111111){
				int money=10000;
				out:for(int b=1;b<=100;b++) {
				System.out.println("输入正确");			
				System.out.println("请选择\n1.存款\n2.查询\n3.取款\n4.退出");
				int sw =sc.nextInt();
				switch (sw) {
				case 1:
					  System.out.println("请输入存款金额");
				      int save =sc.nextInt();
				      money+=save;
				      System.out.println("存款成功,余额为:"+money);
					break;
				case 2:
					  System.out.println("您的余额为:"+money);
					break;
				case 3:
					  System.out.println("请输入取款金额");
				    int draw=sc.nextInt();
				      if(draw>money) {
				      System.out.println("卡内余额不足");
				      }else {
				      money-=draw;
				      System.out.println("取款成功,余额为:"+money);
				      }
				      System.out.println("提款成功余额为:");
					break;
				case 4:
					  System.out.println("退出");
					break out;
				default:
					  System.out.println("输入错误");
					break ;
				}
			}
				if(i==3){
					  System.out.println("账户冻结");
				}	
			}			
    	}
}
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的Java程序实现模拟银行ATM: 首先,我们需要创建一个ATM类,它代表了整个ATM的控制器。在ATM类中,我们需要定义以下属性: - cardNumber:表示插入的银行卡号码; - cardPin:表示银行卡的密码; - balance:表示银行卡的余额; - isCardInserted:表示是否插入了银行卡; - isPinValid:表示银行卡密码是否正确。 ``` import java.sql.*; public class ATM { private String cardNumber; private int cardPin; private double balance; private boolean isCardInserted; private boolean isPinValid; private Connection connection; public ATM() { isCardInserted = false; isPinValid = false; balance = 0; } public void insertCard(String cardNumber, int cardPin) { this.cardNumber = cardNumber; this.cardPin = cardPin; isCardInserted = true; validatePin(); } public void ejectCard() { isCardInserted = false; isPinValid = false; cardNumber = ""; cardPin = 0; } public void validatePin() { try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/atm", "root", "password"); Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM accounts WHERE card_number='" + cardNumber + "'"); if (rs.next()) { int pin = rs.getInt("pin"); if (pin == cardPin) { isPinValid = true; balance = rs.getDouble("balance"); } } rs.close(); stmt.close(); connection.close(); } catch (Exception e) { System.out.println(e); } } public void checkBalance() { if (isCardInserted && isPinValid) { System.out.println("Your balance is: " + balance); } else { System.out.println("Please insert your card and enter your PIN."); } } public void withdraw(double amount) { if (isCardInserted && isPinValid) { if (amount <= balance) { balance -= amount; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/atm", "root", "password"); Statement stmt = connection.createStatement(); stmt.executeUpdate("UPDATE accounts SET balance=" + balance + " WHERE card_number='" + cardNumber + "'"); stmt.close(); connection.close(); } catch (Exception e) { System.out.println(e); } System.out.println("You have withdrawn " + amount + ". Your new balance is " + balance + "."); } else { System.out.println("Insufficient funds. Your balance is " + balance + "."); } } else { System.out.println("Please insert your card and enter your PIN."); } } } ``` 在ATM类中,我们定义了以下方法: - insertCard:插入银行卡,并验证密码; - ejectCard:退卡; - validatePin:验证密码是否正确; - checkBalance:查询余额; - withdraw:取款。 在validatePin方法中,我们通过JDBC连接到MySQL数据库,根据卡号从accounts表中查询密码和余额。如果密码正确,将isPinValid设置为true,并将余额设置为balance。 在withdraw方法中,我们首先检查卡是否插入并且密码是否正确。如果是,则检查余额是否足够取款。如果足够,则将余额减去取款金额,并将新的余额更新到数据库中。 下面是一个简单的测试程序,它创建一个ATM对象并模拟了一些操作: ``` import java.util.Scanner; public class TestATM { public static void main(String[] args) { ATM atm = new ATM(); Scanner scanner = new Scanner(System.in); System.out.println("Welcome to the ATM!"); System.out.println("Please insert your card."); System.out.print("Enter card number: "); String cardNumber = scanner.nextLine(); System.out.print("Enter PIN: "); int cardPin = scanner.nextInt(); atm.insertCard(cardNumber, cardPin); while (true) { System.out.println("What would you like to do?"); System.out.println("1. Check balance"); System.out.println("2. Withdraw"); System.out.println("3. Eject card"); int choice = scanner.nextInt(); switch (choice) { case 1: atm.checkBalance(); break; case 2: System.out.print("Enter amount to withdraw: "); double amount = scanner.nextDouble(); atm.withdraw(amount); break; case 3: atm.ejectCard(); System.out.println("Thank you for using the ATM!"); System.exit(0); default: System.out.println("Invalid choice. Please try again."); break; } } } } ``` 这个程序模拟了一个ATM的基本功能,包括插卡、验证密码、查询余额和取款。当用户选择退出时,程序将退卡并结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值