【JavaSE_项目练习】用户登录注册

JavaSE----模拟用户登录注册 目录 一、String类模拟用户登录 需求 分析 代码实现 猜数字类 模拟登录类 效果 二、模拟用户登录注册集合版 分析 代码实现 用户基本描述类 用户操作类接口 用户操作实现类 测试类 效果 三、模拟用户登录注册IO版 分析 代码实现 IO流实现用户操作接口 一、String类模拟用户登录 需求 A:模拟用户登录,给3次机会,并提... 阅读详情

【JavaSE_项目练习】用户登录注册

如何分析需求:
  用户登陆注册案例:
   符号面向对象分析特点:
     1)当前需求中有哪些类?
     2)知道某些类,这些类中有什么东西
     3)这些类和类之间有什么关系

     1)有哪些类:
        用户类
          用户的基本信息描述:
           在这个基本描述类中提供:成员:username password ,提供set()/get()方法
          具体的划分:
           按照功能划分:
             注册功能
             登陆功能

           用户操作的接口:
             注册();登陆();
           用户操作的接口实现类:
             注册(){..}
             登陆(){..}
           用户要进行操作:
             注册
             登陆
       测试类:
          Usertest:用户测试类:
          用户类和测试类:
            在测试类中需要创建用户类对象,来操作登陆和注册功能

经常会按照功能划分,模块划分:
    1)先按照功能划分,在按照模块划分
    2)先模块划分,功能划分.

给每一个包命名的时候:
   用户的描述类:user类
     包:公司域名.entity;实体类
       org.westos.entity;
   用户操作的接口:
     包:公司域名.dao:里面放的 是接口
       org.westos.dao :接口层
   用户操作接口的实现类:
     包:
       org.westos.dao.impl:业务逻辑层:接口子实现类
   测试类:
     包:
       org.westos.test:需要针对注册或者的登陆进行测试

package org.wesots.entity;
/**
 * 用户的实体类
 * @author Apple
 */
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;
    }


}
package org.westos.dao;

import org.wesots.entity.User;

/**
 * 用户的操作接口
 * @author Apple
 * @version V1.0
 */
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 org.westos.dao.impl;

import java.util.ArrayList;

import org.wesots.entity.User;
import org.westos.dao.UserDao;

/**
 * 这是用户操作的接口实现类:业务逻辑层
 *      集合版
 * @author Apple
 * @version V1.0
 */

public class UserDaoImpl implements UserDao {
    //为了多个功能使用这个集合中的用户,将集合的对象定义到成员变量中
    //为了不让外界修改集合,所以private修饰
    //将集合对象共享:注册和登陆使用的同一个集合对象
    private static ArrayList<User> array = new ArrayList<User>() ;

    //登陆功能
    @Override
    public boolean isLogin(String username, String password) {
        //登陆,需要将注册的时候用户全都遍历出来,所以创建ArrayList集合
        //假设:定义标记,用户登陆不成成功
        boolean flag = false ;

        //需要遍历集合获取集合中的每一个用户
        for(User u :array){
            //获取到每一个用户对象:u
            //判断
            if(u.getUsername().equals(username) && u.getPassword().equals(password)){
                //修改标记
                flag = true ;
                break ;
            }
        }

        return flag ;

    }


    //注册功能
    @Override
    public void regist(User user) {
        //由于有很多用户,需要将用户存储到集合中,需要创建一个集合
//      ArrayList<User> array = new ArrayList<User>() ;
        //将用户存储到集合中
        array.add(user) ;
    }

}
package org.westos.game;

import java.util.Scanner;

//猜数字游戏的类
public class GuessNumberGame {

    // 无参构造私有
    private GuessNumberGame() {
    }

