文章目录

  • 前言
  • 学生操作系统



前言

学习Java已经到了这个地步,我们可以尝试写一个综合篇的题目来检验我们的学习成果

学生操作系统

先定义一个类方法

package SysStudent;

public class Student {
    private String name;
    private String id;
    private int age;
    private String addres;

    public Student() {
    }

    public Student(String name, String id, int age, String addres) {
        this.name = name;
        this.id = id;
        this.age = age;
        this.addres = addres;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddres() {
        return addres;
    }

    public void setAddres(String addres) {
        this.addres = addres;
    }
}

接下来开始主代码的学习

package SysStudent;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {

        //集合必须定义在循环的的外面,且集合要定义在main方法中
        ArrayList<Student> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        a:
        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("请输入您的选择");
//在循环前面加一个名字如a可以通过
            //格式 名字:while
            //break a跳出整个while循环

            String chose = sc.next();

            switch (chose) {//break跳出的是switch语句
                case "1":
                    //增加学生
                    addStudent(list);
                    break;
                case "2":
                    //删除学生
                    deleteStudent(list);
                    break;
                case "3":
                    //修改学生
                    chanegStudent(list);
                    break;
                case "4":
                    //查询学生
                    findStudent(list);
                    break;
                case "5":
                    System.out.println("5:退出");
                    break a;
                //System.exit(0);  停止虚拟机运行
                default:
                    System.out.println("没有这个选项");

            }
        }

    }

    private static void findStudent(ArrayList<Student> list) {

        System.out.println("查询学生信息");
        if (list.size() == 0) {
            System.out.println("未找到学生信息");
            return;//提示结束后结束方法
        }

        //打印表格
        System.out.println("id\t年龄\t姓名\t住址");

        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            //输出学生的信息
            System.out.println(stu.getId() + "\t" + stu.getAge() + "\t" + stu.getName() + "\t" + stu.getAddres());
        }

    }

    private static void chanegStudent(ArrayList<Student> list) {
       //从穿过来的集合修改
        //id存在则录入其他信息
        //id不存在则提示不存在,并且回到初始页面

        //输入id
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的id");
        String id=sc.next();
        //判断当前id是否存在 (getIndex)
        //返回当前id的索引
        int index=getIndex(list,id);
        //判断
        if(index==-1){
            //id不存在,无法修改
            System.out.println("当前输入的id:"+id+"不存在");
            return;
            //方法结束
        }
        Student stu=list.get(index);
        System.out.println("请输入当前要修改的学生姓名");

        String newName=sc.next();
        stu.setName(newName);

        System.out.println("请输入当前要修改学生的年龄");
        int newAge= sc.nextInt();
        stu.setAge(newAge);

        System.out.println("请输入当前要修改学生的住址");
        String newAddress = sc.next();
        stu.setAddres(newAddress);

        System.out.println("学生信息修改成功");


    }

    private static void deleteStudent(ArrayList<Student> list) {
        //id存在则删除
        //id不存在则返回菜单

        //键盘输入id
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的id");
        String id = sc.next();
        //查询出id在集合中的索引
        int index = getIndex(list,id);
        //判断
        if(index==-1){
            System.out.println("要删除的id:"+id+"不存在");
            return;
        }
        list.remove(index);
        System.out.println("删除成功");

    }


    //添加学生信息
    private static void addStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        Student s = new Student();
        //创建学生对象
        while (true) {
            System.out.println("请输入学生id");
            String id = sc.next();
            int index = getIndex(list,id);
            if (index >= 0) {
                //当前id存在
                System.out.println("当前id:" + id + "已存在,请重新输入");

            } else {
                //当前id不存在
                System.out.println("当前id:" + id + "不存在,可以用");
                s.setId(id);
                break;
            }
        }

        System.out.println("请输入学生年龄");
        int age = sc.nextInt();
        s.setAge(age);
        System.out.println("请输入学生姓名");
        String name = sc.next();
        s.setName(name);
        System.out.println("请输入学生地址");
        String address = sc.next();
        s.setAddres(address);
        //创建学生对象
        list.add(s);
        //提示
        System.out.println("学生信息添加成功");

    }

    //查询输入的id在集合中的索引
    public static int getIndex(ArrayList<Student> list,String id) {
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            String uid = stu.getId();
            //拿着集合中的id和输入的id进行比较
            if (uid.equals(id)) {
                return i;
            }

        }
        return -1;
        //循环结束后如果不存在则返回-1
    }
}

让我们来看看运行结果

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60499:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day13 SysStudent.test
欢迎来到学生管理系统
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:退出
请输入您的选择

接下来我们就可以进行自己的操作啦
这个代码写了我一下午加一晚上,希望大家稍微支持一下
感谢感谢,祝各位天天开心,过的愉快