用JAVA设计一个模拟银行存取款业务 求大神 55
编写一个Java应用程序,模拟网上银行登录及存取款业务。登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作...
编写一个Java应用程序,模拟网上银行登录及存取款业务。登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1 取款:2 余额:3 退出:0),输入数字1、2时,将进行存取款操作,此时需要输入存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字0时将退出整个系统。
要求及解题思路:
1) 程序中涉及到的输入,均采用在控制台通过键盘录入的方式进行。
2) 利用类的封装的思想,创建银行帐户类User,在类中定义五个属性cardId、cardPwd、userName、call和account分别表示帐户的银行卡号、银行卡密码、账户名、手机号码和存款额。
3) 创建DBUtil类,该类用于模拟银行系统中的账户人信息,相当于数据库的功能。登录时需通过用户输入的信息和系统中保存的账户信息进行比较,从而判断登录是否成功。DBUtil类中通过Map集合存储模拟的账户信息,其中key值用于存储银行卡号,value值用于存储整个账户对象。该类中还需提供两个方法,分别是获取单个账户信息的方法和获取所有个账户信息的方法。
4) 创建一个Bank类,该类用于处理网上银行的登录、存取款和显示余额等所有业务逻辑。登录时需要验证用户输入的银行卡号和银行卡密码,是否存在于银行系统中,如果是提示登录成功,否则提示登录失败,让用户重新登录。登录成功后,需根据提示的四种操作类型,输入相应的数字,对当前账户存款进行存取和查询余额操作。操作完成后,输入数字0将退出整个系统。
5) 在应用程序的开发过程中,请尽可能地做到程序的健壮性和操作中提示人性化。例如用户在存款和取款时,显然输入非数字值是不合理的,此时应该加强判断并引导用户输入正确的数值,等等。 展开
要求及解题思路:
1) 程序中涉及到的输入,均采用在控制台通过键盘录入的方式进行。
2) 利用类的封装的思想,创建银行帐户类User,在类中定义五个属性cardId、cardPwd、userName、call和account分别表示帐户的银行卡号、银行卡密码、账户名、手机号码和存款额。
3) 创建DBUtil类,该类用于模拟银行系统中的账户人信息,相当于数据库的功能。登录时需通过用户输入的信息和系统中保存的账户信息进行比较,从而判断登录是否成功。DBUtil类中通过Map集合存储模拟的账户信息,其中key值用于存储银行卡号,value值用于存储整个账户对象。该类中还需提供两个方法,分别是获取单个账户信息的方法和获取所有个账户信息的方法。
4) 创建一个Bank类,该类用于处理网上银行的登录、存取款和显示余额等所有业务逻辑。登录时需要验证用户输入的银行卡号和银行卡密码,是否存在于银行系统中,如果是提示登录成功,否则提示登录失败,让用户重新登录。登录成功后,需根据提示的四种操作类型,输入相应的数字,对当前账户存款进行存取和查询余额操作。操作完成后,输入数字0将退出整个系统。
5) 在应用程序的开发过程中,请尽可能地做到程序的健壮性和操作中提示人性化。例如用户在存款和取款时,显然输入非数字值是不合理的,此时应该加强判断并引导用户输入正确的数值,等等。 展开
展开全部
简单啊,我觉得这个你还是自己写吧。第五个try{ }catch(){}一下判断就能确定是不是数字了其他的都很简单啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-06-23
展开全部
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
while (true) {
Bank.login();
}
}
}
class User {
private String cardId;
private String cardPwd;
private String userName;
private String call;
private double account;
public User(String cardId, String cardPwd, String userName, String call, double account) {
this.cardId = cardId;
this.cardPwd = cardPwd;
this.userName = userName;
this.call = call;
this.account = account;
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getCardPwd() {
return cardPwd;
}
public void setCardPwd(String cardPwd) {
this.cardPwd = cardPwd;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getCall() {
return call;
}
public void setCall(String call) {
this.call = call;
}
public double getAccount() {
return account;
}
public void setAccount(double account) {
this.account = account;
}
public void addMoney(double money) {
account += money;
}
public boolean canDrawMonet(double money) {
return account >= money;
}
public void drawMonet(double money) {
account -= money;
}
}
class DBUtil {
private static HashMap<String, User> userDb = new HashMap<>();
static {
userDb.put("123456789",new User("123456789","987654","小明","13333333333", 500));
}
public static User getUser(String cardId) {
return userDb.get(cardId);
}
public static List<User> getAllUser() {
return new ArrayList<>(userDb.values());
}
}
class Bank {
private static Scanner scanner = new Scanner(System.in);
private static User currentUser;
public static void login() {
System.out.println("===========网上银行登录===========");
System.out.print("请输入银行卡号:");
String cardId = scanner.next();
System.out.print("请输入银行卡密码:");
String cardPwd = scanner.next();
User loginUser = DBUtil.getUser(cardId);
if (loginUser == null || !cardPwd.equals(loginUser.getCardPwd())) {
System.out.println("银行卡号或银行卡密码输入错误,请确认后重新输入!");
return;
}
currentUser = loginUser;
System.out.println("欢迎您:" + currentUser.getUserName());
option();
}
public static void option() {
while (true) {
System.out.println("\n===========================\n请选择操作:\n1:存款\n2:取款\n3:余额\n0:退出\n");
switch (scanner.nextInt()) {
case 1:
System.out.print("请输入存款金额:");
double saveMoneyCount = scanner.nextDouble();
currentUser.addMoney(saveMoneyCount);
System.out.printf("存款成功,当前存款:%s 元%n", currentUser.getAccount());
break;
case 2:
System.out.print("请输入取款金额:");
double drawMoneyCount = scanner.nextDouble();
if (currentUser.canDrawMonet(drawMoneyCount)) {
currentUser.drawMonet(drawMoneyCount);
System.out.printf("取款成功,当前存款:%s 元%n", currentUser.getAccount());
} else {
System.out.println("取款失败,余额不足");
}
break;
case 3:
System.out.printf("当前存款:%s 元%n", currentUser.getAccount());
break;
case 0:
return;
default:
System.out.println("选择错误,请重新输入(0~3)");
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主您好,编码如下,直接运行即可: import java.util.Scanner; public class AtmGetMoney { public static void main(String[] args) { String password = "111111"; int count = 0; int a = 0; while(count
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-06-21
展开全部
能发出来参考一下吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询