    //静态功能
    public static void start(){
        //产生一个随机数
        int number = (int) (Math.random()*100 +1) ;

        //定义一个统计变量
        int count = 0 ;
        //多次循环
        while(true){


            //创建键盘录入对象
            Scanner sc = new Scanner(System.in) ;
            System.out.println("请你输入一个数据:");
            int guessNumber = sc.nextInt() ;

            //统计变量++
            count ++ ;

            if(guessNumber>number){
                System.out.println("你要猜的数据"+guessNumber+"大了");

            }else if(guessNumber <number){
                System.out.println("你要猜的数据"+guessNumber+"小了");
            }else{
                System.out.println("恭喜您"+count+"次猜中了");
                break ;
            }
        }


    }
}
package org.westos.test;

import java.util.Scanner;

import org.wesots.entity.User;
import org.westos.dao.UserDao;
import org.westos.dao.impl.UserDaoImpl;
import org.westos.game.GuessNumberGame;

/**
 * 用户的测试类
 * 
 * 注意事项:
 *      1)登陆功能和注册功能使用的是同一个集合,将集合的对象的数据共享,应该用static
 *      2):登陆成功应该退出界面,
 *          现在使用switch语句,遇见break,只是结束switch语句并不能结束循环语句----->
 * @author Apple
 */
public class UserTest {

    public static void main(String[] args) {
        //为了能够回来,加入while循环
        while(true){
            //给出选择的界面
            System.out.println("-------------------欢迎光临------------------------");
            System.out.println("请选择:");
            System.out.println("1  登陆");
            System.out.println("2  注册");
            System.out.println("3  退出");

            //创建键盘录入对象
            Scanner sc = new Scanner(System.in) ;

            //根据不同的选择给出界面,简单分析下
            //为了方便数据的录入,就是用String类型接收
            String choiceString = sc.nextLine() ;

            //由于用户都需要调用登陆和注册功能,通过接口多态,所以将该用户操作的登陆对象定义到switch语句外面
            UserDao ud  = new UserDaoImpl() ;

            //简单分析:就可以使用switch语句
            switch(choiceString){
            case "1":
                //登陆界面
                System.out.println("------------登陆界面--------------");
                System.out.println("请输入用户名:");
                String username = sc.nextLine() ;
                System.out.println("请您输入密码:");
                String password = sc.nextLine() ;

                //需要调用登陆功能
//              UserDao ud = new UserDaoImpl() ;
                boolean flag = ud.isLogin(username, password) ;
                //判断
                if(flag){
                    System.out.println("登陆成功,开始玩游戏吗?");

                    System.out.println("玩游戏吗?y/n");

                    while(true){
                        String resultString = sc.nextLine();
                        if(resultString.equalsIgnoreCase("y")){
                            //开始玩游戏
                            GuessNumberGame.start() ;
                            System.out.println("你还玩吗?y/n");
                        }else{
                            break ;
                        }
                    }
                    System.out.println("谢谢使用,下次再来...");

//                  break ;//遇见break,只是结束switch语句并不能结束循环语句
                    System.exit(0) ;
                }else{
                    System.out.println("用户名或者密码错误,请重新输入....");
                }
                break ;
            case "2":
                //注册界面
                System.out.println("------------注册界面--------------");
                System.out.println("请您输入用户名:");
                String newUserName = sc.nextLine() ;
                System.out.println("请您输入密码:");
                String newPassword = sc.nextLine() ;

                //将用户名和密码封装到用户对象中
                User u = new User() ;
                u.setUsername(newUserName) ;
                u.setPassword(newPassword) ;

                //调用注册的功能:
                //接口多态:
//              UserDao ud = new UserDaoImpl() ;
                ud.regist(u) ;
                System.out.println("注册成功..");
                break ;
            case "3":
            default:
                System.out.println("谢谢使用,下次再来!");
                System.exit(0) ;
                break ;
            }
        }

    }
}
JavaSE之幸运抽奖项目 1、功能简介: (1)设置界面 (2)用户注册 (3)用户登录 (4)用户抽奖 2、实现步骤: 2.1输出菜单(两个功能 1.登录 2.注册) 2.1.1输出菜单:系统输出一个功能菜单,供用户选择。用户选择某菜单之后,输出相应信息,如:用户选择注册,则提示用户录入注册信息 2.2实现用户注册功能 2.2.1录入 阅读详情

