学生管理系统的注册登录以及管理的具体实现

题目要求:

编写程序:实现登录注册功能,程序一进来如果没有账号就选择注册,如果有账号就直接登录。
注册功能的时候要输入注册账号、设置密码、输入确认密码、输入邮箱号码、输入性别、输入个人简介、输入你的身份证号码、根据身份证号码获取你的出生年月日、输入验证码。
账号就是你的电话号码,不能小于11位 只能是13 、15、18开头的。
密码不能小于6位 不能大于10位, 首字母必须是大写字母开头,密码不能是纯数字,必须有大写字母和小写字母和数字组成。
确认密码必须与设置的密码一致
邮箱号码 必须进行验证 只能是 QQ 和163 邮箱
性别 是根据身份证号码的来判断男和女。
个人简介必须使用可变字符串进行保存设置
必须对身份证号码进行验证 长度验证 (【如果有能力就根据你的身份证号码进行你的省份验证】)
出生年月日 根据你的身份证号码获取你的出生年月日,并计算出你现在的年龄。
随机产生一组数字 四个数字 与输入的验证码进行比对。如果验证码不对就注册失败

第一步:创建UserDao类

利用抽象类进行登录和注册方法的封装,考虑到要用集合存储。所以必须要传入List集合的参数。
package com.xingyun.dao;

import java.util.Collection;
import java.util.List;

import com.xingyun.bean.User;

public interface userDao {
   

	void enter(List<User> coll); //登录界面
	void apply(List<User> coll);//申请界面

}

第二步:创建User的实体类

由于要输入用户名 密码 邮箱 身份证号 年 月 日 性别 和 个人简介 所以在这个User实体类中封装了这些属性。
package com.xingyun.bean;

public class User{
   
	private String userName;//用户名
	private StringBuilder userPwd;//密码
	private String email;//邮箱
	private String  idNumber; //身份证号	
	private String sex;//性别
	private String year,money,day;//出生的年月日
	private StringBuilder intro; //个人简介	
	
	public User() {
   
		super();
		// TODO Auto-generated constructor stub
	}

	

//有参构造方法

	public User(String userName, StringBuilder userPwd, String email, String idNumber, String sex, String year, String money,
			String day, StringBuilder intro) {
   
		super();
		this.userName = userName;
		this.userPwd = userPwd;
		this.email = email;
		this.idNumber = idNumber;
		this.sex = sex;
		this.year = year;
		this.money = money;
		this.day = day;
		this.intro = intro;
	}





	public String getUserName() {
   
		return userName;
	}

	public void setUserName(String userName) {
   
		this.userName = userName;
	}

	public StringBuilder getUserPwd() {
   
		return userPwd;
	}

	public void setUserPwd(StringBuilder userPwd) {
   
		this.userPwd = userPwd;
	}

	public String getEmail() {
   
		return email;
	}

	public void setEmail(String email) {
   
		this.email = email;
	}

	public String getSex() {
   
		return sex;
	}

	public void setSex(String sex) {
   
		this.sex = sex;
	}

	public String getIdNumber() {
   
		return idNumber;
	}

	public void setIdNumber(String idNumber) {
   
		this.idNumber = idNumber;
	}

	public StringBuilder getIntro() {
   
		return intro;
	}

	public void setIntro(StringBuilder intro) {
   
		this.intro = intro;
	}

	public String getYear() {
   
		return year;
	}

	public void setYear(String year) {
   
		this.year = year;
	}

	public String getMoney() {
   
		return money;
	}

	public void setMoney(String money) {
   
		this.money = money;
	}

	public String getDay() {
   
		return day;
	}

	public void setDay(String day) {
   
		this.day = day;
	}


}

第三步:创建实现接口的Imp类

