您的位置:首页 > 编程语言 > Java开发

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

2017-08-04 22:42 489 查看
需求:模拟用户登录注册--------集合进行完成

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>();

/**
* 用户注册功能
*/
@Override
public void regist(User user) {
// 将用户添加到集合中
array.add(user);
}

/**
* 用户登录功能
*/
@Override
public boolean isLogin(String username, String password) {
// 需要将每一个用户遍历出来
for (User u : array) {
// 获取到每一个用户信息,进行帐号密码匹配
if (u.getUsername().equals(username) && u.getPassword().equals(password)) {
// 如果匹配到,则返回true
return true;
}
}
// 若没有匹配到,返回false
return 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(u
b71b
sername, 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