学生管理系统项目开发实战—JAVA

  • 项目下载地址:
  • 一、项目介绍
  • 二、开发前的准备
  • 2.1JAVA开发环境
  • 2.2JAVA编程语言基础
  • 2.3IntelliJ IDEA 开发工具
  • 三、开发实战
  • 3.1创建项目
  • 3.2项目中的包和类
  • 3.3实现思路
  • 3.3.1项目实现思路
  • 3.3.2主界面实现思路
  • 3.3.3添加学生方法实现思路
  • 3.3.4查看学生信息方法实现思路
  • 3.3.5删除学生信息方法实现思路
  • 3.3.6修改学生信息方法实现思路
  • 3.3.7判断学号是否被使用方法实现思路
  • 4.编写代码,实现功能
  • 5.编码完成,运行测试。


一、项目介绍

本项目是使用JAVA编程语言开发一个简单的学生管理系统。该项目用于整合JAVA编程语言的基础知识,用较为简单的技术,实现相关的功能。本项目不涉及数据库以及Swing等技术,相关的操作在控制台完成。

这个项目用于JAVA初学者整合基础知识的编程实战,希望有所帮助。大神路过勿喷,谢谢。


二、开发前的准备

2.1JAVA开发环境

这个练习的小项目开发的时候是使用的JDK11版本,要是你用过的
(未配置JAVA开发环境的童鞋请先配置JAVA开发环境。可以参照下面链接中的博文进行JAVA开发环境的配置:
链接(JDK1.8版本的配置方法,其他版本的雷同):
JDK下载安装:
JDK下载安装,详情点这里!!!配置JAVA环境变量:
配置JAVA环境变量,详情点击这里!!!

2.2JAVA编程语言基础

开发本项目首先需要学习JAVA编程语言的基础,有知识储备才能更好的完成。

2.3IntelliJ IDEA 开发工具

本练习项目是使用IntelliJ IDEA 这个开发工具来完成的,当然这个看个人习惯,如果习惯用Eclipse开发工具的话,效果也是一样的。

使用Eclipse工具开发可以参照下面的链接:
Eclipse下载安装教程,点击这里!!!


三、开发实战

3.1创建项目

首先使用开发工具创建个项目,我将这个项目命名为:student-management-system。具体的流程再此不做赘述。

3.2项目中的包和类

创建好项目后,在该项目下创建对应的包和类(如下图所示),因为这个项目只是用来整合知识作为学习过程中的一个小练习的,所以只有Student和StudentManage两个类。(请自动忽略下面的META-INF目录)

java开发项目实例 java项目开发完整案例_JAVA

3.3实现思路

3.3.1项目实现思路

  • 1.定义学生类
  • 2.编写显示主界面
  • 3.添加学生
  • 4.查看学生
  • 5.删除学生
  • 6.修改学生

3.3.2主界面实现思路

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

3.3.3添加学生方法实现思路

  • 1.显示提示信息
  • 2.键盘录入学生对象需要的数据
  • 3.创建学生对象,将键盘录入的数据赋值给学生对象的成员变量
  • 4.将学生对象添加到集合中
  • 5.给出添加成功提示

3.3.4查看学生信息方法实现思路

  • 1.判断集合中是否有数据,如果有数据,显示学生信息,如果没有,显示提示信息
  • 2.显示表头信息
  • 3.将集合中的的数据取出,按照对应格式显示学生信息

3.3.5删除学生信息方法实现思路

  • 1.显示提示信息
  • 2.键盘录入要删除的学生学号
  • 3.判断还学生是否存在,存在,执行删除操作,不存在,提示不存在
  • 4.提示删除成功

3.3.6修改学生信息方法实现思路

  • 1.显示提示信息
  • 2.键盘录入要修改的学生的学号
  • 3.判断该学生是否存在,如果不存在,执行操作,如果存在,输出提示信息
  • 4.遍历集合修改对应的学生信息
  • 5.提示修改成功

3.3.7判断学号是否被使用方法实现思路

  • 1.对学号是否被使用进行判断,如果学号和集合中的某位学生的学号相同返回true,不相同返回false
  • 2.在添加学生录入学号后调用该方法

4.编写代码,实现功能

Student类:

package com.yanqi.student;

/**
 * 描述:学生类
 *
 * @author: 7lvbingniang
 * @date: 2020/10/29
 * CSDN-URL:sev7lvbingniang.blog.csdn.net
 * 博客园-URL:
 */
public class Student {
    private String sid;//学号
    private String name;//姓名
    private String age;//年龄
    private String address;//居住地

    /**
     * 无参构造方法
     */
    public Student() {
    }

    /**
     * 带参数的构造方法
     * @param sid
     * @param name
     * @param age
     * @param address
     */
    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 sid;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

StudentManagement类:

package com.yanqi.student;


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

/**
 * 描述:学生管理系统
 *
 * 实现思路:
 * 1.定义学生类
 * 2.编写显示主界面
 * 3.添加学生
 * 4.查看学生
 * 5.删除学生
 * 6.修改学生
 *
 * @author: 7lvbingniang
 * @date: 2020/10/29
 * CSDN-URL:sev7lvbingniang.blog.csdn.net
 * 博客园-URL:
 */
public class StudentManage {
    public static void main(String[] args) {

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

        //创建集合对象,用于存储学生数据
        ArrayList<Student> arrayList = 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("请输入你的选择:");

            //Scanner实现键盘录入数据
            Scanner input = new Scanner(System.in);
            String line = input.nextLine();

            //使用switch语句完成操作的选择
            switch (line) {
                case "1":
                    //System.out.println("添加学生");
                    addStudent(arrayList);//调用addStudent方法,实现添加学生
                    break;
                case "2":
                    //System.out.println("删除学生");
                    deleteStudent(arrayList);
                    break;
                case "3":
                    //System.out.println("修改学生");
                    updateStudent(arrayList);
                    break;
                case "4":
                    //System.out.println("查看所有学生");
                    findAllStudent(arrayList);//调用findAllStudent方法,实现查看所有学生
                    break;
                case "5":
                    System.out.println("谢谢使用");
                    //break;
                    System.exit(0);
            }
        }
    }

    //定义一个方法,用于添加学生信息
    public static void addStudent(ArrayList<Student> arrayList) {
        /*
         实现思路
         1.显示提示信息
         2.键盘录入学生对象需要的数据
         3.创建学生对象,将键盘录入的数据赋值给学生对象的成员变量
         4.将学生对象添加到集合中
         5.给出添加成功提示
         */


        //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
        Scanner input = new Scanner(System.in);

        //为了让sid在循环外被访问到,所以把sid定义在循环外
        String sid;
        //为了让程序回到这里,使用while循环实现
        while(true){
            System.out.println("请输入学生学号:");
            sid = input.nextLine();

            boolean flag = isUsed(arrayList,sid);
            if (flag){//判断学号是否被占用
                System.out.println("你输入的学号已经被使用,请重新输入");
            }else{
                break;
            }
        }


        System.out.println("请输入学生姓名:");
        String name = input.nextLine();
        System.out.println("请输入学生年龄:");
        String age = input.nextLine();
        System.out.println("请输入学生居住地:");
        String address = input.nextLine();

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

        //将学生信息添加到集合中
        arrayList.add(student);

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

    //定义一个方法,用于查看学生信息
    public static void findAllStudent(ArrayList<Student> arrayList) {
        /*
        实现思路:
        1.判断集合中是否有数据,如果有数据,显示学生信息,如果没有,显示提示信息
        2.显示表头信息
        3.将集合中的的数据取出,按照对应格式显示学生信息
         */

        //判断集合中是否有数据,如果没有,显示提示信息
        if (arrayList.size() == 0){
            System.out.println("无信息,请先添加学生信息!");
            //为了让程序不再继续执行,给出return
            return;
        }

        //如果集合中有数据,显示表头信息
        System.out.println("学号\t姓名\t年龄\t居住地");

        //将集合中的数据按照对应格式显示学生信息
        for (int i = 0; i < arrayList.size(); i++) {
            Student student = arrayList.get(i);
            System.out.println(student.getSid() + "\t\t" + student.getName() + "\t\t" + student.getAge() + "岁\t\t" + student.getAddress());
        }
    }

    //定义一个方法,用于删除学生信息
    public static void deleteStudent(ArrayList<Student> arrayList){
        /*
        实现思路:
        1.显示提示信息
        2.键盘录入要删除的学生学号
        3.判断还学生是否存在,存在,执行删除操作,不存在,提示不存在
        4.提示删除成功
         */

        //键盘录入要删除学生的学号,显示提示信息
        Scanner input = new Scanner(System.in);

        System.out.println("请输入你要删除的学生的学号:");
        String sid = input.nextLine();

        /*
        执行删除操作前,对学生学号是否存在进行判断
        如果不存在,显示提示信息
        如果存在,执行删除操作
         */
        int index = -1;//索引
        for (int i = 0; i < arrayList.size(); i++) {
            Student student = arrayList.get(i);
            if (student.getSid().equals(sid)){
                index = i;
                break;
            }
        }
        if (index == -1){
            System.out.println("该信息不存在,请重新输入");
        }else{
            arrayList.remove(index);
            System.out.println("删除成功");
        }

    }

    //定义一个方法,用于修改学生信息
    public static void updateStudent(ArrayList<Student> arrayList){

        /*
        实现思路:
        1.显示提示信息
        2.键盘录入要修改的学生的学号
        3.判断该学生是否存在,如果不存在,执行操作,如果存在,输出提示信息
        4.遍历集合修改对应的学生信息
        5.提示修改成功
         */

        //显示提示信息,键盘录入要修改的学生学号
        Scanner input = new Scanner(System.in);
        System.out.println("请输入你要修改的学生的学号:");
        String sid = input.nextLine();

        /*
        执行修改操作前,对学生学号是否存在进行判断
        如果不存在,显示提示信息
        如果存在,执行修改操作
         */
        int index = -1;//索引
        for (int i = 0; i < arrayList.size(); i++) {
            Student student = arrayList.get(i);
            if (student.getSid().equals(sid)){
                index = i;
                break;
            }
        }
        if (index == -1){
            System.out.println("该信息不存在,请重新输入");
        }else{
            //键盘录入要修改的学生对象
            System.out.println("请输入学生新姓名:");
            String name = input.nextLine();
            System.out.println("请输入学生新年龄:");
            String age = input.nextLine();
            System.out.println("请输入学生新居住地:");
            String address = input.nextLine();

            //创建学生对象,传入新的学生信息
            Student student = new Student();

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

            //遍集合修改对应的学生信息
            for (int i = 0; i < arrayList.size(); i++) {
                Student student1 = arrayList.get(i);
                if (student1.getSid().equals(sid)){
                    arrayList.set(i,student);
                    break;
                }
            }
            System.out.println("修改成功");
        }
    }

    //定义一个方法,判断学号是否被使用
    public static boolean isUsed(ArrayList<Student> arrayList,String sid){
        /*
        实现思路:
        1.对学号是否被使用进行判断,如果学号和集合中的某位学生的学号相同返回true,不相同返回false
        2.在添加学生录入学号后调用该方法
         */

        //如果集合中的某一个学生学号相同,返回true;如果都不行同,返回false;
        boolean flag = false;

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

5.编码完成,运行测试。

java开发项目实例 java项目开发完整案例_java_02


简简单单,大功告成,不必熬夜伤身体,明天又是一个美好的星期六!!!

希望有所帮助!!!
再见!!!