package cn.usersdao;
import cn.user.User;
public interface UserDao {
// 定义一个开始进行注册的方法
// 定义一个判断注册姓名,年龄和登陆年龄是否相同的方法;
/* 知識要註冊的方法 */
void regist(User user);// 注:在方法中要传入对象的属性在三个以上的话
// 直接传入对象
/*
* 這是進行判斷登陸和註冊的方法
*/
boolean isLogin(String username, String password);
}
package cn.user;
public class User {
// 定义名字年龄,邮箱,电话
private String username;
private String password;
private String Email;
private String Phone;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String username, String password, String email, String phone) {
super();
this.username = username;
this.password = password;
Email = email;
Phone = phone;
}
public String getUsername() {
return username;
}
public void setUsername(String name) {
this.username = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
}
package cn.userimpl;
import java.util.Scanner;
import cn.user.User;
import cn.usersdao.UserDao;
public class UserDaoImpl implements UserDao {
// 这是注册功能,键盘敲入五对数据进行存储,那么首先得创建对象数组,
// 用于来存储五组数据。(這是在知道敲入機組数据的情况下,若不知道
// 数据的个数,我们采取集合进行存储注册的用户的属性值)
private User[] Us = new User[5];
public static int index = 0;
// 這個方法主要是完成对象数组的数据接收
public void regist(User user) {
Us[index++] = user;
}
// 这个方法主要是用来观察注册用户名和密码是否和登陆输入用户名和密码相同
@Override
// 注册完成之后,对象数组完成了对对象属性值的存储操作。
// 那么接下来这个方法就是登陆页面的判断方法。
// 就是讲Us[]中存储的属性值与你输入的用户名和密码相比较。
public boolean isLogin(String username, String password) {
// 要想比较用户名和密码,那么首先的创建User对象,方便调用User类中的属性值
boolean flag = false;
for (int i = 0; i < Us.length; i++) {
User user = Us[i];
// 先判断user对象是否为空
if (user != null) {
if (user.getUsername().equals(username)
&& user.getPassword().equals(password)) {
flag = true;
//表示登陸成功,那么就不用继续循环下去了
break;
}
}
}
return flag;
}
}
package cn.test;
import java.util.Scanner;
import cn.user.User;
import cn.userimpl.UserDaoImpl;
/*进行一个控制台上的用户名的注册和登陆效果;
步骤:首先,得定义一个用户类,此类为用户属性类,定义用户的属性
第二步,通过定义一个接口,将需要进行登陆条件中要进行判断的方法抽象化,
因为每个人判断的方法是不一样的,所以选择先定义一个接口;
第三步,在定义一个方法类,该类中是实现了第二步定义的接口,也就是实现了
你自己的算法,方便后面测试类程序的调用。
第四步,在测试类中开始编写main方法,实现控制台登陆和注册的步骤。*/
public class UserTest {
public static void main(String[] args) {
while (true) {
System.out.println("欢迎来到我们公司dream的页面,你们的选择才是我们最好的礼物");
System.out.println("1:注册");
System.out.println("2:登陆");
System.out.println("3:退出");
System.out.print("请选择:");
System.out.println();
Scanner sc = new Scanner(System.in);
int Line = sc.nextInt();
// 前面页面的一些外观设置,接下来我们要开始键盘敲入数据
switch (Line) {
case 1:
System.out.println("欢迎来到注册界面");
System.out.println("请输入用户名");
String newName = sc.nextLine();
System.out.println("请输入密码");
String newPass = sc.nextLine();
System.out.println("请输入邮箱");
String newEmail = sc.nextLine();
System.out.println("请输入手机号");
String newPhone = sc.nextLine();
// 现在是对User对象进行赋值,先创建一个User对象
User user = new User();
user.setUsername(newName);
user.setPassword(newPass);
user.setEmail(newEmail);
user.setPhone(newPhone);
// 完成对user对象的赋值,那么接下来就是将User对象的属性值赋值给对象数组
// 那么可以调用实现类中的regist方法。
UserDaoImpl udi = new UserDaoImpl();
udi.regist(user);
System.out.println("注册成功!请进入登陆页面");
// 这就完成一个数组的存储
break;
// 我们的跳回到上一步数字选择的步骤,这时候就得用到循环结构,循环
// 应放在switch语句的前面,一开始进行数字选择的时候。那么用的while循环
// 直到录入五个数据完毕
// 那么接下来到选择界面,我们选择登陆界面,开始进行判断
case 2:
System.out.println("欢迎来到登陆界面");
System.out.println("请输入用户名:");
String username = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
// 接下来我们就要开始判断注册页面完成的对象数组中存储的对象属性中
// 用户名和密码是否和登陆页面中键盘敲入的用户名和密码的名字是否相同。
UserDaoImpl newUdi = new UserDaoImpl();
boolean flag = newUdi.isLogin(username, password);
// 若是flag为真,那么表示登陆成功;反之表示登陆失败
if (flag) {
System.out.println("开始玩游戏吧");
System.exit(0);
} else {
System.out.println("登录失败,返回主界面");
}
break;
case 3:
default:
System.out.println("谢谢你的使用,欢迎下次再来");
System.exit(100);
}
}
}
}
这个看着简单,写起来真的是真真寒意。。。。。 |
|