控制台输出的学生管理系统

先建一个学生类用于将学生属性定义出来,将属性私有,使用getter和setter方法调用,然后建立一个空参一个有参构造,方便调用 

//Student学生类
public class Student {
    // 学号:sid
    private String sid;
    // 姓名:name
    private String name;
    // 年龄:age
    private int age;
    // 生日:birthday
    private String birthday;

    public Student() {
    }

    //有参构造
    public Student(String sid, String name, int age, String birthday) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    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 getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
}

然后创建一个执行类,用于完成程序运行,将每个功能都设置为了一个方法用switch case去调用方法

import java.util.ArrayList;
import java.util.Scanner;
/*
* 1.添加学生:通过键盘录入学生信息,添加到集合中
2.删除学生:通过键盘录入要删除学生的学号,如果学号存在,将该学生对象从集合中删除;
* 如果学号不存在, 提示,无法删除
3.修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改, 修改完毕保存在集合中
4.查看学生:将集合中的学生对象信息进行展示
5.退出系统:结束程序
* */

public class StudentManager {
    //因为为了方便调用,特别将ArrayList和Scanner方法放在了成员变量里面。
    static Scanner sc = new Scanner(System.in);
    static ArrayList<Student> list = new ArrayList<>();
    public static void main(String[] args) {
        //为了多次输出,因此使用了while(true)死循环
        while(true){
            System.out.println("欢迎使用学生管理系统,请从1-5中选择操作,1添加  2删除  3修改  4查询  5退出系统");
            int choose = sc.nextInt();
            //适应switch case方法提供选择操作
            switch(choose){
                case 1:
                    addNumber();
                    // 添加学生方法调用
                    // 添加学生学号不重复
                    break;
                case 2:
                    delete();
                    // 删除学生方法调用
                    break;
                case 3:
                    revise();
                    // 修改学生信息方法调用
                    break;
                case 4:
                    reach();
                    // 查看所有学生方法调用
                    break;
                case 5:
                    System.out.println("谢谢使用,退出系统");
                    // System.exit(0);
                    return;
                default:
                    System.out.println("输入数据有误,请从1-5中选择,如需退出系统,输入5");
            }
        }
    }
    //添加学生信息
    public static void addNumber(){
        System.out.println("请输入学号");
        String sid = sc.next();
        //调用的根据学号查学生信息的方法判断键盘录入的学号是否存在
        //使的学号唯一
        Student s = chaSid(sid);
        //如果不存在可以向里面加入该学号的学生信息
        if (s == null){
            System.out.println("请输入姓名");
            String name = sc.next();
            System.out.println("请输入年龄");
            int age = sc.nextInt();
            System.out.println("请输入生日");
            String birthday = sc.next();
            //使用Student类里面的构造方法赋值
            Student stu = new Student(sid,name,age,birthday);
            list.add(stu);
            System.out.println("添加成功");
        }else {
            System.out.println("已有该学生无法再次添加");
        }
    }
    //根据学号查询该学生信息
    public static Student chaSid(String sid){
        for (Student s: list){
            String a = s.getSid();
            if (a.equals(sid)){
                //如果查询到则返回学生信息
                return s;
            }
        }
        return null;
    }
    //查询学生信息
    //遍历集合然后输出即可
    public static void reach(){
        System.out.println("学号"+"    "+"姓名"+"  "+"年龄"+"  "+"生日");
        for (Student s: list){
            System.out.println(s.getSid()+"    "+s.getName()+"  "+s.getAge()+"岁"+"  "+s.getBirthday());
        }
    }
    //删除学生信息
    //先通过调用chaSi的方法通过学号来查询学生信息
    //如果查询到,那么就可以根据学号进行删除
    //如果没有查询到,那么返回为找到该同学
    public static void delete(){
        System.out.println("请输入你要删除的学生的学号");
        String sid = sc.next();
        Student s = chaSid(sid);
        if (s == null){
            System.out.println("没有找到该同学");
        }else {
            list.remove(s);
            System.out.println("删除成功");
        }
    }
    //修改学生信息
    //先通过chaSid先根据学号查询集合里面学生信息
    //如果查询到那么可以修改
    //如果没有查询到,那么输出没有找到该学生
    public static void revise(){
        System.out.println("请输入你要修改的学生的学号");
        String sid = sc.next();
        //查询sid是否在集合中存在
        Student s = chaSid(sid);
        System.out.println("请输入姓名");
        String name = sc.next();
        System.out.println("输入年龄");
        int age = sc.nextInt();
        System.out.println("输入生日");
        String birthday = sc.next();
        //如果不存在
        if (s == null){
            System.out.println("没有查到该同学的信息");
        }else {
            int Index = 0;
            //通过遍历查询在集合中所有的学号
            for (int index = 0;index <list.size();index++){
                Student ss = list.get(index);
                //如果输入的学号所查询到的信息等于集合中的某一个学号的信息
                if (s.equals(ss)){
                    //将集合中的那个学号的索引位置传递出来
                    Index = index;
                }
                //将集合中该索引位置的元素进行替换
                //以便于进行修改
                list.set(Index,new Student(sid,name,age,birthday));
            }
        }
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值