学生管理系统javaWord文档下载推荐.docx
《学生管理系统javaWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生管理系统javaWord文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
![学生管理系统javaWord文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/2/b08a25a3-b8f8-4255-9db7-ae75596ac1ed/b08a25a3-b8f8-4255-9db7-ae75596ac1ed1.gif)
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排序成绩信息
用户在选择好排序的条件后点击“排序”按钮,完成对学生成绩的排序显示。
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());
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)+
+rs.getString(3)+
+rs.getDouble(4)+
+rs.getDouble(5)+
+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("
Connectioncot=DriverManager.getConnection("
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)
添加成功!
删除失败!
}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("
delete*fromgradewhereId='
intn=stm.executeUpdate(sql);
if(n>
删除成功!
4.5修改基本信息
图16
updategradesetname='
score='
sex='
course='
bir='
whereId='
修改成功!
修改失败!
此用户不存在!
catch(Exceptioner)
4.6按条件查询信息
图17
Stringnumorename,searchf,sql;
numorename=searchcbo.getSelectedItem().toString();
searchf=searchfield.getText().trim();
if(numorename.equals("
按学号"
)){
select*fromgradewhereId='
+searchf+"
elseif(numorename.equals("
按姓名"
))
select*fromgradewherename='
按班级"
select*fromgradewhereclass='
select*fromgradewheresex='
5小结
本次综合Java课程设计所开发的学生成绩管理系统是基于B/S构建的,在网络的移植上有很好的表现,该数据库由于涉及的数据库操作不太频繁因此采用Access数据库连接。
Java数据包的运用开发为程序员节约了大量的时间,让更多的时间运用到设计中。
其次Java的使用非常灵活。
在实际的开发中学生数据库是一个庞大的系统,因此用大型的数据库才能满足用户的需求。
在搭建好开发环境后,用一个简单的连接数据库的小程序来测试数据库是否正确连接,这样在开发过程中省去了不必要的时间。
同时在数据库开发的过程中不会出现低级的错误。
然后在工作区添加项目资源,建立类,逐个模块进行测试开发,然后把所有的模块整合为一个系统。
在实际的开发中要注意对嵌入式SQL语句的书写,比如,在按条件查询数据库表信息的时候,要注意给常量赋值,并且SQL语句要和赋值的常量数据类型相匹配。
本次开发中,把数据库里的表绑定到表格的时候注意打开和关闭数据库连接,对应的列和表格之间的关系,防止绑定错位。
6展望
本系统是一个简单的学生成绩管理系统,无论在功能上还是使用方式上,与现实中的学生成绩管理系统相比仍有较大差距,但本系统可进一步扩展成实用的系统,并且大部分代码(业务逻辑、数据库及存取部分)可以重用。
其中从技术角度看实际的系统一般是一个由多客户端(上网机)、单服务器(管理员机)及数据库构成的三层系统,其中客户端受服务器管控(如服务器可以通过网络控制实现对学生的各种管理操作),涉及到的关键技术是数据库与系统的配合,话结束本项目:
“路漫漫其修远兮,吾将上下而求索”。
参考文献
1.李忠等《Java语言编程技术课程设计》指导书
2.CayS.Horstmann著、叶乃文等译.《Java2核心技术》.北京:
机械工业出版社.2006。
3.CEckel著、陈昊鹏等译.《Java编程思想》.北京:
机械工业出版社.2005。