这是一个简单的Java SE小结的系统,学管理系统。
Student类设计:
首先我们要设计一个Student类来存放成员属性(学习学号,姓名,年龄,地址)和成员方法,
import java.util.Objects;
public class Student {
private String id;
private String name;
private Integer age;
private String address;
public Student() {
}
public Student(String id, String name, Integer 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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return Objects.equals(id, student.id) &&
Objects.equals(name, student.name) &&
Objects.equals(age, student.age) &&
Objects.equals(address, student.address);
}
@Override
public int hashCode() {
return Objects.hash(id, name, age, address);
}
}
TestStudent类设计:
再设计一个TestStudent类作为一个实现类,在这个类中添加一些用户引导语,其中ArrayList集合 要设置为一个静态变量,这样,在下面的方法中就可以直接调用了。每一个具体功能,使用一个方法实现。其中Collections为ArrayList集合的根集合,可以直接添加。
import jdk.nashorn.internal.ir.CallNode;
import java.lang.reflect.Array;
import java.nio.Buffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Scanner;
public class TestStudent {
private static ArrayList<Student> list= new ArrayList();
public static void main(String[] args) {
Collections.addAll(list,new Student("001","王五",10,"山西"),
new Student("002","张三",11,"太原"));
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("请输入你的选择(1-5)");
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
switch (i){
case 1:
System.out.println("1 查看学生");
findall();
break;
case 2:
System.out.println("2 添加学生");
add();
break;
case 3:
System.out.println("3 删除学生");
delete();
break;
case 4:
System.out.println("4 修改学生");
update();
break;
case 5:
System.out.println("5 退出学生系统");
System.exit(0);
}
}
}
//查询学生
public static void findall() {
if(list==null&&list.size()==0){
System.out.println("没有信息,请重新输入");
return;//return//表示结束当前的方法
}
System.out.println("学号\t\t姓名\t\t年龄\t\t地址");
for (Student student : list) {
System.out.println(student.getId()+"\t\t"+student.getName()+"\t\t"+student.getAge()+"\t\t"+student.getAddress());
}
}
public static Student findId(String id) {//这里的返回值类型必须是student,后面要根据这个删除
for (Student student : list)
{
String stuid = student.getId();
if (stuid.equals(id)) {
return student;
}
}
return null;
}
//添加学生
public static void add() {
Scanner sc1 = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
System.out.println("请输入学生学号");
String id = sc1.nextLine();
if(!(findId(id)==null)){
System.out.println("id重复");
}
System.out.println("请输入学生姓名");
String name = sc1.nextLine();
System.out.println("请输入学生年龄");
int age = sc2.nextInt();
System.out.println("请输入学生地址");
String address = sc1.nextLine();
Student student = new Student(id, name, age, address);
list.add(student);
}
//删除学生
public static void delete() {
System.out.println("请输入要删除的学生学号");
Scanner sc1 = new Scanner(System.in);
String s = sc1.nextLine();
for (Student student : list)
{
String stuid = student.getId();
if (!(stuid.equals(s))){
System.out.println("查无此人");
}
//根据返回对象删除
list.remove(student);
}
}
//修改学生
public static void update() {
System.out.println("请输入要修改的学生学号");
Scanner sc1 = new Scanner(System.in);
String s = sc1.nextLine();
/**不能使用String类型,String基本数据类型无法改变,在修改完后list中的id改变了,但是String id中的值没有改变
for (Student stu : list) {
String id = stu.getId();
if(!id.equals(s)){
System.out.println("查无此人");
}
*/
Student stu = findId(s);
if(stu==null){
System.out.println("查无此人");
}
System.out.println("请输入学生姓名");
String name = sc1.nextLine();
System.out.println("请输入学生年龄");
Scanner sc2 = new Scanner(System.in);
int age = sc2.nextInt();
System.out.println("请输入学生地址");
String address = sc1.nextLine();
stu.setName(name);
stu.setAge(age);
stu.setAddress(address);
System.out.println("修改完成");
}
}