欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于ArrayList的学生信息的增删改查

程序员文章站 2022-05-08 11:22:21
...

基于ArrayList的学生信息的增删改查

1.增加学生
2.根据学号修改学生信息
3.查看所有学生信息
4.根据学号查看某一个学生信息
5.根据性别查看同性别的所有学生
6.根据学号删除某一个学生
7.按照学号升序排序(默认)
8.按照年龄降序排序
  • 学生类
public class Student {
	String name;
	String sno;
	int age;
	String sex;
	
	public Student() {
	}

	public Student(String sno, String name, int age, String sex) {
		super();
		this.sno = sno;
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		System.out.println();//换行
		return "Student [学号:" + sno + ", 姓名:" + name + ", 年龄:" + age + ", 性别:" + sex + "]";
	}
}
  • 操作类
public class StudentOperate {
	//用于存储学生对象的集合
	ArrayList<Student> stus = new ArrayList<Student>();
	public void menu() {
		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("6.根据学号删除某一个学生");
		System.out.println("7.按照学号升序排序(默认)");
		System.out.println("8.按照年龄降序排序");
	}
	  
	/*1.增加学生*/
	public boolean add(Student stu) {
		if(stus!=null) {
			stus.add(stu);
			return true;
		}
		return false;	
	}
	
	/*2.根据学号修改学生信息*/
	public boolean update(Student stu) {
		if(stus!=null) {
			for(int i=0;i<stus.size();i++) {
				Student s = stus.get(i);
				if(s.getSno().equals(stu.getSno())) {
					stus.set(i, stu);//重置
					return true;
				}
			}
		}
		return false;	
	}
	
	/*3.查看所有学生信息*/
	public void print() {
		for(Student stu :stus) {
			System.out.print(stu);
		}

	}
	
	/*4.根据学号查看某一个学生信息*/
	public Student printSno(String sno) {
		if(stus!=null) {
			for(Student stu: stus) {
				if(stu.getSno().equals(sno)){
					return stu;
				}
			}
		}
		return null;
	}
	
	/*5.根据性别查看同性别的所有学生*/
	public ArrayList<Student> printSex(String sex) {
			ArrayList<Student> stuSex = new ArrayList<Student>();
			for(Student stu: stus) {
				if(stu.getSex().equals(sex)){
					stuSex.add(stu);	
				}
			}
			return stuSex;
	
	}
	
	/*6.根据学号删除某一个学生*/
	public boolean deleteSno(String sno) {
		if(stus!=null) {
			for(Student stu: stus) {
				if(stu.getSno().equals(sno)){
					stus.remove(stu);
					return true;
				}
			}
		}
		return false;
	}
	
	/*7.按照学号升序排序(默认)*/
	public void sortSno() {
		for(int i=0;i<stus.size()-1;i++) {
			for(int j=0;j<stus.size()-i-1;j++) {
				if(stus.get(j).sno.compareTo(stus.get(j+1).sno)>0) {
					Student temp = stus.get(j);
					stus.set(j, stus.get(j+1));
					stus.set(j+1, temp);	
				}
			}
		}	
	}
	
	/*8.按照年龄降序排序*/
	
	public void sortAge() {
		for(int i=0;i<stus.size()-1;i++) {
			for(int j=1;j<stus.size();j++) {
				if(stus.get(i).age<stus.get(j).age) {
					Student temp = stus.get(j);
					stus.set(j, stus.get(i));
					stus.set(i, temp);	
				}
			}
		}	
	}
}
  • 测试类
public class StudentTest {
	public static void main(String[] args) {	
	
		//创建StudentOperate类的对象
		StudentOperate stuOp = new 	StudentOperate();
		
		Scanner input = new Scanner(System.in);
		
		while(true) {
			//调用菜单选项
			stuOp.menu();
			Student stu = new Student();
			System.out.print("请输入你要选择的操作所对应的数字:  ");
			int number = input.nextInt();
			switch(number) {
			
			case 1:
				System.out.print("请输入学生学号:");
	            stu.sno=input.next();
	            
	            System.out.print("请输入学生姓名:");
	            stu.name=input.next();
	           
	            System.out.print("请输入学生年龄:");
	            stu.age=input.nextInt();
	            
	            System.out.print("请输入性别:");
	            stu.sex=input.next();
	            
				boolean boo = stuOp.add(stu);
				if(boo) {
					System.out.println("添加成功");
				}else {
					System.out.println("添加失败");
				}
				break;
			
			case 2:
			
				System.out.print("请输入要修改的学生学号:");
	            stu.sno=input.next();
	            
	            System.out.print("请输入学生姓名:");
	            stu.name=input.next();
	           
	            System.out.print("请输入学生年龄:");
	            stu.age=input.nextInt();
	            
	            System.out.print("请输入性别:");
	            stu.sex=input.next();
	            
	            
	            boolean boo1 = stuOp.update(stu);
				if(boo1) {
					System.out.println("修改成功");
				}else {
					System.out.println("修改失败");
				}
				break;
			
			case 3:
				stuOp.print();
				break;
			case 4:
				System.out.print("请输入要查看的学生学号:");
	            String printsno=input.next();
	            System.out.println(stuOp.printSno(printsno));
				break;
			case 5:
				System.out.print("请输入要查看的学生性别:");
	            String sex=input.next();
	            System.out.println(stuOp.printSex(sex));
				break;
			
			case 6:
				System.out.print("请输入要删除的学生学号:");
	            String sno=input.next();
	            boolean boo2 = stuOp.deleteSno(sno);
	            if(boo2) {
					System.out.println("删除成功");
				}else {
					System.out.println("删除失败");
				}
				break;
				
			case 7:
				stuOp.sortSno();
				stuOp.print();
				break;
			case 8:
				stuOp.sortAge();
				stuOp.print();
				break;
			default:
				System.out.println("请输入正确的数字");
				break;
			}
		}
	}
}

基于ArrayList的学生信息的增删改查

基于ArrayList的学生信息的增删改查
基于ArrayList的学生信息的增删改查
基于ArrayList的学生信息的增删改查
基于ArrayList的学生信息的增删改查

基于ArrayList的学生信息的增删改查

上一篇: 倒霉的一年级

下一篇: 鹰的想象