目录
一、项目简介
1.功能描述:
学生基本信息管理系统
提供一个简单、方便的管理界面,帮助管理员高效地管理学生信息
1.1查询功能:根据学号、姓名,查询特定学生的信息。
1.2增加功能:输入新学生的所有信息,并将这些信息添加到系统文件中。
1.3删除功能:根据查询条件,删除满足条件的学生信息。
1.4修改功能:修改已存在学生的信息。
2.主要任务:
系统整体设计;编写学生信息管理系统的核心代码;
对系统进行功能测试,确保各个功能模块能够正常工作
- 功能架构图
图1-系统功能架构图
三、个人任务简述
1. 完成的任务与功能:
序号 | 完成功能与任务 | 描述 |
1 | 面向对象设计 | 使用了面向对象技术设计系统,将学生基本信息的八个组成部分封装成学生基本信息类,方便后续的增删改查工作。 |
2 | GUI界面设计 | 使用了GUI图形界面,提高了系统交互性,使界面变得简洁大方更加美观,同时避免了传统命令行界面的繁琐操作,提高了工作效率。 |
3 | 学生基本信息的增删改查 | 采用数组的形式存放录入的学生信息,并进行增删改查。使用GUI事件处理,创建监听类实现相关功能 |
4 | 学生基本信息的保存 | 使用txt文件来进行数据持久化的操作 |
表1-个人任务简述表
四、本人负责功能详解
- *面向对象设计
图3-StudentInformation类和StudentUI类的UML类图
图4-StudentListen类的uml类图
图5-包图
- *StudentInformation类
2.1功能概述:
定义一个名为StudentInformation的类,代表学生信息
2.2使用技术
使用了Java编程语言中的面向对象编程(OOP)技术
2.3关键代码截图
图
图6-StudentInformation类关键代码截图
- StudentUI类:
3.1功能概述:
创建一个图形用户界面(GUI),用于学生信息管理系统。
包括一个主窗口,一个面板用于显示操作相关的内容和五个按钮用于增删改查和保存学生信息。同时为每个按钮设置了事件监听器,以便在按钮被点击时执行相应的操作。
3.2使用技术:Java Swing
具体使用了以下Swing组件和技术:
- JFrame:创建应用程序的主窗口。
- JButton:创建可交互的按钮。
- JPanel:创建一个面板,用于组织其他组件。
- Color:设置组件的颜色。
- ActionListener:监听用户的动作事件
3.3关键代码截图:
图7-StudentUI类关键代码截图
3.4遇到的难点和解决方式:
进行GUI图形界面编程时使用null布局,要为每个组件(如按钮和面板)手动设置位置和大小。
对这项技术的不熟练导致我刚开始运行出来的窗口页面大小不能满足需要。通过不断调整窗口大小解决了问题。
4.StudentListen类
4.1功能概述
实现了 ActionListener 接口的事件监听类,用于监听按钮的点击事件,并根据不同的按钮对学生信息执行增删改查等不同操作。
(1)StudentListen类
用于处理不同按钮的点击事件
(2)Jbutton类
专门用于处理增加学生信息界面的按钮事件
(3)Jbutton2类
专门用于处理删除学生信息界面的按钮事件
(4)Jbutton3类
专门用于处理修改学生信息界面的按钮事件
(5)Jbutton4类
专门用于处理增加学生信息界面的按钮事件
4.2使用技术
图8-StudentListen及其内部类方法结构图
使用到的技术:
1. Java Swing组件:创建图形用户界面(GUI),例如 JFrame, JPanel, JButton, JLabel, JTextField, JTextArea, JScrollPane。
2. GUI事件处理:通过实现 ActionListener 接口并覆盖 actionPerformed 方法来响应用户的动作事件。
3. 输入/输出(I/O):使用 FileOutputStream 类来将数据写入文件。
4. 异常处理:使用 try-catch 块来处理可能发生的异常,如 IOException。
5. 控制流:使用 if-else 条件语句和 while 循环来控制程序的执行流程。
6. 数组:使用数组来存储 JButton, JLabel, JTextField 对象和学生信息。
7.面向对象编程(OOP):通过创建类和对象,以及使用构造函数来初始化对象状态。
4.3关键代码截图、功能效果图
4.3.1增加学生信息
图9-Jbutton类关键代码截图
图10-添加学生功能截图
4.3.2修改学生信息
图11-Jbutton2类关键代码截图
图12-删除学生功能截图
4.3.3修改学生信息
先查询后修改
图13、14-Jbutton3类关键代码截图
图15-修改学生信息功能截图
4.3.4查询学生信息
图16-Jbutton4类关键代码截图
图17-查找学生功能截图
4.3.5保存学生信息
图18-保存学生信息关键代码截图
图19-20保存学生信息截图
五、课程设计感想
1.此次课程设计的完成,对我来说更多的是学习的过程。我初步学习了javaSwing,通过这项技术我可以轻松地创建出具有丰富视觉效果和交互性的应用程序。相比原来那个小框更加直观。在学习过程中,我掌握了如何使用这些组件和GUI事件处理机制,还深入了解了Java的面向对象编程思想。下图附上学习过程中整理的思维导图:
图21-javaSwing部分知识结构图
2.在课设过程中,我更加深刻地体悟到了Java作为一门不同于c的编程语言,它的高效性,以及作为一门面向对象的编程语言,它封装继承多态的特性能够使代码更加模块化和可重用。此次课程设计让我深入了解了Java编程思想和设计模式。我相信这些知识和技能将对我未来的学习产生非常积极的影响。
3.本次课程设计过程,我学会了使用Cursor这一工具,大大地提高了我的编程效率。
4.学习JavaSwing的过程中用思维导图的方式进行知识整理,感受到了它的方便和直观。
六、展望
可写两部分内容:
- 本次完成的项目存在的不足:保存后的文件无法被查询和修改。原因是一开始的思路和我想实现的效果有偏差,但是由于能力水平限制和时间问题,暂时没能够完成。我的改进思路是:程序一开始首先读取txt文件中所有学生信息,并转化为StudentInformation对象的列表。然后对这个列表进行增删改查,并写入文件。
2. 可选:
- 课设后进一步学习JavaSwing技术、Mysql技术。这次课设中因为时间和自身能力水平的关系,没能使用数据库来进行数据持久化操作。希望利用寒假时间,学会使用数据库存储提供的丰富的查询和管理工具。同时,我希望能进一步学习JavaSwing这项技术,更全面更深入地学习图形界面应用开发。