JAVA项目 信息管理系统

这篇博客详细介绍了使用JAVA实现信息管理系统的过程,包括案例驱动模式、分类思想、分包思想的应用,以及如何构建学生和老师管理系统。同时,深入探讨了static关键字的使用,包括其特点和注意事项。
摘要由CSDN通过智能技术生成

1.案例驱动模式

1.1案例驱动模式概述 (理解)

通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题

1.2案例驱动模式的好处 (理解)

  • 解决重复代码过多的冗余,提高代码的复用性
  • 解决业务逻辑聚集紧密导致的可读性差,提高代码的可读性
  • 解决代码可维护性差,提高代码的维护性

2.分类思想

2.1分类思想概述 (理解)

分工协作,专人干专事

2.2信息管理系统 (理解)

  • Student类 标准学生类,封装键盘录入的学生信息(id , name , age , birthday)

  • StudentDao类 Dao : (Data Access Object 缩写) 用于访问存储数据的数组或集合

  • StudentService类 用来进行业务逻辑的处理(例如: 判断录入的id是否存在)

  • StudentController类 和用户打交道(接收用户需求,采集用户信息,打印数据到控制台)

在这里插入图片描述

3.分包思想

3.1分包思想概述 (理解)

如果将所有的类文件都放在同一个包下,不利于管理和后期维护,所以,对于不同功能的类文件,可以放在不同的包下进行管理

3.2包的概述 (记忆)

  • 本质上就是文件夹

  • 创建包

    多级包之间使用 " . " 进行分割
    多级包的定义规范:公司的网站地址翻转(去掉www)
    比如:网址为www.abc.com
    后期我们所定义的包的结构就是:com.abc.其他的包名

  • 包的命名规则

    字母都是小写

3.3包的注意事项 (理解)

  • package语句必须是程序的第一条可执行的代码
  • package语句在一个java文件中只能有一个
  • 如果没有package,默认表示无包名

3.4类与类之间的访问 (理解)

  • 同一个包下的访问

    不需要导包,直接使用即可

  • 不同包下的访问

    1.import 导包后访问

    2.通过全类名(包名 + 类名)访问

  • 注意:import 、package 、class 三个关键字的摆放位置存在顺序关系

    package 必须是程序的第一条可执行的代码

    import 需要写在 package 下面

    class 需要在 import 下面

4.信息管理系统

4.1系统介绍 (理解)

在这里插入图片描述

4.2学生管理系统 (应用)

4.2.1需求说明
  • 添加学生: 键盘录入学生信息(id,name,age,birthday)

    使用数组存储学生信息,要求学生的id不能重复

  • 删除学生: 键盘录入要删除学生的id值,将该学生从数组中移除,如果录入的id在数组中不存在,需要重新录入

  • 修改学生: 键盘录入要修改学生的id值和修改后的学生信息

    将数组中该学生的信息修改,如果录入的id在数组中不存在,需要重新录入

  • 查询学生: 将数组中存储的所有学生的信息输出到控制台

4.2.2实现步骤
  • 环境搭建实现步骤

    存储的类 作用
    com.itheima.edu.info.manager.domain Student.java 封装学生信息
    com.itheima.edu.info.manager.dao StudentDao.java 访问存储数据的数组,进行赠删改查(库管)
    com.itheima.edu.info.manager.service StudentService.java 业务的逻辑处理(业务员)
    com.itheima.edu.info.manager.controller StudentController.java 和用户打交道(客服接待)
    com.itheima.edu.info.manager.entry InfoManagerEntry.java 程序的入口类,提供一个main方法
  • 菜单搭建实现步骤

    • 需求
      • 管理系统菜单搭建
      • 学生管理系统菜单搭建
    • 实现步骤
      1. 展示欢迎页面,用输出语句完成主界面的编写
      2. 获取用户的选择,用Scanner实现键盘录入数据
      3. 根据用户的选择执行对应的操作,用switch语句完成操作的选择
  • 添加功能实现步骤

在这里插入图片描述

  • 添加功能优化:判断id是否存在

在这里插入图片描述

  • 查询功能实现步骤

在这里插入图片描述

  • 删除功能实现步骤

在这里插入图片描述

  • 修改功能实现步骤

在这里插入图片描述

  • 系统优化

    • 把updateStudent和deleteStudentById中录入学生id代码抽取到一个方法(inputStudentId)中
      该方法的主要作用就是录入学生的id,方法的返回值为String类型
  • 把addStudent和updateStudent中录入学生信息的代码抽取到一个方法(inputStudentInfo)中
    该方法的主要作用就是录入学生的信息,并封装为学生对象,方法的返回值为Student类型

4.2.3代码实现

学生类

public class Student {
   
    private String id;
    private String name;
    private String age;
    private String birthday;
    String address;

    public Student() {
   
    }

    public Student(String id, String name, String age, String birthday) {
   
        this.id = id;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getId() {
   
        return id;
    }

    public void setId(String id) {
   
        this.id = id;
    }

    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 getBirthday() {
   
        return birthday;
    }

    public void setBirthday(String birthday) {
   
        this.birthday = birthday;
    }

}

程序入口InfoManagerEntry类

public class InfoManagerEntry {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);
        while (true) {
   
            // 主菜单搭建
            System.out.println("--------欢迎来到信息管理系统--------");
            System.out.println("请输入您的选择: 1.学生管理  2.老师管理  3.退出");
            String choice = sc.next();
            switch (choice) {
   
                case "1":
                    // System.out.println("学生管理");
                    // 开启学生管理系统
                    StudentController studentController = new StudentController();
                    studentController.start();
                    break;
                case "2":
                    System.out.println("老师管理");
                    TeacherController teacherController = new TeacherController();
                    teacherController.start();
                    break;
                case "3":
                    System.out.println("感谢您的使用");
                    // 退出当前正在运行的JVM虚拟机
                    System.exit(0);
                    break;
                default:
                    System.out.println("您的输入有误, 请重新输入");
                    break;
            }
        }
    }
}

StudentController类

public class StudentController {
   
    // 业务员对象
    private StudentService studentService = new StudentService();

    private Scanner sc = new Scanner(System.in);

    // 开启学生管理系统, 并展示学生管理系统菜单
    public void start() {
   
        //Scanner sc = new Scanner(System.in);
        studentLoop:
        while (true) {
   
            System.out.println("--------欢迎来到 <学生> 管理系统--------");
            System.out.println("请输入您的选择: 1.添加学生  2.删除学生  3.修改学生  4.查看学生  5.退出");
            String choice = sc.next();
            switch (choice) {
   
                case "1":
                    // System.out.println("添加");
                    addStudent();
                    break;
                case "2":
                    // System.out.println("删除");
                    deleteStudentById();
                    break;
                case "3":
                    // System.out.println("修改");
                    updateStudent();
                    break;
                case "4":
                    // System.out.println("查询");
                    findAllStudent(<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值