欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学生管理系统Java版

程序员文章站 2022-05-06 12:37:36
...

简单的学生管理系统

主界面编写:
1.用输出语句完成主界面的编写
2.用Scanner语句实现键盘的录入
3.用swich语句完成操作的选择
4.用循环完成再次回到主界面
代码实现:

while (true) {
    //1.用输出语句完成主界面的编写
    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("-----------------------------------");
    System.out.print("请输入你的选择:");


    //2.用Scanner语句实现键盘的录入
    Scanner sc = new Scanner(System.in);
    String num = sc.nextLine();

    //3.用swich语句完成操作的选择
    switch (num) {

        case "1":
            //System.out.println("添加学生");
            addStudent(array);
            break;
        case "2":
            //System.out.println("删除学生");
            deletestudent(array);
            break;
        case "3":
            //System.out.println("修改学生");
            updatestudent(array);
            break;
        case "4":
            //System.out.println("查看所有学生");
            findAllstudent(array);
            break;
        case "5":
            System.out.println("感谢使用学生管理系统");
            return;
        //System.exit(0); JVM退出
        //把while循环改为while(flag),在while循环前置flag=true,
        //在case5 这里让flag=false
    }

实现效果:学生管理系统Java版
一、添加学生
1.定义一个方法,用于添加学生信息
2.键盘录入学生对象所需要的数据,显示提示信息,提示输入何种信息
3.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
4.将学生对象添加到集合中
5.给出提示信息"添加学生成功"
注意:在添加学生前先定义一个方法用于判断学生是否存在
代码实现:

//定义一个方法,判断添加的学生学号是否存在
public static boolean isUsed(ArrayList<student> array, String sid) {

    boolean flag = false;

    for (int i = 0; i < array.size(); i++) {
        student s = array.get(i);
        if (s.getSid().equals(sid)) {   //如果输入的学生与集合中相同
            flag = true;
            break;
        }
    }
    return flag;
}
public static void addStudent(ArrayList<student> array) {
    Scanner sc = new Scanner(System.in);
    //为了让sid在while循环外被访问到,把它定义在循环外
    String sid;
    //为了让程序能够回到这里,我们使用循环实现
    while (true) {
        System.out.println("请输入学生学号:");
        //  String sid = sc.nextLine();
        //上面定义了sid,这里不用String
        sid = sc.nextLine();
        boolean flag = isUsed(array, sid);
        if (flag) {
            System.out.println("你输入的学生已存在,请重更新输入");
        } else {
            break;
        }
    }
    System.out.println("请输入学生姓名:");
    String name = sc.nextLine();
    System.out.println("请输入学生年龄:");
    String age = sc.nextLine();
    System.out.println("请输入学生居住地:");
    String address = sc.nextLine();

    student s = new student();
    s.setSid(sid);
    s.setName(name);
    s.setAge(age);
    s.setAddress(address);

    array.add(s);

    System.out.println("添加学生成功");

}

二、查看学生
(用键盘录入选择查看所有学生信息)
1.定义一个方法,用于查看学生信息。
2.判断集合中是否有数据,如果没有显示提示信息。
3.显示表头信息。
4.将集合中数据取出按照格式显示学生信息,年龄显示补充“岁”。
5.调用方法
注意:在查看学生前也要判断学生是否存在。
代码实现:

//定义一个方法,用于查看所有学生信息
public static void findAllstudent(ArrayList<student> array) {
    //判断集合中是否有数据,如果没有数据显示提示信息
    if (array.size() == 0) {
        System.out.println("没有学生信息,请添加学生信息后查询");
    }

    //2.显示表头信息
   
    System.out.println("学号\t\t姓名\t年龄\t居住地");

    
    for (int i = 0; i < array.size(); i++) {
        student s = array.get(i);
        System.out.println(s.getSid() + "\t\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());


    }
}

三、删除学生
1.定义一个方法,用于删除学生信息
2.键盘输入要删除学生的学号,显示提示信息
3.遍历集合将对应学生对象从集合中删除
4.给出删除成功提示信息
5.调用方法
注意:在删除学生时也要判断学生是否存在
代码实现:

//定义一个方法,用于删除学生信息
public static void deletestudent(ArrayList<student> array) {

    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你要删除的学生学号");
    String sid = sc.nextLine();

    int index = -1;

    for (int i = 0; i < array.size(); i++) {
        student s = array.get(i);
        if (s.getSid().equals(sid)) {
            index = i;
            break;
        }

    }
    if (index == -1) {
        System.out.println("你输入的学生不存在,请重新输入");
    } else {
        array.remove(index);
        System.out.println("删除学生成功");
    }
}

四、修改学生信息
1.键盘录入要修改的学生学号,显示提示信息
2.键盘录入要修改的学生信息
3.创建学生对象
4.遍历集合修改对应的学生信息
5.给出修改成功提示
6.调用方法
注意:在修改学生时也要判断要修改的学生是否存在
代码实现:

//定义一个方法,用于修改学生信息
public static void updatestudent(ArrayList<student> array) {
    Scanner sc = new Scanner(System.in);

    System.out.println("请输入你要修改的学生的学号");
    String sid = sc.nextLine();
    System.out.println("请输入学生新姓名:");
    String name = sc.nextLine();
    System.out.println("请输入学生新年龄:");
    String age = sc.nextLine();
    System.out.println("请输入学生新居住地:");
    String address = sc.nextLine();

    student s = new student();
    s.setSid(sid);
    s.setName(name);
    s.setAge(age);
    s.setAddress(address);


    int index = -1;
    for (int i = 0; i < array.size(); i++) {
        student student = array.get(i);
        if (student.getSid().equals(sid)) {
            index = i;
            break;
        }
    }
    if (index == -1) {
        System.out.println("你输入的学生不存在,请重新输入");
    } else {
        array.set(index, s);
        System.out.println("修改学生成功");
    }

}

最后附上完全代码:

package StudentManager;

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

/*

    学生管理系统

     主界面编写:
         1.用输出语句完成主界面的编写
         2.用Scanner语句实现键盘的录入
         3.用swich语句完成操作的选择
         4.用循环完成再次回到主界面

    一、添加学生
        1.定义一个方法,用于添加学生信息
        2.键盘录入学生对象所需要的数据,显示提示信息,提示输入何种信息
        3.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        4.将学生对象添加到集合中
        5.给出提示信息"添加学生成功"
     二、查看学生
            (用键盘录入选择查看所有学生信息)
         1.定义一个方法,用于查看学生信息
         2.判断集合中是否有数据,如果没有显示提示信息
         3.显示表头信息
         4.将集合中数据取出按照格式显示学生信息,年龄显示补充“岁”
         5.调用方法

       三、删除学生
          1.定义一个方法,用于删除学生信息
          2.键盘输入要删除学生的学号,显示提示信息
          3.遍历集合将对应学生对象从集合中删除
          4.给出删除成功提示信息
          5.调用方法

        四、修改学生信息
           1.键盘录入要修改的学生学号,显示提示信息
           2.键盘录入要修改的学生信息
           3.创建学生对象
           4.遍历集合修改对应的学生信息
           5.给出修改成功提示
           6.调用方法

        五、解决删除/修改学生学号不存在问题
            1.在删除/修改学生操作钱,对学号是否存在进行判断
            如果不存在,显示提示信息
            如果存在,执行删除/修改操作

        六、解决添加学生学号重复问题
            1.定义一个方法,对学号是否杯使用进行判断
            如果与集合中的学生学号相同返回true
            如果不相同,返回false
            2.在添加学生录入学号后调用该方法
            如果返回true,弹出提示,重新输入学号
            如果返回false,正常添加学生对象

 */

public class MyStudentManagerment {

    //主界面操作
    public static void main(String[] args) {
        //创建集合对象,用于存储学生数据
        ArrayList<student> array = new ArrayList<student>();

        //4.用循环完成再次回到主界面
        while (true) {
            //1.用输出语句完成主界面的编写
            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("-----------------------------------");
            System.out.print("请输入你的选择:");


            //2.用Scanner语句实现键盘的录入
            Scanner sc = new Scanner(System.in);
            String num = sc.nextLine();

            //3.用swich语句完成操作的选择
            switch (num) {

                case "1":
                    //System.out.println("添加学生");
                    addStudent(array);
                    break;
                case "2":
                    //System.out.println("删除学生");
                    deletestudent(array);
                    break;
                case "3":
                    //System.out.println("修改学生");
                    updatestudent(array);
                    break;
                case "4":
                    //System.out.println("查看所有学生");
                    findAllstudent(array);
                    break;
                case "5":
                    System.out.println("感谢使用学生管理系统");
                    return;
                //System.exit(0); JVM退出
                //把while循环改为while(flag),在while循环前置flag=true,
                //在case5 这里让flag=false
            }
        }
    }


    //定义一个方法,判断添加的学生学号是否存在
    public static boolean isUsed(ArrayList<student> array, String sid) {

        boolean flag = false;

        for (int i = 0; i < array.size(); i++) {
            student s = array.get(i);
            if (s.getSid().equals(sid)) {   //如果输入的学生与集合中相同
                flag = true;
                break;
            }
        }
        return flag;
    }
    //定义一个方法,用于添加学生信息
    public static void addStudent(ArrayList<student> array) {
        Scanner sc = new Scanner(System.in);
        //为了让sid在while循环外被访问到,把它定义在循环外
        String sid;
        //为了让程序能够回到这里,我们使用循环实现
        while (true) {
            System.out.println("请输入学生学号:");
            //  String sid = sc.nextLine();
            //上面定义了sid,这里不用String
            sid = sc.nextLine();
            boolean flag = isUsed(array, sid);
            if (flag) {
                System.out.println("你输入的学生已存在,请重更新输入");
            } else {
                break;
            }
        }
        System.out.println("请输入学生姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生年龄:");
        String age = sc.nextLine();
        System.out.println("请输入学生居住地:");
        String address = sc.nextLine();

        student s = new student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        array.add(s);

        System.out.println("添加学生成功");

    }

    //定义一个方法,用于查看所有学生信息
    public static void findAllstudent(ArrayList<student> array) {
        //判断集合中是否有数据,如果没有数据显示提示信息
        if (array.size() == 0) {
            System.out.println("没有学生信息,请添加学生信息后查询");
        }

        //2.显示表头信息
        // \t(制表符) 其实就是tab键的位置
        System.out.println("学号\t\t姓名\t年龄\t居住地");

        //3.将集合中数据取出按照格式显示学生信息,年龄显示补充“岁”
        for (int i = 0; i < array.size(); i++) {
            student s = array.get(i);
            System.out.println(s.getSid() + "\t\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());


        }
    }

    //定义一个方法,用于删除学生信息
    public static void deletestudent(ArrayList<student> array) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的学生学号");
        String sid = sc.nextLine();

        int index = -1;

        for (int i = 0; i < array.size(); i++) {
            student s = array.get(i);
            if (s.getSid().equals(sid)) {
                index = i;
                break;
            }

        }
        if (index == -1) {
            System.out.println("你输入的学生不存在,请重新输入");
        } else {
            array.remove(index);
            System.out.println("删除学生成功");
        }
    }

    //定义一个方法,用于修改学生信息
    public static void updatestudent(ArrayList<student> array) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入你要修改的学生的学号");
        String sid = sc.nextLine();
        System.out.println("请输入学生新姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生新年龄:");
        String age = sc.nextLine();
        System.out.println("请输入学生新居住地:");
        String address = sc.nextLine();

        student s = new student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);


        int index = -1;
        for (int i = 0; i < array.size(); i++) {
            student student = array.get(i);
            if (student.getSid().equals(sid)) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("你输入的学生不存在,请重新输入");
        } else {
            array.set(index, s);
            System.out.println("修改学生成功");
        }

    }


}