学生管理系统:

简易版本,稍后博主会发出进阶版的~希望大家喜欢~

package student;

public class Student {
	private String id;
	private String name;
	private int age;
	private String address;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(String id, String name, int age, String address) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}
package student;
import java.util.ArrayList;
import java.util.Scanner;

public class StudentSystem {
	/*
	 * static ArrayList<Student> list=new ArrayList<>(); static { list.add(new
	 * Student("001","zhangsan",25,"beijing")); }
	 */
	//注册的时候再看吧,感觉现在学生增删改查没法用
	
	public static void main(String[] args) {
		final String ADD_STUDENT="1";
		final String DELETE_STUDENT="2";
		final String UPDATE_STUDENT="3";
		final String QUERY_STUDENT="4";
		final String EXIT="5";
		//可以使后边的数据不能改变,而且将数字代替为英文增强了可读性
		//idea中是可以写成 private static final String ADD_STUDENT="1";
		
		ArrayList<Student> list=new ArrayList<>();
		//要导包??如果有错误记得导包java.util.ArrayList包
		Scanner sc=new Scanner(System.in);
		
		while(true) {
			
			System.out.println("----欢迎来到学生管理系统主界面----");
			System.out.println("----请输入你想要进行的操作----");
			System.out.println("1.增添学生");
			System.out.println("2.删除学生");
			System.out.println("3.修改学生");
			System.out.println("4.查找学生");
			System.out.println("5.退出");
			String choose=sc.next();
			switch(choose) {
			case ADD_STUDENT->addStudent(list);
			case DELETE_STUDENT->deleteStudent(list);
			case UPDATE_STUDENT->updateStudent(list);
			case QUERY_STUDENT->queryStudent(list);
			//注意:当下面的函数中有形参时,也要将调用函数的括号中添加相应的list变量
			case EXIT->{
				System.out.println("感谢使用,下次再见~");
				System.exit(0);
			}
			default->System.out.println("输入错误,重新输入!");
			//那我们就以后用这种格式->,用:的话好像不行
			}
		}
	}

	private static void queryStudent(ArrayList<Student> list) {
		// TODO Auto-generated method stub
		if(list.size()==0) {
			System.out.println("当前数据库无学生信息,请添加~");
		}else {
			System.out.println("id\tname\tage\taddress");
			for(int i=0;i<list.size();i++) {
				
				System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()
				+"\t"+list.get(i).getAge()+"\t"+list.get(i).getAddress());
			}
		}
	}

	private static void updateStudent(ArrayList<Student> list) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你要修改的学生id:");
		String id=sc.next();
		Student s=new Student();
		
		for(int i=0;i<list.size();i++) {
			Student stu=list.get(i);
			String sid=stu.getId();
			int index=locate_id(list,id);
			if(index>=0){
				System.out.println("请输入你要修改的学生姓名:");
				String newName=sc.next();
				s.setName(newName);
				
				System.out.println("请输入你要修改的学生年龄:");
				int newAge=sc.nextInt();
				s.setAge(newAge);
				
				System.out.println("请输入你要修改的学生家庭地址:");
				String newAddress=sc.next();
				s.setAddress(newAddress);
				
				System.out.println("修改成功!");
				break;
			}else {
				System.out.println("还没有添加此学生信息哦~");
				System.out.println("是否添加?是输入“1”,否输入“0”!");
				String add=sc.next();
				switch(add) {
				case "0"->System.out.println("取消成功!");
				case "1"->{
					addStudent(list);
				}
				}
				break;
			}
			
		}
	}

	private static void deleteStudent(ArrayList<Student> list) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你要删除的学生信息:");
		String id=sc.next();
		
		for(int i=0;i<list.size();i++) {
			
			Student stu=list.get(i);
			String sid=stu.getId();
			int index=locate_id(list,id);
			if(index>=0){
				System.out.println("确认删除吗?删除后无法恢复数据!");
				System.out.println("确认输入“0”,取消输入“1”");
				String answer = sc.next();
				switch(answer) {
					case "0"-> {
						list.remove(index);
						System.out.println("删除成功!");
					}
					case "1"-> System.out.println("取消成功,返回主界面!");
					}
				break;
					
			}else {
				System.out.println("还没有添加此学生信息哦~");
				break;
			}
			
		}
	}

	
	private static void addStudent(ArrayList<Student> list) {
		// TODO Auto-generated method stub
		Student stu=new Student();
		
		Scanner sc=new Scanner(System.in);
		
		while(true) {
			System.out.println("请输入学生id");
			String id=sc.next();
			boolean flag=private_id(list,id);
			if(!flag) {
				stu.setId(id);
				break;
			}else {
				System.out.println("id已存在,请重新输入吧~");
			}
		}
		//记住这种思想,第一步判断只返回boolean类型的值,所以不用提示,
		//第二部将返回值用主函数中flag变量接收,这时候因为还要重新输入和判断
		//所以我们一应该将重新输入和重新判断布尔值来while循环嵌套
		//从而得到最后结果,而不是直接把flag嵌套,从而无限循环输出提示语句
		
		System.out.println("请输入学生姓名");
		String name=sc.next();
		stu.setName(name);
		
		System.out.println("请输入学生年龄");
		int age=sc.nextInt();
		stu.setAge(age);
		
		System.out.println("请输入学生家庭住址");
		String address=sc.next();
		stu.setAddress(address);
		
		list.add(stu);
	}
	//判断id唯一
	public static boolean private_id(ArrayList<Student> list,String id) {
		for(int i=0;i<list.size();i++) {
			Student stu=list.get(i);
			String sid=stu.getId();
	 		if(id.equals(sid)) {
	 			return true;
	 		}
	 	}
		return false;
	}

	//判断id索引的位置
	public static int locate_id(ArrayList<Student> list,String id) {
		for(int i=0;i<list.size();i++) {
			Student stu=list.get(i);
			String sid=stu.getId();
	 		if(id.equals(sid)) {
	 			return i;
	 		}
	 	}
		return -1;
	}
}

需要的朋友可自行拿走~