相关推荐

使用javaSE和IO流写一个简单的用户登录注册和信息查询

使用javaSE和IO流写一个简单的用户登录注册和信息查询。 题目是写一个用户登录,需要将信息读入文本文件,登录时读文件验证。 题目要求和自己的代码如下: 机试1:编写学员注册、登录程序 (90分) 要求实现功能: 1、用户注册,将用户信息写入文件 (30分) 2、用户注册时判断用户名是否已存在 (20分) 3、用户登录 (20分) 4、显示用户列表 (20分) 此题目用户信息有账号密码,我的思路是将用户信息当成对象处理。为了方便数据类型都设置为字符串,因为密码定成int在读文件时需要将字

雪之下雪乃的博客 457

Java Web实现登录注册(超详细附代码)

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽图片转存中…(img-87Y8s4J5-1712888892459)]

2401_84153177的博客 4318

实现用户注册和登录功能的Java项目

我们将使用MySQL数据库,您可以根据自己的需要选择其他数据库。我们将创建一个名为UserDAO的接口,并使用JPA提供的CrudRepository接口来处理基本的CRUD操作。在这个Main类中,我们通过Spring的ApplicationContext获取了UserService的实例,并使用实例来测试注册和登录功能。在这个服务类中,我们使用了UserDAO来检查用户名是否已存在,并在数据库中保存新用户的注册信息。我们将创建一个名为User的实体类来表示用户信息,并使用JPA注解来映射到数据库表。

TechWhizKid的博客 407

JavaSE小项目练习——图书管理小练习(超详细)

一个适合Java初学者练手的图书管理小项目😎,里面几乎用到了Jaa SE当中所有的基础知识,不来练练、试试水吗😉😁?

日常学习记录、分享,愿我们都遇见更好的自己,与诸君共勉 4976

Eclipse+sql做的用户登录注册系统

用户名:admin 密码:admin Eclipse+sql做的用户登录注册系统,简单的入门项目啊,拿来分享一下啊

java se登陆注册

用java se实现的简单的登陆和注册,可以帮助新手,也请各位大牛指教不当之处,其中坐标使用绝对定位。由于空间有限,所有图片相关全部省去,只提供源码。

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

需求:模拟用户登录注册--------集合进行完成 A.思想 Java语言,是一种面向对象的思想 1)分析当前需求有哪些类? 2)分析每一个类中有哪些东西? 3)类与类之间的关系是什么? 分析: 有哪些类? A):用户类: 成员变

love__nana 3138

java模拟淘宝登录源码

httpclient模拟登录淘宝源码,测试可用。5分重别人那下下来的,jar包没有的我都加全了 httpclient模拟登录淘宝源码,测试可用。5分重别人那下下来的,jar包没有的我都加全了

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

需求:模拟用户登录注册--------集合进行完成 在前面,我们用集合完成了这个项目,那集合和IO有何区别呢? 我们共创建了以下几个类 User-----UserDao-----UserDaoImpl----UserTest 其实区别就在于UserDaoImpl类中,注册和登录的功能 集合中:是将信息传入到集合 IO中:是将信息传入到文本文件,那么每次运行就可以不用注册

love__nana 1678

java的一个用户登录的项目

简单的一个用户登录的小项目,朋友们可以尝试使用一下。

简单的注册登录功能(JavaWeb项目)

简单的注册,登录功能,注册功能使用MySQL数据库,采用mvc编程模式,注册功能有详细的表单填写限制

纯javaSE案例(一)之用户登录注册