实现登录和注册功能
1、首先申请账户的时候,必须满足是手机号,并且是11位的手机号所以利用String.length来判断是否是11位,同时必须是 13 15 18 开头的手机号 ,所以利用,username.indexOf(“13”)==0方法来判断一开始输入的字符是否符合要求。 并且下一次注册的时候会先调用自己定义的查找函数,查看是否有相同的手机号 已经被注册使用了。返回boolean值
@Override
	public void apply(List<User> coll) {
   
		
		String username = null; //定义的 输入用户名
		StringBuilder userpwd = null;//定义的输入的 密码  由于要反转密码  所以使用 StringBuilder
		String email = null;  //定义的email 输入
		String idNumber = null; //定义的身份证号
		String year= null,money = null,day= null;  //定义的年 月 日
		String sex= null;  //定义的 性别
		int age;
		StringBuilder intro = null; //定义的个人介绍
		 
		boolean bools = true; //定义的 输入用户名 循环
		boolean bool1 = true;//定义的 输入 密码 循环
		boolean	bool2 = true;//定义的 输入email 循环
		boolean	bool3 = true;//定义的 输入  身份证号  循环
		boolean bool4= true;//定义的 输入验证码  循环
		boolean bool5= true;//定义的  输入个人简介  循环
		
		System.out.println("——————申请界面——————");
			
				while(bools){
   
				System.out.println("请输入用户名(11位手机号--13--15--18-开头的手机号)");
				username = input.next();
				
				
				if(username.length()==11 && username.indexOf("13")==0||username.indexOf("15")==0||username.indexOf("18")==0){
   
						//判断输入的手机号 是否 是 13  15  18 开头  并且是否是  11位
					
						
					boolean rePetitionName = RePetition.RePetitionName(coll,username);  //调用类 让他去查看是否 存在相同的手机号 然后返回Boolean值
					if(rePetitionName){
   
						System.out.println("该用户名已经被注册");
					}else{
   
						bools = false;
					}
					
					
					
						
				}else{
   
					System.out.println("用户名输入错误!");
				}	
					
				}	
2、注册密码的时候,首先判断输入的不能全是小写字符和数字,所以定义了一个字符串让它为真,然后进行for循环判断 如果全是小写字符或者全是数字就将字符串=假;等到下面第二次判断的时候 如果为假就提示密码输入错误。同时使用 userpwd.charAt(0),来判断输入的是否是大写字母。由于要反转密码 所以定义的密码是StringBuilder类型的。当输入的确认密码和之前输入的密码相同 就将反转的密码 存到List集合里 对象的userpwd中。
	 //输入密码的循环
					while(bool1){
   	
					int sumChar=0;  //判断输入的是否全都是 小写字符
					int sumNum=0;  //判断是否 输入的 全是 纯数字
					System.out.print("请输入密码(首字母大写!密码在6到10位!密码不能是纯数字!密码必须有大小写字母)");
					userpwd =new StringBuilder(input.next());
					String userPwd = userpwd.substring(0, userpwd.length()-1);//将输入的密码截取 下来
					
					String bool ="真";
					for( int j=0;j< userpwd.length();j++){
    
						if((byte) userpwd.charAt(j)>=97 &&(byte) userpwd.charAt(j)<=122){
    //如果是 小写字符 sumChar就加一 
							sumChar++;
								if(sumChar==userpwd.length()-1){
   
									bool = "假";  //如果 输入的 全是 小写字符 就bool 就 变为假
								}
								
							}else if((byte) userpwd.charAt(j)>=48 && (byte) userpwd.charAt(j)<=57){
   //如果输入的是 数字 sumNum 就加一
								sumNum++;
								if(sumNum==userpwd.length()-1){
     //直到 这个 sum 等于 这个密码的长度 说明 全是 数字
									bool = "假";  //就 将字符串 bool  判断为假  
								}
							}
						}					
					//判断输入的密码长度 是否 符合  并且  首字母 是不是 大写   然后加上  bool 是否为真
					if(userpwd.length()>=6 && userpwd.length()<=10&&(byte) userpwd.charAt(0)>=65&&(byte) use
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
这里提供一个简单的 Java 学生信息管理系统实现登录注册功能的代码,仅供参考: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { StudentManagementSystem system = new StudentManagementSystem(); Scanner scanner = new Scanner(System.in); while (true) { System.out.println("欢迎使用学生信息管理系统"); System.out.println("1. 注册"); System.out.println("2. 登录"); System.out.println("3. 退出"); System.out.print("请选择操作:"); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: System.out.print("请输入用户名:"); String username = scanner.nextLine(); System.out.print("请输入密码:"); String password = scanner.nextLine(); System.out.print("请输入姓名:"); String name = scanner.nextLine(); System.out.print("请输入年龄:"); int age = scanner.nextInt(); scanner.nextLine(); system.register(username, password, name, age); break; case 2: System.out.print("请输入用户名:"); String loginUsername = scanner.nextLine(); System.out.print("请输入密码:"); String loginPassword = scanner.nextLine(); if (system.login(loginUsername, loginPassword)) { while (true) { System.out.println("1. 添加学生信息"); System.out.println("2. 修改学生信息"); System.out.println("3. 删除学生信息"); System.out.println("4. 查询学生信息"); System.out.println("5. 返回上一级"); System.out.print("请选择操作:"); int subChoice = scanner.nextInt(); scanner.nextLine(); switch (subChoice) { case 1: System.out.print("请输入学生姓名:"); String studentName = scanner.nextLine(); System.out.print("请输入学生年龄:"); int studentAge = scanner.nextInt(); scanner.nextLine(); system.addStudent(studentName, studentAge); break; case 2: System.out.print("请输入要修改的学生ID:"); int modifyId = scanner.nextInt(); scanner.nextLine(); System.out.print("请输入新的学生姓名:"); String newStudentName = scanner.nextLine(); System.out.print("请输入新的学生年龄:"); int newStudentAge = scanner.nextInt(); scanner.nextLine(); system.modifyStudent(modifyId, newStudentName, newStudentAge); break; case 3: System.out.print("请输入要删除的学生ID:"); int deleteId = scanner.nextInt(); scanner.nextLine(); system.deleteStudent(deleteId); break; case 4: system.queryAllStudents(); break; case 5: break; default: System.out.println("无效的操作,请重新选择!"); break; } if (subChoice == 5) { break; } } } else { System.out.println("用户名或密码错误!"); } break; case 3: System.out.println("谢谢使用!"); System.exit(0); break; default: System.out.println("无效的操作,请重新选择!"); break; } } } } class Student { private int id; private String name; private int age; public Student(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "学生ID:" + id + ",姓名:" + name + ",年龄:" + age; } } class StudentManagementSystem { private Student[] students = new Student[100]; private int count = 0; private int id = 1; public void register(String username, String password, String name, int age) { System.out.println("注册成功!"); } public boolean login(String username, String password) { if ("admin".equals(username) && "123456".equals(password)) { System.out.println("登录成功!"); return true; } return false; } public void addStudent(String name, int age) { students[count++] = new Student(id++, name, age); System.out.println("添加成功!"); } public void modifyStudent(int id, String name, int age) { for (int i = 0; i < count; i++) { if (students[i].getId() == id) { students[i].setName(name); students[i].setAge(age); System.out.println("修改成功!"); return; } } System.out.println("未找到指定的学生ID!"); } public void deleteStudent(int id) { for (int i = 0; i < count; i++) { if (students[i].getId() == id) { for (int j = i; j < count - 1; j++) { students[j] = students[j + 1]; } students[--count] = null; System.out.println("删除成功!"); return; } } System.out.println("未找到指定的学生ID!"); } public void queryAllStudents() { if (count == 0) { System.out.println("暂无学生信息!"); return; } for (int i = 0; i < count; i++) { System.out.println(students[i]); } } } ``` 这个学生信息管理系统中,主要实现了以下功能: - 注册 - 登录 - 添加学生信息 - 修改学生信息 - 删除学生信息 - 查询学生信息 其中,注册和登录功能只是简单的输出提示信息,没有实现真正的注册和登录逻辑。在实际项目中,需要根据具体需求进行实现。 如果需要将这个学生信息管理系统保存到文件中,可以使用 Java 的文件操作功能,将学生信息保存到文件中,再从文件中读取学生信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值