使用面向对象的思想实现登录和注册修改密码。使用封装的特性

User,  username, password, sex,age --- , login(用户名和密码), register(用户名和密码),拓展 : changePwd(index,pwd)

使用数组作为容器,存储对象,User[] users = {user1, user2 ,user3};

程序初始化的时候,在容器存储2个对象,

输入用户名和密码:

请选择操作:1注册,2登录

成功之后:

1:个人中心: 展示自己的个人信息

2:修改密码,

package Study2;

import java.util.Arrays;
import java.util.Scanner;

public class Test {
    //创建一个公共对象
    public static   User user=new User();
    //创建一个静态对象数组并放两个对象进去
    static User[] users={
            new User("zhangsan","123123","男",18),
            new User("doudouguo","112233","女",18)
    };
    public static void main(String[] args) {
        //new Voter().showVoter("ZHANG","WANG");






        //User
        //运行第一个方法开始注册或者登录
        page();



    }
    //注册和登录的方法输入之后跳转其他方法
    public static void page(){
        while (true){
            Scanner yong =new Scanner(System.in);
            System.out.println("请选择操作1注册,2登录,3,退出");
            int yong1 =yong.nextInt();
            if (yong1==1){
                System.out.println("——————————注册————————————");
                register();
                break;
            }else if (yong1==2){
                login();
                break;
            }else if (yong1==3){
                System.out.println("退出程序");
                break;
            }else {

            }
        }
    }
    //注册的方法 设置循环判断用户输入的信息是否合理,如果不合理就一直循环输入
    public static void register(){
        //设置全局变量获取循环里输入的值
        String sex1=null;
        String username1 =null;
        String password1 =null;
        int age1 =0;
        while (true){
            Scanner username =new Scanner(System.in);
            System.out.println("请输入用户名限制6到15位");
            username1 =username.next();
            if (username1.length()>=6&&username1.length()<15){
                break;
            }
        }
        while (true){
            Scanner password =new Scanner(System.in);
            System.out.println("请输入密码限制6到15位");
            password1 =password.next();
            if (password1.length()>=6&&password1.length()<15){
                break;
            }
        }
        while (true){
            Scanner age =new Scanner(System.in);
            System.out.println("请输入年龄0到130岁");
            age1 =age.nextInt();
            if (age1<130&&age1>0){
                break;
            }
        }
        while (true){
            Scanner sex =new Scanner(System.in);
            System.out.println("请输入性别男生或者女生,男或者女");
             sex1 =sex.next();
            if (sex1.equals("男生")||sex1.equals("女生")||sex1.equals("男")||sex1.equals("女")){
                break;
            }
        }
        //把创建的对象存进对象数组
        user.register(new User(username1,password1,sex1,age1));
        //存进去之后运行第一个注册页面让用户选择登录或者再注册
        page();
    }
        //创建登录方法
        public static void login(){
        System.out.println("----------登录-----------");
        int num5;
        Scanner num =new Scanner(System.in);
        System.out.println("请输入用户名");
        String num1 =num.next();
        Scanner num2 =new Scanner(System.in);
        System.out.println("请输入密码");
        String num3 =num.next();
        //把boolean传进方法里如果输入的用户名和密码都符合要求就传回来true,不符合就false
        boolean aaa =true;
        //创建一个新的boolean接收
        boolean aa = user.login(num1,num3,aaa);
        do {
            //如果为true运行if
            if (aa==true){
                System.out.println("登录成功欢迎:"+num1);
                while (true){
                    //设置循环让用户选择内容并判断用户输入的内容运行方法如果输入的不是提示的1,2,3就一直循环
                    System.out.println("输入1,展示个人信息2,修改密码,3退出");
                    Scanner PA =new Scanner(System.in);
                    int pa1 =PA.nextInt();
                    if (pa1==1){
                        //如果输入1,运行展示的方法
                        user.show(num1);
                    }else if (pa1==2){
                        //如果输入2,运行修改密码的方法
                        ChangePwd(num1);
                    }else if (pa1==3){
                        //如果输入3,退出循环到下面是否继续登录的循环可以选择继续登录
                        System.out.println("退出程序");
                        break;
                    }else {

                    }

                }
                //如果为false运行登录失败让用户输入是否继续登录
            }else {
                System.out.println("登录失败");
            }
            Scanner num4 =new Scanner(System.in);
            System.out.println("是否继续登录1,是,输入其他默认退出");
            num5 =num4.nextInt();
            //设置循环条件
        }while (num5==1);

        }
        //创建修改密码的方法,这个方法接收一个用户名,也就是用户注册输入的用户名
        // 把参数传到对象类的方法中判断返回一个true或者false
        //使用if判断修改密码成功还是失败
        public static void ChangePwd(String name){
            System.out.println("----------修改密码-----------");
            Scanner num =new Scanner(System.in);
            System.out.println("请输入原密码");
            String num1 =num.next();
            Scanner num2 =new Scanner(System.in);
            System.out.println("请输入新密码");
            String num3 =num.next();
            boolean aaa =true;
            boolean aa = user.ChangePwd(num1,num3,name,aaa);
            if (aa==true){
                System.out.println("修改成功"+num3);
            }else {
                System.out.println("修改失败");
            }
        }




}
package Study2;

