实现简单的学生管理(数据的维护)
没有用数据库,不能存储数据,所以只能将学生对象
实现功能
实现学生数据的维护
- 1、遍历
- 2、添加:没有的学生的信息进行添加(录入)
- 3、修改:录入的学生信息是错误,进行修改
- 4、删除:学生退学,将学生信息删除
- 5、查询:获得某个学生的全部信息
- 6、退出
分析
- 声明一个ArrayList集合,用来存放学生信息。
- 创建初始的Student对象,添加到集合中。
- 暂时将id作为唯一标识(可用数据库来实现)。
- 每次做增删该操作时都需要通过id来实现。
- 将输入的id封装成对象,通过contains()方法判断该对象是否存在,存在了才能进行下一步操作。
学生类
package com.st.student;
/**
* 描述学生信息
* @author shang
*
*/
public class Student {
private String id;
private String name;
private Integer age;
/*重写equals方法*/
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
//向下转型
Student s=(Student)obj;
if(this==s) {
return true;
}
if(this.id.equals(s.id)) {
return true;
}
return false;
}
/*重写toString方法*/
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
/*一个参数构造方法*/
public Student(String id) {
super();
this.id = id;
}
public Student(String id, String name, Integer age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
测试类
1、创建静态属性
package com.st.student;
import java.util.ArrayList;
import java.util.Scanner;
/*
* 实现学生数据的维护
* 1、遍历
* 2、添加:没有的学生的信息进行添加(录入)
* 3、修改:录入的学生信息是错误,进行修改
* 4、删除:学生退学,将学生信息删除
* 5、查询:获得某个学生的全部信息
* 6、退出
* */
public class StudentTest {
//创建Scanner对象
static Scanner input=new Scanner(System.in);
//创建List集合
static ArrayList students=new ArrayList();
2、main方法
public static void main(String[] args) {
//创建学生对象,并添加到集合中
students.add(new Student("1001","小红帽",18));
students.add(new Student("1002","大灰狼",25));
students.add(new Student("1003","唐僧",30));
students.add(new Student("1004","悟空",21));
//请输入1遍历,2添加,3修改,4删除,5查询,6退出
while(true) {
System.out.println("=============================================");
//实现键盘输入,选择要实现的功能
System.out.println("---请输入:1遍历,2添加,3修改,4删除,5查询,6退出---");
Integer num =Integer.valueOf(input.nextLine());
switch(num) {
case 1:
printStu(students);
break;
case 2:
addStu();
break;
case 3:
updateStu();
break;
case 4:
removeStu();
break;
case 5:
selectStu();
break;
default :
System.out.println("已退出...");
return;
}
}
}
3、遍历方法
/*遍历学生信息*/
public static void printStu(ArrayList students) {
//增强for循环遍历
for(Object obj:students) {
//向下转型
Student stu=(Student)obj;
System.out.println(stu);
}
}
4、增
/*添加*/
public static void addStu() {
System.out.println("正在添加------请输入需要添加的学生的id:");
String addID = input.nextLine();
//封装成学生对象
Student student = new Student(addID);
//判断该学生是否存在
boolean contains = students.contains(student);
if(contains) {
System.out.println("对比起,该学生id已存在,请从新选择!");
}else {
System.out.println("正在添加------请输入需要添加的学生的name:");
String addName = input.nextLine();
System.out.println("正在添加------请输入需要添加的学生的age:");
Integer addAge = Integer.valueOf(input.nextLine());
students.add(new Student(addID,addName,addAge));
System.out.println("正在添加------添加成功");
}
}
5、删
/*删除*/
public static void removeStu() {
System.out.println("正在删除------请输入需要修改的学生的id:");
String addID = input.nextLine();
//封装成学生对象
Student student = new Student(addID);
//判断该学生是否存在
boolean contains = students.contains(student);
if(contains) {
students.remove(student);
System.out.println("正在删除------删除成功");
}else {
System.out.println("对不起,该学生不存在,请从新选择!");
}
}
6、改
/*修改*/
public static void updateStu() {
System.out.println("正在修改------请输入需要修改的学生的id:");
String addID = input.nextLine();
//封装成学生对象
Student student = new Student(addID);
//判断该学生是否存在
boolean contains = students.contains(student);
if(contains) {
//获取该学生的位置
int indexOf = students.indexOf(student);
//输入其他信息
System.out.println("正在修改------请输入需要修改的学生的name:");
String addName = input.nextLine();
System.out.println("正在修改------请输入需要修改的学生的age:");
Integer addAge = Integer.valueOf(input.nextLine());
//根据位置修改学生信息
students.set(indexOf,new Student(addID,addName,addAge));
System.out.println("正在修改------修改成功");
}else {
System.out.println("对不起,该学生不存在,请从新选择!");
}
}
7、查
/*查询*/
public static void selectStu() {
System.out.println("正在查询------请输入需要修改的学生的id:");
String addID = input.nextLine();
//封装成学生对象
Student student = new Student(addID);
//判断该学生是否存在
boolean contains = students.contains(student);
if(contains) {
//获取该学生的位置
int indexOf = students.indexOf(student);
//根据位置查询该学生
Object object = students.get(indexOf);
System.out.println(object);
}else {
System.out.println("对不起,该学生不存在,请从新选择!");
}
}
运行结果
添加
修改
删除、查询
优化
用了数据库后就可以实现真正的唯一标识id,就是id不能重复。然后多表连接,就可以实现更多的功能,完善个人信息,地址、照片、班级等,还有学生的成绩的录入,学生课表的查询等等。
还要学的有很多,之后再来完善,实现真正的学生管理系统。
加油!明天再等着正在努力的你…