【Java案例】用户登录注册

案例介绍:

编写程序实现简单的用户登录注册功能。程序包含以下4个功能:

(1)登录功能,用户输入正确的账号密码登录成功;

(2)注册功能,输入用户名和密码进行注册;

(3)查看功能,查看所有的用户名与密码;

(4)退出功能,退出系统;

用户可以输入对应的编号进行相应的功能操作。例如,输入2进入注册功能,输入用户名和密码进行注册。

 运行结果:

//main()方法 

//使用static修饰属性,则称该属性为静态属性(或全局属性)
static Scanner scanner =new Scanner(System.in);
// 存储用户名和密码
public static String[] USERNAMES = new String[3];
public static String[] PASSWORDS = new String[3];

public static void main(String[] args){
    USERNAMES[0]="JAVA";
    PASSWORDS[0]="java";
    while(true){
        menu(); //调用menu()方法
        System.out.print("请选择功能:");
        int choice = scanner.nextInt();
        switch (choice){
            case 1:login();     break; //输入1,调用login()方法
            case 2:register();  break; //输入2,调用register()方法
            case 3:show();      break; //输入3,调用show()方法
            default:
                System.out.println("系统退出!");
                System.exit(0); //输入0,退出程序执行
        }
    }
}

// 菜单:menu()方法

public static void menu(){ //菜单
    System.out.println("------------黑马管理系统------------");
    System.out.println("1.登录功能(login)");
    System.out.println("2.注册功能(register)");
    System.out.println("3.查看(show)");
    System.out.println("0.退出(exit)");
    System.out.println("------------黑马管理系统------------");
}

 //登录:login()方法

/*登录功能:
* 键盘输入用户名与密码
* 使用for循环+if语句验证输入的用户名和密码是否正确
*/
public static void login(){ //登录
    for(int retry=1;retry<=3;retry++)
    {
        System.out.print("请输入注册用户名:");
        String usernames = scanner.next();
        System.out.print("请输入密码:");
        String passwords = scanner.next();
        for(int i=0;i<USERNAMES.length;i++)
        {
            if(passwords!=null)
            {
                if(usernames.equals(USERNAMES[i])&&passwords.equals(PASSWORDS[i]))
                {
                    System.out.println("登录成功!");
                    return;
                }
            }
        }
        System.out.println("登录失败 "+retry+" 次,请重新输入!");
    }
    System.out.println("登录失败超过三次,退出登录功能!");
}

//注册:register()方法

/*注册功能
* 键盘输入用户名与密码,如果用户存在则要求重新输入。
* 如果用户不存在,在数组中插入注册的账号密码。
* 此时可能会有数组长度不够的情况,所以需要增加数组的长度。
*/
public static void register() {
    boolean isNewUser; //判断是否是新用户
    String usernames;
    do {
        System.out.print("请输入注册用户名:");
        usernames = scanner.next();
        isNewUser = true;
        /*两种表达方式:
        * ①for(String uname:USERNAMES)
        * {
        *     System.out.println(uname);
        * }
        * ②for(int i=0;i<USERNAMES.length;i++)
        * {
        *     System.out.println(USERNAMES[i]);
        * }
        */
        for (int i = 0; i < USERNAMES.length; i++)
        {
            if (USERNAMES[i] != null && usernames.equals(USERNAMES[i]))
            {
                System.out.println("用户名已存在,请重新输入!");
                isNewUser = false;
                break;
            }
        }
    } while (!isNewUser); //新用户会跳出循环,不再要求重新输入
    System.out.print("请输入密码:");
    String passwords = scanner.next();
    boolean isFull = true; //判断当前数组是否装满
    for (int i = 0; i < USERNAMES.length; i++)
    {
        if (USERNAMES[i] == null)
        {
            isFull = false;
            break;
        }
    }
    if(isFull)
    {
        String[] newUSERNAMES=new String[USERNAMES.length+10];
        String[] newPASSWORDS=new String[PASSWORDS.length+10];
        //arraycopy可以实现一个数组的指定个数元素负责到另一个数组中
        //将USERNAMES数组里从索引为0的元素开始,复制到newUSERNAMES数组里索引为0的位置,复制USERNAMES.length个元素
        System.arraycopy(USERNAMES,0,newUSERNAMES,0,USERNAMES.length);
        System.arraycopy(PASSWORDS,0,newPASSWORDS,0,PASSWORDS.length);
        USERNAMES=newUSERNAMES;
        PASSWORDS=newPASSWORDS;
    }
    for(int i=0;i<USERNAMES.length;i++)
    {
        if(USERNAMES[i]==null)
        {
            USERNAMES[i]=usernames;
            PASSWORDS[i]=passwords;
            System.out.println("注册成功!");
            break;
        }
    }
}

