练习:利用迭代器写一个注册登录功能
2015-08-29 19:04
525 查看
package cn.test.collection; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.Scanner; /* * 作业2:使用集合实现注册登陆功能, 第一步: 提示用户选择功能, A(注册) B(登陆) 。 要求: 功能选择 的时候要忽略大小写。 注册: 1. 提示用户输入注册的账号(数字)与密码,如果输入账号已经存在集合中,提示用户重新输入。 注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法) 登陆: 提示用户输入登陆的账号与密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。 * */ //用户 class User{ int id;//账号 String password;//密码 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public User(int id, String password) { //super(); this.id = id; this.password = password; } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub User user = (User)obj; return this.id == user.id; } @Override public String toString() { // TODO Auto-generated method stub return "{账号:"+this.id+"密码:"+this.password+"}"; } } public class Demo1 { static Scanner scanner = new Scanner(System.in); static Collection users = new ArrayList();//使用该集合保存所有用户信息 public static void main(String[] args) { //System.out.println( ' '); while(true){ System.out.println("请选择功能 A(注册) B(登录)"); String option = scanner.next(); if("a".equalsIgnoreCase(option)){ // 110 , 220 reg(); }else if("b".equalsIgnoreCase(option)){ login(); }else{ System.out.println("你的选择有误,请重新输入 "); } } } public static void login() { System.out.println("你选择了登录的功能。。。"); System.out.println("请输入账号:"); int id = scanner.nextInt(); System.out.println("请输入密码"); String password = scanner.next(); //判断集合用户是否存在该用户名与密码 //遍历集合元素查看是否存在 boolean isLogin = false; Iterator it = users.iterator(); while(it.hasNext()){ User user = (User)it.next(); if(user.id==id&&user.password.equals(password)){ isLogin = true; } } if(isLogin){ System.out.println("欢迎登陆。。。"); }else{ System.out.println("用户名或者密码错误,登陆失败。。"); } } public static void reg() { User user = null; while(true){ System.out.println("请输入账号"); int id = scanner.nextInt(); user = new User(id, null); if(users.contains(user)){ //contain方法底层依赖于equals方法 //如果存在 System.out.println("该用户名已经存在,请重新输入账号。。。"); }else{ //不存在 break; } } System.out.println("请输入密码。。。"); String password = scanner.next(); user.setPassword(password); //把user对象保存到集合中 users.add(user); System.out.println("注册成功"); System.out.println("当前注册的人员:"+users); //遍历集合的元素是否存在该账号 /*Iterator it = users.iterator();//使用迭代遍历集合的元素 while(it.hasNext()){ User user = (User) it.next(); if(user.id == id){ System.out.println("该账号已被注册请从新输入账号 。。 "); break; } }*/ } }
相关文章推荐
- 设计模式之行为型模式 - 调用行为的传递问题
- Ruby中的迭代器详解
- Ruby中Block和迭代器的使用讲解
- Lua中的迭代器浅析
- Lua中的迭代器和泛型for介绍
- C#特性-迭代器(上)及一些研究过程中的副产品
- C#迭代器模式(Iterator Pattern)实例教程
- Lua中的迭代器和泛型for学习总结
- C#特性 迭代器(下) yield以及流的延迟计算
- ruby 迭代器使用方法
- 使用迭代器 遍历文件信息的详解
- PHP迭代器的内部执行过程详解
- C#中使用迭代器处理等待任务
- Lua的迭代器使用中应该避免的问题和技巧
- Lua中的for循环和迭代器的秘密探究
- Lua中的迭代器和泛型for实例
- Lua教程(五):迭代器和泛型for
- 浅析Lua中的迭代器
- JavaScript中的迭代器和生成器详解
- js 数组实现一个类似ruby的迭代器