B站零基础JAVA教程随堂题目-学生管理系统(控制台版本)

131 阅读1分钟

题目位置:

b站: BV17F411T7Ao (P116)

写这个的目的还是想督促自己坚持学习java,

不知道将来能不能坚持到能上手的程度

视频学习过程中弹幕里还是有很多零基础小伙伴说可能有的地方不能理解, 所以在这里贴上我的作业相互交流

本人是转行前端开发会写JS, 但java方面相当于是零基础的小弟

PS: 最近工作有点忙,java学习一下就懈怠了,一寸光阴一寸金啊.

这是讲了ArrayList<>之后的一个例题;

题目需求:(视频里有详细的, 这里手打一个简单的文字版本)

1. 一个控制台的学生管理系统

2. 有增删改查的功能

3. 通过菜单页面通过键入 1234 选择对应的增删改查功能

4. 具体可以到视频里看, 字太多所以这里只写了简略三点

这边是看到题目后, 先暂停视频, 然后运用之前写JS的经验和在这套Java课程里已经学习到的java知识来写一次;

写完之后还是要继续往后看视频, 看看老师的讲解;

今天突发奇想来这里写个记录, 写完后加了特别多注释(哭瞎);

有任何问题老哥们可以指正呀~

学生类:

Student.java

PS: 就是一个标注的javabean

package com.student;

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

    public Student() {
    }

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

    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 int getAge() {
        return age;
    }

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

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", addr='" + addr + '\'' +
                '}';
    }
}

测试类:

StudentsTest.java

package com.student;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentsTest {
    public static ArrayList<Student> students = new ArrayList<>();
    public static Scanner s = new Scanner(System.in);

    public static void main(String[] args) {
        start();
    }

    public static void start() {
        System.out.println();
        System.out.println();
        System.out.println("------ 欢迎来到学生管理系统 ------");
        System.out.println("1: 添加学生");
        System.out.println("2: 删除学生");
        System.out.println("3: 修改学生");
        System.out.println("4: 查询学生");
        System.out.println("5: 退出");
        int select = s.nextInt();
        System.out.println();

        switch (select) {
            case 1:
                add();
                break;
            case 2:
                delete();
                break;
            case 3:
                set();
                break;
            case 4:
                get();
                break;
            case 5:
            default:
                System.out.println("程序退出");
                break;
        }
    }

    public static Student newStudent(String id) {
        if (id.equals("")) {
            while (true) {
                System.out.println("请输入: id");
                id = s.next();
                if (stuIdx(id) != -1) {
                    System.out.println("id重复了");
                } else {
                    break;
                }
            }
        }
        System.out.println("请输入: 姓名");
        String name = s.next();
        System.out.println("请输入: 年龄");
        int age = s.nextInt();
        System.out.println("请输入: 住址");
        String addr = s.next();
        Student st = new Student(id, name, age, addr);
        return st;
    }

    public static void add() {
        Student st = newStudent("");
        students.add(st);
        System.out.println("添加操作完成, 请继续下一步操作");
        start();
    }

    public static void delete() {
        String id = "";
        int idx = -1;
        do {
            System.out.println("请输入需要删除的学生id");
            id = s.next();
            idx = stuIdx(id);
            if (idx != -1) {
                break;
            } else {
                System.out.println("不存在id为" + id + "的学生");
                System.out.println("请重新输入");
            }
        } while (true);
        students.remove(idx);
        System.out.println("删除成功");
        start();
    }

    public static int stuIdx(String id) {
        for (int i = 0; i < students.size(); i++) {
            if (students.get(i).getId().equals(id)) {
                return i;
            }
        }
        return -1;
    }

    public static void set() {
        int idx = -1;
        do {
            System.out.println("请输入需要修改的学生id");
            String id = s.next();
            idx = stuIdx(id);
            if (idx != -1) {
                break;
            } else {
                System.out.println("不存在id为" + id + "的学生");
                System.out.println("请重新输入");
            }
        } while (true);
        String id = students.get(idx).getId();
        Student st = newStudent(id);
        students.set(idx, st);
        System.out.println("修改完成");
        start();
    }

    public static void get() {
        if (students.size() == 0) {
            System.out.println("暂时没有学生信息, 请先添加");
            start();
            return;
        }
        System.out.print("id\t\t\t姓名\t\t\t年龄\t\t\t住址");
        System.out.println();
        for (int i = 0; i < students.size(); i++) {
            Student st = students.get(i);
            // 这里对不齐; 还没想到该咋办 
            System.out.print(st.getId() + "\t\t\t" + st.getName() + "\t\t\t" + st.getAge() + "\t\t\t" + st.getAddr());
            System.out.println();
        }
        start();
    }
}

PS: 刚开始在培训班学写代码的时候学了一周C, 当时用C写了一个类似的提款机的代码,逻辑类似,虽然忘记了C是怎么写的,但是逻辑还记得到,所以这个代码没花太多时间

(撒花~)

小度现在正在播放 --- <未接来电> 杨乃文 推荐 ~

♪ 也许我会开着收音机 ♬

♪ 听见你最爱的那首歌曲 ♬

♪ 未接来电是你给我残酷的关心 ♬

♪ 钢琴失去了声音  ♬