java 学生简易登录,注册管理系统


题目分析:

*** 1、编写程序:

实现登录注册功能

程序一进来如果没有账号就选择注册,如果有账号就直接登录。 注册功能的时候要输入注册账号、设置密码、输入确认密码、输入邮箱号码、输入性别、输入个人简介、输入你的身份证号码、根据身份证号码获取你的出生年月日。 账号就是你的电话号码,不能小于11位 只能是13 、15、18开头的。 密码不能小于6位 不能大于10位, 首字母必须是大写字母开头,密码不能是纯数字,必须有大写字母和小写字母和数字组成。 确认密码必须与设置的密码一致 邮箱号码 必须进行验证 只能是 QQ 和163 邮箱 个人简介必须使用可变字符串进行保存设置 性别 是根据身份证号码的来判断男和女。 必须对身份证号码进行验证 长度验证 (【如果有能力就根据你的身份证号码进行你的省份验证】) 出生年月日 根据你的身份证号码获取你的出生年月日,并计算出你现在的年龄。 附加题: 将你创建好登录注册功能与学生管理系统进行结合。 做出一套比较完整的StudentOA。所有功能不限,可以根据实际情况无限扩展。

注册界面:

注册账号

:不能小于11位,并且只能是13、15、18开头-----------------------------必须写到方法里面去

Scanner input = new Scanner(System.in);
		boolean bool=true;
		while(bool) {
		System.out.println("请输入您的电话号码,必须是11位,且以13开头");
		String s_id = input.next();
		if(s_id.length()==11&&s_id.indexOf("13")==0||s_id.indexOf("15")==0||s_id.indexOf("18")==0) 
		{//你的电话号码是11111111111或者15677889333
			System.out.println("您的电话号码是"+s_id);
			bool=false;
		}else {System.out.println("您输入的电话号码错误!是否重新输入?");
			String phoneAgain = input.next();
			switch (phoneAgain) {
			case "是":	
				break;
			default:
				System.out.println("不填写此项,将退出注册界面!");
				bool=false;
				break;
			}
		}
	}		

注册密码

:要求!密码不能小于6位 不能大于10位, 密码首位必须是大写字母开头,密码不能是纯数字,必须有大写字母和小写字母和数字组成。确认密码必须与设置的密码一致-----------------写成普通静态方法:方便调用。
1 首先需要判断密码长度6-10
2 其次首位必须是大写字母
3 最后大写、小写、数字组成
解决方案是:
方案一: char包装类里面的isDigit方法(确定指定的字符是否是为数字)和isLetter方法(确定指定的字符是否是一个字母)加上正则表达式。
方案二:char包装类里面的isLowerCase方法(确定指定字符是否是小写字母);isLowerCase方法(确定指定字符是否是字母或者数字)
方案

三:String类下面的charAt方法用来判断首字母是否是大写,直接使用一个正则表达式
	Scanner input = new Scanner(System.in);
		boolean bool1=true;
		do{//错误密码:268jhg9 或者h897hej  正确密码:Hj8k094
		System.out.println("请输入您的账户密码:");
		System.out.println("温馨提示:您的密码由数字,大写字母,小写字母组成,并且首位必须是大写字母,长度为6-10");
		String pas = input.next();
		if((pas).matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{6,10}$")) {
	        System.out.println("您的密码为:"+pas);
	        System.out.println("请再次确认填写您的密码:");
	        String pas1 = input.next();
	        if(pas1.equals(pas)) {
	        	System.out.println("您已经成功进行注册!");
	        }else {System.out.println("您输入的密码与前一次不一致,请重新输入!");} 
	        bool1=false;
	    } else {
	        System.out.println("您的密码不符合要求!是否重新输入?");
	        String pasAgain = input.next();
	        switch (pasAgain) {
			case "是":	
				break;
			default:
				System.out.println("此项为必填!如不填写,您将无法注册成功");
				bool1=false;
				break;
			}
	    }
		}while(bool1=false);

方案四:正规的写法

