

注册,登录,查询,取款·,转账,修改密码 等功能 。直接上代码
首先定义一个用户类。代码如下
package mima;
/**
* 账户私有成员
*
*/
public class Acount1 {
private String cardId;
private String userNamer;//用户名;
private String passWard;
private double money;
private double qoutmoney;//余额
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getUserNamer() {
return userNamer;
}
public void setUserNamer(String userNamer) {
this.userNamer = userNamer;
}
public String getPassWard() {
return passWard;
}
public void setPassWard(String passWard) {
this.passWard = passWard;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public double getQoutmoney() {
return qoutmoney;
}
public void setQoutmoney(double qoutmoney) {
this.qoutmoney = qoutmoney;
}
}
然后就是完整的核心代码
package mima;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class Atmsystem {
public static void main(String[] args) {
ArrayList<Acount1> acount1s = new ArrayList<>();//创建一个集合
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("======欢迎进入ATM系统=======");
System.out.println("1.账户登录");
System.out.println("2.账户注册");
System.out.println("请选择你的操作:");
int co = sc.nextInt();
switch (co) {
case 1:
//登录操作
login(acount1s, sc);
break;
case 2:
//注册操作ALT+ENTER;
register(acount1s, sc);//传入扫描
break;
default:
System.out.println("你的选择不存在-");
}
}
}
/**
* @param acount1s 全部账户对象的集合
* @param sc
*/
private static void login(ArrayList<Acount1> acount1s, Scanner sc) {
System.out.println("=============登陆操作============");
if (acount1s.size() == 0) {
System.out.println("账号不存在--");
return;
}
while (true) {
System.out.println("请您输入卡号:");
String cardd = sc.next();
Acount1 acc = getaccomtcardid(acount1s, cardd);//接受返回的对象
if (acc != null) {//登录密码
while (true) {
System.out.println("请您输入密码:");
String paward = sc.next();
if (acc.getPassWard().equals(paward)) {
System.out.println("登录成功!欢迎" + acc.getUserNamer() + "进入");
usermenu(sc, acc, acount1s);
return;
} else {
System.out.println("密码错误!");
}
}
} else {
System.out.println("该账号不存在!");
}
}
}
/**
* 用户操作页面
*
* @param sc
*/
private static void usermenu(Scanner sc, Acount1 acc, ArrayList<Acount1> acount1s) {
while (true) {
System.out.println("=============用户操作页面============");
System.out.println("1,用户查询");
System.out.println("2,存款");
System.out.println("3,取款");
System.out.println("4,转账");
System.out.println("5,修改密码");
System.out.println("6,退出");
System.out.println("7,注销账户");
System.out.println("请选择:");
int com = sc.nextInt();
switch (com) {
case 1:
showaccont(acc);
break;
case 2:
setmoney(sc, acc);
break;
case 3:
pushmoney(sc, acc);
break;
case 4:
tranermoney(sc, acount1s, acc);
break;
case 5:
updatapassword(sc,acc,acount1s);
return;
case 6:
System.out.println("退出成功");
return;
case 7:
if (deletueser(acc,acount1s,sc)) {
return;
}
else {
break;
}
default:
System.out.println("您的选择错误:");
}
}
}
private static boolean deletueser(Acount1 acc, ArrayList<Acount1> acount1s, Scanner sc) {
System.out.println("==========销户操作页面==========");
System.out.println("确认销户?(输入”是“进行销户)");
String k = sc.next();
switch (k){
case "是":
if(acc.getMoney()>0)
{
System.out.println("您账户中还有余额,不能销户");
return false;
}
else
{
acount1s.remove(acc);
System.out.println("销户成功");
return true;
}
default:
System.out.println("返回操作菜单");
return false;
}
}
/**
*
* @param sc
* @param acc
*/
private static void updatapassword(Scanner sc,Acount1 acc,ArrayList<Acount1> acount1s) {
System.out.println("===============密码修改操作页面=============");
while (true) {
System.out.println("请输入原始密码:");
String passwd = sc.next();
if(acc.getPassWard().equals(passwd))
{
while (true) {
System.out.println("请输入新密码:");
String paw = sc.next();
System.out.println("请确认新密码:");
String pd = sc.next();
if(pd.equals(paw))
{
acc.setPassWard(pd);
System.out.println("密码修改成功");
return;
}
else
{
System.out.println("两次输入不相同,请重新输入:");
}
}
}
else
{
System.out.println("密码错误请重新输入;");
}
}
}
/**
* 转账,
*
* @param sc
* @param acount1s 集合
* @param acc 登录用户,对象
*/
private static void tranermoney(Scanner sc, ArrayList<Acount1> acount1s, Acount1 acc) {
System.out.println("===========进入转账============");
if (acount1s.size() < 2) {
System.out.println("无其他用户");
return;
}
if (acc.getMoney() == 0) {
System.out.println("余额不足-");
return;
}
while (true) {
System.out.println("请输入对方卡号:");
String cid1 = sc.next();
if (acc.getCardId().equals(cid1)) {
System.out.println("您不可以向自己转账");
continue;
}
Acount1 acont = getaccomtcardid(acount1s, cid1);
if (acont == null) {
System.out.println("账户不存在");
} else {
String UserName = acont.getUserNamer();
String tip = "*" + UserName.substring(1);
System.out.println("请您输入[" + tip + "]姓氏");
String pername = sc.next();
if (UserName.startsWith(pername)) {
while (true) {
System.out.println("请输入转账金额:");
double money = sc.nextDouble();
if (acc.getMoney() < money) {
System.out.println("余额不足,你最多可以转" + acc.getMoney());
} else {
acc.setMoney(acc.getMoney() - money);
acont.setMoney(acont.getMoney() + money);
System.out.println("转账成功,当余额为" + acc.getMoney());
return;
}
}
} else {
System.out.println("输入信息错误");
}
}
}
}
private static void pushmoney(Scanner sc, Acount1 acc) {
if (acc.getMoney() < 100) {
System.out.println("您当前余额小于100元,无法取出!");
return;
}
while (true) {
System.out.println("请输入取款金额:");
double pmomey = sc.nextDouble();
if (pmomey > acc.getQoutmoney()) {
System.out.println("您当前取出金额大于限定金额:" + acc.getQoutmoney() + "元");
} else {
if (acc.getMoney() < pmomey) {
System.out.println("您所剩余额不足 " + acc.getMoney() + "元");
} else {
acc.setMoney(acc.getMoney() - pmomey);
showaccont(acc);
return;
}
}
}
}
/**
* 存钱
*/
private static void setmoney(Scanner sc, Acount1 acc) {
System.out.println("请输入存取金额:");
double money = sc.nextDouble();
acc.setMoney(acc.getMoney() + money);
showaccont(acc);
}
/**
* 用户信息展示;
*/
private static void showaccont(Acount1 acc) {
System.out.println("当用户前信息如下:");
System.out.println("用户名:" + acc.getUserNamer());
System.out.println("卡号:" + acc.getCardId());
System.out.println("当前余额:" + acc.getMoney() + "元");
System.out.println("限额:" + acc.getQoutmoney() + "元");
}
/**
* 注册开户
*
* @param acount1s//接收信息的集合
*/
private static void register(ArrayList<Acount1> acount1s, Scanner sc) {
System.out.println("========注册开户操作========");
//创建一个账户对象,用于后期封装账户信息,
Acount1 acount1 = new Acount1();
//录入当前信息注入到,对象中去。
System.out.println("请输入用户名:");
String usernamer = sc.next();
acount1.setUserNamer(usernamer);
while (true) {
System.out.println("请输入密码:");
String password = sc.next();
System.out.println("请确认密码:");
String password1 = sc.next();
if (password.equals(password1)) {
acount1.setPassWard(password1);
break;
} else {
System.out.println("两次密码输入不一样,请重新输入");
}
}
System.out.println("请输入每次限额;");
double tomoney = sc.nextDouble();
acount1.setQoutmoney(tomoney);
System.out.println("ok");
//为账户随机一个八位数且不重复,独立方法
String cardid = getrandomcard(acount1s);
System.out.println("恭喜你" + usernamer + "开户成功!" + "您的卡号为" + cardid);
acount1.setCardId(cardid);
acount1s.add(acount1);
}
private static String getrandomcard(ArrayList<Acount1> acount1s) {
//生成八位数
while (true) {
Random r = new Random();
String cId = "";
for (int i = 0; i < 8; i++) {
cId += r.nextInt(10);
}
//System.out.println("ok");
Acount1 acc = getaccomtcardid(acount1s, cId);
if (acc == null) {
return cId;
}
}
}
private static Acount1 getaccomtcardid(ArrayList<Acount1> acount1s, String cId) {//比较是否重复
for (int i = 0; i < acount1s.size(); i++) {
Acount1 acc = acount1s.get(i);
if (acc.getCardId().equals(cId)) {
return acc;
}
}
return null;//查无此账户
}
}
最后
以上就是活力鸡最近收集整理的关于Java ATM系统课程设计完整代码详细注释,注册,登录,查询,取款·,转账,修改密码 等功能 。直接上代码的全部内容,更多相关Java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复