JAVA学生信息管理系统的设计方案及实现.docx

上传人:b****5 文档编号:6141939 上传时间:2023-01-04 格式:DOCX 页数:35 大小:248.32KB
下载 相关 举报
JAVA学生信息管理系统的设计方案及实现.docx_第1页
第1页 / 共35页
JAVA学生信息管理系统的设计方案及实现.docx_第2页
第2页 / 共35页
JAVA学生信息管理系统的设计方案及实现.docx_第3页
第3页 / 共35页
JAVA学生信息管理系统的设计方案及实现.docx_第4页
第4页 / 共35页
JAVA学生信息管理系统的设计方案及实现.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

JAVA学生信息管理系统的设计方案及实现.docx

《JAVA学生信息管理系统的设计方案及实现.docx》由会员分享,可在线阅读,更多相关《JAVA学生信息管理系统的设计方案及实现.docx(35页珍藏版)》请在冰豆网上搜索。

JAVA学生信息管理系统的设计方案及实现.docx

JAVA学生信息管理系统的设计方案及实现

毕业设计(论文)

题目:

基于JAVA学生信息管理系统的设计及实现

院(系):

XXX学院

专业:

计算机科学与技术

学生姓名:

XXX

班级:

2111111311

学号:

20111111102

指导教师:

XXXX

2014年2月20日

摘要

学生信息管理系统有常见的基本功能,主要包括管理员和学生两大模块。

管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。

学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。

关键词:

系统功能;增加;删除;修改;查找

Abstract

Studentinformationmanagementsystemhasthebasicfunctionofcommonmainlyincludingadministratorsandstudentstwomodules.Themainfunctionsoftheadministratorofthestudentinformationandcourseinformationtoadd,modify,delete,searchandotheroperations,tocarryonthemanagementtothecourseinformation,modify,searchandotheroperationsontheperformanceinformationanduserinformation.Themainfunctionofstudenttostudentinformationandperformanceinformationtoview,modifythepasswordofthepersonalinformation.

Keyword:

Systemfunction。

increase。

remove。

modification。

search

引言

由于学生信息的冗长与繁琐,所以它的管理问题带来的麻烦和不方便也随之而来。

利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。

要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。

1功能设计

正文……(首行缩进两个字,宋体小四号)

1.1需求分析

本系统需要实现的功能:

(1)管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。

(2)学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。

1.2总体设计

学生信息管理系统主要包括管理员和学生两大模块。

管理员模块包括:

学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。

用户模块包括:

学生信息查看、成绩信息查看、个人信息管理等。

系统总体结构如图所示。

总体结构图

1.3模块详细设计

(1)学生信息管理模块

学生信息管理模块包括增加、删除、修改、查询、显示全部等。

具体的结构图如图所示。

学生信息管理模块结构图

(2)课程信息管理模块

课程信息管理模块包括增加、删除、修改、查询、显示全部等。

具体的结构图如图所示

课程信息管理模块结构图

(3)选课信息管理模块

选课信息管理模块包括查询、显示全部等。

具体的结构图如图所示。

选课信息管理模块结构图

(4)成绩信息管理模块

成绩信息管理模块包括修改成绩、查询、显示全部等。

具体的结构图如图所示。

成绩信息管理模块结构图

(5)用户信息管理模块

用户信息管理模块包括修改、查询、显示全部等。

具体的结构图如图所示。

用户信息管理模块结构图

2数据库设计

在数据库student中共有4张数据表:

s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。

s(学生信息表)

字段名称

数据类型

描述

sno

char(10)

学号,关键字

sn

char(20)

姓名

sa

int

年龄

ss

char(10)

性别

sd

char(10)

院系

c(课程信息表)

字段名称

数据类型

描述

cno

char(10)

课程号,关键字

cn

char(30)

课程名

pcno

char(10)

先行课程号

sc(选课信息表)

字段名称

数据类型

描述

sno

char(10)

学号,关键字

cno

char(10)

课程号,关键字

g

int

成绩

unpw(用户信息表)

字段名称

数据类型

描述

un

char(10)

用户名,关键字

pw

char(10)

密码

qx

int

