aoe1231

看得完吗

Java案例——学生管理系统

目录

1、定义学生类

2、主界面的代码编写

3、添加学生的代码编写

4、查看学生的代码编写

5、删除学生的代码编写

6、修改学生的代码编写

7、运行结果


学生管理系统的实现思路:

  1. 定义学生类;
  2. 主界面的代码编写;
  3. 添加学生的代码编写;
  4. 查看学生的代码编写;
  5. 删除学生的代码编写;
  6. 修改学生的代码编写。

1、定义学生类

学生类:Student

成员变量:

  • 学号:sid
  • 姓名:name
  • 年龄:age
  • 居住地:address

构造方法:

  • 无参构造
  • 带四个参数的构造
package SMSPackage;

/*
学生类
*/
public class Student {
    //定义成员变量
    private String sid; //学号
    private String name; //姓名
    private String age; //年龄
    private String address; //居住地

    //构造方法
    public Student(){}
    public Student(String sid, String name, String age, String address){
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    //提供get/set成员方法访问成员变量
    public String getSid() { return this.sid; }
    public String getName() { return this.name; }
    public String getAge() { return this.age; }
    public String getAddress() { return this.address; }

    public void setSid(String sid) { this.sid = sid; }
    public void setName(String name) { this.name = name; }
    public void setAge(String age) { this.age = age; }
    public void setAddress(String address) { this.address = address; }
}

2、主界面的代码编写

  1. 用输出语句完成主界面的编写;
  2. 用Scanner实现键盘录入数据;
  3. 用switch语句完成操作的选择;
  4. 用循环完成再次回到主界面。
package SMSPackage;

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

/*
学生管理系统
 */
public class StudentManager {
    public static void main(String[] args) {
        //创建集合对象,用于存储学生数据
        ArrayList<Student> students = new ArrayList<Student>();

        //用循环完成再次回到主界面
        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、退出");
            System.out.println("----------------------------");
            System.out.print("请输入你的选择:");

            //用Scanner实现键盘录入数据,用line接收
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();

            //用switch语句完成操作的选择
            switch (line) {
                case "1":
                    addStudent(students);
                    break;
                case "2":
                    deleteStudent(students);
                    break;
                case "3":
                    updateStudent(students);
                    break;
                case "4":
                    findAllStudent(students);
                    break;
                case "5":
                    System.out.println("谢谢使用!");
                    System.exit(0); //JVM退出
            }
        }
    }
    //添加学生信息
    public static void addStudent(ArrayList<Student> students){}
    //查看学生信息
    public static void findAllStudent(ArrayList<Student> students){}
    //删除学生信息
    public static void deleteStudent(ArrayList<Student> students){}
    //修改学生信息
    public static void updateStudent(ArrayList<Student> students)
}

3、添加学生的代码编写

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

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

  1. 显示提示信息,提示要输入何种信息;
  2. 键盘录入学生对象所需要的数据;
  3. 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量;
  4. 将学生对象添加到集合中(保存);
  5. 给出添加成功提示;

3)调用方法。

注:学生学号重复问题的解决办法:

  1. 定义一个方法,对学号是否被使用进行判断:如果与集合中的某一个学号相同,返回true;如果都不相同,返回false;
  2. 在添加学生录入学号后调用该方法:如果返回true,弹出提示,重新输入学号;如果返回false,正常添加学生对象。
    //判断学号是否被使用
    public static  boolean isUsed(ArrayList<Student> students, String sid){
        //如果与集合中的某一个学号相同,返回true;如果都不相同,返回false
        boolean flag = false;

        for(int i = 0; i < students.size(); i++){
            Student stu = students.get(i);
            if(stu.getSid().equals(sid)){
                flag = true;
                break;
            }
        }

        return flag;
    }

    //添加学生信息
    public static void addStudent(ArrayList<Student> students) {
        //键盘录入学生对象所需要的信息,显示提示信息,提示要输入何种信息;
        Scanner sc = new Scanner(System.in);

        String sid; //学号
        //为了让程序能够回到这里,我们使用循环实现
        while(true) {
            System.out.print("请输入学生学号:");
            sid = sc.nextLine();
            if (isUsed(students, sid)) {
                System.out.println("你输入的学号已经被使用,请重新输入!");
            }else{
                break;
            }
        }
        System.out.print("请输入学生姓名:");
        String name = sc.nextLine();
        System.out.print("请输入学生年龄:");
        String age = sc.nextLine();
        System.out.print("请输入学生居住地:");
        String address = sc.nextLine();

        //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量;
        Student stu = new Student();
        stu.setSid(sid);
        stu.setName(name);
        stu.setAge(age);
        stu.setAddress(address);

        //将学生对象添加到集合中(保存);
        students.add(stu);

        //给出添加成功提示;
        System.out.println("添加学生成功!");
    }

