实验项目一 面向对象编程1:自动存取款机
一、实验目标和要求:
(一)目标:
1、了解类的概念;
2、了解类和方法的调用;
3、掌握类的使用;
4、完善功能逻辑,编写自动取款机程序。
(二)要求:
1、认真做好实验前各项准备工作,熟悉实验介绍和操作步骤。
2、遵守实验室规章制度和实验课堂教学纪律。
3、认真完成实验任务,填写实验报告。
二、实验时数:4课时
三、实验介绍:
存取款机程序需要实现如下功能:
- 当用户输入正确的卡号以及密码且机器内有100面值的余额时,可以使用取款功能;(默认卡号为111222333,密码123456);
- 用户存款需要验证用户的卡号、密码;验证通过后,输入取款金额,则从机器内可以扣减相应金额;
- 用户每次可以存入100张以内的100面值的金额。存款数不能超过存取款机存款金额的上限;
- 构造方法:初始化存取款机,检测余额,检测上次关闭的异常。
您需要实现存取款机的主方法,以及存款类、取款类、管理员类和用户类,以便实现以上功能。
请注意金融系统的严谨性,存取款的金额均需要检验是否合理。
四、实验介绍或步骤:
1.略。
五、注意事项:
1、请注意金融系统的严谨性,存取款的金额均需要检验是否合理。
package ATM;
import java.util.*;
public class ATM {
static String num = "111222333";
static String password = "123456";
static int remaining = 1000;
static void ATM() {
System.out.println("初始化成功,无异常");
}
static void login() {
int K1 = 0;
int K2 = 0;
Scanner sc = new Scanner(System.in);
System.out.println("卡号:");
String num1 = sc.next();
while (K1 == 0) {
if (num1.equals(num)) {
K1 = 1;
System.out.println("输入密码:");
break;
} else {
K1 = 1;
login();
}
;
}
String password1 = sc.next();
while (K2 == 0) {
if (password1.equals(password)) {
K2 = 1;
System.out.println("登陆成功!");
break;
} else {
K2 = 1;
login();
}
;
}
}
static void deposit() {
System.out.println("请输入存款金额:");
int K = 0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while (K == 0) {
if (n >= 100 && n % 100 == 0) {
remaining += n;
System.out.println("存入成功!");
break;
} else {
System.out.println("请重试!");
K = 1;
deposit();
}
}
}
static void withdraw() {
System.out.println("请输入取款金额:");
int K = 0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while (K == 0) {
if (n >= 100 && n % 100 == 0 && (remaining - n) >= 0) {
remaining -= n;
System.out.println("取出成功!");
break;
} else {
System.out.println("请重试!");
K = 1;
withdraw();
}
}
}
static void service() {
int K = 0;
Scanner sc = new Scanner(System.in);
System.out.println("1.存款 2.取款 3.查询余额");
int ch = sc.nextInt();
while (K == 0) {
if (ch == 1) {
deposit();
K = 1;
break;
} else if (ch == 2) {
withdraw();
K = 1;
break;
} else if (ch == 3) {
System.out.println("当前余额:" + remaining);
K = 1;
} else {
System.out.println("error!try again!");
K = 1;
service();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ATM();
login();
while (true)
service();
}
}