//查看:show()方法

public static void show(){
    System.out.println("系统当前存在的用户为:");
    for (int i=0;i<USERNAMES.length;i++)
    {
        if(USERNAMES[i]!=null)
        {
             System.out.println("用户名:"+USERNAMES[i]+",密码:"+PASSWORDS[i]);
        }
    }
}

完整代码:

import java.util.Scanner;

public class User {
    static Scanner scanner =new Scanner(System.in);
    public static String[] USERNAMES = new String[3];
    public static String[] PASSWORDS = new String[3];
    public static void main(String[] args){
        USERNAMES[0]="JAVA";
        PASSWORDS[0]="java";
        while(true){
            menu(); //调用menu()方法
            System.out.print("请选择功能:");
            int choice = scanner.nextInt();
            switch (choice){
                case 1:login();     break; //输入1,调用login()方法
                case 2:register();  break; //输入2,调用register()方法
                case 3:show();      break; //输入3,调用show()方法
                default:
                    System.out.println("系统退出!");
                    System.exit(0); //输入0,退出程序执行
            }
        }
    }
    public static void menu(){ //菜单
        System.out.println("------------黑马管理系统------------");
        System.out.println("1.登录功能(login)");
        System.out.println("2.注册功能(register)");
        System.out.println("3.查看(show)");
        System.out.println("0.退出(exit)");
        System.out.println("------------黑马管理系统------------");
    }
    public static void login(){ //登录
        for(int retry=1;retry<=3;retry++) {
            System.out.print("请输入注册用户名:");
            String usernames = scanner.next();
            System.out.print("请输入密码:");
            String passwords = scanner.next();
            for(int i=0;i<USERNAMES.length;i++) {
                if(passwords!=null) {
                    if(usernames.equals(USERNAMES[i])&&passwords.equals(PASSWORDS[i])) {
                        System.out.println("登录成功!");
                        return;
                    }
                }
            }
            System.out.println("登录失败 "+retry+" 次,请重新输入!");
        }
       System.out.println("登录失败超过三次,退出登录功能!");
    }
    public static void register() { //注册
        boolean isNewUser; //判断是否是新用户
        String usernames;
        do {
            System.out.print("请输入注册用户名:");
            usernames = scanner.next();
            isNewUser = true;
            for (int i = 0; i < USERNAMES.length; i++) {
                if (USERNAMES[i] != null && usernames.equals(USERNAMES[i])) {
                    System.out.println("用户名已存在,请重新输入!");
                    isNewUser = false;
                    break;
                }
            }
        } while (!isNewUser); //新用户会跳出循环,不再要求重新输入
        System.out.print("请输入密码:");
        String passwords = scanner.next();
        boolean isFull = true; //判断当前数组是否装满
        for (int i = 0; i < USERNAMES.length; i++) {
            if (USERNAMES[i] == null) {
                isFull = false;
                break;
            }
        }
        if(isFull) {
            String[] newUSERNAMES=new String[USERNAMES.length+10];
            String[] newPASSWORDS=new String[PASSWORDS.length+10];
            System.arraycopy(USERNAMES,0,newUSERNAMES,0,USERNAMES.length);
            System.arraycopy(PASSWORDS,0,newPASSWORDS,0,PASSWORDS.length);
            USERNAMES=newUSERNAMES;
            PASSWORDS=newPASSWORDS;
        }
        for(int i=0;i<USERNAMES.length;i++) {
            if(USERNAMES[i]==null) {
                USERNAMES[i]=usernames;
                PASSWORDS[i]=passwords;
                System.out.println("注册成功!");
                break;
            }
        }
    }
    public static void show(){ //查看
        System.out.println("系统当前存在的用户为:");
        for (int i=0;i<USERNAMES.length;i++) {
            if(USERNAMES[i]!=null) {
                System.out.println("用户名:"+USERNAMES[i]+",密码:"+PASSWORDS[i]);
            }
        }
    }
}

  • 26
    点赞
  • 274
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是一个简单的Java实现迷宫游戏用户登录和注册的示例代码。 用户类: ```java public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public String getPassword() { return password; } } ``` 注册对话框: ```java public class RegisterDialog extends JDialog { private JTextField usernameField; private JPasswordField passwordField; public RegisterDialog(JFrame parent) { super(parent, "注册", true); JPanel panel = new JPanel(new GridLayout(2, 2)); panel.add(new JLabel("用户名:")); usernameField = new JTextField(); panel.add(usernameField); panel.add(new JLabel("密码:")); passwordField = new JPasswordField(); panel.add(passwordField); getContentPane().add(panel, BorderLayout.CENTER); JButton button = new JButton("注册"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String username = usernameField.getText(); String password = new String(passwordField.getPassword()); User user = new User(username, password); // 将用户信息保存到文件中 saveUser(user); dispose(); } }); getContentPane().add(button, BorderLayout.SOUTH); pack(); setLocationRelativeTo(parent); } private void saveUser(User user) { try { File file = new File("users.txt"); FileWriter writer = new FileWriter(file, true); writer.write(user.getUsername() + " " + user.getPassword() + "\n"); writer.close(); } catch(IOException ex) { ex.printStackTrace(); } } } ``` 登录对话框: ```java public class LoginDialog extends JDialog { private JTextField usernameField; private JPasswordField passwordField; public LoginDialog(JFrame parent) { super(parent, "登录", true); JPanel panel = new JPanel(new GridLayout(2, 2)); panel.add(new JLabel("用户名:")); usernameField = new JTextField(); panel.add(usernameField); panel.add(new JLabel("密码:")); passwordField = new JPasswordField(); panel.add(passwordField); getContentPane().add(panel, BorderLayout.CENTER); JButton button = new JButton("登录"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String username = usernameField.getText(); String password = new String(passwordField.getPassword()); User user = getUser(username, password); if(user != null) { JOptionPane.showMessageDialog(LoginDialog.this, "登录成功"); dispose(); } else { JOptionPane.showMessageDialog(LoginDialog.this, "用户名或密码错误"); } } }); getContentPane().add(button, BorderLayout.SOUTH); pack(); setLocationRelativeTo(parent); } private User getUser(String username, String password) { try { File file = new File("users.txt"); Scanner scanner = new Scanner(file); while(scanner.hasNextLine()) { String line = scanner.nextLine(); String[] fields = line.split(" "); if(fields.length == 2 && fields[0].equals(username) && fields[1].equals(password)) { return new User(username, password); } } } catch(IOException ex) { ex.printStackTrace(); } return null; } } ``` 在游戏中添加登录和注册按钮的代码: ```java JFrame frame = new JFrame("迷宫游戏"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(new GridLayout(2, 1)); JButton loginButton = new JButton("登录"); loginButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { LoginDialog dialog = new LoginDialog(frame); dialog.setVisible(true); } }); panel.add(loginButton); JButton registerButton = new JButton("注册"); registerButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { RegisterDialog dialog = new RegisterDialog(frame); dialog.setVisible(true); } }); panel.add(registerButton); frame.getContentPane().add(panel, BorderLayout.CENTER); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); ``` 以上是一个简单的Java实现迷宫游戏用户登录和注册的示例代码,供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值