Java 学生成绩系统.docx
《Java 学生成绩系统.docx》由会员分享,可在线阅读,更多相关《Java 学生成绩系统.docx(24页珍藏版)》请在冰豆网上搜索。
Java学生成绩系统
浙江万里学院
模块方向课程设计书
系统名称:
班级:
小组成员:
日期:
2014年1月3日
3.1.5查询成绩信息............................................17
3.2教师信息管理模块..........................................18
3.2.1录入教师信息.........................................18
3.2.2修改教师信息..........................................19
3.2.3删除教师信息..........................................19
3.2.4录入成绩信息..........................................20
需求分析
1.1项目的背景
该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理.
目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统;本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。
本系统主要包括学生信息查询、教务信息维护和学生选课三部分。
其功能主要有:
1、有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。
2、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。
3、学生信息的修改。
4、学生课程的设置和修改。
5、教师信息的输入,包括教师工号等
6、教师信息的修改、删除、查询
学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
1.2相应的机构组成
经过分析,我们利用NETBEANS作为开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
本系统采用面向对象的软件开发办法,使用MicrosoftAccess2000作为关系数据库,并使用JAVA编程语言,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好地实现了预定的需求功能。
1.3业务流程分析
学生信息业务流程图:
课程管理业务流程图:
成绩管理业务流程图:
1.3.1数据流图
数据流图(DateFlowDiagram)是从数据传递和加工的角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具。
数据流图共有三个方面组成,分别是实体、数据处理、数据存储。
(1)实体——实体是现实世界中客观存在的事物。
(2)数据处理——数据处理指对数据流进行某些操作和变换。
每个数据处理有相应的名称,简明的描述完成什么加工。
(3)数据存储——数据存储指系统保存的数据,它一般是数据库文件。
流向数据存储的数据流可以理解为写入文件或查询文件,从数据存储流出的数据可理解为从文件流出或得到查询结果(见图1)。
实体数据处理数据存储图1数据流图图例
学生成绩管理系统顶层数据流程图
成绩管理1层数据流程图
用户登陆前台系统后,可以查看信息。
管理员登录后台系统后,可以对系统的学生信息、教师信息、成绩信息进行管理。
1层数据流图是对顶层数据流的细化
1.3.2数据字典
数据字典是对数据流图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体进行定义和描述的工具,是数据分析和管理的工具,同时也是数据库设计的重要依据。
表1管理员外部实体条目
实体名称:
管理员
实体组成:
管理员编号+密码
表2教师外部实体条目
实体名称:
教师
实体组成:
用户名+密码
表3学生外部实体条目
实体名称:
学生
实体组成:
用户名+密码
表4学生登录信息数据流条目
数据流名称:
学生登录信息
数据流说明:
学生账号、密码信息
数据流来源:
学生
数据流去向:
学生登录管理
数据流组成:
用户名+密码
表5教师登录信息数据流条目
数据流名称:
教师登录信息
数据流说明:
教师账号、密码信息
数据流来源:
教师
数据流去向:
教师登录管理
数据流组成:
用户名+密码
表6管理员登录信息数据流条目
数据流名称:
管理员登录信息
数据流说明:
管理员账号、密码信息
数据流来源:
管理员
数据流去向:
管理员登录管理
数据流组成:
用户名+密码
表7查询管理处理逻辑条目
数据处理名称:
查询管理
数据处理说明:
按用户输入的信息查询
输入流:
查询信息,成绩信息
输出流:
成绩
数据处理名称:
查询管理
表8删除管理处理逻辑条目
数据处理名称:
删除管理
数据处理说明:
管理员对信息删除
输入流:
删除信息,学生信息,教师信息
输出流:
学生信息,教师信息
表9添加管理处理逻辑条目
数据处理名称:
添加管理
数据处理说明:
管理员对信息进行添加
输入流:
学生信息,教师信息
输出流:
学生信息,教师信息
2整体设计
系统设计包括数据库设计和系统功能设计两部分
2.1数据库设计
数据库设计是网站设计中的关键部分,数据库设计时一般经过数据库概念结构设计、逻辑结构设计和物理结构设计三个过程。
2.1.1数据库概念结构设计
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
概念结构的主要特点有:
能真实、充分地反映现实世界,反映出事物与事物之间的联系,是对现实世界的真实模型;易于理解,从而可以用它和用户交换意见,充分了解用户的需求,从而更好地设计数据库。
描述概念模型的常用工具是E-R图。
E-R图由实体、属性和联系三部分组成。
实体联系属性
图2E-R图图例
实体是现实世界中客观存在的事物;联系指的是实体之间可能存在的各种联系,这种联系通过系统的功能活动表现出来;属性指的是实体或联系的性质。
(E-R图见下页)
2.1.2数据库逻辑结构设计
E-R图描绘的是生活中的实体,标注了实体的属性,以及实体与实体之间的关系。
这是概念层次上的,接下来要对概念模型进行逻辑结构设计,以下是该网站数据库的关系模式。
学生(学号,姓名,性别,年龄,党否,系别,学院,电话,密码)
主键学号
教师(教师工号,姓名,学院号,系号,密码,电话)
主键教师工号
课程信息(课程号,课程名称,教师工号,上课时间,上课地点,成绩,学院号)
主键课程号
院系(学院号,学院名,院办公室,院办公室电话,院主任,系号,系名,系办公室,系办公室电话,系主任)
主键学院号
成绩(课程号,学号,成绩)
主键课程号学号
管理员(管理员编号,密码)
主键管理员编号
以上是从E-R图中得出的关系模式,
管理员信息表,存储系统中管理员信息(见表10)。
表10管理员
字段名称
数据类型
字段大小
是否主键
说明
管理员编号
长整型
16
是
管理员编号
密码
长整型
16
否
管理员密码
教师信息表,存储系统中教师信息(见表11)。
表11教师信息
字段名称
数据类型
字段大小
是否主键
说明
教师工号
长整型
16
是
教师工号
教师姓名
字符串型
50
否
教师姓名
学院号
长整型
16
否
教师所属学院
系号
长整型
16
否
教师所属系别
电话
长整型
16
否
教师电话
密码
长整型
16
否
教师密码
课程信息表,存储系统中课程信息(见表12)。
表12课程信息
字段名称
数据类型
字段大小
是否主键
说明
课程号
字符串型
50
是
课程编号
课程名
字符串型
50
否
课程名
教师工号
长整型
16
是
讲课教师工号
上课时间
字符串型
50
否
上课时间
上课地点
字符串型
50
否
上课地点
成绩
字符串型
50
否
课程成绩
学院号
长整型
16
否
所属学院
学生信息表,存储系统中学生信息(见表13)。
表13学生信息
字段名称
数据类型
字段大小
是否主键
说明
学号
长整型
16
是
学生编号
姓名
字符串型
50
否
学生姓名
性别
字符串型
50
否
学生性别
年龄
长整型
16
否
学生年龄
党否
字符串型
50
否
是否党员
系别
长整型
16
否
所属系别
学院
长整型
16
否
所属学院
电话
长整型
16
否
学生电话
密码
长整型
16
否
学生密码
院系信息表,存储系统中院系信息(见表14)。
表14院系
字段名称
数据类型
字段大小
是否主键
说明
学院号
长整型
16
是
学院编号
学院名
字符串型
50
否
学院名
院办公室
字符串型
50
否
院办公室
院办公室电话
长整型
16
否
办公室电话
院主任
字符串型
50
否
办公室主任
系号
字符串型
50
否
系别编号
系名
字符串型
50
否
系名
系办公室
字符串型
50
否
系办公室
系办公室电话
字符串型
50
否
办公室电话
系主任
字符串型
50
否
办公室主任
成绩信息表,存储系统中学生选课信息和成绩(见表10)。
表15成绩
字段名称
数据类型
字段大小
是否主键
说明
课程号
长整型
16
是
课程编号
学号
长整型
16
否
学生学号
成绩
长整型
16
否
课程成绩
2.1.3数据库物理设计
数据库的物理设计是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。
关系数据库物理设计内容主要包括为关系模式选择存取方法和存储方式等数据库文件的物理存储结构。
本网站的数据库物理设计主要是对相关数据库表设置相应的索引,对主键设置主索引,对经常要查询的属性设置普通索引。
在建立好的索引基础上,设计数据库表之间的关系。
图4数据表关系图
3功能实现
3.1学生信息管理模块
图5登陆界面
系统管理员登录后台管理后,可以对系统中的各种学生信息数据进行管理维护,学生信息管理模块不仅可以实现学生信息管理,还可以实现管理员的管理。
登录代码如下:
(以管理员登录为例)
String用户名=jTextField1.getText();
String密码=jTextField2.getText();
if(jTextField1.getText().toString().equals("")){
JOptionPane.showMessageDialog(null,"请输入用户名","温馨提示",JOptionPane.INFORMATION_MESSAGE);
}elseif(jTextField2.getText().toString().equals("")){
JOptionPane.showMessageDialog(null,"请输入密码","温馨提示",JOptionPane.INFORMATION_MESSAGE);
}else{
ResultSetrs;
Stringsql="select*from管理员where管理员编号='"+jTextField1.getText().toString()+"'and密码='"+jTextField2.getText().toString()+"'";
学生信息系统N=new学生信息系统();
N.show();}
3.1.1录入学生信息
图6学生信息登记
在该页面的表单中输入学生信息,单击“添加”按钮后如果获取操作参数值是“添加成功”,则将获取的表单数据添加到数据库中
关键代码如下:
学生信息添加
JFramef=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=
DriverManager.getConnection("jdbc:
odbc:
PIMS","Text","1234");
Statementstmt=con.createStatement();
int学号=Integer.parseInt(jTextField1.getText());
String姓名=jTextField2.getText();
String性别=jTextField3.getText();
int年龄=Integer.parseInt(jTextField4.getText());
String党否=jTextField5.getText();
int系别=Integer.parseInt(jTextField6.getText());
int学院=Integer.parseInt(jTextField7.getText());
int电话=Integer.parseInt(jTextField8.getText());
int密码=Integer.parseInt(jTextField9.getText());
StringSQLOrder="INSERTINTO学生信息(学号,姓名,性别,年龄,党否,系别,学院,电话,密码)VALUES("+学号+",'"+姓名+"','"+性别+"',"+年龄+",'"+党否+"',"+系别+","+学院+","+电话+","+密码+")";
stmt.executeUpdate(SQLOrder);
JOptionPane.showMessageDialog(f,"添加成功");
stmt.close();
con.close();
}catch(Exceptionex){
}
3.1.2修改学生信息
在该页面的表单中输入学生信息,单击“修改”按钮后如果获取操作参数值是“修改成功”,则将获取的表单数据修改到数据库中关键代码如下:
学生信息修改
JFramef=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=
DriverManager.getConnection("jdbc:
odbc:
PIMS","Text","1234");
Statementstmt=con.createStatement();
int学号=Integer.parseInt(jTextField1.getText());
String姓名=jTextField2.getText();
String性别=jTextField3.getText();
int年龄=Integer.parseInt(jTextField4.getText());
String党否=jTextField5.getText();
int系别=Integer.parseInt(jTextField6.getText());
int学院=Integer.parseInt(jTextField7.getText());
int电话=Integer.parseInt(jTextField8.getText());
int密码=Integer.parseInt(jTextField9.getText());
StringSQLOrder="UPDATE学生信息SET姓名='"+姓名+"',性别='"+性别+"',年龄="+年龄+",党否='"+党否+"',系别="+系别+",学院="+学院+",电话="+电话+",密码="+密码+"WHERE学号="+学号+"";
stmt.executeUpdate(SQLOrder);
JOptionPane.showMessageDialog(f,"修改成功");
stmt.close();
con.close();
}catch(Exceptionex){
}
3.1.3查询学生信息
图7学生信息查询
输入学号可以查看该学生的具体信息
关键代码如下:
学生信息查询
JFramef=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=
DriverManager.getConnection("jdbc:
odbc:
PIMS","Text","1234");
Statementstmt=con.createStatement();
int学号=Integer.parseInt(jTextField1.getText());
StringSQLOrder="SelectFrom学生信息where学号="+学号+";";
stmt.executeUpdate(SQLOrder);
ResultSetrs=null;
while(rs.next()){
JOptionPane.showMessageDialog(f,rs.getString("学号")+"\t"+rs.getString("姓名")+"\t"+rs.getString("性别")+"\t"+rs.getString("年龄")+"\t"+rs.getString("党否")+"\t"+rs.getString("系别")+"\t"+rs.getString("学院")+"\t"+rs.getString("电话")+"\t"+rs.getString("密码")+"\t");
}
stmt.close();
con.close();
}catch(Exceptionex){}
3.1.4删除学生信息
图8删除学生信息
输入学号可以删除该学生的具体信息
关键代码如下:
学生信息删除
JFramef=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
PIMS","Text","1234");
int学号=Integer.parseInt(jTextField1.getText());
Statementstmt=con.createStatement();
stmt.executeUpdate("DELETEFrom学生信息WHERE学号="+学号+"");
JOptionPane.showMessageDialog(f,"已删除");
stmt.close();
con.close();
}catch(Exceptionex){}
3.1.5查询成绩信息
图9成绩查询
输入学号可以查看该学生的课程成绩信息
成绩查询
ResultSetrs=null;JFramef=null;
int学号=Integer.parseInt(jTextField1.getText());
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=
DriverManager.getConnection("jdbc:
odbc:
PIMS","Text","1234");
Statementstmt=con.createStatement();
stmt.executeUpdate("SelectFrom成绩Where学号="+学号+"");
while(rs.next()){
JOptionPane.showMessageDialog(f,rs.getString("学号")+"\t"+rs.getString("课程号")+"\t"+rs.getString("成绩")+"\t");
}
stmt.close();
con.close();
}catch(Exceptionex){}
3.2教师信息管理模块
3.2.1录入教师信息
图10教师添加
在该页面的表单中输入教师信息,单击“添加”按钮后如果获取操作参数值是“添加成功”,则将获取的表单数据添加到数据库中关键代码如下:
教师添加
JFramef=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDri