【java写的项目】学生管理系统(控制台版)

最近一直在写学校的PTA题目和弄web前端的大作业,就没怎么写博客记录自己的学习过程了,刚好最近写练习的时候写到了一个我感觉很普遍的一个项目,就是大家可能都熟知的学生管理系统。它这个管理系统的需求文档这样描述需求的:

功能很常规,实现起来并不复杂,只要在写出不同功能对应的不同方法就可以了。

首先在开始之前,我们先得创建一个JavaBean类来定义“学生”这个对象吧。

package sutdent_system;

public class student {
    private String name;
    private String id;
    private String address;

    public student() {
    }

    public student(String name, String id, String address) {
        this.name = name;
        this.id = id;
        this.address = address;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return address
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

    public String toString() {
        return "student{name = " + name + ", id = " + id + ", address = " + address + "}";
    }
}

这样一个学生对象就弄好了,包括名字,id,地址。(我后面才发现我忘了加年龄了,但不是重点,没关系),一般写JavaBean类的时候我定义好成员变量后就直接ptg了,ptg这个插件很好用,节省了我很多时间。

然后我们就开始写学生管理系统吧。

首先是main:

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<student> s = new ArrayList<>();
        while (true) {
            jiemian();
            int n = sc.nextInt();
            switch (n) {
                case 1:
                    add_student(s);
                    System.out.println("录入完成!");
                    break;
                case 2:
                    del_student(s);
                    break;
                case 3:
                    mod_student(s);
                    break;
                case 4:
                    chack_student(s);
                case 5:
                    break;
            }
           
        }
    }

在这里我用while语句,一直循环,达到实现完操作后,继续跳回选择页面,可持续执行下一步操作。

这里面我定义了几个方法:

add_student (添加学生信息)  del_student(删除学生信息)   mod_student(修改学生信息)
chack_student(查找学生信息)   jiemian(就是一个简单的界面)

后面我会把每个方法放出来,就是挺简单的。

首先我建了个student这个类的集合,用它来存储学生的信息。

然后通过从键盘输入数字1~5来对应实现想要的功能。

界面如下:

public static void jiemian(){
        System.out.println("----------kinroy学生管理系统----------");
        System.out.println("1:添加学生信息");
        System.out.println("2:删除学生信息");
        System.out.println("3:修改学生信息");
        System.out.println("4:查询学生信息");
        System.out.println("5:退出系统");
        System.out.println("请输入序号开始操作:");
    }

用switch语句来简单实现这些功能。

添加学生信息:

public static void add_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        student stu=new student();
        System.out.println("请输入学生的id:");
        String s1=sc.next();
        stu.setId(s1);
        //判断学号是否唯一
        for (int i = 0; i < s.size(); i++) {
            if (stu.getId().equals(s.get(i).getId())){
                System.out.println("您输入的id已存在,请重新输入:");
                add_student(s);
                return;
            }
        }

        System.out.println("请输入学生的姓名:");
       String s2=sc.next();
       stu.setName(s2);
        System.out.println("请输入学生的住址:");
        String s3=sc.next();
        stu.setAddress(s3);
        s.add(stu);


    }

这里我需要的是需要每个学生的id都是唯一的,所以在遍历集合中元素的id的时候,如果发现id相重合,就必须再次输入新的id,在这里我在这个方法中再次调用这个方法本身来实现这个功能。

if (stu.getId().equals(s.get(i).getId())){
                System.out.println("您输入的id已存在,请重新输入:");
                add_student(s);
                return;
            }

删除学生信息:

 Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的学生id:");
        String id=sc.next();
        for (int i = 0; i < s.size(); i++) {
            if (s.get(i).getId().equals(id)){
                s.remove(i);
                System.out.println("删除成功!");
                return;
            }
        }
        System.out.println("你输入的id不存在");

很简单,直接调用集合的remove方法来实现,通过输入学生的id来找到要删除的学生,如果没有这个id存在,就告知id不存在。

修改学生信息:

public static void mod_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改信息的学生的ID:");
        String mod=sc.next();
        for (int i = 0; i < s.size(); i++) {
            if (s.get(i).getId().equals(mod)){
                System.out.println("修改id---扣1   修改名字---扣2   修改地址---扣3   全部要改---扣4");
                int n= sc.nextInt();
                switch (n){
                    case 1:
                        System.out.println("请输入新id:");
                        String id=sc.next();
                        s.get(i).setId(id);
                        System.out.println("修改成功!");
                        break;
                    case 2:
                        System.out.println("请输入新名字:");
                        String name= sc.next();
                        s.get(i).setName(name);
                        System.out.println("修改成功!");
                        break;
                    case 3:
                        System.out.println("请输入新地址:");
                        String addres=sc.next();
                        s.get(i).setAddress(addres);
                        System.out.println("修改成功!");
                        break;
                    case 4:
                        System.out.println("请输入新id:");
                        String id1=sc.next();
                        s.get(i).setId(id1);
                        System.out.println("请输入新名字:");
                        String name1= sc.next();
                        s.get(i).setName(name1);
                        System.out.println("请输入新地址:");
                        String addres1=sc.next();
                        s.get(i).setAddress(addres1);
                        System.out.println("修改成功!");
                        break;
                }
                return;
            }
 }
        System.out.println("您输入的id不存在");
}

这里我觉得要灵活一些,有时候我们要修改的可能是学生的某一项信息,所以我在这个方法中再给操作者一些选择,同样用id来找学生。

查找学生信息:

