1、完成第133页实验题目2
import java.util.Scanner;
public class Application
{
private UserDao dao;
public Application(UserDao dao)
{
this.dao=dao;
}
public void setDao(UserDao dao)
{
this.dao = dao;
}
public void registe()//注册函数
{
Scanner scn=new Scanner(System.in);//获取输入打类容
System.out.print("请输入用户名:");
String userName=scn.next();//将输入类容存入username
System.out.print("请输入密码:");
String password1=scn.next();
System.out.print("请重新输入密码:");
String password2=scn.next();
if(!(password1.equals(password2)))//将第一次输入的密码与第二次输入的密码比较
{
System.out.println("两次输入的密码不相符,请重新输入!");
return;//不同时直接结束
}
User user=new User(userName,password1);//两次输入相同时,存入user
if(dao.addUser(user))//将用adduser类函数进行比较查找,如果没有相同类容,则加入
{
System.out.println(userName+",注册成功!");
}
else//如果有相同类容。则报错
{
System.out.println(userName+",注册失败,可能存在同名用户!");
}
}
public void login()//登录函数
{
Scanner scn = new Scanner(System.in); {
System.out.print("请输入用户名:");
String userName=scn.next();
System.out.print("请输入密码:");
String password=scn.next();
User user=dao.getUser(userName,password);//将登录时输入的类容用getuser函数进行判断
if(user==null){//根据判断结果输出
System.out.println("登录失败,用户名或密码不正确");
}else{
System.out.println(user.getName()+"已登录");
}
}
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args){
UserDao dao = new UserDaoForArray();
Application app=new Application(dao);
for(int i=0;i<=100;i++){
System.out.println("请选择要使用的功能: 1:注册 2:登录 3:退出");
Scanner scn=new Scanner(System.in);//获取输入的类容
int s=scn.nextInt();
if(s==1||s==2){
switch(s){
case 1: System.out.println("******注册******");
app.registe();
break;
case 2: System.out.println("******登录******");
app.login();
break;
}
}
else if(s==3){
System.out.println("已经退出");
break;
}
else{
System.out.println("输错了,没有这个选项");
}
}
}
}
public class User {//user类
public static final String INIT_PASSWORD="8888";//进行数据操作的
private String name;
private String password;//定义形参
public User(String name){
this.name = name;//参数name的值赋值给 本对象的成员变量this.name
this.password = INIT_PASSWORD;
}
public User(String name,String password){
this.name=name;
this.password=password;
}
public String getName() {
return name;//获取对应的注册名
}
public String getPassword() {
return password;//获取对应的注册密码
}
public void setPassword(String password) {
this.password = password;//将输入的注册密码放入user
}
}
public interface UserDao {//接口,dao类进行数据操作的增删,查改
public User getUser(String userName,String password);//获取信息的类
public boolean addUser(User user);//增加信息的类
}
public class UserDaoForArray implements UserDao{//继承类
private User[] data;//建立数组
private int count=0;//建立变量
public UserDaoForArray(){
data=new User[100];//将数组data的大小设为100
}
public boolean addUser(User user)
{
if(count==data.length){//判断储存的注册数量是否大于data的最大储存数量
return false;
}
for(int i=0;i<count;i++){
if(data[i].getName().equals(user.getName())){//判断第i个加入的注册是否与之前的有重复
return false;//如果有则直接结束
}
}
data[count]=user;//将输入的注册类容放入对应的数组号中
count++;//每存入一个注册类容,则count作为计数器应当+1
return true;
}
public User getUser(String userName, String password)
{
for(int i=0;i<count;i++){
if(data[i].getName().equals(userName) && data[i].getPassword().equals(password) ){//查找登录的信息是否存在
return new User(userName, password);//若存在,则返回信息
}
}
return null;
}
}