基于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;
}
}
}
}
推荐阅读
-
将xml文件作为一个小的数据库,进行学生的增删改查的简单实例
-
Django基于类的增删改查,简单逻辑都不用写
-
详解Nodejs基于mongoose模块的增删改查的操作
-
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
-
基于模板模式用java语言实现基本的增删改查(快到起飞)
-
基于MyBatis的增删改查操作
-
运用Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat技术。实现用户信息的增删改查操作(添加功能及界面实现)。
-
【项目笔记】完成一个基于SSM框架的增删改查的模块后总结的问题
-
关于学生对象的增删改查的“改”(网页界面,bootstrap)(续,使用模态窗的修改操作)第二种实现方式(JavaScript DOM操作)
-
基于python的学生信息管理系统