练习----学生管理系统

/*
 * 学生管理系统
 * 
 * 1.定义学生类
 * 2.学生管理系统的主界面的代码编码
 * 3.学生管理系统的查看所有学生的代码编写
 * 4.学生管理系统的添加学生的代码编写
 * 5.学生管理系统的删除学生的代码编写
 * 6.学生管理系统的修改学生的代码编写
 * 
 */
public class StudentManager {
	public static void main(String[] args) {
		ArrayList<Student> arrl=new ArrayList<Student>();
	
	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);
		String xuanze = sc.nextLine();
		switch (xuanze) {
		case "1":
			// 1.查看所有学生
			findAllStudent(arrl);
			break;
		case "2":
			// 2.添加学生
			addStudent(arrl);
			break;
		case "3":
			// 3.删除学生
			deleteStudent(arrl);
			break;
		case "4":
			// 4.修改学生
			updateStudent(arrl);
			break;
		case "5":
			// 5.退出
		default:
			System.out.println("感谢使用");
			System.exit(0);
			break;		
		}		
	}
}



public static void findAllStudent(ArrayList<Student> arrl){
	if(arrl.size()==0){
		System.out.println("暂无信息,返回上一层");
		//return是不往下执行的意思,并不是返回值
		return;
	}
	//  \t是tap键的文字写法
	System.out.println("学号\t姓名\t年龄\t性别\t家庭地址");	
	for(int a=0;a<arrl.size();a++){
		Student s=arrl.get(a);
		System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getXingbie()+"\t"+s.getAddress());
	}	
}



public static void addStudent(ArrayList<Student> arrl){

	//1.键盘输入学生信息
	Scanner sc=new Scanner(System.in);
	//定义对象id放这里,因为放while里面,下面外面的代码会报错
	String id;	
	
	//循环判断学号有没有被人占用
	while(true){
		System.out.println("请输入学号:");
		id=sc.nextLine();
		//标记
		boolean flag=false;
		//遍历集合
		for(int a=0;a<arrl.size();a++){
			//定义对象s接收集合索引a的元素
			Student s=arrl.get(a);
			//如果对象s接收的元素和键盘输入的元素一样,标记变成true,break退出for循环
			if(s.getId().equals(id)){
				flag=true;
				break;
			}	
		}
		//如果标记flag变成true,继续循环,false就跳出while循环
		if(flag){
			System.out.println("输入的学号重复,重新输入");
		}else{
			break;
		}
	}
	
	System.out.println("请输入姓名:");
	String name=sc.nextLine();
	System.out.println("请输入年龄:");
	String age=sc.nextLine();
	System.out.println("请输入性别:");
	String xingbie=sc.nextLine();
	System.out.println("请输入家庭地址:");
	String address=sc.nextLine();
	//2.把输入的信息通过方法存到学生类
	Student s=new Student();
	s.setId(id);
	s.setName(name);	
	s.setAge(age);	
	s.setXingbie(xingbie);	
	s.setAddress(address);	
	//3.把学生类的信息加到集合中
	arrl.add(s);
	System.out.println("信息添加成功");
}



public static void deleteStudent(ArrayList<Student> arrl){
	//创建键盘输入,输入学号
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入要删除学生的学号");
	String id=sc.nextLine();
	//标记,索引=-1表示不存在
	int index=-1;
	//循环比较集合中是否有匹配的信息
	for(int a=0;a<arrl.size();a++){
		Student s=arrl.get(a);
		if(s.getId().equals(id)){
			//如果相同,进来,a赋值给index
			index=a;
			break;
		}
	}
	//如果index等于-1,说明上面if不成立,说明没找到,else则是找到了
	if(index==-1){
		
		System.out.println("未找到要删除的学生信息,重新输入");
	}else{
		arrl.remove(index);
		System.out.println("删除成功");
	}
}



public static void updateStudent(ArrayList<Student> arrl){
	//创建键盘输入
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入要修改学生的学号");
	String id=sc.nextLine();
	//标记,索引=-1时,不存在该元素
	int index=-1;
	//创建循环看集合中有没有匹配信息
	for(int a=0;a<arrl.size();a++){
		Student s=arrl.get(a);
		//如果找到集合中有匹配的信息,把索引a赋值给index,然后跳出for循环
		if(s.getId().equals(id)){
			index=a;
			break;

		}
	}
	//如果索引=-1,说明上面for循环中没有匹配的信息
	if(index==-1){
		System.out.println("未找到要修改的学生信息,请重新输入");
	}else{
		//键盘输入要修改的信息
		System.out.println("请输入姓名:");
		String name=sc.nextLine();
		System.out.println("请输入年龄:");
		String age=sc.nextLine();
		System.out.println("请输入性别:");
		String xingbie=sc.nextLine();
		System.out.println("请输入家庭地址:");
		String address=sc.nextLine();
		//2.把输入的信息通过方法存到学生类
		Student s=new Student();
		s.setId(id);
		s.setName(name);	
		s.setAge(age);	
		s.setXingbie(xingbie);	
		s.setAddress(address);	
		//3.把学生类的信息加到集合中
		//arrl.add(index, s);不能用这个,用这个的话,是新加上一条信息了
		arrl.set(index,s);
		System.out.println("信息添加成功");
	}
	
}
}

成功输入的截图

练习----学生管理系统
练习----学生管理系统