java基础简单实现atm机,java编写atm系统
00-1010 1.系统准备,首页,用户开户功能系统准备,首页设计总结汇总2。用户登录、操作页面显示、账号查询、退出账号用户登录功能实现摘要总结3。用户存款和取款用户存款汇总审查4。用户转账、密码修改、账户注销用户转账功能汇总回顾5。源代码在这里,拿系统准备内容分析在这里。
每个用户的账户信息都是一个对象,需要提供一个账户类。
需要一个容器来存储系统的所有帐户对象信息。
主页应该包括两个功能:登录和注册。
目录
00-1010系统准备内容分析:
每个用户的账户信息都是一个对象,所以需要提供一个账户类,准备一个容器来存储和系统化所有的账户对象信息。主页只需要包括两个步骤:登录和注册:
定义一个account类,用于后期创建account对象,封装用户的账户信息。账户类中的信息至少应包括(卡号、姓名、密码、余额、取现金额)包com.wangxinhua导入Java . util . ArrayList;导入Java . util . scanner;类ATM系统{ public static void main(string[]args){//1。准备系统所需的容器对象,用户存储帐户对象ArrayList Accounts=new ArrayList();//2.准备系统主页,登录并开通账户show main(accounts);} public static void show main(ArrayList accounts accounts){ system . out . println(======欢迎来到首页====);Scanner sc=新扫描仪(system . in);While(true) {System.out.println(请输入您想做的:);System.out.println(1。登录’);System.out.println(2。开户’);System.out.println(可以输入命令:);int command=sc . nextint();Switch(command) {case 1: //登录中断;案例2: //开户突破; system.out.println(不支持您当前输入的操作命令!);} } }}
00-1010用户的账号信息,系统是如何表示的?定义账户类账户,定义系统关心的属性信息。
系统用什么来存储所有用户的账户对象信息?ArrayListAccount accounts=new ArrayList();用户开户功能的实现
开户的分析功能,其实就是把一个新的账户对象的信息存储到系统的收款容器中。
开户功能实现步骤定义完成开户的方法:
公共静态Void寄存器(数组列表帐户帐户){.}键盘输入姓名、密码、确认密码(两个密码必须一致)生成账户卡号,必须由系统自动生成,8位数字(卡号必须唯一)。创建帐户类对象。用户封装帐户信息(姓名、密码和卡号)并将帐户类对象存储到集合帐户中。包com.wangxinhua导入Java . lang . reflect . array;顽童
ort java.util.ArrayList;import java.util.Random;import java.util.Scanner;public class ATMSystem{ public static void main(String[] args) {// 1.准备系统需要的容器对象,用户存储账户对象 ArrayList<Account> accounts = new ArrayList();// 2.准备系统的首页,登入,开户 showMain(accounts); } public static void showMain(ArrayList<Account> accounts) { System.out.println("=============欢迎进入首页==========="); Scanner sc = new Scanner(System.in); while(true) { System.out.println("请您输入您想做的操作:"); System.out.println("1.登录"); System.out.println("2.开户"); System.out.println("您可以输入命令了:"); int command = sc.nextInt(); switch(command) { case 1: //登入 break; case 2: //开户 register(accounts,sc); break; default: System.out.println("您当前输入的操作命令不被支持!"); } } } /** * 用户开户功能 * @param accounts 账户的集合对象 */ private static void register(ArrayList<Account> accounts, Scanner sc) { System.out.println("=========用户开户功能=========="); //键盘录入 姓名 密码 确认密码 System.out.println("请您输入开户名称:"); String name = sc.next(); String password = ""; while (true) { System.out.println("请您输入开户密码:"); password = sc.next(); System.out.println("请您输入确认密码:"); String okPassword = sc.next();// 判断两次输入的密码是否一致 if (okPassword.equals(password)) //字符串比较用equals { break; } else { System.out.println("两次密码必须一致~~~"); } } System.out.println("请您输入当次限额:"); double quotaMoney = sc.nextDouble();// 3.生成账户的卡号,卡号是8位,而且不能与其他账户卡号重复。 String cardId = creatCardId(accounts);// 4.创建一个账户对象封装账户的信息// public Account(String cardId, String userWord, String passWord, double money, double quotaMoney) Account account = new Account(cardId,name,password,quotaMoney);// 5.把账户对象添加到集合中去 accounts.add(account); System.out.println("恭喜您,您开户成功,您的卡号是:" + account.getCardId() + ",请您妥善保管"); } public static String creatCardId(ArrayList<Account> accouts) { while (true) {// 生成8位随机的数字代表卡号 String cardId = ""; Random r = new Random(); for (int i = 0; i < 8; i++) { cardId += r.nextInt(10); }// 判断卡号是否重复了 Account acc = getAccountBycardId(cardId,accouts); if (acc == null) { // 说明当前卡号没有重复 return cardId; } } } public static Account getAccountBycardId(String cardId, ArrayList<Account> accounts) {// 根据卡号查询对象 for (int i = 0; i < accounts.size(); i++) { Account acc = accounts.get(i); if (acc.getCardId().equals(cardId)) { return acc; } } return null;//查无此账户,说明卡号没有重复了! }}
总结
开户功能的实现需要哪几步操作,需要注意什么问题?
开户功能应该独立定义成方法,并传入当前集合对象给该方法。 录入开户信息(姓名,密码) 卡号要自动生成且唯一 把开户的信息封装成Account对象,存入到集合中去。
2.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。