纯javaSE案例之用户登录注册 案例需求: 直接上图: 涉及知识 面向对象,接口,Java序列化,HashMap,IO流,最重要的是锻炼自顶向下逐步细化的思想。 欢迎界面 package cn.jixiang.front.menu; public class BootStrap { public static void main(String[] args) ...

qq_42982169的博客 3128

java SE基础练习题

现在我也正在学习java SE 提供一些免费下载的东西跟大家一起进步

Java 用IO流实现用户的注册与登录,并且将用户的账号密码储存

不使用Propreties类,而是使用IO流中的字节流读取信息,就需要使用String类的split方法,并且提前做好标记符号 这里没有把读取文件中的用户名和密码写成方法,所以在用户注册成功后又复制粘贴了一遍读取操作,看着有点累赘 import java.io.*; import java.util.ArrayList; import java.util.Scanner; /** * Created by e274426380 on 2020/12/3. */ public class LoginSy

e274426380的博客 4641

Java SE 全部学习练习代码和小的应用程序

这是我学Java时练习的源代码,基本包含了Java的绝大部分知识点。供Java学习参考。其中也包含了很多实用性的例子(代码较长),绝对经典。

新建菜单Office被替换为腾讯文档 - 解决方案

右键新建菜单中的Office被替换为腾讯文档。原因是安装了腾讯文档软件,此软件安装时会自动将新建菜单中的Office替换为腾讯文档,下文介绍解决方案。

NSJim的博客 2930

shiro的用户加密注册与登录

写在前边 现在的时间:2018-1-8 (离数据库考试还有2天,我的心是真滴大。) 使用了加盐加密,如果你还不了解什么加盐加密的话,请点击:加盐加密的简单了解 所用技术 SpringBoot MyBatis Shiro Thymeleaf MySQL 加密函数 我相信你对shiro不加密的用户注册与加密已经有了了解。 如果是这样的话那么你只需要下面这个shiro提供的加密函数 Stri...

Sacredness的博客 8820

3D打印切片软件Cura及CuraEngine原理分析

引言         年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件。         自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的。我一向都觉得比起自己写代码来,读别人的代码是一个漫又而痛苦的过程,读者的思想与写者总有偏差,往往又无法验证自己的猜想是否正确,只叹人脑不是电脑,无法把眼前的代码从头到尾执行一遍...

AiDiShengDeXiaoWu的博客 4421

用JavaSE知识点完成登入注册界面

System.out.println("========欢迎使用本系统========"); System.out.println("1 - 注册"); System.out.println("2 - 登录"); System.out.println("3 - 退出"); System.out.print("请选择:");

jacket_star的博客 1625

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 519

kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

参数名 说明 net.ipv4.tcp_max_tw_buckets = 6000 系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。 net.ipv4.tcp_rmem = 4096 87380 4194304 接收窗口的最大大小...

weixin_46691674的博客 6893

JavaSE综合项目演练

光阴似箭日月如梭,大家学习已经有了一段时间了,转眼间,从刚开始如何配置JDK已经到了现在快学完网络编程了。学了这么多,眼看就要进入下一个阶段了,数据库编程了,那么在进入下个阶段前,我们来完成一个综合性比较强的结业项目,告别JavaSE阶段,学完JavaSE,大家已经对编程这块相信已经有了一个很深的理解,但是仅仅是JavaSE还是不够的,我们还需要学习更多的,更全面知识才足以在接下来的生活中过五关斩...

坐看云起时_雨宣 1万+

SOLIDWORKS2024安装卡顿?Edge WebView2 Runtime冲突的排查与修复

本文针对SOLIDWORKS 2024安装时setup.exe无响应或卡死的常见问题,深入剖析了其根本原因在于Microsoft Edge WebView2 Runtime的版本冲突或组件损坏。文章提供了三种经过验证的解决方案:一是通过运行安装包内swwi\data目录下的setup.exe直接绕过图形界面;二是彻底卸载并重装官方Edge WebView2 Runtime组件;三是进行系统级修复与排查。旨在帮助用户快速定位并解决安装障碍,顺利完成软件部署。

4k5l6j7h8的博客 289
上一篇: 【JavaSE】作业练习1111
下一篇: 【JavaSE_学习笔记】Map接口及其子实现类
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值