1、java面向对象版ATM管理系统这段时间闲的没事接了一个课程设计,具体就是学完java基础入门语法和面向对象(封装,继承,多态)之后需要做一个模拟ATM的管理系统,功能包括注册登陆、存取查功能。前后思考加实现用了半天时间去完善修改实现此系统,一方面是对自己以前所学知识的回顾以及综合运用,另一方面也是给新人指条路,毕竟学习确实不易,还是希望大家少走弯路。Java基础语法和面向对象的重点在此简单罗列以下,各位小伙伴查漏补缺,看自己哪块知识有漏洞去加深学习巩固下知识-变量、运算符、循环、函数、数组、面向对象、this、super、static 、final、成员变量局部变量、构造函数、函数重载、重写
2、/覆写、封装、继承、多态、抽象、接口。其中尤为重要的是接口,无论是以后工作还是学习最常用最重要的就是接口,做项目各成员分工之后各自实现自己的部分,最后对接一下接口就OK了,所以说接口无论是在面向对象中还是在以后的开发中都很重要。通俗来讲接口举个例子,电脑的USB接口可以对接鼠标、键盘、硬盘、数据线等等,对接的对象不同实现的功能就不同,在实际开发中每个人的功能是不一样的,实现了接口的对接即实现了此功能的植入调用。好了,接下来是开始今天的项目展示和思路分析,话不多说开始!首先思路要清晰,我们需要什么,要做什么,有什么用,了解清楚才好下手。具体分为存取成员信息变量类、登陆注册类、存查取类、菜单类以及
3、测试类。各个功能模块实现独立分开,详细介绍如下:Account类:用于存取用户成员变量信息Menu类:主菜单即登陆注册菜单,以及登陆成功后的存取查操作菜单RegisAndLogin类:包括登陆和注册方法Operation类:登陆成功后的存取查方法AtmTest类:功能测试类重点:该系统最重要的是要把账户类作为参数去传递,因为要实现操作的变量信息随时能够接收到,举个例子,如果不把账户类作为参数,在注册信息成功后再去登陆是绝对不可能的,因为变量复赋值后的值是传递不过去的,其他类和方法接收不到。1.Account.java类成员变量私有化,其他类通过setter、getter方法获取以及存取信息(有
4、参构造函数可以不写,我再此是为了在测试的时候不用在去注册信息,直接登录就可以了,去掉有参构造的同时在测试类中实例化账户类时调用无参构造器就可以)package com.atm.twelve;public class Account private int username; private int password; private String name; private int age; private int money; public int getUsername() return username; public void setUsername(int username) thi
5、s.username = username; public int getPassword() return password; public void setPassword(int password) this.password = password; public String getName() return name; public void setName(String name) this.name = name; public int getAge() return age; public void setAge(int age) this.age = age; public
6、int getMoney() return money; public void setMoney(int money) this.money = money; public Account() public Account(int username, int password, String name, int age, int money) this.username = username; this.password = password; this.name = name; this.age = age; this.money = money; 2.Menu.java类package
7、com.atm.twelve;/菜单public class Menu public void menu() System.out.println(-); System.out.println(| 欢迎进入ATM机系统 |); System.out.println(| 1注册 |); System.out.println(| 2登录 |); System.out.println(| 欢迎进入ATM机系统 |); System.out.println(-); System.out.println(请输入整数序号:); public void welcome(Account account) Sy
8、stem.out.println(-); System.out.println( 欢迎+account.getName()+进入ATM机系统); System.out.println(| 1查询余额 |); System.out.println(| 2存款 |); System.out.println(| 3取款 |); System.out.println(| 4退出 |); System.out.println(-); System.out.println(请输入整数序号:); 3.AtmTest.java类package com.atm.twelve;import java.util.S
9、canner;/ATM测试类public class AtmTest public static void main(String args) Menu m=new Menu(); Scanner sc=new Scanner(System.in); RegisAndLogin r=new RegisAndLogin(); Account a=new Account(17159,123456,杨乾,20,10000); boolean b=false; Operation o=new Operation(); /主菜单界面 while(true) m.menu(); int index=sc.
10、nextInt(); if(index=1) /注册 b=r.regis(a, sc); if(b) System.out.println(注册成功!); System.out.println(a.getName()+-初始账户余额:+a.getMoney(); else System.out.println(注册次数用完,请明天再来!); else if(index=2) /登陆 b=r.login(a, sc); if(b) System.out.println(登陆成功,欢迎+a.getName()+用户!); break; else System.out.println(登陆次数用完,
11、请明天再来!); /操作界面 if(b) while(true) m.welcome(a); int index=sc.nextInt(); if(index=1) /查询余额 o.findMoney(a, sc); else if(index=2) /存款 o.addMoney(a, sc); else if(index=3) /取款 o.putMoney(a, sc); else /退出 break; 4.RegisAndLogin.java类两个方法用boolean用来返回是否成功注册登录,以便后续的操作判断package com.atm.twelve;import java.util.
12、Scanner;/登陆、注册类public class RegisAndLogin extends Account /boolean用于判断是否注册成功 public boolean regis(Account account,Scanner sc) System.out.println(请输入整数型的注册账户:); int uname=sc.nextInt(); for(int i=0;i3;i+) System.out.println(请输入整数型的账户密码:); int pword=sc.nextInt(); System.out.println(请二次输入密码:); int pword
13、2=sc.nextInt(); if(pword=pword2) /成功 account.setPassword(pword); break; else System.out.println(两次输入密码不正确!); if(i=2) return false; System.out.println(请输入用户名:); String name=sc.next(); System.out.println(请输入年龄:); int age=sc.nextInt(); account.setMoney(10000); account.setUsername(uname); account.setNam
14、e(name); account.setAge(age); return true; /boolean用于判断是否登陆成功 public boolean login(Account account,Scanner sc) System.out.println(请输入账户名:); for(int i=0;i3;i+) int uname=sc.nextInt(); if(uname=account.getUsername() /账号正确 break; else System.out.println(不存在此账户!请重新输入:); if(i=2) return false; System.out.
15、println(请输入账户密码:); for(int j=0;j0) account.setMoney(money+account.getMoney(); System.out.println(存款成功!); else System.out.println(存款数额不能为零或负!); public void findMoney(Account account,Scanner sc) System.out.println(您的余额为:+account.getMoney(); public void putMoney(Account account,Scanner sc) System.out.p
16、rintln(请输入你的取款额:); int money=sc.nextInt(); if(0money&moneyaccount.getMoney() System.out.println(取款成功!); account.setMoney(account.getMoney()-money); else System.out.println(余额不足!); 再来个运行效果图吧因为有构造函数,用户信息已经有了,所以直接登陆即可1.账号三次输入错误后,重新登陆密码三次输入错误,再成功登陆-| 欢迎进入ATM机系统 | 1注册 | 2登录 | 欢迎进入ATM机系统 |-请输入整数序号:2请输入账户名
17、:156不存在此账户!请重新输入:156不存在此账户!请重新输入:156不存在此账户!请重新输入:登陆次数用完,请明天再来!-| 欢迎进入ATM机系统 | 1注册 | 2登录 | 欢迎进入ATM机系统 |-请输入整数序号:2请输入账户名:17159请输入账户密码:123密码有误!请重新输入:456密码有误!请重新输入:456密码有误!请重新输入:登陆次数用完,请明天再来!-| 欢迎进入ATM机系统 | 1注册 | 2登录 | 欢迎进入ATM机系统 |-请输入整数序号:2请输入账户名:17159请输入账户密码:123456登陆成功,欢迎杨乾用户!- 欢迎杨乾进入ATM机系统| 1查询余额 | 2
18、存款 | 3取款 | 4退出 |-请输入整数序号:2.注册密码三次输入错误之后重新注册成功后登陆-| 欢迎进入ATM机系统 | 1注册 | 2登录 | 欢迎进入ATM机系统 |-请输入整数序号:1请输入整数型的注册账户:17159请输入整数型的账户密码:123456请二次输入密码:456两次输入密码不正确!请输入整数型的账户密码:123请二次输入密码:456两次输入密码不正确!请输入整数型的账户密码:123请二次输入密码:456两次输入密码不正确!注册次数用完,请明天再来!-| 欢迎进入ATM机系统 | 1注册 | 2登录 | 欢迎进入ATM机系统 |-请输入整数序号:1请输入整数型的注册账户
19、:17159请输入整数型的账户密码:123456请二次输入密码:123456请输入用户名:YQ请输入年龄:20注册成功!YQ-初始账户余额:10000-| 欢迎进入ATM机系统 | 1注册 | 2登录 | 欢迎进入ATM机系统 |-请输入整数序号:2请输入账户名:17159请输入账户密码:123456登陆成功,欢迎YQ用户!- 欢迎YQ进入ATM机系统| 1查询余额 | 2存款 | 3取款 | 4退出 |-请输入整数序号:3.登陆成功后存查取款登陆成功,欢迎杨乾用户!- 欢迎杨乾进入ATM机系统| 1查询余额 | 2存款 | 3取款 | 4退出 |-请输入整数序号:1您的余额为:10000- 欢迎杨乾进入ATM机系统| 1查询余额 | 2存款 | 3取款 | 4退出 |-请输入整数序号:2请输入存款数额:8000存款成功!- 欢迎杨乾进入ATM机系统| 1查询余额 | 2存款 | 3取款 | 4退出 |-请输入整数序号:3请输入你的取款额:4567取款成功!- 欢迎杨乾进入ATM机系统| 1查询余额 | 2存款 | 3取款 | 4退出 |-请输入整数序号:1您的余额为:13433- 欢迎杨乾进入ATM机系统| 1查询余额 | 2存款 | 3取款 | 4退出 |-请输入整数序号:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1