public static void chack_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("显示所以学生信息---扣1   查询单个学生信息---扣2");
        int n= sc.nextInt();
        switch (n){
            case 1:
                System.out.println("ID          姓名          住址          ");
                System.out.println("----------------------------------------");
                for (int i = 0; i < s.size(); i++) {
                    System.out.println(s.get(i).getId()+"       "+s.get(i).getName()+"       "+s.get(i).getAddress());
                }
                return;
            case 2:
                System.out.println("输入你要查询的学生ID:");
                String id=sc.next();
                for (int j = 0; j < s.size(); j++) {
                    if (s.get(j).getId().equals(id)){
                        System.out.println("ID          姓名          住址          ");
                        System.out.println("----------------------------------------");
                        System.out.println(s.get(j).getId()+"       "+s.get(j).getName()+"       "+s.get(j).getAddress());
                    }
                }
                return;
        }
    }

总体:

package sutdent_system;

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

public class system {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<student> s = new ArrayList<>();
        while (true) {
            jiemian();
            int n = sc.nextInt();
            switch (n) {
                case 1:
                    add_student(s);
                    System.out.println("录入完成!");
                    break;
                case 2:
                    del_student(s);
                    break;
                case 3:
                    mod_student(s);
                    break;
                case 4:
                    chack_student(s);
                case 5:
                    break;
            }
            for (int i = 0; i < s.size(); i++) {
                System.out.println(s.get(i));
            }
        }
    }
    public static void jiemian(){
        System.out.println("----------kinroy学生管理系统----------");
        System.out.println("1:添加学生信息");
        System.out.println("2:删除学生信息");
        System.out.println("3:修改学生信息");
        System.out.println("4:查询学生信息");
        System.out.println("5:退出系统");
        System.out.println("请输入序号开始操作:");
    }
    public static void add_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        student stu=new student();
        System.out.println("请输入学生的id:");
        String s1=sc.next();
        stu.setId(s1);
        //判断学号是否唯一
        for (int i = 0; i < s.size(); i++) {
            if (stu.getId().equals(s.get(i).getId())){
                System.out.println("您输入的id已存在,请重新输入:");
                add_student(s);
                return;
            }
        }

        System.out.println("请输入学生的姓名:");
       String s2=sc.next();
       stu.setName(s2);
        System.out.println("请输入学生的住址:");
        String s3=sc.next();
        stu.setAddress(s3);
        s.add(stu);


    }
    public static void del_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的学生id:");
        String id=sc.next();
        for (int i = 0; i < s.size(); i++) {
            if (s.get(i).getId().equals(id)){
                s.remove(i);
                System.out.println("删除成功!");
                return;
            }
        }
        System.out.println("你输入的id不存在");
    }
    public static void mod_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改信息的学生的ID:");
        String mod=sc.next();
        for (int i = 0; i < s.size(); i++) {
            if (s.get(i).getId().equals(mod)){
                System.out.println("修改id---扣1   修改名字---扣2   修改地址---扣3   全部要改---扣4");
                int n= sc.nextInt();
                switch (n){
                    case 1:
                        System.out.println("请输入新id:");
                        String id=sc.next();
                        s.get(i).setId(id);
                        System.out.println("修改成功!");
                        break;
                    case 2:
                        System.out.println("请输入新名字:");
                        String name= sc.next();
                        s.get(i).setName(name);
                        System.out.println("修改成功!");
                        break;
                    case 3:
                        System.out.println("请输入新地址:");
                        String addres=sc.next();
                        s.get(i).setAddress(addres);
                        System.out.println("修改成功!");
                        break;
                    case 4:
                        System.out.println("请输入新id:");
                        String id1=sc.next();
                        s.get(i).setId(id1);
                        System.out.println("请输入新名字:");
                        String name1= sc.next();
                        s.get(i).setName(name1);
                        System.out.println("请输入新地址:");
                        String addres1=sc.next();
                        s.get(i).setAddress(addres1);
                        System.out.println("修改成功!");
                        break;
                }
                return;
            }

        }
        System.out.println("您输入的id不存在");
    }
    public static void chack_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("显示所以学生信息---扣1   查询单个学生信息---扣2");
        int n= sc.nextInt();
        switch (n){
            case 1:
                System.out.println("ID          姓名          住址          ");
                System.out.println("----------------------------------------");
                for (int i = 0; i < s.size(); i++) {
                    System.out.println(s.get(i).getId()+"       "+s.get(i).getName()+"       "+s.get(i).getAddress());
                }
                return;
            case 2:
                System.out.println("输入你要查询的学生ID:");
                String id=sc.next();
                for (int j = 0; j < s.size(); j++) {
                    if (s.get(j).getId().equals(id)){
                        System.out.println("ID          姓名          住址          ");
                        System.out.println("----------------------------------------");
                        System.out.println(s.get(j).getId()+"       "+s.get(j).getName()+"       "+s.get(j).getAddress());
                    }
                }
                return;
        }
    }
}

student类:

package sutdent_system;

public class student {
    private String name;
    private String id;
    private String address;

    public student() {
    }

    public student(String name, String id, String address) {
        this.name = name;
        this.id = id;
        this.address = address;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return address
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

    public String toString() {
        return "student{name = " + name + ", id = " + id + ", address = " + address + "}";
    }
}

来看一下运行的效果吧。

 

 

上面会有那个集合的遍历,是我之前查错用的,可以无视掉。

这样一个简单的学生管理系统就完成了。 

 

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一支猫咔qly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值