记录我的Java学习经历(7)

来源:互联网 发布:php可以用来做什么 编辑:程序博客网 时间:2024/05/22 02:09

介绍
学习Java基础时做的小练习分享,请大家批评指正!

数组的综合小练习

接下来这道题在基础中综合性比较高,需要进行的判断比较多,主要是用户名是否重复的判断比较繁琐,规则:

现在名额是3个,判定:如果名额满了,则提示禁止注册。用户名禁止重复。主界面有注册登录和退出功能,用户注册时需要登记生日和爱好,还有呢登录成功则提示:登录成功并打印该用户所有信息。
PS:我只是初学哈,代码不够精简,欢迎大家批评指正交流~

代码:

public class MainApp {    public static void main(String[] args) {        @SuppressWarnings("resource")        Scanner sc = new Scanner(System.in);        String[][] str = new String[3][4];//二维数组,二维为三个用户,一维用于储存用户的所有信息        for (int i = 0; i < str.length; i++) {            str[i][0] = "null";//先把所有二维数组的第一个元素定义为null,用于判断是否名额已满        }        while(true) {            System.out.println("请选择功能:");            System.out.println("1.注册");            System.out.println("2.登录");            System.out.println("3.退出");            int choose = sc.nextInt();                switch (choose) {                case 1:                    registe(str);                    break;                case 2:                    login(str);                    break;                case 3:                    System.exit(0);                default:                    break;                }        }       }    //注册功能    public static void registe(String[][] str){        @SuppressWarnings("resource")        Scanner sc = new Scanner(System.in);        //用户名注册:        boolean f = true;        boolean b = true;        String account = "";        int count = 0;//记录是第几个用户名  label:while(f){            if (str[2][0].equals("null")) {//判断注册名额是否已满                System.out.println("请输入注册用户名:");                account = sc.nextLine();                for (int i = 0; i < str.length; i++) {//判断用户名是否已存在                    if (str[i][0].equals(account)){                        System.out.println("用户名已存在!请重新输入:");                        continue label;                    }                }                for (int i = 0; i < str.length; i++) {//注册用户名                    if (str[i][0].equals("null")) {//判断此名额是否被占用                        str[i][0] = account;//注册成功!                        count = i;//记录是第几个用户名,用于对应密码设置                        f = false;//结束掉整个while                        break;                    } else {                        continue;//寻找下个空名额                    }                }            } else {//名额已满                System.out.println("禁止注册!");                b = false;//不执行下面的设置密码                break;            }         }        if(b){//如果名额没满则执行        //设置密码:        System.out.println("请设置密码:");        String password = sc.nextLine();        str[count][1] = password;        //设置生日:        System.out.println("请填写生日:");        String birthdate = sc.nextLine();        str[count][2] = birthdate;        //填写爱好:        System.out.println("请填写爱好:");        String hobby = sc.nextLine();        str[count][3] = hobby;        }    }    //登录功能    public static void login(String[][] str){        @SuppressWarnings("resource")        Scanner sc = new Scanner(System.in);        System.out.println("请输入登录账号:");        String account = sc.nextLine();        System.out.println("请输入登录密码:");        String password = sc.nextLine();        int count = 0;//记录逐一比对        for (int i = 0; i < str.length; i++) {            if (str[i][0].equals(account) && str[i][1].equals(password)){                System.out.println("登录成功!");                System.out.println("账户名:"+str[i][0]);                System.out.println("密码:"+str[i][1]);                System.out.println("生日:"+str[i][2]);                System.out.println("爱好:"+str[i][3]);                break;            }               count++;        }        if(count == 3){//如果全都匹配不上,则计数器为3了,为3,则没有相应的用户名和密码,则错误!这里哈,应该有更高效的方法,但是可能我还没学到,想不出来            System.out.println("账户名或密码错误!");        }    }}
原创粉丝点击