2.编写一个银行新用户开户及现金业务办理程序。
要求:
- 要模拟出银行对用户到来的欢迎动作、对用户离开的提醒动作。
- 模拟用户的开户(写入银行类构造方法中,开户时扣除10元卡费);
- 开户后可办理存款和取款业务,要提示用户的账户余额。
取款时需要用户输入正确的密码,取款金额要小于当前账户金额,若不能办理时,要提示用户。
实现思路
创建银行类,使用构造方法定义开户扣除10元,创建存款和取款两个方法,使用if条件语句将密码设置在两个方法中,单独创建Menu方法存放目录,主类先进行开户设置密码操作,之后进行存取款。
程序代码(部分展示)
package cn.edu;
import java.util.Scanner;
class Bank{
private String user;
private String password;
double deposit;
public String setUser;
public String setPassword;
public double setDeposit;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getDeposit() {
return deposit;
}
public void setDeposit(double deposit) {
this.deposit =deposit-10;
}
public Bank(String user, String password, double deposit) {
super();
this.user = user;
this.password = password;
this.deposit = deposit-10;
}
public static void exit(){
System.out.println("请携带好随身物品,欢迎下次光临!");
}
public static void Menu(){
System.out.println("-----------------");
System.out.println("1.存款");
System.out.println("2.取款");
System.out.println("3.退出");
}
@SuppressWarnings("unlikely-arg-type")
public void SaveMoney(Bank b1) {
System.out.println("请输入您的密码:");
Scanner sc=new Scanner(System.in);
String n=sc.next();
if (n.equals("123")) {
System.out.println("请输入存款金额:");
double i1=sc.nextDouble();
deposit=i1+deposit;
System.out.println("您好,您的帐户已经存入"+i1+"元,您的账户余额为"+deposit+"元。");
Bank.Menu();
int choice = sc.nextInt();
if(choice==1) {
b1.SaveMoney(b1);
}
if(choice==2) {
b1.spendMoney(b1);
}
if(choice==3) {
b1.exit();
}
}
else
{
System.out.println("密码错误!");
Bank.Menu();
int choice = sc.nextInt();
if(choice==1) {
b1.SaveMoney(b1);
}
if(choice==2) {
b1.spendMoney(b1);
}
if(choice==3) {
b1.exit();
}
}
}
public class Main {
public static void main(String[] args) {
System.out.println("欢迎访问银行综合业务程序!");
System.out.println("----------------------------");
System.out.println("请选择您办理的业务");
System.out.println("1.开户");
System.out.println("2.退出");
Bank b1=new Bank(null, null, 0);
Scanner sc=new Scanner(System.in);
if(sc.nextInt()==1) {
System.out.println("请输入用户名:");
Scanner sc1=new Scanner(System.in);
b1.setUser=sc1.next();
System.out.println("请输入密码:");
b1.setPassword=sc1.next();
System.out.println("恭喜您开户成功!您的账户余额为"+b1.getDeposit()+"元。");
}
else {
b1.exit();
}
Bank.Menu();
int choice = sc.nextInt();
if(choice==1) {
b1.SaveMoney(b1);
}
if(choice==2) {
b1.spendMoney(b1);
}
if(choice==3) {
b1.exit();
}
}
}
结果截图
实验心得
- static不能轻易设置,会使该方法中参数无法更新数值
- Equal方法注意格式使用.equals()
- 注意条件语句中的括号是否有遗漏多加