学生管理系统实现步骤

 案例需求

针对目前我们的所学内容,完成一个综合案例:

学生管理系统!该系统主要功能如下:

添加学生:通过键盘录入学生信息,添加到集合中

删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除

修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改

查看学生:将集合中的学生对象信息进行展示

退出系统:结束程序

实现步骤

1.定义学生类,包含以下成员变量

学生类:Student成员变量:

学号:sid

姓名:name

年龄: age

生日:birthday

构造方法:无参构造

带四个参数的构造成员方法:

每个成员变量对应给出get/set方法

学生管理系统主界面的搭建

1 用输出语句完成主界面的编写

2 用Scanner实现键虚录入数据

3 用swiich语句完成操作的选择

4 用循环完成再次回到主界面

学生管理系统的添加学生功能实现步骤

1 用键盘录入选择添加学生

2定义一个方法,用于添加学生

显示提示信息,提示安输入何种信息

键盘录入学生对象所需要的数据

创建学生对象,把键盘录入的数据赋值给学生对象的成员变量

将学生对象添加到集合中(保存)

给出添加成功提示

3调用方法

学生营理系统的查看学生功能实现步骤

1用键虚录入选择查看所有学生信息

2定义一个方法,用于直看学生信息

显示表头信息

将集合中数据取出按照对应格式显示学生信息,年龄显示补充”岁“

3调用方法

学生管理系统的删除学生功能实现步骤

1 用键盘录入选择删除学生信息

2定义一个方法,用于删除学生信息

显示提示信息

键盘录入要删除的学生学号

调用getIndex方法,查找该学号在集合的索引

如果索引为-1,提示信息不存在

如果索引不是-1,

调用remove方法删除并提示删除成功

调用方法

学生管理系统的修改学生功能实现步骤

1用键盘录入选择修改学生信息

2定义一个方法,用于修改学生信息

显示提示信息

键盘录入要修改的学生学目

调用getIndex方法,查找该学号在集合的索引

如果索引为-1,提示信息不存在

如果索引不是-1,键盘录入要修改的学生信息

集合修改对应的学生信息

给出修改成功提示

3调用方法

退出系统 使用System.exit(0)退出 JVM

总代码

package com.student.app;

import com.student.bean0.Student;

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

public class StudentManagerApp {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //
        ArrayList<Student> students = new ArrayList<>();
        //用循环完成再次回到主界面
        loop: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 退出系统");
            //用Scanner实现键虚录入数据

            System.out.println("请选择(1-5):");
            String choose = sc.next();

            //用swich语句完成操作的选择
            switch (choose) {
                case "1":
                   // System.out.println("添加学生信息");
                    //添加学生信息
                    //调用添加学生的方法
                    addStudent(students);
                    break;
                case "2":
                    System.out.println("删除学生信息");
                    //删除学生信息
                    deleterStudent(students);
                    //students.size();
                    break;
                case "3":
                    System.out.println("修改学生信息");
                    //修改学生信息
                    updateStudent(students);
                    break;
                case "4":
                    System.out.println("查看学生信息");
                    //查看学生信息
                    queryAllStudents(students);
                    break;
                case "5":
                    System.out.println("再见,欢迎下次再来");
                    //退出系统
                    break loop;
                default:
                    System.out.println("您的输入有误,请重新输入");
                    break;
            }
        }
    }
    public static void updateStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改学生的学号");
        //键盘录入要删除的学生学号
        String sid = sc.next();
        //调用getIndex方法,查找该学号在集合的索引
        int index = getIndex(list, sid);
        //如果索引为-1,提示信息不存在
        if (index == -1) {
            System.out.println("您输入的学号不存在,请重新输入");
        } else {
            //如果索引不是-1,键盘录入要修改的学生信息 学号不能修改
            //集合修改对应的学生信息
            //给出修改成功提示
            System.out.println("请输入新的学生姓名");
           String name = sc.next();
            System.out.println("请输入新的学生年龄");
            int age = sc.nextInt();
            System.out.println("请输入新的学生生日");
            String birthday = sc.next();
            //获取集合中指定索引的学生对象
           Student stu = list.get(index);
           //集合修改对应的学生信息
            stu.setName(name);
            stu.setAge(age);
            stu.setBirthday(birthday);
            System.out.println("学生信息修改成功");
        }
    }

    public static void deleterStudent(ArrayList<Student> list){
        //显示提示信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要删除学生的学号");
        //键盘录入要删除的学生学号
        String sid = sc.next();
        //调用getIndex方法,查找该学号在集合的索引
        int index = getIndex(list,sid);
        //如果索引为-1,提示信息不存在
        if(index==-1){
            System.out.println("您输入的学号不存在,请重新输入");
        }else{
            //如果索引不是-1,调用remove方法删除并提示删除成功
            list.remove(index);
            System.out.println("删除学生信息成功");
        }
    }

    //通过学号查询学生在集合中的索引
    public static int getIndex(ArrayList<Student>list,String sid){
    //定义一个索引的变量 表示需要查询学号的学生在集合中的索引
        int index = -1;
        //循环遍历集合 进行比对
        for(int i=0;i<list.size();i++){
            //学生对象
            Student student = list.get(i);
            if(student.getSid().equals(sid)){
                index = i;
                break;
            }
        }
        return index;
    }

    //向集合对象中添加学生信息
    public static void addStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        //显示提示信息,提示安输入何种信息
        //键盘录入学生对象所需要的数据
        String sid = null;
        while (true){
            System.out.println("请输入学号:");
            sid = sc.next();

            int index = getIndex(list,sid);
            //index = -1 该学号不存在 新增
            if(index == -1){
                break;
            }else{
                //index = -1 存在
                System.out.println("您输入的学号重复了,请重新输入");
            }

        }

        System.out.println("请输入姓名:");
        String name = sc.next();
        System.out.println("请输入年龄:");
        int age = sc.nextInt();
        System.out.println("请输入生日:");
        String birthday = sc.next();
        //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        Student student = new Student(sid, name, age, birthday);
       // 将学生对象添加到集合中(保存)
        list.add(student);
        //给出添加成功提示
        System.out.println("学生信息保存成功");

    }
    //查询所有学生信息
    public static void queryAllStudents(ArrayList<Student>list) {
        //判断如果没有学生信息 不展示表头
        if(list.size()==0){
            System.out.println("没有查询到学生信息,请添加学生后再操作此功能");
            return;
        }
    //显示表头信息
        System.out.println("学号\t\t\t姓名\t\t年龄\t\t生日");
    // 将集合中数据取按照对应格式显示学生信息,年龄显示补充”岁“
        for(int i=0;i< list.size();i++){
            Student student = list.get(i);
            System.out.println(student.getSid()+"\t\t\t"+student.getName()+"\t\t"+student.getAge()+"岁\t\t"+student.getBirthday());
        }


    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值