package 学生管理系统;
import java.util.ArrayList;
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
while (true) {
System.out.println("-------------欢迎来到黑马学生管理系统-------------");
System.out.println("1:添加学生");
System.out.println("2:删除学生");
System.out.println("3:修改学生");
System.out.println("4:查询学生");
System.out.println("5:退出");
System.out.println("请输入您的选择");
Scanner sc = new Scanner(System.in);
int choose;
if (sc.hasNextInt()) {
choose = sc.nextInt();
int flag = 1;
switch (choose) {
case 1:
//添加学生
System.out.println(addStudent(list));
break;
case 2:
//删除学生
int result = delStudent(list);
if (result == 1) {
System.out.println("该学生信息已成功删除");
} else {
System.out.println("该学生id不存在");
}
break;
case 3:
//修改学生
System.out.println(modStudent(list));
break;
case 4:
//查询学生
queStudent(list);
break;
case 5:
//退出
flag = 0;
break;
}
if (flag == 0) {
break;
}
} else {
System.out.println("输入不合法,请重新输入。");
}
}
}
public static String addStudent(ArrayList<Student> list) {
Scanner sa = new Scanner(System.in);
String id = "";
while (true) {
System.out.println("请输入学生的id");
id = sa.next();
int flag = 1;
//如果学生id不唯一,那么返回“学生id已存在,请重新输入”
for (int i = 0; i < list.size(); i++) {
Student t = list.get(i);
if (t.getId().equals(id)) {
// System.out.println("学生id已存在,请重新输入");
// flag = 0;
return "学生id已存在,请重新输入";
}
}
if (flag == 1) {
break;
}
}
System.out.println("请输入学生的姓名");
String name = sa.next();
int age;
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的年龄");
if (sc.hasNextInt()) {
age = sc.nextInt();
break;
} else {
System.out.println("您输入的年龄不符合要求,请重新输入");
continue;
}
}
System.out.println("请输入学生的家庭住址");
String homeAddress = sa.next();
Student s = new Student(id, name, age, homeAddress);
list.add(s);
String result = "学生信息添加成功";
return result;
}
public static int delStudent(ArrayList<Student> list) {
Scanner sa = new Scanner(System.in);
String id = "";
System.out.println("请输入要删除学生的id");
id = sa.next();
for (int i = 0; i < list.size(); i++) {
Student t = list.get(i);
if (t.getId().equals(id)) {
list.remove(i);
// return "该学生信息已成功删除";
return 1;
}
}
// return "该学生id不存在";
return 2;
}
public static String modStudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生id");
String id = sc.next();
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if (s.getId().equals(id)) {
System.out.println("请输入学生的姓名");
String name = sc.next();
int age = 0;
while (true) {
Scanner sa = new Scanner(System.in);
System.out.println("请输入学生的年龄");
if (sa.hasNextInt()) {
age = sa.nextInt();
break;
} else {
System.out.println("您输入的年龄不符合要求,请重新输入");
}
}
System.out.println("请输入学生的家庭住址");
String homeAddress = sc.next();
Student t = new Student(id, name, age, homeAddress);
list.set(i, t);
return "学生信息已修改完成";
}
}
return "学生信息不存在";
}
public static void queStudent(ArrayList<Student> list){
if(list.size() == 0) {
System.out.println(list.size());
System.out.println("当前无学生信息,请添加后再查询");
}else {
System.out.println("id\t\t\t姓名\t年龄\t家庭住址");
for(int i = 0;i< list.size();i++){
Student s = list.get(i);
System.out.print(s.getId()+"\t");
System.out.print(s.getName()+"\t\t");
System.out.print(s.getAge()+"\t\t");
System.out.println(s.getHomeAddress()+"\t");
}
}
}
}
package 面向对象进阶.demo1;
public class Student {
//属性:姓名,性别,年龄
private String name;
private int age;
private String gender;
public static String teacherName;
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void study(){
System.out.println(name+"正在学习");
}
public void show(){
System.out.println(name+","+age+","+gender+","+teacherName);
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
以上为普通版,接下来为升级版
需求:
为学生管理系统书写一个登陆、注册、忘记密码的功能。
只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。
package 学生管理系统;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
ArrayList<studentPlus> list = new ArrayList<>();
while (true){
System.out.println("欢迎来到学生管理系统");
System.out.println("请选择操作1登录 2注册 3忘记密码 4退出");
Scanner sc = new Scanner(System.in);
int choose = sc.nextInt();
int flag=1;
switch(choose){
case 1:
//登录
login(list);
break;
case 2:
//注册
register(list);
break;
case 3:
//忘记密码
forPassword(list);
break;
case 4:
//退出
flag=0;
break;
}
if(flag==0){
break;
}
}
}
public static void register(ArrayList<studentPlus> list){
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String username = sc.next();
String password;
String perWord;
String phoneWord;
while (true){
System.out.println("请输入密码");
password = sc.next();
System.out.println("请再次输入密码验证");
String password1 = sc.next();
if(password1.equals(password)){
break;
}else {
System.out.println("两次输入的密码不一致,请重新输入");
}
}
while (true){
System.out.println("请输入身份证号");
perWord = sc.next();
if (perWord.length() == 18&&perWord.charAt(0)!=0){
String digits = perWord.substring(0, 17);
String lastCharacter = perWord.substring(17);
boolean isAllDigits = digits.matches("\\d+");
boolean isLastCharacterValid = lastCharacter.matches("[0-9Xx]");
if (isAllDigits && isLastCharacterValid) {
System.out.println("输入合法");
break;
} else {
System.out.println("输入不合法,请重新输入!");
System.out.println("请重新输入!");
}
}else {
System.out.println("输入不合法,请重新输入!");
}
}
while (true){
System.out.println("请输入手机号");
phoneWord = sc.next();
if(phoneWord.length() == 11&&phoneWord.charAt(0)!=0){
boolean isAllDigits = phoneWord.matches("\\d{11}");
if (isAllDigits) {
System.out.println("输入合法");
break;
} else {
System.out.println("输入不合法,请重新输入!");
}
}
}
studentPlus s=new studentPlus(username,password,perWord,phoneWord);
list.add(s);
System.out.println("注册成功!");
}
public static void login(ArrayList<studentPlus> list){
Scanner sc = new Scanner(System.in);
int flag = 1;
studentPlus s=new studentPlus();
String password;
System.out.println("请输入用户名");
String username = sc.next();
for (int i = 0; i < list.size(); i++) {
s=list.get(i);
if(s.getUserName().equals(username)){
flag=0;
System.out.println("用户存在");
break;
}
}
if (flag==0){
//存在用户
int flag1=0;
for (int i = 0; i < 3; i++) {
System.out.println("请输入密码:");
password = sc.next();
if(s.getPassWord().equals(password)){
System.out.println("密码正确");
flag1=1;
break;
}else {
System.out.println("输入的密码不正确,请重新输入");
}
}
if(flag1 == 0){
System.out.println("错误次数超过三次,请重新选择");
System.exit(0);
}
while (true){
System.out.println("请输入以下验证码");
StringBuilder code = new StringBuilder();
Random random = new Random();
for (int j = 0; j < 4; j++) {
int digit = random.nextInt(10); // 生成0到9之间的随机数
code.append(digit);
}
System.out.println(code);
String scCode= sc.next();
if(code.toString().equals(scCode)){
System.out.println("登录成功");
break;
}else {
System.out.println("输入的验证码不正确,请重新输入");
}
}
}else {
System.out.println("该用户不存在,请重新输入");
}
}
public static void forPassword(ArrayList<studentPlus>list){
System.out.println("请输入用户名");
Scanner sc = new Scanner(System.in);
String username = sc.next();
studentPlus s=new studentPlus();
int flag =1;
for (int i = 0; i < list.size(); i++) {
s=list.get(i);
if(s.getUserName().equals(username));
flag=0;
break;
}
if (flag==0) {
//存在用户
System.out.println("用户存在");
System.out.println("请输入身份证号码");
String perPassword = sc.next();
System.out.println("请输入手机号");
String phonePassword = sc.next();
if (s.getPerWord().equals(perPassword)&&s.getPhoneWord().equals(phonePassword)){
System.out.println("请输入要修改的密码");
String password = sc.next();
s.setPassWord(password);
System.out.println("修改成功");
}else {
System.out.println("账号信息不匹配,修改失败");
}
}
}
}
package 面向对象进阶.demo1;
public class StudentTest {
public static void main(String[] args) {
//1.创建一个学生对象
Student.teacherName = "阿伟老师";
Student s1 = new Student();
s1.setName("张三");
s1.setAge(23);
s1.setGender("男");
// s1.teacherName = "阿伟老师";
s1.study();
s1.show();
//1.创建二个学生对象
Student s2 = new Student();
s2.setName("李四");
s2.setAge(24);
s2.setGender("女");
s2.study();
s2.show();
}
}