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
- Java数据结构与算法之数组应用——用户登陆与注册数组实现
- Java数据结构与算法之数组排序——冒泡
- Java数据结构与算法之数组排序——选择
- Java数据结构与算法之数组排序——插入
- 《java数据结构与算法》——数组
- Java数据结构与算法之数组
- Java数据结构与算法之Array数组
- java数据结构与算法之数组篇
- Java数据结构与算法之Array数组
- 数据结构与算法之数组
- 数据结构与算法之数组
- Java数据结构与算法--数组
- js数据结构与算法之——数组基本用法
- 数据结构与算法之—数组(一)
- 数据结构与算法之—数组(二)
- 数据结构与算法之动态数组实现堆栈
- 数据结构与算法 —— 动态数组
- 数据结构与算法——数组
- poj1780
- 【动态规划】求一维子数组的最大和
- 分布式一致性协议Raft原理与实例
- find the most comfortable road
- Java文件操作2
- Java数据结构与算法之数组应用——用户登陆与注册数组实现
- iOS 统计打点那些事
- LintCode -- 二叉树的中序遍历
- UI高级第四课 iOS绘图与动画——iOS学习连载32
- JAVA SHH框架搭建(多图)
- Android数据存储和提供器——sharedPreference
- 博客中插入公式——之在线数学公式生成
- 【动态规划】求最长公共子序列
- NSDate