【JavaSE练习】项目_模拟用户登陆注册功能(集合完成)

来源:互联网 发布:淘宝5000字论文多少钱 编辑:程序博客网 时间:2024/05/16 14:51

需求:模拟用户登录注册--------集合进行完成

A.思想

Java语言,是一种面向对象的思想

1)分析当前需求有哪些类?

2)分析每一个类中有哪些东西?

3)类与类之间的关系是什么?


分析:

有哪些类?

A):用户类:

成员变量:用户名,密码

构造方法:有参/无参

成员方法:set()/get()公共访问方法

如果我们的用户比较多的时候,这样写非常麻烦,把用户类拆分开来,拆分法!(根据具体的需求去拆分)

1.用户基本描述类

2.用户操作类

B):测试类:

main()方法,主程序入口

B.在java中按照哪种模块进行分

1)按功能划分

2)按模块划分

3)先按照功能划分,在按照模块划分


模拟用户登录注册:按照功能划分:要么登陆,要么注册

分包命名


用户的描述类(基本类):包的命名:公司反域名小写:com/cn/org/net.公司域名.user

package com.xxxxx.user;/** * 这是用户的基本描述类 *  * @author Wolf * @version V1.0 * */public class User {/** * 成员变量 */private String username;private String password;/** * 无参构造方法 */public User() {super();}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;}}

用户的操作类:包的命名:com/cn/org/net.公司域名.dao(接口:抽象方法)  

package com.xxxxx.dao;import com.xxxxx.user.User;/** * 这是用户的操作接口 *  * @author Wolf * @version V1.0 */public interface UserDao {/** * 这是用户注册功能 *  * @param user *            注册了用户信息 */public abstract void regist(User user);/** * 这是用户登录功能 *  * @param username *            用户名 * @param password *            密码 * @return 返回的是用户登录是否成功 */public abstract boolean isLogin(String username, String password);}

用户的操作了具体实现类:(接口的子实现类):com/cn/org/net.公司域名.dao.impl;实现类

package com.xxxxx.dao;import java.util.ArrayList;import com.xxxxx.user.User;/** * 这是用户操作的具体实现类(集合实现) *  * @author Wolf * @version V1.0 */public class UserDaoImpl implements UserDao {/* * 为了让多个功能共用这个集合对象,所以将集合对象封装成成员变量,为了不让外界看到,用private修饰 * 该集合对象被多个功能共享,所以用static修饰 */private static ArrayList<User> array = new ArrayList<User>();/** * 用户注册功能 */@Overridepublic void regist(User user) {// 将用户添加到集合中array.add(user);}/** * 用户登录功能 */@Overridepublic boolean isLogin(String username, String password) {// 需要将每一个用户遍历出来for (User u : array) {// 获取到每一个用户信息,进行帐号密码匹配if (u.getUsername().equals(username) && u.getPassword().equals(password)) {// 如果匹配到,则返回truereturn true;}}// 若没有匹配到,返回falsereturn false;}}

测试类:com/cn/org/net.公司域名.test

package com.xxxxx.test;import java.util.Scanner;import com.xxxxx.dao.UserDao;import com.xxxxx.dao.UserDaoImpl;import com.xxxxx.user.User;/** * 用户测试类 *  * @author Wolf * @version V1.0 */public class UserTest {public static void main(String[] args) {// 写一个死循环,可以多次选择while (true) {// 简单的界面System.out.println("**********欢迎来到英雄联盟**********");System.out.println("*************1--登录*************");System.out.println("*************2--注册*************");System.out.println("*************3--退出*************");System.out.println("********************************");// 创建键盘录入对象Scanner sc = new Scanner(System.in);System.out.println("请选择操作:");String choice = sc.next();// 创建UserDao对象UserDao ud = new UserDaoImpl();switch (choice) {case "1":System.out.println("*************登陆界面*************");System.out.println("请输入用户名:");String username = sc.next();System.out.println("请输入密码");String password = sc.next();// 调用登陆功能boolean b = ud.isLogin(username, password);// 判断if (b) {/* * 这个位置可以调用一些功能,比如猜数字游戏,上一章的录入学生成绩 * 也可以将之前的《模拟银行账户功能》系统插入进来 * 下面就简单的写一些操作测试一下,具体的功能自行测试 */System.out.println("登陆成功!欢迎来到召唤师峡谷!");System.out.println("********************************");System.out.println("是否开始游戏?y/n");while (true) {String s = sc.next();if (s.equalsIgnoreCase("y")) {System.out.println("********************************");System.out.println("敌军还有30秒到达战场!");System.out.println("碾碎他们!");System.out.println("Victroy");System.out.println("********************************");System.out.println("是否开始下一局?y/n");} else {break;}}System.out.println("********************************");System.out.println("谢谢!再见");System.exit(0);} else {System.out.println("********************************");System.out.println("帐号或密码错误!登录失败");}break;case "2":System.out.println("*************注册界面*************");System.out.println("请输入用户名:");String newUsername = sc.next();System.out.println("请输入密码:");String newPassword = sc.next();// 把用户名和密码封装到User对象中User u = new User();u.setUsername(newUsername);u.setPassword(newPassword);// 调用注册功能ud.regist(u);System.out.println("注册成功!欢迎加入英雄联盟!");break;case "3":default:System.out.println("谢谢!再见");System.exit(0);}}}}

测试结果




可自行在测试类中插入一些登陆成功后的后续功能:比如《模拟银行账户功能》,自行测试

《模拟银行账户功能》链接:http://blog.csdn.net/wpf719971425/article/details/74315596
阅读全文
1 0
原创粉丝点击