学生管理系统java.docx
《学生管理系统java.docx》由会员分享,可在线阅读,更多相关《学生管理系统java.docx(20页珍藏版)》请在冰豆网上搜索。
学生管理系统java
摘要
随计算机的普及和互联网的飞跃发展,人们对信息的要求不断的加强。
数据更新的速度直接决定了人们在现代生活中的工作效益。
从传统的手工管理到信息时代的计算机系统管理过渡。
传统的学生管理依靠人工进行,更新速度慢,出现错误后修改复杂,不利于分类管理。
因此开发此系统—学生成绩管理系统是很有必要的。
本次综合性设计运用.JAVA开发技术,结合数据库的知识开发了一个学生成绩管理系统。
主要功能用学生成绩系统实现添加学生基本信息,修改学生基本信息,查询学生基本信息,添加学生成绩,修改学生成绩,删除学生成绩,模糊查询,对各项信息进行排序显示。
关键词:
学生成绩管理数据库分层管理JAVA技术
1背景介绍
1.1业务背景
高校对学生管理的好坏与否体现了一个学校的综合管理水平,在现代飞速发展的信息时代。
传统的手工管理模式日渐淘汰,学生作为一个庞大的集体,需要一个很好的数据库来进行管理。
由此开发一个模拟的学生成绩管理系统是很有必要的。
拥有及时准确的学生信息对学校组织学校,制定方针政策都非常有利。
1.2技术背景
本系统使用的是Java技术开发,用Access储存数据。
集成开发环境可使用支持可视化GUI界面设计的主流工具(如eclipse\antbean\jbuilder)。
开发者应有java程序设计语言、SWING基本GUI组件、文件使用、JDBC存取数据库、使用一种集成开发工具的基本知识和技能。
系统采用两层C/S体系结构,C端负责通过GUI与管理员交互、处理业务逻辑及存取数据库。
2需求分析
2.1功能需求分析
能够实现根据以下关键字查询:
学生姓名、学号、班级、课程名称。
2.能够实现按照单科成绩、总成绩、平均成绩、学号排序。
3.能够实现学生信息的插入、删除和修改。
4.能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。
5.能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。
界面要求:
使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。
2.2业务对象分析
该系统的主要用户为学生和教师,因此设计的界面利用用户的习惯。
学生记录:
反映学生的基本信息,如:
学号,姓名,性别等。
成绩记录:
反映学生成绩的信息,如:
单科成绩,平均成绩等。
学生和教师:
操作者,执行上面的各种数据操作。
3系统设计
3.1总体设计
3.1.1系统体系结构
该学生成绩体管理系采用的C/S架构,主要模块有学生基本信息模块,学生成绩管理模块,系统运行环境(如操作系统、数据库),开发平台及语言。
本系统主要运行在windows系列平台上,数据库使用ACCESS,使用eclipse开发系统。
采用两层C/S体系结构。
系统体系结构图如下图所示:
图1
3.1.2系统功能模块
客户端分3层,图形界面层(采用Java的Swing设计)负责与用户交互,业务逻辑层则根据用户的请求执行各种功能(如上、下机等),数据访问层主要根据业务逻辑层的请求通过JDBC/SQL存取数据库。
数据库使用ACCESS,可根据情况使用其他数据库(如SQLServer),客户端基本不做修改,仅有的少量修改也只在数据访问层。
客户端与服务端在物理上可以运行在一台机器上,也可以分别运行在不同机器上。
如图2:
图2-a总体模块图
数据库表格建立程序流程图
图2-b数据库表格建立程序流程图
图2-c学生信息的插入、删除和修改操作的事件处理器程序流程图
3.2详细设计
3.2.1数据库设计
图3
3.2.2系统登录
初次登录系统需要输入用户名和密码,在用户名和密码校验成功后方可使用本系统。
,如图4所示:
图4
3.2.2系统主界面
进入到系统的主界面后,用户可以通过菜单,进行学生管理的操作,该界面有信息操作选项,成绩操作选项,查询选项,和其它选项。
如图5所示:
图5
3.2.3添加学生信息
该模块的功能是对学生信息的添加,包括添加学生学号,学生姓名,通过单选按钮添加学生性别,生日,班级信息,和学院信息。
如图6所示:
图6
3.2.4删除学生信息
该模块通过用户输入学号删除学生信息,点击“重置”则清空所有文本框数据。
如图7所示:
图7
3.2.5修改学生信息
用户可以通过输入学生学号修改相应的信息。
如图8所示:
图8
3.2.6添加学生成绩
此模块完成的功能是对学生成绩的添加,输入学号,姓名等信息后点击“添加”则完成。
如图9所示:
图9
3.2.7查询学生信息
用户输入学号后点击“查询”完成对学生基本信息的查询,点击“重置”则清空文本框的数据.如图10所示:
图10
3.2.8查询学生成绩
用户在下拉框选择好按条件查询的类型后,点击“查询”按钮完成对学生成绩的查询。
如图所示:
如图11所示:
图11
3.2.9排序成绩信息
用户在选择好排序的条件后点击“排序”按钮,完成对学生成绩的排序显示。
图11
3.2.10模糊查询学生信息
用户通过选择排序的方式和性别等条件,对学生的信息排序显示。
如图12所示
图12
4系统实现
4.1数据库访问
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassConnexample{
publicConnexample()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundExceptionex)
{
//System.out.println(ex.getMessage());
}
try
{
Connectionconn
=DriverManager.getConnection("jdbc:
odbc:
student","","");
Statementstmt=conn.createStatement();
//
ResultSetrs=stmt.executeQuery("select*fromgrade");
while(rs.next())
{
System.out.println("学号:
"+rs.getString
(1)+
"\t"+"name:
"+rs.getString
(2)+
"\t"+rs.getString(3)+
"\t"+rs.getDouble(4)+
"\t"+rs.getDouble(5)+
"\t"+rs.getString(6));
}
}
catch(SQLExceptionce)
{
System.out.println(ce.getMessage());
}
}
publicstaticvoidmain(Stringargs[])
{
newConnexample();
}
}
4.2主模块
图13主模块流程图
JMenuBarjm=newJMenuBar();
JMenujm1=newJMenu("信息");
JMenuItemjmi1=newJMenuItem("增加信息");
JMenuItemjmi2=newJMenuItem("删除信息");
JMenuItemjmi3=newJMenuItem("修改信息");
JMenujm4=newJMenu("成绩");
JMenuItemjm41=newJMenuItem("录入成绩");
JMenuItemjm42=newJMenuItem("删除成绩");
JMenuItemjm43=newJMenuItem("修改成绩");
JMenujm2=newJMenu("查询");
JMenuItemjmi21=newJMenuItem("基本信息查询");
JMenuItemjm22=newJMenuItem("学生成绩查询");
JMenuItemjm23=newJMenuItem("学生成绩排序");//
JMenuItemjm24=newJMenuItem("基本信息排序");//
JMenujm3=newJMenu("其它");
JMenuItemjmi31=newJMenuItem("退出");
4.3添加基本信息
图14添加信息流程图
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncot=DriverManager.getConnection("jdbc:
odbc:
student","","");
Statementstm=cot.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())
JOptionPane.showMessageDialog(null,"该号已经存在!
");
else
{
sql="insertintostudentvalues('"+snumber+"','"+sname+"','"+sclass+"','"+ssex+"','"+scollect+"','"+sbir+"')";
inti=stm.executeUpdate(sql);
if(i>0)
JOptionPane.showMessageDialog(null,"添加成功!
");
else
JOptionPane.showMessageDialog(null,"删除失败!
");
}
}catch(Exceptionee)
{
}
}
if(e.getSource()==JBNext)
{
JTNumber.setText(null);
JTName.setText(null);
JTClass.setText(null);
JT1.setText(null);
JT2.setText(null);
}
if(e.getSource()==JBExit)
{
setVisible(false);
}
}
4.4删除基本信息
图15删除信息流程图
cot=DriverManager.getConnection("jdbc:
odbc:
student","","");
Statementstm=cot.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())
{
sql="delete*fromgradewhereId='"+snumber+"'";
intn=stm.executeUpdate(sql);
if(n>0)
JOptionPane.showMessageDialog(null,"删除成功!
");
else
JOptionPane.showMessageDialog(null,"删除失败!
");
4.5修改基本信息
图16
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncot=DriverManager.getConnection("jdbc:
odbc:
student","","");
Statementstm=cot.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())
{
sql="updategradesetname='"+sname+"',score='"+sclass+"',sex='"+ssex+"',course='"+scollect+"',bir='"+sbir+"'whereId='"+snumber+"'";
intn=stm.executeUpdate(sql);
if(n>0)
JOptionPane.showMessageDialog(null,"修改成功!
");
else
JOptionPane.showMessageDialog(null,"修改失败!
");
}
else
{
JOptionPane.showMessageDialog(null,"此用户不存在!
");
}
}
catch(Exceptioner)
{
}
4.6按条件查询信息
图17
Stringnumorename,searchf,sql;
numorename=searchcbo.getSelectedItem().toString();
searchf=searchfield.getText().trim();
//
if(numorename.equals("按学号")){
sql="select*fromgradewhereId='"+searchf+"'";
}
elseif(numorename.equals("按姓名"))
{
sql="select*fromgradewherename='"+searchf+"'";
}
elseif(numorename.equals("按班级"))
{
sql="select*fromgradewhereclass='"+searchf+"'";
}
else
{
sql="select*fromgradewheresex='"+searchf+"'";
}
5小结
本次综合Java课程设计所开发的学生成绩管理系统是基于B/S构建的,在网络的移植上有很好的表现,该数据库由于涉及的数据库操作不太频繁因此采用Access数据库连接。
Java数据包的运用开发为程序员节约了大量的时间,让更多的时间运用到设计中。
其次Java的使用非常灵活。
在实际的开发中学生数据库是一个庞大的系统,因此用大型的数据库才能满足用户的需求。
在搭建好开发环境后,用一个简单的连接数据库的小程序来测试数据库是否正确连接,这样在开发过程中省去了不必要的时间。
同时在数据库开发的过程中不会出现低级的错误。
然后在工作区添加项目资源,建立类,逐个模块进行测试开发,然后把所有的模块整合为一个系统。
在实际的开发中要注意对嵌入式SQL语句的书写,比如,在按条件查询数据库表信息的时候,要注意给常量赋值,并且SQL语句要和赋值的常量数据类型相匹配。
本次开发中,把数据库里的表绑定到表格的时候注意打开和关闭数据库连接,对应的列和表格之间的关系,防止绑定错位。
6展望
本系统是一个简单的学生成绩管理系统,无论在功能上还是使用方式上,与现实中的学生成绩管理系统相比仍有较大差距,但本系统可进一步扩展成实用的系统,并且大部分代码(业务逻辑、数据库及存取部分)可以重用。
其中从技术角度看实际的系统一般是一个由多客户端(上网机)、单服务器(管理员机)及数据库构成的三层系统,其中客户端受服务器管控(如服务器可以通过网络控制实现对学生的各种管理操作),涉及到的关键技术是数据库与系统的配合,话结束本项目:
“路漫漫其修远兮,吾将上下而求索”。
参考文献
1.李忠等《Java语言编程技术课程设计》指导书
2.CayS.Horstmann著、叶乃文等译.《Java2核心技术》.北京:
机械工业出版社.2006。
3.CEckel著、陈昊鹏等译.《Java编程思想》.北京:
机械工业出版社.2005。