Java课设学生信息管理
一、团队成员介绍、任务分配
成员姓名 | 班级 | 学号 | 任务分配 |
王威(组长) | 网络1911 | 201921123028 | 负责GUI界面设计、负责阿里代码检查规范、将项目打包成jar、使用git管理代码、UML图绘制 |
陈毅隆 | 网络1911 | 201921123018 | 负责该系统增、删、查、改、登录及数据存储功能操作的编写、负责学生和用户类的编写。 |
二、本项目的GIT地址
https://gitee.com/wang-wei123/wang-weis-java/tree/master/com
三、项目GIT提交记录截图
- 因为提交之前没有看到要求每个人都要提交,所以汇总好之后,一起提交的。
四、项目功能架构图
五、面向对象设计包图、UML类图
六、项目运行截图
- 登录界面
- 登录成功、主界面
- 菜单项目
- 添加学生
- 修改学生
- 查找学生
- 删除学生
七、项目关键代码分模块描述
-
学生信息修改功能:
- 在实现学生信息修改功能的时候,不知道怎么直接对文件的信息进行修改,因为通过文件输入输出流并不能对文件的内容进行操作,而只能对流进行操作,最后想到了先把所有数据导入到列表里面存储,然后把需要修改的数据删除,再在列表里新增修改后的信息,最后再把整个列表导入到文件里面,实现了对文件信息修改的功能。其中也涉及到了学习学习的新增、删除、查找功能。
- 关键代码截图
-
注册登录功能:
- 使用字符缓冲流,更有效率的对文件流进行操作;使用InputStreamReader字节流与字符流的桥梁,使读取的内容不会产生乱码。使用try…catch语句,提高系统安全性。
- 关键代码截图
-
LoginView登录界面
- 继承自JFrame,先new一个JFrame对象让其运行,在这个对象里面加入JPanel类型的面板,面板上加入按钮、文本框、标签之类的组件,然后再写那几个按钮组件的监听器即可,根据文本框里面输入的用户名和密码来判断登录操作是否成功,登录成功后,调用MainView界面。
- 关键代码截图
-
AddPanel增加学生界面
- 其继承自JPanel,可以利用无参构造方法来调用此界面,因为学生信息有8个类型,其中6个可以直接用文本框和标签构成,性别和政治面貌可以用JComboBox下拉列表选择和标签构成,上面同样有按钮,也要写监听器。
- 关键代码截图
-
DeletePanel删除学生面板
- 输入学号进行指定删除,继承自JPanel,上面也需要标签、按钮、文本框,按钮要写监听器。
- 关键代码截图
-
EditPanel修改学生信息面板
- 继承自JPanel,也是用无参构造方法调用启动,修改和增加面板差不多,但多了一个“修改信息学号”的标签和文本框,性别和政治面膜也是下拉列表JComboBox类型的对象实现,上面有两个按钮,一个是修改按钮,一个是确定按钮,当输入正确学号后,修改按钮就会启动,点击修改后,修改按钮就会关闭,按钮要写监听器。
- 关键代码截图
-
查找学生界面
- 有三种方法,分别是按学号查找、按姓名查找、按宿舍查找,当按学号查找时,只能找到唯一一个学生;当按姓名查找时,将找出所有该姓名的学生;当按宿舍查找时,将找出该宿舍所有的学生。所以,可设计三种查找面板,对应三种查找方法,显示学生时,可以用滚动面板JScrollPane,带滚动条方便查看。
- 三种查找方法的关键代码截图
- 滚动条关键代码:
- 按学号
- 按姓名
- 按宿舍
-
MainView主界面的设计
- 继承自JFrame,可在上面放JPanel面板,可设计一个菜单,来显示该系统的四种功能,然后调用各功能的窗口先不启动,当点击菜单的项目时,则启动相应的窗口,显示功能面板。
- 关键代码截图
八、项目代码扫描结果及改正。
- 刚开始是各个类的创建者信息没有写,于是就给每个类都增加上了创建者信息,再一个就是每一个覆写方法都要加上@Override才符合规范,然后就是关于注释的问题了,不能行尾注释,要符合javadoc规范,使用/**内容*/格式,最后就是魔法值的问题,不能直接用一个数字常量,要用static final定义一个常量赋值数字,再引用该常量。
九、项目总结与感想
-
陈毅隆:
- 这次的课设感觉时间过的很快,JAVA面向对象设计的“美”还没很好的体现出来,有一部分是自己本身在偷懒,也有一部分是对设计的计划没有美好的规划,这次是第一次通过JAVA来对文件进行操作,有很多处理不当的地方,比如通过流并不能直接修改文件内容,也可能是我没认识到这个知识点,才只好绕一圈,先删除,再新增,来达到修改的效果。实践中遇到的困难挫折是因为根本没实践过,课堂上好像都有听到的知识点,只有在具体应用的时候,才知道掌握的好不好,才能更深刻的知道学习与实践是递进的关系,虽然老师总是强调要实践要应用,不能只听,但到碰到困难的时候,才能清楚这种道理。
- 不足需改进:系统用多处用到了文件输入或者输出流,比如查找学生跟删除学生,都需要用到读取文件的流,这种类似的功能,我觉得可以将其整合起来编写成一个方法,这样每次用到的时候,就不需要花费多余的笔墨了。
- 不管是什么设计,都需要有存储的媒介,这样程序才能有用武之地,比如文件或者是数据库,我在这方面的知识还不够深入,希望以后能更深入学习这些信息存储的应用。
-
王威:
- 因为有一段时间没复习GUI方面的知识了,所以又去复习了一下以前的课件和视频,大致了解了,再去百度搜了一下一些常用的设计方法和模板,根据这些就慢慢把图形界面建立了起来。在设计性别和政治面貌那个下拉选择的时候,也是上网搜了一下才明白的,设计JTable表格时,没有搞太懂,没有设计在表格中选中学生,只是通过百度搜资料设计了一个只能显示学生信息的表格。然后各种功能面板,都通过了new一个功能底层操作的对象,在按钮里面对该对象的访问进行各种功能操作,根据功能方法的返回值,弹出提示信息窗口。总的来说,对此次课设题目的功能也都实现,只是还有待提高,各种关于GUI设计的知识点还有好多需要学习的,通过课设也提高了对Java学习的兴趣。
- 不足的地方也有许多,比如在任何一个界面都应该有返回的按钮,在功能实现方面还应该有查看所有学生的功能,添加和删除学生的时候最好也能够进行添加和删除多个学生的操作。这也是考虑该系统设计时的不足,没有想周到,此外对GUI图形界面设计的学习还不到位,关于表格的学习也要加深。
- 图形界面设计的也比较简陋,不美观,通过进一步学习,希望能够设计出更漂亮的界面。