04_登陆注册

package com.dao;

import com.pojo.User;

/**
 * 这是针对用户进行操作的接口
 * @author Administrator
 *
 */
public interface UserDao {
    /**
     * 这是用户登录功能
     * @param username
     * @param password
     * @return 是否登录成功
     */
    public abstract boolean isLogin(String username,String password);

    /**
     * 这是用户注册功能
     * @param user
     */
    public abstract void regist(User user);
}

package com.dao.impl;

import java.util.ArrayList;

import com.dao.UserDao;
import com.pojo.User;

/**
 * 这是用户操作的具体实现
 * @author Administrator
 *
 */
public class UserDaoImpl implements UserDao{
    //为了让多个方法使用同一个集合,就把集合定义为成员变量
    //为了让多个对象共用一个array,所以使用static
    private static ArrayList<User> array=new ArrayList<User>();

    @Override
    public boolean isLogin(String username, String password) {
        //遍历集合,获取每一个用户,并判断该用户的用户名和密码是否吻合
        for(User u:array){
            if(u.getUsername().equals(username) && u.getPassword().equals(password)){
                return true;
            }
        }
        return false;
    }

    @Override
    public void regist(User user) {
        //把用户信息存储集合

        array.add(user);
    }

}

package com.game;

import java.util.Scanner;

/**
 * 这是猜数字小游戏
 * @author Administrator
 *
 */
public class GuessNumber {
    private GuessNumber(){

    }
    public static void start(){
        int number=(int)(Math.random()*100)+1;

        Scanner sc=new Scanner(System.in);

        int count=0;
        while(true){
            count++;
            System.out.println("请输入数据(1~100):");
            int guessNumber=sc.nextInt();
            if(guessNumber>number){
                System.out.println("你猜的数据"+guessNumber+"大了");
            }else if(guessNumber<number){
                System.out.println("你猜的数据"+guessNumber+"小了");
            }else{
                System.out.println("恭喜你,"+count+"次就猜中了!");
                break;
            }
        }

    }
}

package com.pojo;

public class User {
    private String username;
    private String password;
    //private int age;
    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;
    }
    /*public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }*/
    public User(String username, String password) {
        super();
        this.username = username;
        this.password = password;
    }
    public User() {
        super();
    }

}

package com.test;

import java.util.Scanner;

import com.dao.UserDao;
import com.dao.impl.UserDaoImpl;
import com.game.GuessNumber;
import com.pojo.User;

/**
 * 用户测试类
 * @author Administrator
 *
 */
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);
            //为了后面的录入信息的方面,我后面所有的信息都用String接受
            String choiceString;
            //经过简单的思考,我选择使用Switch
            String regex="^[1-3]$";
            sc=new Scanner(System.in);
            choiceString=sc.hasNext(regex)?sc.nextLine():"3";
            UserDao ud=new UserDaoImpl();
            switch(Integer.valueOf(choiceString)){
            case 1:
                //登陆页面界面给出用户名和密码
                System.out.println("请输入用户名:");
                String newUsername=sc.nextLine();
                System.out.println("请输入密码:");
                String newPassword=sc.nextLine();
                boolean flag=ud.isLogin(newUsername, newPassword);
                if(flag){
                    System.out.println("恭喜,登陆成功!");

                    System.out.println("你玩吗?y/n");
                    while(true){
                        String resultString=sc.nextLine();
                        if(resultString.equalsIgnoreCase("y")){
                            //玩游戏
                            GuessNumber.start();
                        }else{
                            break;
                        }
                        System.out.println("你还玩吗?");
                    }
                    System.out.println("谢谢使用,欢迎下次再来!");
                    System.exit(0);
                }else{
                    System.out.println("用户名或者密码有误,登陆失败!");
                }
                //调用登陆功能
                break;
            case 2:
                //注册页面界面给出用户名和密码
                System.out.println("请输入用户名:");
                String newUsername1=sc.nextLine();
                System.out.println("请输入密码:");
                String newPassword1=sc.nextLine();
                User user=new User();
                user.setUsername(newUsername1);
                user.setPassword(newPassword1);
                //调用注册功能
//                UserDao ud=new UserDaoImpl();
                ud.regist(user);
                break;
            case 3:
                System.out.println("谢谢使用,欢迎下次再来!");
                System.exit(0);
                break;
            }
        }

    }
}
时间: 2024-10-09 21:50:44

