IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java学生管理系统学习笔记 -> 正文阅读

[Java知识库]Java学生管理系统学习笔记

学了一段时间的Java,但是总有一些困惑,于是写了这篇文章,来帮助理解Java中的ArrayList,以及完成一个简单的学生管理系统

先看最终成果:

java学生管理系统演示


让我们先来分析一下学生管理系统的组成

作为一个学生管理系统来说,其作用就是为了管理学生,所以,我计划从以下几个方面来完成这个学生管理系统
  1. 主界面

  2. 添加学生

  3. 查看学生

  4. 修改学生

  5. 删除学生……

还有一些小bug的修复


关于主界面的编写

一、打开Java开发工具:IDEA,在里面创建一个学生类(Student),并填写好相关信息。

  1. 添加学生的 学 号 , 姓 名 \color{red}{学号},\color{red}{姓名} 年 龄 \color{red}{年龄} 家 庭 住 址 \color{red}{家庭住址} 信息,为了保证数据不被其他类更改,所以使用private关键字进行修饰。

2.由于使用了private关键字修饰了这个学生类,所以必须使用 ( g e t / s e t ) 方 法 \color{red}{(get/set)方法} get/set 进行学生信息的设置和读取,这里以获取学生的年龄为例,获取学生其他信息类似:

//设置年龄的成员方法
  public void setAge(String age) {
        this.age = age;
    }
/*
    其中该方法不需要static关键字也不需要返回值,方法名为需要获取的变量,首字母大写
    this是一个修饰符,this.age指代的是成员变量中的age,
    用this修饰之后,就不会和setAge方法中的形参age冲突
*/
    public String getAge() {
        return age;
    }
/*
    该方法用于获取被private关键字修饰的成员变量的值,也不需要static关键字进行修饰,
    但是不同的是,改方法是获取变量值的,所以需要用String类型进行修饰,
    又因为改方法中不存在变量名重复问题,返回的age就是成员变量age
*/

3.无参构造方法和带参构造方法的编写( 构 造 方 法 主 要 用 于 创 建 对 象 \color{red}{构造方法主要用于创建对象}

无参构造方法

//    无参构造
    public Student(){}

带有参数的构造方法

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

二、新建一个学生测试类(Student Manager),用于编写主界面

1.写出学生管理系统的主界面

public static void main(String[] args) {
        ArrayList<Student> arr=new ArrayList<Student>();
        System.out.println("----欢迎进入学生管理系统----");
        System.out.println("1.添加学生信息");
        System.out.println("2.查看学生信息");
        System.out.println("3.删除学生信息");
        System.out.println("4.修改学生信息");
        System.out.println("退出系统")
      System.out.println("请输入您想要进行的操作,回车键进入:");
    }

2.使用switch语句接收键盘录入的选项

//导包
        Scanner sc = new Scanner(System.in);
        //定义一个变量,用键盘接收录入的值,然后进行判断
        int num = sc.nextInt();
        switch (num) {
            case 1:
                System.out.println("添加学生信息成功");
                break;
            case 2:
                System.out.println("查看学生信息成功");
                break;
            case 3:
                System.out.println("删除学生信息成功");
                break;
            case 4:
                System.out.println("修改学生信息成功");
                break;
            case 5:
                System.out.println("退出系统成功");
                break;
            default:
                System.out.println("该功能暂不支持,请等待后续版本更新");
        }

3.至此主界面的编写就完成了,准备开始编写程序具体内容的实现代码


添加学生页面的编写

定义一个集合,用于存储学生对象,这个集合的名字是arr

ArrayList<Student> arr=new ArrayList<Student>();
/*
这个集合的名字是arr,又因为这个集合里面存储的是学生信息,
所以该集合的数据类型是Student
*/

定义一个方法(addStudent),用于添加学生功能的实现

分析一下问题,不难得出,由于是添加信息,所以 不 需 要 返 回 值 \color{#FF3030}{不需要返回值} ;又因为需要将信息添加到集合中,所以 需 要 一 个 集 合 类 型 的 参 数 a r r \color{#FF3030}{需要一个集合类型的参数arr} arr方法写完之后,不要忘记调用方法哦

public static void addStudent(ArrayList<Student> arr){
        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);
//        将对象添加到集合中
        arr.add(s);
        System.out.println("添加成功!");

查看学生页面的编写

分析思路如下:

1.首先使用输出语句,将表头进行输出

2.使用 a r r . s i z e ( ) \color{red}{arr.size()} arr.size() a r r . g e t ( ) \color{red}{arr.get()} arr.get()方法获取集合的长度和指定索引处的元素值

3创建一个对象s用于保存获取到的索引处的元素值

4.使用循环将学生信息输出即可

public static void findAllStudent(ArrayList<Student> arr) {
//        表头信息编写
        System.out.println("学号\t\t姓名\t\t年龄\t\t家庭住址\t\t");
        for (int i = 0; i < arr.size(); ++i) {
//            创建一个变量s来接收arr.get(i);这个方法的返回值
            Student s = arr.get(i);
            System.out.println(s.getSid() + "" + s.getName() + "" + s.getAge() + "" + s.getAddress());
        }
    }

删除学生页面的编写

分析思路如下:

1.输入提示信息提供用户输入要删除的学号

2.创建变量接收用户输入的数据

3.遍历集合,得到每一个学生对象

4.调用方法( g e t S i d \color{red}{getSid} getSid)获得学生对象中的学号信息,并与键盘输入的进行比较( e q u a l s \color{red}{equals} equals);如果相同,则进行删除操作

public static void deleteStudent(ArrayList<Student> arr) {
        Scanner sc = new Scanner(System.in);
//        提示用户输入
        System.out.println("请输入您需要删除学生的学号:");
        String sid = sc.nextLine();//变量sid接收输入的值
//        创建变量并接收学生学号
//        使用循环进行遍历
        for (int i = 0; i < arr.size(); i++) {
    //
        Student s = arr.get(i);
            if (s.getSid().equals(sid)) {
                arr.remove(i);
            }
            System.out.println("删除成功!");
        }

修改学生页面的编写

分析思路如下:

1.给出提示信息并保存用户输入的学生数据

2.使用 s e t ( ) 方 法 \color{red}{set()方法} set()对学生信息进行修改

3.遍历学生对象,如果学生的学号和键盘录入的学生学号相同,则进行修改操作,并给出修改成功的提示

public static void updateStudent(ArrayList<Student> arr) {
        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);
//        遍历学生信息
        for (int i = 0; i < arr.size(); i++) {
//           获取每个学生对象
            Student student = arr.get(i);
            if (student.getSid().equals(sid))
                //使用集合进行学生信息的修改
                arr.set(i, s);
            break;

        }
        System.out.println("修改成功!");
    }

到这里,一个简单的学生管理系统大致就做好了,当然还有一些小bug,比如学号重复,学号不存在等等,我相信根据上面的案例,您应该也能将这些bug修复啦,有什么不理解的可以联系我,也欢迎您的批评指正,谢谢您了。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 22:56:58  更:2022-01-29 22:57:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:44:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码