概述
题目分析:
*** 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]+
)(?![a−zA−Z]+)[0-9A-Za-z]{8,16}$
注释一下:
^ 匹配一行的开头位置
(?![0-9]+
)
预
测
该
位
置
后
面
不
全
是
数
字
(
?
!
[
a
−
z
A
−
Z
]
+
) 预测该位置后面不全是数字 (?![a-zA-Z]+
)预测该位置后面不全是数字(?![a−zA−Z]+) 预测该位置后面不全是字母
[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]+
)(?![a−zA−Z]+)[0-9A-Za-z]{8,16}$
分开来注释一下:
^ 匹配一行的开头位置
(?![0-9]+
)
预
测
该
位
置
后
面
不
全
是
数
字
(
?
!
[
a
−
z
A
−
Z
]
+
) 预测该位置后面不全是数字 (?![a-zA-Z]+
)预测该位置后面不全是数字(?![a−zA−Z]+) 预测该位置后面不全是字母
[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成
$ 匹配行结尾位置
注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。
附:
要求:可以包含数字、字母、下划线,并且要同时含有数字和字母,且长度要在8-16位之间。
^(?![0-9]+ ) ( ? ! [ a − z A − Z ] + )(?![a-zA-Z]+ )(?![a−zA−Z]+)[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;
}
}
}
}
}
最后
以上就是光亮火龙果为你收集整理的java 学生简易登录,注册管理系统的全部内容,希望文章能够帮你解决java 学生简易登录,注册管理系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复