简易版学生管理系统

利用集合之前的知识完成一个学生管理系统
实现功能
1.注册账号
账号为手机号
密码为大写字母与小写字母和数字组合而成
获取用户email和身份证号
根据用户身份证号判断用户性别与年龄
获取用户出生日期
2.登录账号
根据注册账号进行登录
登录时需要验证码
3.进入登录系统可进行学生管理系统基本的增删改查功能

代码:
学生类

package com.xingyun.bean;

import java.util.Arrays;
import java.util.List;

public class Student {

private String name;//学生姓名
private String classname;//学生班级
private Student []student;//学生数组
private int age;//学生年龄
private int s_id;//学生ID
private List<Student> list; 

//构造方法
public Student(String name, String classname, Student[] student, int age, int s_id) {
	this.name = name;
	this.classname = classname;
	this.student = student;
	this.age = age;
	this.s_id = s_id;
}
public Student() {
	// TODO Auto-generated constructor stub
}
//封装
public Student[] getStudent() {
	return student;
}
public void setStudent(Student[] student) {
	this.student = student;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getClassname() {
	return classname;
}
public void setClassname(String classname) {
	this.classname = classname;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public int getS_id() {
	return s_id;
}
public void setS_id(int s_id) {
	this.s_id = s_id;
}
public List<Student> getList() {
	return list;
}
public void setList(List<Student> list) {
	this.list = list;
}
//重写tostring
@Override
public String toString() {
	return "Student [name=" + name + ", classname=" + classname  + ", age="
			+ age + ", s_id=" + s_id + "]";
}
}

学生接口

package com.xingyun.studentDao;

import com.xingyun.bean.Student;

public interface StudentDao {
	  	void getAll(Student student);//查询所有信息
	  	void StudentgetById(Student student);//根据学生编号进行学生信息查询
	  	void deleteByName(Student student);//删除学生信息
	  	void addStudent(Student student);//增加学生信息
	  	void updateStudent(Student student);//修改学生信息
	  	void yunxingfangfa(Student student);//运行增删改查功能
	
	
	
}

学生实例化

package com.xingyun.dao.imp;

import java.util.Iterator;
import java.util.Scanner;

import com.xingyun.bean.Student;
import com.xingyun.studentDao.StudentDao;

public class StudentDaoImp implements StudentDao{
	Scanner input = new Scanner(System.in);
	//查询所有信息
	@Override
	public void getAll(Student student) {
		Iterator<Student> iterator=student.getList().iterator();
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
	}
	//用学生id查信息
	@Override
	public void StudentgetById(Student student) {
		System.out.println("请输入你要查询的学生ID");
		int id=input.nextInt();//获取用户输入
		Iterator<Student> iterator=student.getList().iterator();
		while(iterator.hasNext()){
			Student stu=iterator.next();
			if(stu!=null&&stu.getS_id()==id){
				System.out.println(stu);
			}
			
		}
	
		
		
	}
//删除学生信息
	@Override
	public void deleteByName(Student student) {
		System.out.println("请输入你要删除的学生信息ID");
		int id=input.nextInt();//获取用户输入
		Iterator<Student> iterator=student.getList().iterator();
		while(iterator.hasNext()){
			Student stu=iterator.next();
			if(stu!=null&& stu.getS_id()==id){
				iterator.remove();
				break;
			}
			
		}
		
	}
//增加学生信息
	@Override
	public void addStudent(Student student) {
		for(int i=0;;i++){//进入数组循环
				System.out.println("请输入你要增加的学生姓名");
				String name=input.next();//获取用户输入姓名
				System.out.println("请输入你要增加的学生年龄");
				int age=input.nextInt();//获取用户输入年龄
				System.out.println("请输入你要增加的学生班级");
				String sclass=input.next();//获取用户输入班级
				Student stu=new Student();//创建一个新对象作为载体
				stu.setAge(age);//将用户输入年龄赋值给新对象
				stu.setClassname(sclass);//将用户输入班级赋值给新对象
				stu.setName(name);//将用户输入姓名赋值给新对象
				System.out.println("请输入你要增加的学生id");
				int id=input.nextInt();
				stu.setS_id(id);//自动生成学生id
				student.getList().add(stu);
				System.out.println("是否要继续进行添加学生");
				String or=input.next();
				if("是".equals(or)){
					
				}else{
					System.out.println("成功退出");
					return;
				}				
		}
	}
//改变学生信息
	@Override
	public void updateStudent(Student student) {
		System.out.println("请输入你要修改的学生ID");
		int or=input.nextInt();//获取用户输入
		Iterator<Student> iterator=student.getList().iterator();
		while(iterator.hasNext()){
			Student stu=iterator.next();
			if(stu!=null&& stu.getS_id()==or){
				boolean bool=true;//判断初始条件
				while(bool){//进入修改信息循环
					System.out.println(stu);
					System.out.println("请选择你要修改的学生信息  1、学生姓名 2、学生年龄 3、学生班级 4.退出");
					int num=input.nextInt();
					if(num==1){
						System.out.println("请输入你要改变的学生姓名");
						String name=input.next();
						stu.setName(name);
						System.out.println("修改成功");
					}else if(num==2){
						System.out.println("请输入你要改变的学生年龄");
						int age=input.nextInt();
						stu.setAge(age);
						System.out.println("修改成功");
					}else if(num==3){
						System.out.println("请输入你要改变的学生班级");
						String sclass=input.next();
						stu.setClassname(sclass);
						System.out.println("修改成功");
					}else{
						bool=false;
					}
				}
				
				
				
			}
			
		}
	}
	@Override
	public void yunxingfangfa(Student student) {
		StudentDao stu=new StudentDaoImp();
		boolean bool=true;//循环初始变量
		while(bool){//进入增删改查循环
			System.out.println("1.增加学生 2.删除学生信息 3.改变学生信息 4.查看所有学生信息 5.按照学号查询信息  6.退出");
			int num=input.nextInt();
			if(num==1){
				stu.addStudent(student);
			}else if(num==2){
				stu.deleteByName(student);
			}else if(num==3){
				stu.updateStudent(student);
			}else if(num==4){
				stu.getAll(student);
			}else if(num==5){
				stu.StudentgetById(student);
			}else{
				System.out.println("成功退出");
				bool=false;
			}
		}
	}
	}




用户类

package com.xingyun.bean;


public class User {
private	String phone;//用户手机号
private	String email;//用户邮箱
private	String password;//用户密码
private	String sex;//用户性别
private	StringBuilder intro;//用户简介
private	String id;//用户身份证号
private	String year;//用户出生年月日
private	Integer age;//用户年龄
public Integer getAge() {
	return age;
}

public void setAge(Integer age) {
	this.age = age;
}

private	User[]user;//user数组


//构造方法
public User() {
}

public User(String phone, String email, String password, String sex, StringBuilder intro,
		String id) {
	super();
	this.phone = phone;
	this.email = email;
	this.password = password;
	this.sex = sex;
	this.intro = intro;
	this.id = id;
}
//封装
public String getPhone() {
	return phone;
}

public void setPhone(String phone) {
	this.phone = phone;
}

public String getEmail() {
	return email;
}

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

public String getPassword() {
	return password;
}

public void setPassword(String password) {
	this.password = password;
}

public String getSex() {
	return sex;
}

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

public StringBuilder getIntro() {
	return intro;
}

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

public String getId() {
	return id;
}

public void setId(String id) {
	this.id = id;
}

public String getYear() {
	return year;
}

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

public User[] getUser() {
	return user;
}

public void setUser(User[] user) {
	this.user = user;
}

@Override
public String toString() {
	return "用户 [账号=" + phone + ", e-mail=" + email + ", 密码=" + password + ", 性别=" + sex + ", 个人简介=" + intro
			+ ", 身份证号=" + id + ", 出生日期=" + year + ", 年龄=" + age + "]";
}



//重写tostring方法




}

用户接口

package com.xingyun.studentDao;

import com.xingyun.bean.Student;
import com.xingyun.bean.User;

public interface UserDao {
	void logIn(User user);//注册
	void langing(User user,Student student);//登录
	void logInAndLanging(User user,Student student);//注册和登录
	StringBuilder suijishu();//随机数
	
	
}

实例化用户接口

package com.xingyun.dao.imp;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

import com.xingyun.bean.Student;
import com.xingyun.bean.User;
import com.xingyun.studentDao.StudentDao;
import com.xingyun.studentDao.UserDao;

public class UserDaoimp implements UserDao {
	Scanner input = new Scanner(System.in);

	// 注册
	@Override
	public void logIn(User user) {
		//定义一个装载所有大写字母的数组
		char[] daxie = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
				'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
		//定义一个装载所有小写字母的数组
		char[] xiaoxie = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
				'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
		//定义一个装载所有数字类型的数组
		char[] shuzi = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
		boolean bool = true;//注册账号循环初始条件
		while (bool) {//进入账号注册循环
			// 输入账号
			System.out.println("请以你的手机号来注册你的账号");
			String num = input.next();//获取用户输入
			String num1 = num.trim();// 自动消除空格
			if (num1.length() == 11) {// 判断输入是否为11位
				for (int i = 0; i < num1.length(); i++) {//进入手机号注册循环判断
					for (int j = 0; j < daxie.length; j++) {//进入手机号有无字母的循环判断
						if (num1.startsWith("13") || num1.startsWith("15") || num1.startsWith("18")) {// 判断是否为这些数字开头
							if (daxie[j] == num1.charAt(i) || xiaoxie[j] == num1.charAt(i)) {// 判断输入是否含有字母,如果有则提示用户输入错误
								System.out.println("你的输入有误是否要重新进行重新输入");
								String or = input.next();
								if ("是".equals(or)) {
									i = num1.length() + 1;
									break;
								} else {
									System.out.println("你已成功退出账号注册");
									return;
								}
							}
							// 输入密码
							boolean bool1 = true;
							while (bool1) {
								System.out.println("请输入你的密码");
								String password = input.next();
								// 进行密码长度判断
								if (password.length() >= 6 && password.length() <= 10) {
								//进行首字母大写的判断循环
								for(int i1=0;i1<daxie.length;i1++){
									if(password.charAt(0)==daxie[i1]){
										//进入密码含有小写字母的判断
										for(int j1=0;j1<xiaoxie.length;j1++){
											if(password.indexOf(xiaoxie[j1])>0){
												//进入密码是否含有数字的判断
												for(int k1=0;k1<shuzi.length;k1++){
													if(password.indexOf(shuzi[k1])>0){
														//进入确认密码循环
														boolean bool2=true;
														while(bool2){
															System.out.println("请确认你的密码");
															String password1=input.next();//获取用户的确认密码
															if(password.equals(password1)){//如果用户两次密码输入一致进入邮箱输入
																boolean bool3=true;
																while(bool3){
																	System.out.println("请输入你要绑定的邮箱号码");
																	String mail=input.next();//获取用户输入邮箱
																	if(mail.endsWith("@qq.com")||mail.endsWith("@163.com")){//如果用户输入邮箱符合QQ邮箱和163邮箱的规定
																		boolean bool4=true;
																		while(bool4){//进入身份证号码输入循环
																			System.out.println("请输入你的身份证号码");
																			String uid=input.next();
																			if(uid.length()==18){//如果用户身份证号码符合18位
																				String useid=uid.substring(6, 14);//获取出生日期
																				//获取并计算年龄
																				String useYear=uid.substring(6, 10);//获取用户出生年份
																				Integer bir=Integer.valueOf(useYear);//将String类型转为integer
																				Calendar cl=Calendar.getInstance();//创建日历类型
																				Date time=cl.getTime();//获取实时时间
																				SimpleDateFormat sdf= new SimpleDateFormat("yyyy");//设置日期显示格式
																				String aa=sdf.format(time);//将实时时间进行格式转换并转为String类型
																				Integer bir1=Integer.valueOf(aa);//将获取的实时年份转为integer类型
																				Integer uAge=bir1-bir;//进行年龄计算
																				//获取性别
																				String useSexnNum=uid.substring(16, 17);//获取身份证倒数第二位
																				Integer userSexNum=Integer.valueOf(useSexnNum);//将String 转为integer类型
																				if(userSexNum%2==0){//如果身份证倒数第二位为偶数则为女
																					String useSex="女";
																					System.out.println("请输入你的个人简介");
																					String jianjie=input.next();//输入个人简介
																					StringBuilder useJJ=new StringBuilder(jianjie);//将其转为可变的StringBuilder类型
																					for(int p=0;p<user.getUser().length;p++){//进入用户注册信息录入
																						User userP=new User();//创建一个用户对象
																						userP.setPhone(num1);//赋值用户注册电话
																						userP.setPassword(password1);//赋值用户注册密码
																						userP.setEmail(mail);//赋值用户注册邮箱
																						userP.setId(uid);//赋值用户注册身份证
																						userP.setAge(uAge);//赋值用户年龄
																						userP.setIntro(useJJ);//赋值用户简介
																						userP.setYear(useid);//赋值用户出生日期
																						userP.setSex(useSex);//赋值用户性别
																						if(user.getUser()[p]==null){
																							user.getUser()[p]=userP;
																							System.out.println("注册成功");
																							System.out.println(user.getUser()[p]);
																							return;
																						}
																					}
																					
																				}else{//身份证倒数第二位为奇数则为男
																					String useSex="男";
																					System.out.println("请输入你的个人简介");
																					String jianjie=input.next();//输入个人简介
																					StringBuilder useJJ=new StringBuilder(jianjie);//将其转为可变的StringBuilder类型
																					for(int p=0;p<user.getUser().length;p++){//进入用户注册信息录入
																						User userP=new User();
																						userP.setPhone(num1);//赋值用户注册电话
																						userP.setPassword(password1);//赋值用户注册密码
																						userP.setEmail(mail);//赋值用户注册邮箱
																						userP.setId(uid);//赋值用户注册身份证
																						userP.setAge(uAge);//赋值用户年龄
																						userP.setIntro(useJJ);//赋值用户简介
																						userP.setYear(useid);//赋值用户出生日期
																						userP.setSex(useSex);//赋值用户性别
																						if(user.getUser()[p]==null){
																							user.getUser()[p]=userP;
																							System.out.println("注册成功");
																							System.out.println(user.getUser()[p]);
																							return;
																						}
																					}
																				}
																				
																			}else{
																				System.out.println("你输入的身份证不符合要求是否要重新进行重新输入");
																				String or = input.next();
																				if ("是".equals(or)) {
																				} else {
																					System.out.println("你已成功退出账号注册");
																					return;
																				}
																			}
																		
																		}
																		
																		
																	}else{//如果邮箱不符合要求 则提示用户
																		System.out.println("你输入的邮箱不符合要求是否要重新进行重新输入");
																		String or = input.next();
																		if ("是".equals(or)) {
																		} else {
																			System.out.println("你已成功退出账号注册");
																			return;
																		}
																	}
																	
																	
																	
																
																}
															}else{//如果用户两次用户密码输入不一致  则提示用户
																System.out.println("你两次输入密码不一致是否要重新进行重新输入");
																String or = input.next();
																if ("是".equals(or)) {
																	
																} else {
																	System.out.println("你已成功退出账号注册");
																	return;
																}
															}
														}
													}else if(k1==shuzi.length-1){//如果密码没有含有数字
														System.out.println("你的密码没有含有数字是否要重新进行重新输入");
														String or = input.next();
														if ("是".equals(or)) {
															k1=shuzi.length;
															j1=xiaoxie.length;
															i1=daxie.length;
														} else {
															System.out.println("你已成功退出账号注册");
															return;
														}
													}	
												}
											}else if(j1==xiaoxie.length-1){//如果密码中没有小写字母
												System.out.println("你的密码没有含有小写字母是否要重新进行重新输入");
												String or = input.next();
												if ("是".equals(or)) {
													j1=xiaoxie.length;
													i1=daxie.length;
												} else {
													System.out.println("你已成功退出账号注册");
													return;
												}
											}								
											}
									}else if(i1==daxie.length-1){//如果用户密码没有首字母大写
										System.out.println("你的首字母没有大写是否要重新进行重新输入");
										String or = input.next();
										if ("是".equals(or)) {
											i1=daxie.length;
										} else {
											System.out.println("你已成功退出账号注册");
											return;
										}
									}								
								}	
								} else {//如果密码长度不符合要求  则提示用户
									System.out.println("你的输入有误是否要重新进行重新输入");
									String or = input.next();
									if ("是".equals(or)) {

									} else {
										System.out.println("你已成功退出账号注册");
										return;
									}
								}

							}

						} else {//如果手机号不是按照13、15、18开头 则提示用户
							System.out.println("请以13、15、18为开头的电话号码进行注册");
							System.out.println("你的输入有误是否要重新进行重新输入");
							String or = input.next();
							if ("是".equals(or)) {
								i = num1.length() + 1;
								break;
							} else {
								System.out.println("你已成功退出账号注册");
								return;
							}

						}
					}
				}
			} else {//如果手机号不是11位
				System.out.println("你的输入有误是否要重新进行重新输入");
				String or = input.next();
				if ("是".equals(or)) {
				} else {
					System.out.println("你已成功退出账号注册");
					return;
				}

			}
		}
	}
//登录
	@Override
	public void langing(User user,Student stu) {
		//进入登录循环
		UserDao users=new UserDaoimp();
		while(true){
		System.out.println("请输入你要登录的账号");
		String num=input.next();//获取用户登录登陆的账号
		System.out.println("请输入你要登录的密码");
		String password=input.next();//获取用户登录密码
		for(int i=0;i<user.getUser().length;i++){//进行信息比对循环
			if(user.getUser()[i]!=null){//判断用户是否为空
				if(num.equals(user.getUser()[i].getPhone())&&password.equals(user.getUser()[i].getPassword())){//如果用户输入账号与密码正确
					while(true){//进入输入验证码循环
						//调取验证码方法
					StringBuilder yzm=users.suijishu();
					String yzm1=yzm.toString();//将StringBuilder转为String类型
					System.out.println("請輸入驗證碼"+yzm1);
					String get=input.next();//获取用户输入
					if(yzm1.equals(get)){//如果一致
						System.out.println("登陆成功");
						System.out.println(user.getUser()[i]);
						//调取用户增删改查学生功能
						StudentDao student=new StudentDaoImp();
						student.yunxingfangfa(stu);
						return;
					}else{//如果不一致
						System.out.println("您输入的验证码有误是否要重新输入");
						String or = input.next();
						if ("是".equals(or)) {

						} else {
							System.out.println("你已成功退出账号登录");
							return;
						}
					}
					}
					
				}else if(i==user.getUser().length-1){
					System.out.println("账号名或密码错误是否要进行重新输入");
					String or = input.next();
					if ("是".equals(or)) {
							i=user.getUser().length;
					} else {
						System.out.println("你已成功退出账号登录");
						return;
					}
				}
			}else if(user.getUser()[i]==null){
				System.out.println("账号名或密码错误是否要进行重新输入");
				String or = input.next();
				if ("是".equals(or)) {

				} else {
					System.out.println("你已成功退出账号登录");
					return;
				}
			}
		}
		
		}
		
		
		
	}

	@Override
	public void logInAndLanging(User user,Student student) {
		UserDao d=new UserDaoimp();
	while(true){
		System.out.println("1.登录  2.注册 3.查看注册 4.退出系统");
		System.out.println("请输入你要执行的操作");
		String or=input.next();
		if("1".equals(or)){
			d.langing(user, student);
		}else if("2".equals(or)){
			d.logIn(user);
		}else if("3".equals(or)){
			for(User use:user.getUser()){
				System.out.println(use);
			}
		}else{
			return;
		}
	}
	}

	@Override
	public StringBuilder suijishu() {//4位随机数产生
		StringBuilder c=new StringBuilder();//创建一个可变得类型
		for(int z=1;z<5;z++){
		double i=Math.random();//获取1个0.0~1.0的随机数
		long m=Math.round(i*10);//将其乘10并转为long类型
		if(m>10){//保证M不大于10
			m=m-10;
		}
		String a=String.valueOf(m);//将M转为String类型
		c=c.append(a);//将其添加到C
		if(z==4){
			return c;//如果凑够4位数则返回C
		}
		}
		return c;
	}

}

test

package com.xingyun.test;

import java.util.ArrayList;

import com.xingyun.bean.Student;
import com.xingyun.bean.User;
import com.xingyun.dao.imp.UserDaoimp;
import com.xingyun.studentDao.UserDao;



public class test {
	public static void main(String[] args) {
		UserDao ud=new UserDaoimp();
		User use=new User();
		use.setUser(new User[3]);
		Student    stu=new Student();
		stu.setList(new ArrayList<>());
		ud.logInAndLanging(use,stu);
	}
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值