1.创建一个Acount类
//账户类
public class Account {
private int id;//卡号
private String name;//账户名
private String password;//密码
private double max_money;//最大额度
private double surplus_money;//剩余金额
public Account() {
}
public Account(int id, String name, String password, double max_money, double surplus_money) {
this.id = id;
this.name = name;
this.password = password;
this.max_money = max_money;
this.surplus_money = surplus_money;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMax_money() {
return max_money;
}
public void setMax_money(double max_money) {
this.max_money = max_money;
}
public double getSurplus_money() {
return surplus_money;
}
public void setSurplus_money(double surplus_money) {
this.surplus_money = surplus_money;
}
}
2.写注册前的登录页面
//登陆前的主页面
public static void Print_main1(){
System.out.println("===============欢迎来到ATM系统===============");
System.out.println("1.登录账户");
System.out.println("2.创建用户");
System.out.println("3.退出系统");
}
3.写登录函数
//登录页面
public static Account DengLu(ArrayList<Account>arrayList, Scanner sc) {
System.out.println("===============欢迎来到登录操作页面===============");
if (arrayList.size() == 0) {
System.out.println("改系统没有账户,无法登录");
return null;
} else {
while (true) {
System.out.println("请输入您的卡号");
int id = sc.nextInt();
boolean index=false;
for (int i = 0; i < arrayList.size(); i++) {
if (arrayList.get(i).getId() == id) {
index=false;
while (true) {
System.out.println("请输入登录密码:");
String password = sc.next();
if (arrayList.get(i).getPassword().equals(password)) {
System.out.println("欢迎您" + arrayList.get(i).getName() + "先生/女士,您可以办理业务了");
return arrayList.get(i);
} else {
System.out.println("密码错误!");
}
}
} else {
index=true;
}
}
if (index){
System.out.println("该用户不存在");
}
}
}
}
4.写注册函数
//创建账户
public static void Create_Account(ArrayList<Account>arrayList, Scanner sc){
System.out.println("===============欢迎来到注册操作页面===============");
//输入姓名
System.out.println("请输入姓名");
String name=sc.next();
//输入密码
OUT:
while (true){
System.out.println("请输入账户密码");
String passWord=sc.next();
System.out.println("请确认密码");
String password= sc.next();
if (!password.equals(passWord)){
System.out.println("两次密码输入不一样");
}else {
//输入最大金额
System.out.println("请您设置取现额度");
double max_money=sc.nextDouble();
while (true){
//随机生成卡号,遍历集合,防止重复
Random r=new Random();
int id=r.nextInt(10000000)+90000000;
boolean index=true;
for (int i = 0; i < arrayList.size(); i++) {
if (id==arrayList.get(i).getId()){
index=false;
}else {
index=true;
}
}
if (index){
Account a=new Account(id,name,password,max_money,0);
//添加到集合
arrayList.add(a);
System.out.println("恭喜您"+name+"先生/女士,您开户完成,您的卡号为"+id);
break OUT;
}
}
}
}
}
5.写登录后的主页面
//登录成功后的主页面
public static void Print_main2(){
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.注销用户");
}
6.写登录后的一些操作函数
//1.查询
public static void search_Account(Account account){
System.out.println("===============您当前账户信息如下===============");
System.out.println("卡号:"+account.getId());
System.out.println("户主:"+account.getName());
System.out.println("余额:"+account.getSurplus_money());
System.out.println("当前取现额度:"+account.getMax_money());
}
//2.存款
public static void stare_money(Account account,Scanner sc){
System.out.println("===============欢迎来到存款操作页面===============");
System.out.println("请输入存款的金额");
double number=sc.nextDouble();
account.setSurplus_money(account.getSurplus_money()+number);
System.out.println("您当前余额:"+account.getSurplus_money());
}
//3.取款
public static void get_money(Account account,Scanner sc){
System.out.println("===============欢迎来到取款操作页面===============");
while (true){
System.out.println("请输入取款的金额");
double number=sc.nextDouble();
if (number>account.getSurplus_money()){
System.out.println("当前余额不足。当前余额是:"+account.getSurplus_money());
}else {
if(number>account.getMax_money()){
System.out.println("您当前取款金额超过了每次限额");
}else {
account.setSurplus_money(account.getSurplus_money()-number);
System.out.println("您当前取钱完成,请拿走您的钱。当前账户余额为:"+account.getSurplus_money());
break;
}
}
}
}
//4.转账
public static void Zhuan_money(Account account,ArrayList<Account>arrayList,Scanner sc){
System.out.println("===============欢迎来到转账操作页面===============");
if(arrayList.size()<2){
System.out.println("当前无其他用户可以转,去注册一个账户吧");
} else {
OUT1:
while (true) {
System.out.println("请输入转入的卡号");
int id = sc.nextInt();
if (id==account.getId()){
System.out.println("转入账号不能为本账户");
}else {
OUT:
for (int i = 0; i < arrayList.size(); i++) {
if (id == arrayList.get(i).getId()) {
String name = arrayList.get(i).getName();//获得转入账户的姓名
String s1 = "" + name.charAt(0);
String new_name = name.replace(s1, "*");
System.out.println("请您确认" + new_name + "的姓氏来确认对方用户");
while (true) {
System.out.println("请输入对方姓氏");
String s = sc.next();
if (s1.equals(s)) {
System.out.println("请输入转入的金额");
double number = sc.nextDouble();
//本账户减
if (account.getSurplus_money() > number) {
account.setSurplus_money(account.getSurplus_money() - number);
arrayList.get(i).setSurplus_money(arrayList.get(i).getSurplus_money() + number);
System.out.println("转入成功。当前余额为"+ account.getSurplus_money());
} else {
System.out.println("账户余额不足。当前余额为" + account.getSurplus_money());
}
break OUT1;
} else {
System.out.println("您输入对方卡号有误");
break OUT;
}
}
}
}
}
}
}
}
//5.修改密码
public static void Update_Account(Account account,Scanner sc){
System.out.println("===============欢迎来到修改密码操作页面===============");
while (true){
System.out.println("请输入修改后的密码");
String s= sc.next();
System.out.println("请确认密码");
String s1=sc.next();
if (s1.equals(s)){
account.setName(s);
System.out.println("修改成功");
break;
}else {
System.out.println("两次输入的不一致,请重新输入");
}
}
}
//6.退出
public static void exit(){
System.exit(-1);
}
//7.注销用户
public static void remove_account(Account account,Scanner sc,ArrayList<Account>arrayList){
System.out.println("===============欢迎来到注销操作页面===============");
System.out.println("您确定要注销吗(1--false)");
int num=sc.nextInt();
if (num==1){
arrayList.remove(account);
}
}
总代码:
public class Account {
private int id;//卡号
private String name;//账户名
private String password;//密码
private double max_money;//最大额度
private double surplus_money;//剩余金额
public Account() {
}
public Account(int id, String name, String password, double max_money, double surplus_money) {
this.id = id;
this.name = name;
this.password = password;
this.max_money = max_money;
this.surplus_money = surplus_money;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMax_money() {
return max_money;
}
public void setMax_money(double max_money) {
this.max_money = max_money;
}
public double getSurplus_money() {
return surplus_money;
}
public void setSurplus_money(double surplus_money) {
this.surplus_money = surplus_money;
}
}