学生管理系统集合版+学生管理系统IO版(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LiuY521/article/details/85838303
  • 学生管理系统集合版

  • 第一步:分析写出一个主函数的框架

  • 因为需要把学生信息存储到集合中,先创建一个学生类来存放学生信息
  1. package test;
    
    public class Student {
    	 private String id; //ID
    	 private String name; //姓名
    	 private String age; //年龄
    	 private String address;//地址
    	public Student() {
    	}
    	public Student(String id, String name, String age, String address) {
    		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 String getAge() {
    		return age;
    	}
    	public void setAge(String age) {
    		this.age = age;
    	}
    	public String getAddress() {
    		return address;
    	}
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	
    }
    
  • 2.是存储到集合框架中 在主函数中首先创建一个集合对象来存储学生信息(代码不完整,按步骤一步一步完善)
  1. public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		ArrayList<Student>arrayList=new ArrayList<>();
    		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.println("4.修改学生");
    			System.out.println("5.退出");
    			System.out.println("请输入您的选择:");
    			int choice=scanner.nextInt(); //定义一个int类型数据接收控制台所输出的数组,来判断是方法几
    			switch (choice) {
    			case 1:
    				System.out.println("显示所有学生信息");
    				findStudent(arrayList);//因为学生信息存储到集合中,调用集合对象
    				break;
    			case 2:
    				System.out.println("添加学生信息");
    				addStudent(arrayList);
    				break;
    			case 3:
    				System.out.println("删除学生信息");
    				deleteStudent(arrayList);
    				break;
    			case 4:
    				System.out.println("修改学生信息");
    				revampStudent(arrayList);
    				break;
    			case 5:
    				System.out.println("退出");
    				System.exit(0);//jvm退出
    				break;
    				
    			default:
    				System.out.println("您输入的数字有误,请重新输入!");
    				break;
    			}
    		}
    	}
  • 3.写显示所有学生信息代码(\t等于TAB键)
  1. 	//显示所有学生信息
    	public static void   findStudent(ArrayList<Student>arrayList){
    		//首先判断集合中是否有数据,如果没有数据则提示并退出,重新选择功能
    		if (arrayList.size()==0) {
    			System.out.println("目前没有学生信息存在");
    			return;//不返回值,单纯当作退出功能使用
    		}
    		//循环遍历拿出学生信息
    		System.out.println("学号\t姓名\t年龄\t地址");
    		for(int i=0;i<arrayList.size();i++){
    			//创建一个Student对象接收
    			Student student=new Student();
    			student=arrayList.get(i);//拿到值System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getAddress());
    		}
    	}
  • 4.写添加学生信息代码
//添加学生信息功能
	public static void addStudent(ArrayList<Student>arrayList){
		Scanner scanner=new Scanner(System.in);
		//判读ID是唯一的
		String id;
		
		while(true){
			boolean flag=false;
			System.out.println("请输入学生学号");
			id=scanner.nextLine();
			//拿到ID 去判断是否重复
			for(int i=0;i<arrayList.size();i++)
			{
				Student student;
				student=arrayList.get(i);
				if (student.getId().equals(id)) {  //判断ID是否重复
					flag=true;
					break;
				}
			}
			if (flag) {
				System.out.println("您输入的id重复,请重新输入!");
			}else {
				break;
			}
		}
		System.out.println("请输入学生的姓名:");
		String name=scanner.nextLine();
		System.out.println("请输入学生的年龄");
		String age=scanner.nextLine();
		System.out.println("请输入学生的地址");
		String address=scanner.nextLine();
		//创建 一个学生类的对象接收
		Student student=new Student();
		student.setId(id);
		student.setName(name);
		student.setAge(age);
		student.setAddress(address);
		//让后把数据传入集合中
		arrayList.add(student);
		System.out.println("学生信息已存储!");
		System.out.println(student.getId());
		System.out.println(arrayList);
	}
  • 5.删除学生信息代码
	//删除学生信息
	public static void deleteStudent(ArrayList<Student>arrayList) {
		//通过ID删除学生信息,判断控制台输入的id与集合中的id是否一致
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入您要删除的学生ID");
		String id=scanner.nextLine();
		int index=-1;
		for(int i=0;i<arrayList.size();i++)
		{
			Student student=arrayList.get(i);
			if (student.getId().equals(id)) {
				index=i;
				break;
			}
		}
		System.err.println(index);
		if (index==-1) {
			System.out.println("您要删除的数据不存在!请重新选择");
		}else {
			arrayList.remove(index);
			System.out.println("删除成功");
		}
	
	}
  • 6.修改学生信息代码
    //修改学生信息
    	public static void revampStudent(ArrayList<Student>arrayList) {
    		//通过ID删除学生信息,判断控制台输入的id与集合中的id是否一致
    		Scanner scanner=new Scanner(System.in);
    		System.out.println("输入您要修改的学生ID");
    		String id=scanner.nextLine();
    		int index=-1;
    		for(int i=0;i<arrayList.size();i++)
    		{
    			Student student=arrayList.get(i);
    			if (student.getId().equals(id)) {
    				index=i;
    				break;
    			}
    		}
    		if (index==-1) {
    			System.out.println("您要修改的数据不存在!请重新选择");
    		}else {
    			System.out.println("请输入学生新ID");
    			id=scanner.nextLine();
    			System.out.println("请输入学生的新姓名:");
    			String name=scanner.nextLine();
    			System.out.println("请输入学生的新年龄");
    			String age=scanner.nextLine();
    			System.out.println("请输入学生的新地址");
    			String address=scanner.nextLine();
    			//创建 一个学生类的对象接收
    			Student student=new Student();
    			student.setId(id);
    			student.setName(name);
    			student.setAge(age);
    			student.setAddress(address);
    			//让后把数据传入集合中
    			arrayList.set(index, student);  //创建集合新的数据
    			System.out.println("学生信息已修改!");
    			System.out.println(arrayList);
    		}
    	}

2.测试模块

  • 只单写查看功能测试

2.写添加学生出现错误 传的值为空 

    student=arrayList.get(i);//拿到值  没写这个步骤  导致查看方法获取不到集合中的数据 输入默认值

猜你喜欢

转载自blog.csdn.net/LiuY521/article/details/85838303