4、查看学生的代码编写

1)用键盘录入选择查看所有学生信息;

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

  1. 判定集合中是否有数据,如果没有显示提示信息;
  2. 显示表头信息;
  3. 将集合中数据取出,按照对应格式显示学生信息,年龄显示补充“岁”。

3)调用方法。

    //查看学生信息
    public static void findAllStudent(ArrayList<Student> students) {
        //判断集合中是否有数据,如果没有则显示提示信息
        if (students.size() == 0) {
            System.out.println("无信息,请先添加信息再查询!");
            return;
        }

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

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

5、删除学生的代码编写

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

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

  1. 显示提示信息;
  2. 键盘录入要删除的学生学号;
  3. 遍历集合将对应学生对象从集合中删除;
  4. 给出删除成功的提示。

3)调用方法。

    //删除学生信息
    public static void deleteStudent(ArrayList<Student> students) {
        //键盘录入要删除的学生学号,显示提示信息
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入你要删除的学生的学号:");
        String sid = sc.nextLine();

        int index = -1; //找到对应的索引
        //判断该学号是否存在
        for(int i = 0; i < students.size(); i++){
            Student s = students.get(i);
            if(s.getSid().equals(sid)){ //如果集合中存在该学号的学生
                index = i;
                break;
            }
        }
        if(index == -1){ //集合中找不到该学号的学生
            System.out.println("该学生信息不存在,请重新输入!");
        }else{
            students.remove(index);
            //给出删除成功的提示
            System.out.println("删除成功!");
        }
    }

6、修改学生的代码编写

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

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

  1. 显示提示信息;
  2. 键盘录入要修改的学生学号;
  3. 键盘录入要修改的学生信息;
  4. 遍历集合,修改对应的学生信息;
  5. 给出修改成功提示。

3)调用方法

    //修改学生信息
    public static void updateStudent(ArrayList<Student> students) {
        //键盘录入要修改的学生学号,显示提示信息;
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入你要修改的学生的学号:");
        String sid = sc.nextLine();

        int index = -1; //找到对应的索引
        //判断该学号是否存在
        for(int i = 0; i < students.size(); i++){
            Student s = students.get(i);
            if(s.getSid().equals(sid)){ //如果集合中存在该学号的学生
                index = i;
                break;
            }
        }
        if(index == -1){ //集合中找不到该学号的学生
            System.out.println("该学生信息不存在,请重新输入!");
        }else {
            //键盘录入要修改的学生信息;
            System.out.print("请输入学生新姓名:");
            String name = sc.nextLine();
            System.out.print("请输入学生新年龄:");
            String age = sc.nextLine();
            System.out.print("请输入学生新居住地:");
            String address = sc.nextLine();

            //创建新学生对象
            Student stu = new Student();
            stu.setSid(sid);
            stu.setName(name);
            stu.setAge(age);
            stu.setAddress(address);

            //遍历集合,修改对应的学生信息;
            students.set(index, stu); //修改指定索引处的元素,返回被修改的元素
            //给出修改成功提示。
            System.out.println("修改成功!");
        }
    }

7、运行结果

------欢迎来到学生管理系统------
1、添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
----------------------------
请输入你的选择:1
请输入学生学号:11111111
请输入学生姓名:张三丰
请输入学生年龄:18
请输入学生居住地:安徽
添加学生成功!
------欢迎来到学生管理系统------
1、添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
----------------------------
请输入你的选择:1
请输入学生学号:22222222
请输入学生姓名:张四丰
请输入学生年龄:19
请输入学生居住地:浙江
添加学生成功!
------欢迎来到学生管理系统------
1、添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
----------------------------
请输入你的选择:4
学号			姓名		年龄		居住地
11111111	张三丰	18岁	安徽
22222222	张四丰	19岁	浙江
------欢迎来到学生管理系统------
1、添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
----------------------------
请输入你的选择:3
请输入你要修改的学生的学号:22222222
请输入学生新姓名:张四四
请输入学生新年龄:20
请输入学生新居住地:四川
修改成功!
------欢迎来到学生管理系统------
1、添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
----------------------------
请输入你的选择:4
学号			姓名		年龄		居住地
11111111	张三丰	18岁	安徽
22222222	张四四	20岁	四川
------欢迎来到学生管理系统------
1、添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
----------------------------
请输入你的选择:5
谢谢使用!

posted on 2022-09-18 15:48  啊噢1231  阅读(204)  评论(0编辑  收藏  举报

导航

回到顶部