基于Java语言的学生信息管理系统的设计与实现.docx
- 文档编号:5702649
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:37
- 大小:7.93MB
基于Java语言的学生信息管理系统的设计与实现.docx
《基于Java语言的学生信息管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Java语言的学生信息管理系统的设计与实现.docx(37页珍藏版)》请在冰豆网上搜索。
基于Java语言的学生信息管理系统的设计与实现
基于Java语言的学生信息管理系统的设计与实现
前言
由于科学技术的飞速发展,科学技术日益成熟,其强大的功能已为人们深刻了解,已经进入到了社会建设的各个方向并发挥着不可替代的作用。
作为计算机应用的一个部分,使用计算机对学生信息进行管理,具有人工纸质管理所无法可比的优势,例如:
检索方便、查找方便、可靠性好、存储量大、安全性好、成本低等。
这些明显的优势可以极大的提高学校对学生信息管理中的办事效率,也是科学化、规范化管理的重要条件。
因此开发这样一个软件是十分有必要的。
1系统设计的背景和意义
学生信息管理系统是一个综合性管理软件,该系统可以实现信息的规范安全的信息快速查询等功能,极大地方便了网络信息的更新、维护和查询功能,提高了学校对学生信息管理中的效率,降低学生管理的时间和资源成本,提高了管理水平。
然而长期以来,很多地方中学基本上都是使用传统手工的方式来管理学生的信息。
而这种传统的管理方式随着社会科学技术的发展和对和方面要求的增加也渐渐的显现出效率低下、保密性差等弊端。
另外,随着使用时间的增加将会产生大量的缓存文件和数据,这对于找寻和维护都带来了很多的困难。
传统的学生信息管理都是纸质的,这些资料给中学校区各部门的工作带来了严重的不便,无论是在存放还是在管理上都存在着严重的浪费。
本系统可以避免这种不合理的资源浪费,加速中学校区的信息化建设的进程。
传统的学生信息管理形式,缺乏条理性和延续性,对时间久远的资料查找和管理工作成为十分困难的问题。
本系统的实现,使校园管理者对学生信息的动态管理的所有的资料一目了然,而且方便了查询工作,进一步提高了学校各部门的工作效率。
综上所述,中学校区学生信息管理系统的开发是中学校区信息化建设的需求,本系统的实现,符合我国中学校区的实际情况,为中学的日常工作和管理体系提供了必要的平台和技术保障.
2需求分析
2.1Oracle
Oracle数据库是当前计算机应用最为广泛的数据库产品,由于oracle数据库在系统设计上卓越的安全性,完备性,稳定性以及支持多种操作系统,多种硬件平台等特点,受到了广泛的应用。
2.2Oracle数据库的主要特点
该数据库支持多分布式数据处理,允许利用计算机网络系统,将不同区域的数据库服务器连接起来,实现软件,硬件,数据等的资源共享,实现数据的统一管理和控制。
2.3技术可行性
学生信息管理系统作为中小学校信息化透明公开建设的主要组成部分,主要解决以下问题:
工作量繁琐,效率低、数据共享问题困难、网络化程度低,资源浪费等在学生信息动态管理中出现的常见问题。
2.4操作可行性
2.4.1安全性
我们所设计的系统应具有良好和安全高效的通信机制,包括身份识别,权限控制,等以解决学生管理信息系统的安全性、保密性问题,防止信息等重要资料的泄密。
2.4.2健壮性
设计的系统应有查错纠错功能,当遇到用户这异常输入或违规操作时,能提示错误并且继续运转。
2.4.3易使用性
应用系统的设计应符合日常办公运作的需求,功能完全,容易上手,界面简洁清晰,易于扩充。
2.4.4可维护性
系统应具有可维护性,当使用者操作出现故障的时候,我们要做到修复的各种成本比较低廉的简洁。
2.5功能划分与描述
根据系统的目标,总结出系统的五大功能。
具体如下
2.5.1班级管理
班级管理的功能就是实现对各个班级的信息的管理。
当学校有新生入校的时候需要增加班级,超级管理员则将各个班级的信息通过系统输入到数据库中进行管理;而学生则可以查询自己的班级信息。
2.5.2课程管理
课程管理的功能就是要实现对各个班级所学课程的管理。
具体来说,在新学期开始前,由学校教务处安排好课程,管理员则将学校安排好的课程以班级为单位发布在该系统中;以供到开学的时候,学生可以通过本系统查询这学期的课程。
当有任课老师有事需要调课的时候,管理员有权并完全可以自主修改班级课程并通知学生,以便能让学生及时获得调课的信息,从而做好上课准备,不耽误新课程的学习。
2.5.3成绩管理
学生成绩管理的功能就是要实现对学生考试成绩的管理。
学生每次考试的考试成绩可由任课老师通过本系统录入到数据库中进行保存。
学生可以在每次考试的成绩出来后登陆本系统来查询自己本次的考试成绩。
2.5.4用户管理
用户管理功能是实现对使用用户的管理。
该功能包括添加用户,删除用户,查询信息等操作。
3系统总体设计
3.1抽象实体
本系统从结构上主要可以抽象出5个实体对象,它们分别为:
学生基本信息,老师基本信息,课程信息,成绩信息和班级信息。
3.2实体间的联系
本系统各数据表的关系如下:
在系统设计中班级信息表(ClassTable)与学生信息表(StudentTable)在系统设计中都是以一对多的关系存在的,通过Grade、Class关键字建立起两个数据表的联系,班级信息表的一条记录信息可以对应学生信息表的多条记录信息;班级信息表与课程信息表则是多对多的关系,通过Grade字段、Class字段和Course字段建立起各个数据表之间的某种联系,班级信息表的一条记录对应课程信息表的多条记录,同样,课程信息表的一条记录对应班级信息表的多条记录。
课程信息表(CourseTable)与成绩信息表(ResultTable)也以是一对多的关系设计的,通过Course、StuNum字段建立两个起数据表的各种联系,课程信息表的一条记录可以对应成绩信息表的多条记录。
学生信息表(StudentTable)与奖学金信息表(ScholarshipTable)、等也是一对多的关系,通过学生信息表的StuNum字段分别建立了两个数据信息表之间的关系。
一条学生信息表的记录可以分别对应奖学金信息表、奖惩信息表等等多种学生在学习生活中所需要的信息表。
3.3数据库表设计
3.3.1用户表数据定义
表3-1用户表
UserTable
字段名
数据类型
长度
是否关键字
说明
UserID
varchar
10
是
账号
UserPassword
varchar
10
否
密码
UserStyle
varchar
10
否
类型
3.3.2班级信息表数据定义
图3-2班级表
ClassTable
字段
数据类型
长度
是否关键字
说明
Grade
varchar
10
是
年级
Class
varchar
10
是
班级
Num
int
4
否
人数
HeadTeacher
varchar
20
否
班主任
Section
varchar
20
否
备注
3.3.3成绩表数据定义
图3-3成绩表
ResultTable
字段名
数据类型
长度
是否关键字
说明
Grade
varchar
10
否
年级
Class
varchar
10
否
班级
Term
varchar
20
否
学期
Result
float
8
否
成绩
StuNum
varchar
20
否
学号
Course
varchar
20
是
课程名称
3.3.4课程信息表数据定义
图3-4课程表
CourseTable
字段名
数据类型
长度
是否关键字
说明
Grade
varchar
10
是
年级
Class
varchar
10
是
班级
Course
varchar
20
否
课程名称
Term
varchar
20
否
学期
ClassHour
int
4
否
课时
ExamStyle
varchar
10
否
考试类型
3.3.5学生信息表数据定义
图3-5学生表
StudentTable
字段名
数据类型
长度
是否关键字
说明
StuNum
varchar
20
是
学号
StuName
varchar
20
否
姓名
StuSex
varchar
2
否
性别
Class
varchar
10
否
班级
Grade
varchar
20
否
年级
Money
varchar
20
否
出生日期
RelationAddress
varchar
50
否
联系地址
RelationNumber
varchar
20
否
联系号码
ParentsNumber
varchar
20
否
家长号码
3.3.6教工信息表数据定义
图3-6教工表
TeacherTable
字段名
数据类型
长度
是否关键字
说明
TNum
varchar
20
是
学号
TName
varchar
20
否
姓名
TSex
varchar
2
否
性别
BornYear
varchar
20
否
出生日期
Position
varchar
20
否
职称
RelationNumber
varchar
20
否
联系号码
ParentsNumber
varchar
20
否
家长号码
4系统详细设计
4.1用户登录模块
4.1.1用户登录
用户登录本系统时,输要入用户名和密码。
图4-1登陆界面
主要代码如下:
publicLogin(){
//初始化组件
p=newBbPanel();
p2=newBbPanel();
jl1=newJLabel(newImageIcon("image/top.png"));;
//添加组件
p2.add(jb1);
p2.add(jb2);
p1=newBbPanel();
jl2.setBounds(35,5,98,42);
jt1=newJTextField(15);//文本框
p1.add(jt1);
jt1.setBounds(145,15,150,22);
p1.add(jl3);
jl3.setBounds(32,43,105,35);
p1.add(jp1);
jp1.setBounds(145,49,150,22);
p1.setLayout(null);
this.add(p);
//设置页面属性
this.setBounds(400,300,385,400);
this.setIconImage(newImageIcon("image/logo.jpg").getImage());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
4.1.2用户登录验证模块
主要对用户输入的数据进行判断,并给予必要的提示。
if(userId.length()==0){
}elseif(userPassword.length()==0){
}elseif(userService.checkUser(userId,userPassword).equals("用户名错误")){
}elseif(userService.checkUser(userId,userPassword).){
JOptionPane.showMessageDialog(this,"密码错误");}
}elseif(e.getSource()==jb2){
this.dispose();//取消使用学生管理系统
}
}
}
如果使用者没有输入用户名就点击确定,系统会弹出一个提示对话框,提示用户名不能为空。
如果没有输入密码就点击确定时,系统会弹出一个提示对话框,提示密码不能为空。
如果用户名输入错误,系统将提示用户名错误
如果密码输入错误,会提示密码错误
4.2用户角色验证模块
系统会根据用户输入的数据,自动执行与数据库的数据相对比,从而判断用户属于哪种角色。
共可分为学生、教师、超级管理员和教务管理员四种类型。
主要代码如下:
if(e.getSource()==jb1){
if(userService.checkUser(userId,userPassword).equals("学生")){
newMainStudent(userId);
}elseif(userService.checkUser(userId,userPassword).equals("教师")){
newMainTeacher(userId);
}elseif(userService.checkUser(userId,userPassword).
||
userService.checkUser(userId,userPassword).
//超级管理员或者教务管理员
newSuperManager(userId);
this.dispose();//关闭登录窗口
}
4.3学生管理模块
如果是以学生的身份登录,系统就直接进入学生主页面。
学生管理模块可分为个人信息、课程查询、成绩查询、修改密码、学生反馈、会考报名、中考报名、高考报名和注销登录九个模块。
图4-2管理模块图
主要代码如下:
//***面板*************************************
p2l6=newJLabel("班级:
",JLabel.CENTER);
p2l8=newJLabel("联系电话:
",JLabel.CENTER);
p2t1=newJTextField(10);
p2t1.setEditable(false);
p2t2=newJTextField(10);
p2t2.setEditable(false);
p2t3=newJTextField(10);
p2t3.setEditable(false);
p2t4=newJTextField(10);
p2t4.setEditable(false);
p2t5=newJTextField(10);
p2t5.setEditable(false);
p2t6=newJTextField(10);
p2t6.setEditable(false);
p2t7=newJTextField(10);
p2t7.setEditable(false);
p2t8=newJTextField(10);
p2t8.setEditable(false);
p2t7.setBounds(331,369,206,26);
p2l8.setBounds(179,421,206,57);
p2.add(p2t8);
p2t8.setBounds(331,436,206,27);
p2l7.setBounds(184,354,206,57);
}
4.3.1个人信息模块
系统登录到学生主页面时,用户可以直接浏览到所登用户的详细信息
图4-3个人信息图
4.3.2课程查询模块
用户可以根据学年、学期、年级和班级多个条件进行查询。
同时也可以下载最新学期课程表。
图4-4课程表图
主要代码如下所示:
Vector
wy.add("");
wy.add("2013");
wy.add("2012");
wy.add("2011");
//表头
title=newVector
title.add("节数");
title.add("星期一");
title.add("星期二");
title.add("星期三");
title.add("星期四");
title.add("星期五");
title.add("星期六");
title.add("星期日");
Gccserviceg1=newGccservice();
Vector
model=newDefaultTableModel(data,title);//创建tableModel
table=newJTable(model);
table.setRowHeight(45);
p3.add(p11,"South");
p11.setBounds(0,0,19,19);
p3jl=newJLabel("学年:
",JLabel.CENTER);
jScrollPane_IL=newJScrollPane(table);
p3.add(jScrollPane_IL,"Center");
jScrollPane_IL.setBounds(71,57,453,403);
p3.add(p3jl);
p3jl.setBounds(6,19,50,17);
p3jcb=newJComboBox(wy);
p3.add(p3jcb);
p3jcb.setBounds(52,19,61,16);
term1=newJLabel();
p3.add(term1);
term1.setText("\u5b66\u671f");
term1.setBounds(119,19,28,16);
ComboBoxModelterm2Model=
newDefaultComboBoxModel(
term2=newJComboBox();
p3.add(term2);
term2.setModel(term2Model);
term2.setBounds(147,19,59,18);
check=newJButton();
p3.add(check);
check.setText("\u67e5\u8be2");
check.setBounds(460,22,64,16);
check.addActionListener(this);
p3b1=newJButton("下载新学期课程");
p3b1.addActionListener(this);
p3.add(p3b1);
p3b1.setBounds(549,22,142,16);
t1=newJLabel();
p3.add(t1);
t1.setText("\u5e74\u7ea7");
t1.setBounds(212,21,36,15);
t2Model=
newDefaultComboBoxModel(
newString[]{"","初一","初二","初三","高一","高二","高三"});
t2=newJComboBox();
p3.add(t2);
t2.setModel(t2Model);
t2.setBounds(241,19,73,19);
t3=newJLabel();
p3.add(t3);
t3.setText("\u73ed\u7ea7");
t3.setBounds(318,21,31,15);
t4Model=
newDefaultComboBoxModel(
String[]{"","01","02","03","04"});
t4=newJComboBox();
p3.add(t4);
t4.setModel(t4Model);
t4.setBounds(367,21,73,18);
//设置第三个面板(P4)--成绩查询
p4l2=newJLabel("数学:
",JLabel.CENTER);
p4l3=newJLabel("英语:
",JLabel.CENTER);
p4l4=newJLabel("物理:
",JLabel.CENTER);
p4l5=newJLabel("化学:
",JLabel.CENTER);
p4l6=newJLabel("生物:
",JLabel.CENTER);
p4l7=newJLabel("历史:
",JLabel.CENTER);
p4l8=newJLabel("地理:
",JLabel.CENTER);
p4l9=newJLabel("政治:
",JLabel.CENTER);
p4l10=newJLabel("美术:
",JLabel.CENTER);
p4l11=newJLabel("体育:
",JLabel.CENTER);
p4l12=newJLabel("音乐:
",JLabel.CENTER);
4.3.3成绩查询模块
点击此模块,用户可以快速了解到自己的考试成绩。
图4-5成绩查询界面
主要代码如下:
StudentDaos=newStudentDao();
Vector
Vector
for(inti=0;i Resultrut=ress.get(i); Stringa=rut.getCourse(); if(a.equals("语文")) p4t1.setText(rut.getResult()+""); }elseif(a.equals("数学")){ p4t2.setText(rut.getResult()+""); }elseif(a.equals("英语")){ p4t3.setText(rut.getResult()+""); }elseif(a.equals("物理")){ p4t4.setText(rut.getResult()+""); }elseif(a.equals("化学")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 语言 学生 信息管理 系统 设计 实现