A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

jiaogege520

中级黑马

  • 黑马币:132

  • 帖子:71

  • 精华:0

创建一个User类,属性包含:account,passWord;
        a.封装一个方法,模拟用户注册流程,提示用户输入账号、密码进行注册,每注册一个用户创建一个User对象存放到合适的集合中,若用户注册重复的账户则提示用户重新输入;
        b.封装一个方法,模拟用户登录流程,根据用户输入的数据在集合中匹配对应的对象,存在则提示登录成功,不存在则提示重新输入;

3 个回复

倒序浏览
package login;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Login {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub

               
                Bussiness bussiness = new Bussiness();
                bussiness.Register();
                bussiness.Register();
                User user = new User ();
                if((user = bussiness.Login())!=null){
                        System.out.println(user.getName()+"登陆成功");
                }else{
                        System.out.println("登陆失败");
                }
               
        }

}


class Bussiness{
        Dao dao = new Dao ();
        public User Login(){
               
                User user = new User();
                Scanner scan= new Scanner(System.in);
                System.out.println("输入用户名");
                user.setName( scan.next());
                System.out.println("输入用密码");
                user.setPassword(scan.next());
               
                if( dao.find(user)==null){
                        return null;
                }else{
                        return user;
                }
               
        }
       
        public void Register(){
                User user = new User();
                Scanner scan= new Scanner(System.in);
                while(true){
                        System.out.println("输入用户名");
                        user.setName( scan.next());
                        System.out.println("输入用密码");
                        user.setPassword(scan.next());
                        if(dao.find(user.getName())){
                                System.out.println("已经存在该User.请重新输入");
                        }else{
                                dao.add(user);
                                System.out.println("注册成功");
                                break;
                        }
                }
        }
}

class Dao {
        private List<User> list = new ArrayList<User>();
        public Boolean find(String userName){
                for (User u :list){
                        if(u.getName().equals(userName)){
                                return true;
                        }
                }
                return false;
        }
        public User find(User user ){
               
                for (User u :list){
                        if(u.getName().equals(user.getName())&&u.getPassword().equals(user.getPassword())){
                                return u;
                        }
                }
                return null;
        }
        public void add(User user ){
                list.add(user);
        }
}

class User{
        String name ;
        String password;
        public User(String name, String password) {
                super();
                this.name = name;
                this.password = password;
        }       
        public User() {
                // TODO Auto-generated constructor stub
        }
        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;
        }
}
考试真考这个。。按题意都要在方法内实现
回复 使用道具 举报
本帖最后由 miaoyi 于 2016-11-11 23:01 编辑

只写了一个注册的,登陆的在原有基础上改几行就可以了。
1,自定义类User
public class User {
     private String account;
     private String passWord;
     public User() {
          super();
     }
  public User(String account, String passWord) {
    super();
    this.account = account;
    this.passWord = passWord;
  }
  public String getAccount() {
    return account;
  }
2,注册方法
import java.util.ArrayList;
import java.util.Scanner;
public class test_Test {
   public static void main(String[] args) {
   ArrayList<User> user = new ArrayList<>(); // 创建集合,用于存放输入的用户名和密码,泛型为自定义类User
   while(true){
             login(user);      //调用注册方法
    }
}
private static void login(ArrayList<User> user) {   //注册方法的实现
    Scanner sc = new Scanner(System.in);//创建键盘录入对象
    String account;      //定义字符串,用于接受输入的用户名
    String password;     //定义字符串,用于接受输入的密码
    a:while(true){        //循环体a:在账号重复的情况下重新调用键盘录入
           System.out.println("请输入用户名:");
           account= sc.nextLine();
           System.out.println("请输入密码:");
           password = sc.nextLine();
           ArrayList<String> abc = new ArrayList<String>(); //创建临时集合,用于存放user集合中原有的用户名(account)
           for (User us : user) {        //遍历user集合,将集合user中的每个对象的用户名存储在abc集合中
                    abc.add(us.getAccount());
           }
          if(abc.contains(account)){   //判断新输入的用户名是否包含在原有user集合中
                     System.out.println("账号已存在,请重新输入");
          }else{
                      break a;
          }
   }
  user.add(new User(account , password));
  System.out.println("注册成功");
   }
}
}


回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马