import java.util.Arrays;
import java.util.Scanner;
//用户名类
public class User {
    //设置私有变量
    private String username;
    private String password;
    private String sex;
    private int age;
    //创建一个无参构造方法
    public User(){

    }
    public User(String username){}
    //有参构造方法
    public User(String username, String password, String sex, int age) {
        //传过来的值不能直接给使用方法进行判断是否符合要求
           setUsername(username);
           setPassword(password);
           setSex(sex);
           setAge(age);
    }

    //    static  {
//        User num1 =new User();
//        num1.username ="zhangsan";
//        num1.password ="123456";
//        num1.sex ="男";
//        num1.age =18;
//        User num2 =new User();
//        num2.username ="doudouguo";
//        num2.password ="123123";
//        num2.sex ="女";
//        num2.age =18;
//        User[] arr =new User[5];
//        arr[0] =num1;
//        arr[1] =num2;
//    }
    public String getUsername() {
        return username;
    }
    //判断用户名在6到15位之间
    public void setUsername(String username) {
        if (username.length()>=6 && username.length()<15){
            this.username = username;
        }

    }

    public String getPassword() {
        return password;
    }
    //用户密码在6到15位
    public void setPassword(String password) {
            if (password.length()>=6 && password.length()<15){
                this.password =password;
            }
    }

    public String getSex() {
        return sex;
    }
    //性别只接收这四种输入其他的不会赋值
    public void setSex(String sex) {
            if (sex.equals("男生")||sex.equals("男")||sex.equals("女生")||sex.equals("女")){
                this.sex =sex;
            }
    }

    public int getAge() {
        return age;
    }
    //年龄在0到130岁之间
    public void setAge(int age) {
            if (age>0 && age<130){
                this.age = age;
            }
        }



    //展示用户信息接收一个用户名,使用fori循环找到这个用户名来展示这个用户名下的所有信息
    public void show(String username){
        for (int i = 0; i <Test.users.length; i++) {
            if (Test.users[i].getUsername().equals(username)){
                System.out.println("用户名是:"+Test.users[i].getUsername());
                System.out.println("密码是:"+Test.users[i].getPassword());
                System.out.println("性别是:"+Test.users[i].getSex());
                System.out.println("年龄是:"+Test.users[i].getAge());
                break;
            }
        }
    }
    //登录的方法判断用户名和密码是否符合 返回true或者false 有一个正确的就可以退出循环 没有正确就循环结束
    public boolean login(String username,String password,boolean aa) {
        for (int i = 0; i < Test.users.length; i++) {
            if (Test.users[i].getUsername().equals(username) && Test.users[i].getPassword().equals(password)) {
                aa= true;
                break;
            } else {
                aa= false;
            }
        }
        return aa;
    }

    //使用对象数组接收对象的方法,先判断对象数组最后一位是否有空位如果有就直接赋值
    //如果没有就扩容数组,把对象存在对象数组最后一位
    public void register(User user) {
        if (Test.users[Test.users.length - 1] == null) {
            Test.users[Test.users.length - 1] = user;
            for (int i = 0; i < Test.users.length; i++) {
                System.out.println(Test.users[i].getUsername());
                System.out.println(Test.users[i].getPassword());
                System.out.println(Test.users[i].getSex());
                System.out.println(Test.users[i].getAge());
            }
        } else {
            Test.users = Arrays.copyOf(Test.users, Test.users.length + 1);
            Test.users[Test.users.length - 1] = user;
            for (int i = 0; i < Test.users.length; i++) {
                System.out.println(Test.users[i].getUsername());
                System.out.println(Test.users[i].getPassword());
                System.out.println(Test.users[i].getSex());
                System.out.println(Test.users[i].getAge());
            }
        }
    }
    //修改密码的方法 先通过用户名找到用户名下的密码判断和用户输入的是否一致
    //如果一致返回true,不一致返回false
    public boolean ChangePwd(String password1,String password,String NAME,boolean aa){
        for (int i = 0; i <Test.users.length; i++) {
            if (Test.users[i].getUsername().equals(NAME)){
                if (Test.users[i].getPassword().equals(password1)){
                    Test.users[i].setPassword(password);
                    aa =true;
                }else {
                    aa =false;
                }
            }
        }
        return aa;
    }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值