补充知识点:
登陆注册需要验证用户名和密码是否合法,如:由数字和字母组成,并且要同时含有数字和字母,且长度要在6-16位之间。
1,不能全部是数字
2,不能全部是字母
3,必须是数字或字母
只要能同时满足上面3个要求就可以了,写出来如下:
^(?![0-9]+ ) ( ? ! [ a − z A − Z ] + )(?![a-zA-Z]+ )(?![azAZ]+)[0-9A-Za-z]{8,16}$
注释一下:
^ 匹配一行的开头位置
(?![0-9]+ ) 预 测 该 位 置 后 面 不 全 是 数 字 ( ? ! [ a − z A − Z ] + ) 预测该位置后面不全是数字 (?![a-zA-Z]+ )(?![azAZ]+) 预测该位置后面不全是字母
[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成
$ 匹配行结尾位置

注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。

public class text {
    public static void main() {
        String code=”152”;
        String t1 = "^[0-9A-Za-z]{2,16}$"; //判断密码用户名和密码是否为数字,字母
        String t2="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";
        if(code.matches(t1)) {
            System.out.println(logname.matches(t1));
        }else {
            System.out.println("在这里");
        }
    }
}

要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。
^(?![0-9]+ ) ( ? ! [ a − z A − Z ] + )(?![a-zA-Z]+ )(?![azAZ]+)[0-9A-Za-z]{8,16}$
分开来注释一下:
^ 匹配一行的开头位置
(?![0-9]+ ) 预 测 该 位 置 后 面 不 全 是 数 字 ( ? ! [ a − z A − Z ] + ) 预测该位置后面不全是数字 (?![a-zA-Z]+ )(?![azAZ]+) 预测该位置后面不全是字母
[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成
$ 匹配行结尾位置
注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。
附:
要求:可以包含数字、字母、下划线,并且要同时含有数字和字母,且长度要在8-16位之间。

^(?![0-9]+ ) ( ? ! [ a − z A − Z ] + )(?![a-zA-Z]+ )(?![azAZ]+)[0-9A-Za-z_]{8,16}$

邮箱注册功能

要求:必须进行验证--------------只能是 QQ 和163 邮箱
使用String类中的endsWith(测试如果这个字符串以指定的后缀结束)
代码如下:

Scanner input = new Scanner(System.in);
		boolean bool3=true;
		while(bool3) {//正确邮箱123@qq.com或者896@163.com
		System.out.println("请输入您的邮箱,此项为必填项目:");
		String emile = input.next();
		if(emile.endsWith("@qq.com")||emile.endsWith("@163.com")) {
			System.out.println("您的邮箱是:"+emile);
			bool3=false;
		}else {
			System.out.println("您输入的邮箱不符合规定,是否再次输入?");
			String Emile1 = input.next();                                   //拿到用户输出的结果
	        switch (Emile1 ) {
			case "是":	
				break;
			default:
				System.out.println("此项为必填!如不填写,您将无法注册成功");
				bool3=false;
				break;
			}
		}
		}

个人简介必须使用可变字符串进行保存设置

package com.xingyun.账号;
import java.util.Scanner;
public class private_Introduce {
	public static void main pi() {
		Scanner input = new Scanner(System.in);
		System.out.println("您是否需要输入个人简介?");
		 String judgement = input.next();                                   //拿到用户输出的结果
	        switch (judgement) {
			case "是":
				System.out.println("请输入您的个人简介:");
				String text = input.next();
				 StringBuilder text1 = new StringBuilder(text);
				 System.out.println(text1);
				break;
			default:
				System.out.println("您已经注册成功!");
				break;
			}
	
	}
}

身份证注册信息

1.必须对身份证号码进行验证 长度验证 (【如果有能力就根据你的身份证号码进行你的省份验证】)
2.性别 是根据身份证号码的来判断男和女。–
奇数是男,偶数是女------身份证倒数第2位
3.出生年月日 根据你的身份证号码获取你的出生年月日,并计算出你现在的年龄。

package com.xingyun.账号;
import java.util.Calendar;
import java.util.Scanner;
//身份证验证
public class Idcard {
	public static void youjian() {
		Scanner input = new Scanner(System.in);
		boolean bool4 = true;
		while(bool4) {
		System.out.println("请输入您的身份证号码:");
		String number = input.next();
		if(number.length()==18) {
			//取出前6位判断地域
			int area=Integer.parseInt(number.substring(0, 6));
	        //调用NativePlace.getNativePlace方法,将nativePlaceCode参数传递进去,进行地域判断
	        String place=NativePlace.getNativePlace(area);
	        System.out.println("您位于:"+place+"省");
	      
			//进行男女判断       parseInt(String s) 将字符串参数作为带符号的十进制整数。 	
			int sex =Integer.parseInt(number.substring(16,17)) ;
			if(sex%2==0) {
				System.out.println("您为女生!");
			}else {System.out.println("您为男生!");}
//			进行年月日的判断
			int year=Integer.parseInt(number.substring(6, 10));//进行年的拿取
		    int month=Integer.parseInt(number.substring(10, 12));//进行月的拿取
		    int day=Integer.parseInt(number.substring(12, 14));//进行日的拿取
		    System.out.println("您出生于"+year+"年"+month+"月"+day+"日");
//		 拿到当前的时间
			Calendar c= Calendar.getInstance();
			//用当前年份-出生年份 得到 年龄
			int age=c.get(Calendar.YEAR)-year;
			System.out.println("您的年龄为:"+age);
			bool4=false;
		}else {
			System.out.println("输入不符合规定,是否重新输入您的身份证号码?");
			String ids = input.next();                                   //拿到用户输出的结果
	        switch (ids) {
			case "是":	
				break;
			default:
				System.out.println("此项为必填!如不填写,您将无法注册成功");
				bool4=false;
				break;
			}
		}
	}
		
		
	}
}
  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值