# 基于Java设计的班级信息管理系统
## 实验目的
本次大作业是在实验十二的基础上完成一个班级信息管理系统。
本系统主要由两大界面组成(登陆界面和主界面)。我们通过主界面可以进入本系统的三大模块:处理记录模块、查询记录模块和重置密码模块。
该大作业给出了一个 Access 文件 student.mdb。该文件和实验十二给出的数据库文件相比多了一张表:security,登陆的用户名和密码放在该表中,因此需要导入新表。大作业可采用 MySQL,Oracle,或者 SQL Server 中的任意一种数据库管理系统。
实验结果或结论
运行 main 文件 运行本程序(唯一入口)
登陆页面 :只有输入正确的用户账号,密码才能登陆。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/44369c5bf41a7a0a73c496fb447ba212.writebug)
主界面,显示所有模块 和 菜单栏 和 右侧注意事项。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/2e6b4e27c85729dd79e83d7e92c97db0.writebug)
菜单:统计 统计各门课程最低分,最高分,平均分,学生总人数。所有的数据库操作方法,我都放在 opreation 这个文件中了。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/c3934acba8cba35627432f9fc742b21a.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/418963fd504b24939fcca8724992317b.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/b64ab8eb1b716022efbc672ade5d1520.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/a30badd23f454dda2b2249f7bd6e4f18.writebug)
菜单:系统外观,设置系统的外观。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/b97c5f029d2d3092eecccac389117645.writebug)
菜单:文件导入导出 开启文件对话框,显示文件,用线程控制进度条想。读取文件信息且导入到 studentInfo 中。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/9efef51831779f34558cf9602a98f20d.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/9f7047c7c2ed1de07391ea0eaaf9291d.writebug)
(导入文件到数据库,测试的 txt 我放在项目根目录下了,数据库导出的那个格式不支持)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/5c2c9d385a414c7f5b74970c8e1261b8.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/320abb9692fef6f21bb1588bbecf73ad.writebug)
(文件导出模块)
菜单 退出系统 关闭应用程序。
这个就不截图了。直接调用 System.eixt(0)退出了。
处理记录模块:点击表格的内容 在下面的文本框显示。
(给表增加鼠标时间,获取点击的行数,如果合法,获取表中的数据更新到下方的 TextField 中)
![](https://www.writebug.com/myres/static/uploads/2022/6/7/0703ffa08e8e6d3b3d5b931729b78004.writebug)
8:处理记录模块:添加字段,先往数据库添加,如果返回是 1,,则增加表格内容,若为 0,则提示新增失败。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/76168216cdebaf6c443501c819ea5ff6.writebug)
9: 处理记录模块:删除字段,这里我的数据库主键是学号,因此如果创建多个相同学号的信息,再删除就会多个删除。所以需要注意一下。先从数据库里删除,如果返回是 1,,则删除表格内容,若为 0,则提示删除失败。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/352326508d41c9840effe569ae001462.writebug)
: 处理记录模块: 修改字段,这里同上面一样,以学号来查询的。、
![](https://www.writebug.com/myres/static/uploads/2022/6/7/4c48c80bf5f61ea68397c91508f6cb55.writebug)
处理记录模块: 这里的学号我使用了正则 7-15 位的全数字,成绩是 0 到 100,性别只有 male,female,名字长度有限制。所有都不可为空
![](https://www.writebug.com/myres/static/uploads/2022/6/7/c35ebe2adad0e871c07ca6d9de7024cc.writebug)
查询记录模块: 查询条件是 SQL 语句,做了限制只有 select 语句可以被执行。其他提示。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/eeb326c842eff78ed4cbd91e1571109e.writebug)
查询记录模块: 表格根据查询到的数据 实时更新。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/25413e4440dc61d1fa1519cfe228269b.writebug)
查询记录模块: 布局合理性 ,可拉伸 ,没问题。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/b30e82084c890857c256e3d009d915ac.writebug)
:重置密码模块: 首先在登陆的时候,将账号密码放在了公共的 main 的全局变量中,比较原密码是否相同,然后比较新密码是否相同,如果不同都会提示。然后根据用户名,更新账号密码。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/bf4abb190c890a9532fa9b3205cae62f.writebug)
:模块拉伸:主布局均使用边界布局,拉伸没问题。
遇到的问题及解决方法(这部分内容必须填写,也可以写体会,心得)
Joptionpanel 属性:info 0:error 2:warning 3:question
在设计 中间表格布局的时候,一开始没想到拿什么去实现。本来想的是用 JList 然后设置很多 list,后来找到了 JTabel。
同上, 在操作 panel 中,受到了思维定式的影响,就一直想要用边界布局,后来发现用流布局能更好的实现。
同上,设置表格的时候,发现一直设置不了表格的长宽 有限制,一开始我以为是 center 就那么大,后来改用流动布局了也还是这样。最后找到问题是设置 scrollpane 居然 有个默认的长宽,得设置它的长宽才可以。(这些都是上课前写的 所以遇到了些问题)
addrow 出现问题 原因是 创建 JTable 的时候 一开始找的教程有误,没有先转换为 DefaultTableModel,再创建 JTable
登录 后来发现 密码样式 不对 更改为了 Jpassword,重置密码模块也使用了这个。
使用了这个以后,getText()方法就被编译器报错,用 getPassword 方法的话是获得的是 char 数据,我就没理他,继续用 getText()
编译器报错 //state==1?return true:return false; ?:运算符不能用吗。这里还没去查阅资料
这里没有加过 唯一的主键 所以我们使用 stdId 作为主键,也就是学号。
8:这个是问题一直查不出来,一直报错,然后看书也没找到,后来我去数据库查询了下 SQL 没问题,最后把报错信息查询了下终于找到了,使用 res.getInt()之前 要先调用 res.next()
```c++
String sqlCountStundentNum = "select count(*) as studentNum from studentinfo";
try {
res = statement.executeQuery(sqlCountStundentNum);
res.next();
//System.out.print(res);
System.out.print(res.getInt("studentNum"));
} catch (SQLException e) {
printStackTrace();
}
res.getInt("studentNum")
```
第一个逻辑上说还是不错的项目,我写的也满用心,前前后后写了 3 4 个晚上,基本完善了所有的输入输出校验,当然查询方法是 SQL 语句,有点紧张,这个用户不太会吧,只是对是否 select 语句进行了校验,然后数据库的查询什么的还是不太了解。这边可能出现一些错误。在极端条件下。
每次点击查询的时候清空数据,后面的是原来的方法,有错误,发现原因是 result.getRowCount()是动态更新的。改为第一种就好了。
![](https://www.writebug.com/myres/static/uploads/2022/6/7/ebf71a1e4ee014aee0fcd2f050e6ec71.writebug)
在导入文件的时候 原来的文件是用 navicat 导出的文件,然后读取一直报错,后来发现他的格式有点不同。是一个 tab 这样的,读取有问题,我就自己写了个 txt 进
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源包含文件:设计报告word+项目源码 本次完成一个班级信息管理系统。 本系统主要由两大界面组成(登陆界面和主界面)。我们通过主界面可以进入本系统的三大模块:处理记录模块、查询记录模块和重置密码模块。 该设计给出了一个 Access 文件 student.mdb。该文件和实验十二给出的数据库文件相比多了一张表:security,登陆的用户名和密码放在该表中,因此需要导入新表。 详细介绍参考:https://blog.csdn.net/newlw/article/details/125168358
资源推荐
资源详情
资源评论
收起资源包目录
基于Java实现的班级信息管理系统.zip (57个子文件)
javafinalwork
README.md 8KB
LICENSE 1KB
.idea
workspace.xml 18KB
vcs.xml 167B
misc.xml 1KB
modules.xml 278B
copyright
profiles_settings.xml 74B
compiler.xml 686B
javaFinalWork.iml 336B
mysql-connector-java-5.1.39-bin.jar 966KB
设计报告.doc 2.07MB
finnalWork
finnalWork.iml 687B
out
production
finnalWork
MainLayout$FileImport.class 3KB
MainLayout$LabelClick.class 2KB
HandleRecordsPanel$ButtonClick.class 4KB
MainLayout$ExitSystem.class 824B
ResetPasswordPanel$1.class 202B
MainLayout$1.class 1KB
test.class 509B
ResetPasswordPanel.class 3KB
MainLayout.class 7KB
HandleRecordsPanel$tableListener.class 2KB
ResetPasswordPanel$SureListener.class 2KB
LoginLayout$sureClick.class 2KB
ProgressBar.class 2KB
SearchRecordsPanel.class 4KB
MainLayout$SystemStyleChangeListener.class 2KB
HandleRecordsPanel$1.class 202B
main.class 441B
MainLayout$ProgressBarControlThread.class 1KB
LoginLayout.class 3KB
SearchRecordsPanel$SureClickListener.class 2KB
LoginLayout$closeClick.class 640B
HandleRecordsPanel.class 6KB
DBopreation.class 7KB
SearchRecordsPanel$1.class 202B
MainLayout$StatisticsGradeListener.class 2KB
MainLayout$StudentNumCount.class 1KB
src
ResetPasswordPanel.java 4KB
main.java 2KB
LoginLayout.java 3KB
SearchRecordsPanel.java 4KB
test.java 237B
ProgressBar.java 1KB
HandleRecordsPanel.java 10KB
MainLayout.java 19KB
DBopreation.java 9KB
.idea
uiDesigner.xml 9KB
workspace.xml 94KB
encodings.xml 562B
dataSources.ids 170KB
misc.xml 273B
modules.xml 260B
copyright
profiles_settings.xml 74B
compiler.xml 686B
dataSources.local.xml 795B
dataSources.xml 884B
共 57 条
- 1
shejizuopin
- 粉丝: 9422
- 资源: 1288
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页