04_登陆注册的相关文章

javaweb 登陆注册页面

视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> 引入包可以一条一条分着写,也可以在一条内直接用逗号隔开写 <%@ page import="java.util.Date,java.text.Simp

用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题

最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的判断的依据.我现在的理解是:异步请求去了服务器端,而本地代码仍在往下执行.服务器数据最终的确会回来,但是本地判断已经执行完毕.所以才会出现密码框单独blur后能提交,而直接submit按钮却要按两次才能提交的问题.将同步改成异步问题解决了.理解是:同步操作会等待服务器数据返回来之后才继续往下执行,所

tkinter 创建登陆注册界面

import tkinter as tk from tkinter import messagebox #设置窗口居中 def window_info(): ws = window.winfo_screenwidth() hs = window.winfo_screenheight() x = (ws / 2) - 200 y = (hs / 2) - 200 print("%d,%d" % (ws, hs)) return x,y #设置登陆窗口属性 window = tk.Tk()

前端开发---登陆注册页面优化

1.本次用到错误提示文字的颜色 http://v3.bootcss.com/css/#forms jquery 教程: http://www.w3school.com.cn/jquery/index.asp 2.工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 3. 主要工作 优化登陆注册页面显示 因为业务需要, 登陆注册页面被后端给改了, 显示效果如下: 可以看到表单全部乱掉了.打开后

Nodejs连接MySQL&amp;&amp;实现unity中的登陆注册功能

MySQL是一款常用的开源数据库产品,通常也是免费数据库的首选.查了一下NPM列表,发现Nodejs有13库可以访问MySQL,felixge/node-mysql似乎是最受关注项目,我也决定尝试用一下. 要注意名字,"felixge/node-mysql"非"node-mysql",安装目录 1. node-mysql介绍 felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序.felixge/node-my

Android的SQLiteDataBase小项目,实现user类登陆注册以及student类增删改查

关于SQLiteDataBase这块,大体有两种主要的实现方式,一种是不使用Helper类的方式,此种方式存在一个弊端,即不能oncreate两次,如果重复使用oncreate的button,则会报错,所以为了避免这种错误,在此项目中使用类继承SQLiteOpenHelper的方式进行SQLite3小型数据库的小项目开发,简单的实现登陆注册,以及对特定vo类的增删改查,中间还夹杂了ListView,ArrayAdapter,以及Intent的散知识点. 以下为正文:首先介绍以下我写的项目的框架,

页面点击Button按钮弹出登陆注册框(含短信验证功能)

1 <div class="login-hidd"></div> 2 <div class="login-wrap"> 3 <div class="login-cont"> 4 <img id="login-img-close" src="/views/image/close08.png" alt="登陆" title="&

原生php登陆注册

本以为一个登陆注册功能十来分钟就写好了,没想到thinkPHP用久了,原生的php不会写了 最开始我直接写了类和方法,在前台传递参数给类的login方法(action="index.php/login"),尝试几次发现无法访问,这才意识到,这种方式是mvc模式,原生php不具有 然后,把登陆注册的php代码没有写类和方法直接放到对应的php文件里,前端放在相应的HTML文件里(还是习惯HTML 和php分开来写) 这时候action直接填对应的文件就好了,具体代码如下 login.ph

java web程序 上机考试做一个登陆注册程序

大二期末 java web.用到数据库,jdbc.myeclipse实现用户的注册,登陆 并且不能出现500错误,用户不能重复注册.当用户任意点击时也不能出现500错误! 这里.我只写注册成功的页面.这个不让用户重复注册 当时老师对我各种扣分.可后来.我问他的时候,他说不出来.我不是那个第一个提交作业的学生,可我的分数却比他低,我的功能比他多一个好吧 无所谓啊  谁叫我那么背时,再也不想问了.特别烦躁了 registerOk.jsp <body> <% String name=reque