# 基于Java和MySQL实现的学生信息管理系统
# 一、题目分析与设计
## 1.1 使用的开发环境
**Eclipse**
## 1.2 题目需求
学生信息管理系统实现了权限管理及信息修改查看功能。用户面对学生及教师。对于学生,可由学号和密码登录查看自己的信息如学院专业班级和宿舍号;对于教师,可以由账号密码登录并查看全部学生的信息及进行修改保存。
![](http://www.writebug.com/myres/static/uploads/2021/10/19/8b7e1589c14c350b72505f6ffa5caf57.writebug)
## 1.3 页面设计过程
系统登录页面由 windowbuilder 设计;登录跳转显示的登陆成功或密码错误提醒页面及登陆成功后跳转的学生页面及教师页面由代码编写。主要对页面的布局、颜色、字体、字号等进行设计。字体统一使用微软雅黑,登录页面使用白色底色灰色框架;学生客户端背景色为粉色,左边信息栏为蓝色,右边为白色;教师客户端为灰色。
## 1.4 设计上的创意
系统登录页面以简洁为主只有账号框、密码框及学生登录、教师登录两个登陆按钮,减少代码的繁复;学生客户端将界面分为左右两部分,更明了。
## 1.5 布局策略
系统登录页面由两个背景框组成,第一个背景框在左上角注明“学生信息管理系统”字样,在其上叠加第二个背景框,由两个文本框靠左对齐排列“账号”、“密码”字样,等高位置对齐排列两个输入框,供用户输入账号、密码。再往下等大小排列两个登录按钮。登录跳转页面与登录系统在同一界面。学生客户端页面学生页面将整个页面分为左右两个部分,左边显示信息栏名称,右边显示具体信息;教师页面整体直接显示学生信息表,可直接修改学生信息后点击左上角系统键再点击弹出来的保存键对修改进行保存。
# 二、数据库设计
建立了数据库 myDB,在数据库里建了三个表,分别是 teacher_information、student_information、student,存放教师登录账号及密码、学生个人信息,如"学号"、"姓名"、"年龄"、"学院"、"专业"、"班级"、"地址"、学生登录账号及密码。
# 三、程序的实现
## 3.1 模块的设计
登录页面学生或教师输入账号密码,后台从数据库获取信息进行对比验证身份,验证成功后跳转登陆成功页面,账号或密码错误系统给出提示。登陆成功跳转到相应的页面,学生页面仅从数据库调用显示本人信息,教师页面显示整个 student_information 表的信息并可进行修改。
![](http://www.writebug.com/myres/static/uploads/2021/10/19/f95d81041e37885ac18705a3a7cb6f5b.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/59a311d820ac1bb2d409a432de423c3a.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/bdaf951d978b52e02239657f9cf34641.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/72a5006c496c3dcf4028c81acc47e767.writebug)
## 3.2 类的设计
一共五个类,Senter、Student、Teacher 的内容为数据库的三个表,提供学生登录的账号、密码;学生个人信息;教师登录的账号、密码;方便数据库调用验证登录信息,但由于个人能力问题没有做到创建一个类就设计好三个表,显得代码累赘。另外 Enter 类为总的框架,利用 windowbuilder 编写了登录页面并补充代码实现了登录提醒及页面跳转功能。ProgramFrame 类实现了两个登陆页面的设计及教师页面中修改、保存功能的实现。
![](http://www.writebug.com/myres/static/uploads/2021/10/19/35b235b092ffc95fcf8fb07aeb233a09.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/e30e0d17feba89f612cdc2f64f2672b8.writebug)
## 3.3 对象的协作过程
![](http://www.writebug.com/myres/static/uploads/2021/10/19/64eda4c40fc036a47ceabdf894016f87.writebug)
# 四、测试分析
## 4.1 拓展包的部署过程及数据库的详细配置说明
在网上下载 mysql-installer-community-5.7.20.0 进行安装,再下载一个 MySQL 的数据库驱动 jar 包 mysql-connector-java-5.1.44-bin.jar。在工程文件下面创建一个 lib 文件夹,将驱动 jar 文件拷贝到 lib 文件夹中。再将该 JAR 包加入到工程文件的 build path 变量中。然后创建一个 Java 文件写连接数据库的代码。需要声明四个变量:url (数据库的网络地址及其数据库的名称)、name (驱动的名称)、user(数据库用户名)、password(数据库连接密码)。最后通过数据库连接创建 Connection 对象,TestDBHelper 类的构造方法传入 SQL 语句关闭连接的方法
## 4.2 测试数据构建及预计结果
教师客户端有 2 位教师的登录账号及密码,预计能成功登录并对学生信息进行查看和修改并能够使用保存键、退出键进行进一步操作;学生客户端设置了 14 个学生个人信息,具体有学号、姓名、学院、专业、班级、年龄、地址,及 14 个学生的登录账号和密码,预计学生能成功登陆客户端对个人信息进行查询并利用退出键退出系统。
## 4.3 本程序的测试情况
学生能成功登陆信息管理系统查看个人信息,但无法使用退出键退出系统,并且设置的系统粉色被文本框覆盖,无法显示颜色;教师能成功登录系统查看所有学生信息并对除学号、姓名外的个人信息进行修改及保存,但是无法使用退出键退出系统。
# 五、设计体会
对于初学者来说设计一个页面可以利用 windowbuilder 的帮助,但是个人觉得设计出来的界面过于简单,可以尝试用代码自行编写。编写过程中存在的不足有:
- 不能把各个类分类到不同的包里,调用起来比较麻烦
- 代码过程中设置了的退出键无法退出系统
# 六、附录
## 6.1 源代码
- JRE System Library[JAVA]文件:
- 包含的 Jar 包
- JRE System Library[JavaSE-1.8]文件:
- 包含的 Jar 包
- manage 包:
- Senter.java
- Teacher.java
- Student.java
- Enter.java
- ProgramFrame.java
- Referenced Libraries 文件:
- build.xml
- CHANGES
- COPYING
- mysql-connector-java-5.1.44-bin.jar
- README
- README.txt
## 6.2 测试用例
**学生登录账号及密码**
```c++
32160001, 160001
31160002, 160002
31160003, 160003
32170004, 170004
31160005, 160005
31170006, 170006
32160007, 160007
31170008, 170008
31170009, 170009
31150010, 150010
32170011, 170011
31140012, 140012
31160013, 160013
32160014, 160014
```
**教师登录账号及密码**
```c++
1216004669,160506
1216004660,160304
```
## 6.3 使用说明
运行 Enter 类,在跳转出来的系统登录页面中输入学生账号密码进行学生登录或输入教师账号、密码进行教师登录操作,点击登陆成功提示的确定便可跳转到相应的客户端,在教师客户端中可单击除前两列学号姓名栏外的任何列进行信息修改,双击 enter 进行保存或单击 enter 后点击左上角系统键下保存键进行保存。
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
精选_基于Java和MySQL实现的学生信息管理系统_源码打包 (900个子文件)
ca-truststore 1KB
ca-truststore 1KB
CHANGES 240KB
ResultSetImpl.class 108KB
ConnectionImpl.class 105KB
DatabaseMetaData.class 103KB
ConnectionPropertiesImpl.class 89KB
MysqlIO.class 88KB
FabricMySQLConnectionProxy.class 82KB
MultiHostMySQLConnection.class 74KB
PreparedStatement.class 74KB
ConnectionWrapper.class 72KB
ServerPreparedStatement.class 51KB
CallableStatement.class 49KB
MysqlErrorNumbers.class 44KB
StatementImpl.class 44KB
StringUtils.class 36KB
StatementRegressionTest.class 36KB
UpdatableResultSet.class 35KB
SQLError.class 32KB
ConnectionRegressionTest.class 31KB
CallableStatementWrapper.class 29KB
CharsetMapping.class 28KB
DatabaseMetaDataUsingInfoSchema.class 27KB
ResultSetRegressionTest.class 24KB
MetaDataRegressionTest.class 23KB
CallableStatementRegressionTest.class 22KB
LoadBalancedConnectionProxy.class 22KB
SyntaxRegressionTest.class 21KB
MetaDataRegressionTest.class 20KB
ConnectionTest.class 20KB
ResultSetRow.class 19KB
StatementRegressionTest.class 19KB
Util.class 19KB
MultiHostConnectionTest.class 19KB
NonRegisteringDriver.class 18KB
StatementsTest.class 18KB
StatementsTest.class 17KB
PreparedStatementWrapper.class 17KB
StringUtilsTest.class 17KB
Field.class 17KB
BaseTestCase.class 17KB
MetadataTest.class 16KB
ReplicationConnectionProxy.class 16KB
ConnectionProperties.class 16KB
XmlRpcClient.class 15KB
JDBC4CallableStatementWrapper.class 15KB
ExportControlled.class 14KB
EscapeProcessor.class 14KB
StatementWrapper.class 14KB
Buffer.class 14KB
ConnectionRegressionTest$TestBug73053SocketWrapper.class 13KB
CharsetTest.class 13KB
BufferRow.class 12KB
JDBC4UpdatableResultSet.class 12KB
TimeUtil.class 12KB
FailoverConnectionProxy.class 11KB
JDBC4ResultSet.class 11KB
PreparedStatement$ParseInfo.class 11KB
MultiHostConnectionProxy.class 11KB
StatementRegressionTest$TestBug77681StatementInterceptor.class 11KB
StatementRegressionTest$IsClosedInputStream.class 11KB
StatementRegressionTest$TestBug77449StatementInterceptor.class 11KB
JDBC4MysqlSQLXML.class 10KB
StatementRegressionTest$ScanDetectingInterceptor.class 10KB
StatementRegressionTest$Bug39426Interceptor.class 10KB
StatementRegressionTest$TestBug81706StatementInterceptor.class 10KB
ProgramFrame.class 10KB
StatementRegressionTest$TestBug51666StatementInterceptor.class 10KB
StatementRegressionTest$IsClosedReader.class 10KB
StatementRegressionTest$PrepareThread.class 10KB
ConnectionRegressionTest$TestBug73053InputStreamWrapper.class 10KB
MysqlXAConnection.class 10KB
StatementRegressionTest$subTestBug68916ConcurrentTask.class 10KB
BlobFromLocator.class 10KB
ConnectionRegressionTest$ThreeAttemptsPlugin.class 10KB
ConnectionRegressionTest$TwoQuestionsPlugin.class 10KB
ConnectionRegressionTest$AuthTestPlugin.class 10KB
ConnectionRegressionTest$ForcedLoadBalanceStrategy.class 10KB
ResultSetTest.class 10KB
ConnectionRegressionTest$CountingReBalanceStrategy.class 10KB
ConnectionRegressionTest$TestBug21934573ExceptionInterceptor.class 10KB
ResultSetMetaData.class 10KB
ConnectionRegressionTest$TestBug71850ExceptionInterceptor.class 9KB
ConnectionRegressionTest$TestBug73053SocketFactory.class 9KB
ConnectionRegressionTest$TestBug67803ExceptionInterceptor.class 9KB
ConnectionRegressionTest$Bug75168LoadBalanceExceptionChecker.class 9KB
ResultSetRegressionTest$TestBug67318ExceptionInterceptor.class 9KB
ConnectionRegressionTest$Bug75168StatementInterceptor.class 9KB
MetaDataRegressionTest$StatementInterceptorBug61332.class 9KB
ConnectionRegressionTest$PollTask.class 9KB
ConnectionRegressionTest$TestBug64205StatementInterceptor.class 9KB
ConnectionRegressionTest$PortNumberSocketFactory.class 9KB
StringRegressionTest.class 9KB
ConnectionRegressionTest$CancelTask.class 9KB
ConnectionRegressionTest$Bug71038StatementInterceptor.class 9KB
ConnectionRegressionTest$Bug75592StatementInterceptor.class 9KB
ConnectionRegressionTest$Bug72712StatementInterceptor.class 9KB
ConnectionRegressionTest$Bug56100StatementInterceptor.class 9KB
JDBC4PreparedStatementWrapper.class 9KB
共 900 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
工具盒子
- 粉丝: 60
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功