Java数据结构与算法之数组应用——用户登陆与注册数组实现

来源:互联网 发布:gps轨迹保存数据库 编辑:程序博客网 时间:2024/05/16 05:52
/* * 需求: * 通过使用对象数组,来完成用户的注册和登陆功能。 *  * 分析: * note1:初步思路: *          1,由于使用对象数组,则首先应该有对象。 *              结合题目要求,该对象应具有用户名和密码两个属性。 *          2,利用数组,将对象封装起来,形成存储该结构的容器。 *          3,由于目前只有注册和登陆,故数组的操作中,只需要实现查找和插入的动作。 */

//UserData.java

package com.wayne.practice;public class UserData {    private String username;    private String password;    public UserData() {    }    public UserData(String username, String password) {        super();        this.username = username;        this.password = password;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public boolean equals(Object obj) {        if (this == obj)            return true;        if ((obj != null) && (obj.getClass() == UserData.class)) {            UserData userData = (UserData) obj;            if ((this.getUsername().equals(userData.getUsername()))                    && (this.getPassword().equals(userData.getPassword())))                return true;        }        return false;    }    @Override    public String toString() {        return "UserData [username=" + username + ", password=" + password + "]";    }}

//UserDataArray.java

package com.wayne.practice;public class UserDataArray {    private UserData[] userDatas;    private int userNums;    public UserDataArray() {    }    public UserDataArray(int maxNum) {        userDatas = new UserData[maxNum];        userNums = 0;    }    // 获取用户的注册数    public int getUserNums() {        return userNums;    }    // 增加用户    public void insertUserData(UserData userData) {        userDatas[userNums] = userData;        userNums++;    }    // 查找用户    public boolean findUserData(UserData userData) {        for (int index = 0; index < userNums; index++) {            if (userData.equals(userDatas[index]))                return true;        }        return false;    }    // 显示用户    public void displayUserData() {        for (int index = 0; index < userNums; index++)            System.out.println(userDatas[index].toString());    }    // 删除用户    public boolean deleteUserData(UserData userData) {        int goalPos;        // 先遍历整个数组,获取需要删除的对象的位置        for (goalPos = 0; goalPos < userNums; goalPos++)            if (userData.equals(userDatas[goalPos]))                break;        if (goalPos == userNums)            return false;        else {            for (int i = goalPos; i < userNums; i++)                userDatas[i] = userDatas[i + 1];            userNums--;            return true;        }    }}

//UserLoginRegisterApp.java

package com.wayne.practice;import java.util.Scanner;public class UserLoginRegisterApp {    public static final int maxUserNums = 3;// 设置最大用户数    public static void main(String[] args) {        // 初始化一个长度为3的UserData对象的数组        UserDataArray userDataArray = new UserDataArray(maxUserNums);        while (true) {            System.out.println("欢迎来到乌托邦!");            System.out.println("1.注册\t2.登陆\t3.退出");            System.out.print("请选择你的操作:");            Scanner scUserInput = new Scanner(System.in);            String userOerator = scUserInput.nextLine();            switch (userOerator) {            case "1":// 注册环节                if (userDataArray.getUserNums() == maxUserNums) {                    System.out.println("不好意思,注册名额已经注册满了!");                    System.out.println("现在将转向主界面!");                } else {                    UserData userData = new UserData();                    System.out.print("请输入用户名:");                    String userName = scUserInput.nextLine();                    System.out.print("请输入密码:");                    String userPwd = scUserInput.nextLine();                    userData.setUsername(userName);                    userData.setPassword(userPwd);                    if (!userDataArray.findUserData(userData)) {                        userDataArray.insertUserData(userData);                        System.out.println("恭喜你注册成功!现在请重新登陆下!");                    } else {                        System.out.println("该用户已存在,请登陆或者更换用户名");                    }                    System.out.println("现在跳转到主界面。。。。");                }                break;            case "2":// 登陆环节                UserData userData = new UserData();                System.out.print("请输入用户名:");                String userName = scUserInput.nextLine();                System.out.print("请输入密码:");                String userPwd = scUserInput.nextLine();                userData.setUsername(userName);                userData.setPassword(userPwd);                if (userDataArray.findUserData(userData)) {                    System.out.println("恭喜登陆成功,开始尽情享受屌丝生活吧!");                    System.exit(0);                } else {                    System.out.println("用户名和密码不匹配,请重新登陆或注册!");                    System.out.println("现在跳转到主界面。。。。");                }                break;            case "3":                System.out.println("你确定要退出么?y or n?");                String userChoose = scUserInput.nextLine();                if ("y".equals(userChoose)) {                    System.out.println("既然你决心离去,我也不好挽留!!!");                    System.exit(0);                } else {                    System.out.println("我知道你是选错了。。。。");                    System.out.println("请重新做出你的选择!!!!");                }                break;            default:                System.out.println("你输入了非法字符,我崩溃了!!!!!");                System.exit(-1);                break;            }        }    }}
0 0
原创粉丝点击