角色

3界面库设计

3.1学生信息管理系统的登录

学生信息管理系统可由管理员和学生两种身份的人使用。

管理员和学生身份登录所能操作的功能有很大的区别。

系统初始化一个系统管理员,登录名:

admin密码:

admin

学生登录系统的登录名为学号,密码也为学号(如:

10001),登录后可以修改密码。

3.1.1登陆界面设计

登录界面

界面介绍:

登陆界面的背景图片可以自定义,可设置成学校的宣传图片。

用户和密码初始值为:

admin/admin。

若用户有自己相应的密码,可直接填写。

角色选择中的“管理员”有着最高权限,可以进行删除和修改用户等操作;用“学生”角色登陆,可以查看和修改学生的个人信息。

“重置”按钮用来清空用户名和密码。

“取消”按钮则直接退出登陆界面。

在输入相应的用户名和密码之后,选择“角色”,点击“登陆”,则会进入角色与之对应的界面。

若输入的用户名或者密码有误,则会弹出“登录名错误!

”或“密码错误!

”的提示。

代码解读:

(1)按钮定义主代码:

JLabeluserName=newJLabel("用户:

")。

JTextFieldtxtUser=newJTextField()。

JLabelpassword=newJLabel("密码:

")。

JPasswordFieldtxtPwd=newJPasswordField(6)。

JLabelrole=newJLabel("角色:

")。

JComboBoxcbrole=newJComboBox()。

JButtonbtnLogin=newJButton("登录")。

JButtonbtncz=newJButton("重置")。

JButtonbtnCancel=newJButton("取消")。

解读:

定义Button按钮,设置:

“登陆”、“重置”、“取消”按键,方便用户进行操,同时也显得更加直观;定义JLabel容器用于用户名、密码的输入。

(2)构造方法主代码:

this.setResizable(false)。

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。

this.show()。

btnLogin.addActionListener(this)。

cbrole.addItemListener(this)。

btncz.addActionListener(this)。

btnCancel.addActionListener(this)。

解读:

定义事件发生器,使每个按钮和容器都能准确的执行用户需要的操作。

btnLogin定义的是“登陆”操作;cbrole定义的是选择“角色”的操作;btncz定义的是“重置”操作,可以使用户名和密码删除,让用户重新进行输入;btnCancel定义的是“取消”操作,点击之后,软件会执行退出命令。

(3)连接数据库主代码:

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")。

}catch(ClassNotFoundExceptione){

e.printStackTrace()。

}

try{

con=DriverManager.getConnection(

"jdbc:

sqlserver:

//localhost:

1433。

DatabaseName=student",

stmt=con.createStatement()。

}catch(SQLExceptione){

e.printStackTrace()。

}

解读:

执行“登陆”命令之后,代码回向SQL数据库对比,若用户名和密码正确,则进入系统,不正确则执行退出命令。

用“try...catch...”命令捕获异常,若用户输入的用户名和密码正确,则执行登陆操作,若不正确,则抛出Exception的异常,禁止登陆界面。

3.1.2管理员登陆界面设计

管理员登录系统后的界面

界面介绍:

此界面是管理员登陆后显示的界面,可以进行“学生信息管理”、“课程信息管理”、“选课信息管理”、“成绩信息管理”、“用户信息管理”这五项信息管理操作。

“学生信息管理”可添加和修改学生个人信息,做到不缺不漏学生的个人信息;“课程信息管理”可方便教师进行排课和选择相应的教室,做到学校资源有效合理的利用;“选课信息系统”可以方便任课老师调课和安排课程;“成绩信息管理”可有效的统计任课老师所在班级的学生成绩,直观的得出平均分和及格率;“用户信息管理”可以管理任课老师的个人信息及登录密码。

代码解读:

(1)按钮定义主代码:

JButtonbtns=newJButton("学生信息管理")。

JButtonbtnc=newJButton("课程信息管理")。

JButtonbtnsc=newJButton("选课信息管理")。

JButtonbtng=newJButton("成绩信息管理")。

JButtonbtnu=newJButton("用户信息管理")。

JButtonbtnClose=newJButton("退出管理系统")。

JLabell=newJLabel("管理员")。

解读:

定义Button按钮,设置:

“学生信息管理”、“课程信息管理”、“选课信息管理”、“成绩信息管理”、“用户信息管理”、“退出管理系统”按键,方便用户进行操,同时也显得更加直观;定义JLabel容器用于显示界面处于“管理员”状态。

(2)构造方法主代码:

btns.addActionListener(this)。

btnc.addActionListener(this)。

btnsc.addActionListener(this)。

btng.addActionListener(this)。

btnu.addActionListener(this)。

btnClose.addActionListener(this)。

this.setResizable(false)。

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。

show()。

解读:

定义事件发生器,使每个按钮和容器都能准确的执行用户需要的操作。

btns定义的是“学生信息管理”操作;btnc定义的是“课程信息管理”的操作;btnsc定义的是“选课信息管理”操作;btng定义的是“成绩信息管理”的操作;btnu定义的是“用户信息管理”的操作;btnClose定义的是“退出管理系统”,点击之后将会直接退出系统。

3.1.3学生登陆界面设计

学生登录系统后的界面

界面介绍:

此界面是学生登录后显示的界面,可以进行“学生信息查看”、“成绩信息查看”“个人信息查看”的操作。

“学生信息查看”仅仅只能查看学生本人的信息,例如:

姓名、班别、出生年月、选修课程等;“成绩信息查看”可以查看学生本人的学习成绩,包括各个学期的成绩和平时测验成绩;“个人信息管理”可以修改、添加、删除学生本人的信息。

代码解读:

(1)按钮定义主代码:

JButtonbtns=newJButton("学生信息查看")。

JButtonbtng=newJButton("成绩信息查看")。

JButtonbtnu=newJButton("个人信息管理")。

JButtonbtnClose=newJButton("退出管理系统")。

解读:

定义Button按钮,设置:

“学生信息查看”、“成绩信息查看”、“个人信息查看”、“退出管理系统”按键,方便用户进行操,同时也显得更加直观。

(2)构造方法主代码:

btns.addActionListener(this)。

btng.addActionListener(this)。

btnu.addActionListener(this)。

btnClose.addActionListener(this)。

this.setResizable(false)。

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。

show()。

解读:

定义事件发生器,使每个按钮和容器都能准确的执行用户需要的操作。

btns定义的是“学生信息查看”操作;btng定义的是“成绩信息查看”的操作;btnu定义的是“个人信息查看”操作;btnClose定义的是“退出管理系统”的操作点击之后将会直接退出系统。

3.2实现管理员操作功能的界面

管理员的登录系统后可以进行学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等功能操作,其具体界面设计如下图所示。

3.2.1管理员登陆“学生信息管理”界面设计

学生信息管理功能的界面

界面介绍:

此界面为管理员登陆后点击“学生信息管理”产生的界面。

“学生信息管理”可以执行“增加”、“删除”、“修改”、“查询”、“显示”的操作。

其中“增加”操作可以增加学生的信息,比如学号、姓名、年龄、性别、院系;“删除”操作可以删除指定的学生的信息;在选定所要修改的学生之后,点击“修改”,可以修改选定学生的相关信息;点击“查询”,输入学号或者姓名之后,就会查询到指定学生的相关信息。

代码解读:

(1)主界面显示主代码:

try{

rs=stmt.executeQuery("select*froms")。

while(rs.next()){//找出表中的记录数赋给i

al.add(rs.getString("sno"))。

al.add(rs.getString("sn"))。

al.add(rs.getString("ss"))。

al.add(rs.getInt("sa"))。

al.add(rs.getString("sd"))。

i++。

}

}catch(SQLExceptione){

e.printStackTrace()。

}

解读:

用stmt.executeQuery("select*froms")调用数据库表内容,其中al.add(rs.getString(“sno”))为调用SQL中的“学号”信息;al.add(rs.getString("sn"))为调用SQL中的“姓名”信息;al.add(rs.getString("ss"))为调用数据库中的“年龄”信息;al.add(rs.getInt("sa"))为调用数据库中的“性别”信息;al.add(rs.getString("sd"))为调用数据库中的“院系”信息。

用“try...catch”语句捕获异常,若不能调用数据库,这会执行e.printStackTrace()语句,并在命令行打印异常信息在程序中出错的位置及原因。

(2)连接数据库主代码:

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")。

}catch(ClassNotFoundExceptione){

e.printStackTrace()。

}

try{

con=DriverManager.getConnection(

"jdbc:

sqlserver:

//localhost:

1433。

DatabaseName=student",

"sa","123")。

stmt=con.createStatement()。

}catch(SQLExceptione){

e.printStackTrace()。

}

解读:

为了能过更直观的显示数据,在学生信息管理系统里需要调用数据库里面的信息。

其中Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")为调用系统目录下的SQL程序文件;用“try...catch”语句捕获异常,若不能调用数据库,这会执行e.printStackTrace()语句,并在命令行打印异常信息在程序中出错的位置及原因。

(3)关闭数据库主代码:

try{

stmt.close()。

con.close()。

}catch(SQLExceptione){

e.printStackTrace()。

}

解读:

从数据库导入数据到系统之后,就不再需要实时刷新了,则需要关闭数据库连接,避免占用资源。

(4)删除某个学生信息主代码:

try{

intrs1=stmt.executeUpdate("deletefromswheresno='"

+xh+"'")。

stmt.executeUpdate("deletefromunpwwhereun='"+xh+"'")。

JOptionPane.showMessageDialog(null,"记录删除成功!

")。

this.dispose()。

newSM().display()。

}catch(SQLExceptione){

e.printStackTrace()。

}

}else{

try{

intrs1=stmt.executeUpdate("deletefromswheresno='"

+mxh+"'")。

stmt.executeUpdate("deletefromunpwwhereun='"+mxh

+"'")。

JOptionPane.showMessageDialog(null,"记录删除成功!

")。

this.dispose()。

newSM().display()。

}catch(SQLExceptione){

e.printStackTrace()。

}

解读:

删除某个学生的信息,首先需要选中所要的信息,然后才能执行操作,最后同步到数据库中。

其中intrs1=stmt.executeUpdate("deletefromswheresno='"+xh+"'")和intrs1=stmt.executeUpdate("deletefromswheresno='"+mxh+"'")为选中的所要删除的数据记录,stmt.executeUpdate("deletefromunpwwhereun='"+xh+"'")和stmt.executeUpdate("deletefromunpwwhereun='"+mxh+"'")则是执行删除操作,最后JOptionPane.showMessageDialog(null,"记录删除成功!

")则是提示删除成功。

(5)修改某个学生的基本信息主代码:

if(row==-1){

JOptionPane.showMessageDialog(null,"请选择要修改的记录!

")。

}else{

intj1=0。

try{

if(!

bstd){

rs=stmt.executeQuery("select*froms")。

}else{

rs=stmt.executeQuery("select*fromswheresno='"+mxh

+"'")。

}

while(rs.next()&&j1<=row){

xh=rs.getString("sno")。

xm=rs.getString("sn")。

nl=rs.getInt("sa")。

xb=rs.getString("ss")。

yx=rs.getString("sd")。

j1++。

}

}catch(SQLExceptione){

e.printStackTrace()。

}

解读:

修改某个学生的信息,首先需要选中所要的信息,进行判断,然后才能执行操作,最后同步到数据库中。

其中JOptionPane.showMessageDialog(null,"请选择要修改的记录!

")为选中的所要修改的数据记录,用“if...else”语句进行判断是否为用户所要修改的数据条目,while(rs.next()&&j1<=row)语句则找出对应数据库的数据条目进行修改。

(6)显示某个查询主代码:

try{

rs=stmt.executeQuery("select*fromswheresno='"+mxh+"'")。

while(rs.next()){

playerInfo[0][0]=rs.getString("sno")。

playerInfo[0][1]=rs.getString("sn")。

playerInfo[0][2]=rs.getInt("sa")。

playerInfo[0][3]=rs.getString("ss")。

playerInfo[0][4]=rs.getString("sd")。

}

}catch(SQLExceptione){

e.printStackTrace()。

}

if

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1