• 第二十四章《学生信息管理系统》第1节:学生信息管理系统简介


    学生信息管理系统用于管理学生基本信息,该系统除能够大大的帮助学籍管理人员提高工作效率。本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。

    24.1.1系统功能简介

    学生信息管理系统集信息展示、查询、增删和修改多种功能为一体,该系统的主界面如图24-1所示。

    图24-1学生信息管理系统主界面

    从图24-1可以看出:学生信息管理系统具有数据分页浏览、查询、新增、删除、修改及查看学生信息详情等功能。其中查询功能又可以按照用户指定的条件完成查询,用户可以按姓名、按性别和班级查询。如果用户没有指定任何查询条件,则显示系统中全部数据。

    当单击“新增”按钮时,系统会弹出新增学生信息对话框,如图24-2所示。

    图24-2 新增学生信息对话框

    当用户在如图24-2所示的对话框中填写学生的各项信息后,单击“确定”按钮即可新增一条学生信息,如果所填写的信息有误,系统会弹出相应的对话框给予提示,例如,当新增学生的学号与原有学号重复时,会弹出如图24-3所示的对话框。

    图24-3提示对话框

    用户如果希望删除某一条学生信息,则可以先从如图24-1所示窗体的表格中选择一条信息,然后单击“删除”按钮即可。为防止出现误删除的情况,每次删除操作前系统都会弹出对话框向用户确认是否要删除这条信息。

    修改学生信息也需要先选定待修改的信息,如果没有选定,系统会提示用户先完成选定操作。当选定一条学生信息后,单击“修改”按钮即可打开修改学生信息对话框。对话框内会自动把该学生的各项信息显示到相应的文本框中,例如选定图24-1所示界面中第一条学生信息后,单击“修改”按钮后所弹出的对话框如图24-4所示。

    图24-4修改学生信息对话框

    从图24-4可以看出:修改学生信息对话框和新增学生信息对话框是完全一样的,只是修改学生信息对话框中的学号文本框是只读状态,无法修改其内容。

    用户如果需要查询特定的学生信息,可以先用组合框选择一个查询条件,然后在文本框中填写查询关键字,最后单击“查询”按钮即可完成查询,例如希望查询所有女生的信息,则可以先在图24-1所示窗体的组合框中选择“性别”选项,然后在文本框中填写关键字“女”,单击“查询”按钮即可查询到所有女生的信息。查询出的信息以分页的形式显示,这样的显示形式更容易浏览。主窗体界面下方设置了四个翻页按钮以方便用户查看数据,并且在界面正下方还显示出数据的总页数和当前页数。

    24.1.2数据库表设计

    本系统只保存学生信息,因此只有一张用于保存学生信息的student表,这张数据表位于一个名为student的数据库中,其字段如图24-5所示。

    图24-5 student表结构

    读者在运行项目前需要先在student数据库中创建student表。

    24.1.3项目结构简介

    学生信息管理系统总共有6个类,它们分别是:

    • Student:表示学生的类,它的属性分别与student表相对应。
    • StudentDao:操作student表的类,类中定义了增删改查学生信息的各种方法。
    • DBUtil:操作数据库工具类,提供了获得Connection对象和释放资源的方法。
    • MainFrame:学生信息管理系统的主窗体类。
    • DetailDialog:学生信息详情对话框,新增信息、修改信息、查看信息详情都使用这个对话框。
    • Main:包含main()方法的类,从main()方法启动主窗体。

    MainFrame是学生信息管理系统的主窗体,该窗体上有很多组件,这些组件都被定义为MainFrame类的属性,它们分别是:

    1. JTable table;//数据表格
    2. JScrollPane scrollPane;//表格所在的滚动面板
    3. Object[] columns;//表格列名称
    4. DefaultTableModel data;//表格的数据模型
    5. JComboBox jbcKeywords;// 查询关键字组合框
    6. JButton btnQuery;//查询按钮
    7. JButton btnAdd;//新增按钮
    8. JButton btnDelete;//删除按钮
    9. JButton btnUpdate;//更新按钮
    10. JButton btnDetail;//信息详情按钮
    11. JButton btnFirst;// 首页按钮
    12. JButton btnPreview;// 上一页按钮
    13. JButton btnNext;// 下一页按钮
    14. JButton btnLast;// 末页按钮
    15. JTextField txtKeywords;// 查询关键字文本框
    16. JLabel lblPage;// 页码标签

    DetailDialog表示信息详情对话框,单击“新增”、“修改”和“详情”这三个按钮时都会弹出这个对话框,只是在三种情况下弹出的对话框以不同的形式显示出来。如果是单击“新增”后弹出的对话框上所有的文本框中都没有任何信息,而单击“修改”时,对话框中会自动显示出要修改的学生信息,而单击“详情”按钮时,对话框中也会显示出要查看的学生信息,但这些信息都是不可编辑的。为了表示出不同模式的对话框,在DetailDialog类中定义了三个静态属性用以表示不同模式的对话框,它们分别是:

    1. public static final int ADD = 1;//新增模式
    2. public static final int UPDATE = 2;//修改模式
    3. public static final int DETAIL = 3;//详情模式

    当创建出一个DetailDialog类对象后,这个对象只能属于其中一种模式,因此在DetailDialog类中还定义了一个mode属性,这个属性表示当前DetailDialog类对象是哪一种模式,因此mode的值只能是上述静态属性中的一个。

    DetailDialog中所定义的组件如下:

    1. JLabel lblSid;//学号标签
    2. JTextField txtSid;//学号文本框
    3. JLabel lblName;//姓名标签
    4. JTextField txtName;//姓名文本框
    5. JLabel lblSex;//性别标签
    6. JRadioButton rbtMale;//单选按钮男
    7. JRadioButton rbtFemale;//单选按钮女
    8. ButtonGroup group;//按钮组
    9. JLabel lblClassId;//班级标签
    10. JTextField txtClassId;//班级文本框
    11. JLabel lblPhone;//家长手机标签
    12. JTextField txtPhone;//家长手机文本框
    13. JLabel lblInfo;//备注信息标签
    14. JTextArea txaInfo;//备注信息文本区
    15. JScrollPane scrollPane;//备注文本区的滚动面板
    16. JButton btnOK;//确定按钮
    17. JButton btnCancel;//取消按钮

    除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!

  • 相关阅读:
    iOS 修改文字大小以适配lable高度宽度
    匈牙利算法讲解
    开源的BLE_SPP OTA协议
    关于值传递和引用传递的问题记录
    C++ Reference: Standard C++ Library reference: Containers: deque: deque: swap
    Notes中的进度条
    用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
    [C++随笔录] string模拟实现
    vdsm:添加接口调试demo
    今年这300道Java岗面试真题,闷头硬背
  • 原文地址:https://blog.csdn.net/shalimu/article/details/128187171