个人名片:
🐅作者简介:一名大二在校生,热爱生活,爱好敲码!
💅个人主页🥇:holy-wangle
➡系列内容:🖼️tkinter前端窗口界面创建与优化
✨个性签名:🍭不积跬步,无以至千里;不积小流,无以成江海。
案例文章
2.用户开户功能实现
开户功能其实就是往系统的集合容器中存入一个新的账户对象的信息。
具体实现:
开户应该定义成一个方法,并传入账户集合
创建一个Account账户类的对象用于封装账户信息(姓名、密码、卡号)
键盘录入姓名、密码、确认密码(需保证两次密码一致)
生成账户卡号,卡号必须是系统自动生成的8位数字(且卡号唯一)
把Account账户对象存入到集合accounts中去。
代码实现:
- 注册
private static void register(ArrayList<Account> accounts,Scanner sc) {
// 开户功能实现
System.out.println("===============ATM系统开户功能===============");
Account account = new Account();
System.out.println("请您输入账号名:");
String name = sc.next();
account.setUserNames(name);
while (true) {
System.out.println("请您输入密码:");
String passWord = sc.next();
System.out.println("请您再次输入密码:");
String okPassWord = sc.next();
if (passWord.equals(okPassWord))
{
System.out.println("密码确认成功!");
account.setPassWord(okPassWord);
break;
}
else
{
System.out.println("抱歉!两次密码输入不一致,请重新输入!");
}
}
System.out.println("请设置当初提现最大额度:");
double quoteMoney = sc.nextDouble();
account.setQuotaMoney(quoteMoney);
// 为账号随机生成一个8位数的卡号且不重复的号码(独立功能,独立方法)
String cardId = getCardId(accounts);
account.setCardId(cardId);
//3.把账户对象添加到账户集合去
System.out.println("账号添加完成!");
accounts.add(account);
System.out.println("恭喜!" + name + "先生/女士," + "\n" + "您的账户注册成功!"
+ "卡号是:" + cardId);
}
- 得到唯一的卡号
/**
* 随机生成卡号不重复
* @return
*/
private static String getCardId(ArrayList<Account> accounts) {
// 随机生成8个数字
Random r = new Random();
while (true) {
String cardId = "";
for (int i = 0; i < 8; i++) {
int data = r.nextInt(10);
cardId += data;
}
// 这里再定义一个方法去,获得独一无二的卡号
Account acc = getSureCardId(cardId,accounts);
// 如果为空的话,证明没有出现该卡号,就可以使用该卡号
if (acc == null)
{
return cardId;
}
}
}
/**
* 根据卡号查询处一个账户对象
* @param cardId 生成的卡号
* @param accounts 账户集合
* @return 返回一个账户对象地址
*/
private static Account getSureCardId(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;//查无此账号
}
好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!
私信,评论我呗!!!!!!
关注我下一篇不迷路哦!