java学生教师信息管理系统.docx
- 文档编号:3925812
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:23
- 大小:263.10KB
java学生教师信息管理系统.docx
《java学生教师信息管理系统.docx》由会员分享,可在线阅读,更多相关《java学生教师信息管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
java学生教师信息管理系统
《面向对象程序设计》
课程设计报告
题目:
学生—教师信息管理系统
第一章课程设计项目简介
学生--教师信息管理系统是一个学校管理不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生--教师信息管理系统应该能够为用户提供相关的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:
效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点,例如:
检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
本文介绍了学生—教师信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程,具体模块实施采用了原型法和面向对象系统开发方法。
并采用JAVA作为开发工具,mysql作为后台数据库。
本系统具有学生基本信息管理、学生成绩信息管理、教师基本信息管理等功能。
分成三大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。
本系统完成了学生信息的查询、修改、增加、删除;教师信息的查询、修改、增加、删除以及学生成绩信息的查询、修改、增加、删除等功能。
第二章需求分析
2.1系统设计与功能分析
学生—教师信息管理系统,可用于学校等机构的学生、教师基本信息管理、学生成绩信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用mysql数据库作为后台的数据库进行信息的存储,用SQL语句完成学生、教师基本信息的查询,修改,添加,删除的操作以及成绩的查询修改,录入,删除等。
用ODBC驱动实现前台Java与后台mysql数据库的连接。
Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
mysql数据库高效安全,两者结合可相互利用各自的优势。
2.1.1本系统实现的大致功能
为保证本学生—教师管理系统的安全性,分别对不同的用户可在系统中进行的操作作出了一定的权限设置。
1.用户登陆界面:
该界面可以选择使用者的身份,“管理员,教师,学生”,不同的身份有不同的操作界面和功能权限,用户名(本系统采用的是ID号)和密码输入正确即可登录。
登录的用户信息分别存储在mysql数据库的“stu(学生信息表)”,“man(管理员信息表)”,“tch(教师信息表)”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。
2.学生管理界面:
提供了学生基本信息的查询,学生成绩信息的查询,学生所拥有的操作权限如图2-1;
图2-1学生管理模块用例图
3.教师管理界面:
提供了对学生基本籍信息的查询、修改、添加、删除;学生成绩的查询、修改、添加、删除等功能,教师所拥有的操作权限如图2-2;
图2-2教师管理模块用例图
4.管理员管理界面:
拥有最高的权限,允许对学生、教师基本信息和学生成绩信息进行查询、修改、添加、删除等功能,管理员所拥有的操作权限如图2-3;
图2-3管理员管理模块用例图
第三章设计思路
3.1设计数据库
1.学生基本信息表:
字段名
类型
备注
stuId
char(6)
学号
stuName
varchar(20)
姓名
stuPwd
Char(6)
密码
stuSex
char
(2)
性别
stuAge
Int(3)
年龄
stuJg
varchar(20)
籍贯
stuDept
varchar(20)
所在系
2.教师基本信息表:
字段名
类型
备注
tchId
char(6)
教师号
tchName
varchar(20)
姓名
tchPwd
Char(6)
密码
tchSex
char
(2)
性别
tchAge
Int(3)
年龄
tchJg
varchar(20)
籍贯
tchDept
varchar(20)
所在系
3.管理员基本信息表:
字段名
类型
备注
manId
char(6)
教师号
manName
varchar(20)
姓名
manPwd
Char(6)
密码
4.学生成绩信息表:
字段名
类型
备注
tchId
char(6)
学号
tchName
varchar(20)
姓名
math
int(4)
数学成绩
yuwen
int(4)
语文成绩
english
int(4)
英语成绩
wuli
int(4)
物理成绩
huaxue
int(4)
化学成绩
3.2以类图说明基本设计思路
用户界面提供学生、教师、管理员等用户登录的操作;学生可以进行学生基本信息查询、学生成绩查询的操作;管理员可以进行学生基本信息管理、教师基本信息管理、学生成绩管理的操作;教师可以进行学生基本信息管理、教师基本信息查询、学生成绩管理的操作,系统的类图如图3-1;
图3-1系统类图
3.3功能流程以及工作流程描述
3.3.1登录窗口
使用用户,如学生、教师、管理员进行登录时,输入正确的用户名及密码,并选择所属类别(学生、教师、管理员),如果输入的用户名及密码与该类别在数据库mysql中的用户名(用户ID)及密码一致,我们就认为输入的用户名及密码是正确的,则可进行该类型用户所能进行的所有操作。
在设计所属类别选择时,使用了ButtonGroup组件,再在ButtonGroup组件中加入了3个JRadioButton单选按钮,并分别为这3个JRadioButton单选按钮设置事件监听,即选择相应类别时,在用户名或密码正确的情况下,就可进入进行下一步操作。
在登录页面还加入了两个JButton组件,即“登录”、“退出”,并为它们设置了事件监听,在之前的操作:
选择用户类别,用户名、密码输入正确的情况下,点击“登录”,就可进入相应的窗口进行操作,如果用户名或密码输入错误,则出现错误信息对话框:
“用户名或者密码错误”;点击“退出”则退出系统。
在此基础上使用了getRootPane().setDefaultButton()的方法设定回车所对应的按钮。
3.3.2选择操作对象窗口
登录成功后,出现的窗口是选择操作对象的窗口,即选择对学生这一对象的操作、对老师这一对象的操作或者对学生成绩的操作等。
系统针对不同的用户类别,设置的选择对象的响应操作是不同的,这样就有效地管理了系统的权限问题:
如学生只能对学生基本信息及学生成绩信息进行查询操作;教师能对学生基本信息、学生成绩信息进行查询、修改、添加、删除等各项操作以及对教师基本信息进行查询的操作;而管理员拥有最高权限,即能进行各项的查询、修改、添加、删除等操作。
3.3.3学生的操作窗口
因为学生只能对学生基本信息及学生成绩信息进行查询操作,所以学生在选择操作对象后,得到相应的学生基本信息查询窗口或学生成绩查询窗口只能进行查询或关闭窗口的操作。
在学生基本信息查询和学生成绩查询这两个窗口中,加入了JTable组件,用来显示相应的信息,同时运用了JScrollPane(jt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)的方法使得显示信息时,能够有一个滚动条;加入了两个JButton组件,即“查询”、“关闭”,在“查询”按钮前加入了一个JTextField组件,学生进行查询操作时,在JTextField中填写所要查询的名字,然后点击“查询”,或者回车(此处设定回车所对应的按钮为“查询”)调用可sql语句,就可以得到所要查找的人的相应信息了;在点击“关闭”时,所对应的事件监听用了dispose()的方法,对窗口进行关闭操作。
3.3.4管理员的操作窗口
管理员拥有最高权限,即能进行各项的查询、修改、添加、删除等操作,所以管理员在选择操作对象后,得到相应的学生基本信息窗口、学生成绩窗口或教师基本信息窗口能进行查询、修改、添加、删除等各项操作操作。
在相应的窗口中加入了五个JButton组件,即“查询”、“添加”、“修改”、“删除”、“关闭”。
对“查询”、“关闭”的点击事件与学生的操作窗口所用的方法相同。
点击“添加”按钮,弹出相应的添加窗口,在添加窗口中包含有输入加入相应信息的几个JTextField组件及三个JButton组件,即“添加”、“重置”、“取消”按钮,点击“添加”按钮,响应“添加”的点击事件,可将添加的内容加入到数据库中,并在相应JTable组件中显示;点击“重置”按钮,响应“重置”的点击事件,可将之前输入但没有点击“添加”的内容清空,然后用户就可以重新输入内容了;点击“取消”按钮响应“取消”的点击事件,运用dispose()的方法,退出添加窗口。
选择某一记录,点击“修改”按钮,弹出相应的修改窗口,在修改窗口中包含有输入要修改的相应信息的几个JTextField组件及三个JButton组件,即“修改”、“重置”、“取消”按钮,点击“修改”按钮,响应“修改”的点击事件,可将修改后的内容加入到数据库中,并在相应JTable组件中显示,如果只点击“修改”按钮,而未选择某一记录,则出现错误信息对话框:
“请选择一行”;点击“重置”及“取消”按钮的事件监听方法和上述添加窗口中“重置”及“取消”按钮的事件监听方法相同。
选择某一记录,点击“删除”按钮,可将选中的记录从数据库中删除,并在相应JTable组件中显示的记录信息删除,如果只点击“删除”按钮,而未选择某一记录,则出现错误信息对话框:
“请选择一行”。
3.3.5教师的操作窗口
教师进行学生基本信息及学生成绩的查询、修改、添加、删除等操作,同时也能进行教师基本信息的查询操作,所以教师在选择操作对象后,得到相应的学生基本信息窗口、学生成绩窗口或教师基本信息窗口,在学生基本信息窗口、学生成绩窗口中使用的方法与管理员的操作方法相同,所以是调用的是同一程序,在教师基本信息窗口中使用的方法与学生操作中的方法相同。
第四章系统实现
该系统由5个模块构成,包括登录界面模块、操作对象选择界面模块、学生基本信息管理模块、学生成绩信息管理模块、教师基本信息管理模块,以下分别加以叙述:
4.1登录界面模块
登录界面模块包括Management.java文件。
Management类继承了JFrame类,实现了事件监听接口,它有一个不带参数的构造函数Management(),用来生成Management实例,Management类将所有的功能集中到面板中,生成按钮,通过按钮的响应函数调用其他模块的函数来实现学生—教师管理系统的各个功能,以下是主界面的运行程序如图4-1,当用户名或密码输入错误时,则出现错误信息对话框:
“用户名或者密码错误”,如图4-2;
图4-1-1登录界面
图4-1-2错误信息对话框
4.2操作对象选择界面模块
4.2.1学生操作对象选择界面模块
两个单选按钮:
JRadioButtonstu1=newJRadioButton("学生");
JRadioButtoncorse=newJRadioButton("学生成绩");
对两个按钮的事件监听:
publicvoidactionPerformed(ActionEventel){
if(el.getSource()==stu1){
Studentta=newStudent();
}
elseif(el.getSource()==corse){
StudentCorseta=newStudentCorse();
}
elseif(el.getSource()==close){
k.dispose();
}
}
运行界面如图4-2-1:
图4-2-1学生操作对象选择界面
4.2.2教师操作对象选择界面模块
三个单选按钮:
JRadioButtonstu1=newJRadioButton("学生");
JRadioButtontch1=newJRadioButton("老师");
JRadioButtoncorse=newJRadioButton("学生成绩");
对三个按钮的事件监听:
publicvoidactionPerformed(ActionEventel){
if(el.getSource()==stu1){
StudentManagementta=newStudentManagement();
}
elseif(el.getSource()==tch1){
Teacherss1=newTeacher();
}
elseif(el.getSource()==corse){
CorseManagementta=newCorseManagement();
}
elseif(el.getSource()==close){
k.dispose();
}
}
运行界面如图4-2-2:
图4-2-2教师操作对象选择界面
4.2.2管理员操作对象选择界面模块
管理员操作对象选择界面模块使用的方法和教师操作对象选择模块的方法基本相同,只是对各个单选按钮的事件监听事件所调用的java文件不同;运行界面与教师操作对象选择界面完全相同;对三个按钮的事件监听:
publicvoidactionPerformed(ActionEventel){
if(el.getSource()==stu1){
StudentManagementta=newStudentManagement();
}
elseif(el.getSource()==tch1){
TeacherManagementta=newTeacherManagement();
}
elseif(el.getSource()==corse){
CorseManagementta=newCorseManagement();
}
elseif(el.getSource()==close){
k.dispose();
}
}
4.3学生基本信息管理模块
4.3.1管理员、教师对学生基本信息管理的模块
管理员、教师对学生基本信息管理的模块为StudentManagement.java文件,而StudentManagement.java调用了StuModel.java学生模型文件、StudentUpdateDialog.java学生信息更新文件、StuAddDialog.java学生信息添加文件。
在StuModel.java中连接数据库mysql:
PreparedStatementps=null;
Connectionct=null;
ResultSetrs=null;
Stringdriver="com.mysql.jdbc.Driver";
Stringurl="jdbc:
mysql:
//localhost:
3306/student";
Stringuser="root";
Stringpassword="123";
在StuAddDialog.java中,事件监听事件:
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jb1){
//希望添加
StuModeltemp=newStuModel();
Stringsql3="insertintostuvalues(?
?
?
?
?
?
?
)";
String[]paras3={jtf1.getText(),jtf2.getText(),jtf3.getText(),
jtf4.getText(),jtf5.getText(),jtf6.getText(),jtf7.getText()};
if(!
temp.updateStudent(sql3,paras3)){
JOptionPane.showMessageDialog(this,"添加失败");
}
this.dispose();
}elseif(e.getSource()==jb2){
//希望重置
jtf1.setText("");
jtf2.setText("");
jtf3.setText("");
jtf4.setText("");
jtf5.setText("");
jtf6.setText("");
jtf7.setText("");
jtf1.requestFocus();
}elseif(e.getSource()==jb3){
//希望删除
this.dispose();
}
}
在StudentUpdateDialog.java中的事件监听部分程序:
publicvoidactionPerformed(ActionEvente){
//用户更新
if(e.getSource()==jb1){
Stringsql3="updatestusetstuName=?
Pwd=?
stuSex=?
stuAge=?
stuJg=?
stuDept=?
wherestuId=?
";
String[]paras3={this.jtf2.getText(),jtf3.getText(),
this.jtf4.getText(),this.jtf5.getText(),
this.jtf6.getText(),this.jtf7.getText(),this.jtf1.getText()};
StuModeltemp=newStuModel();
temp.updateStudent(sql3,paras3);
this.dispose();
StudentManagementta=newStudentManagement();
}
在StudentManagement.java中事件监听事件的程序:
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==jb1){
Stringname=this.jtf.getText().trim();
Stringsql="select*fromstuwherestuName='"+name+"'";
if(name.trim().equals("")){
sm=newStuModel();
}else{
sm=newStuModel(sql);
}
jt.setModel(sm);
}
//当用户点击添加
elseif(e.getSource()==jb2){
StuAddDialogsad=newStuAddDialog(this,"添加学生",true);
//重新再获得新的数据模型
sm=newStuModel();
jt.setModel(sm);
}elseif(e.getSource()==jb3){
System.out.print("aaaa");
intrownum=this.jt.getSelectedRow();
if(rownum==-1){
JOptionPane.showMessageDialog(this,"请选择一行");
return;
}
//显示修改对话框
newStudentUpdateDialog(this,"修改对话框",true,sm,rownum);
}
//当用户点击删除
elseif(e.getSource()==jb4){
intrownum=this.jt.getSelectedRow();
if(rownum==-1){
JOptionPane.showMessageDialog(this,"请选择一行");
return;
}
//得到学生的编号
StringstuId=(String)sm.getValueAt(rownum,0);
StuModeltemp=newStuModel();
Stringsql="deletefromstuwherestuId=?
";
String[]paras={stuId};
if(!
temp.updateStudent(sql,paras)){
JOptionPane.showMessageDialog(this,"删除失败");
}
sm=newStuModel();
jt.setModel(sm);
}
elseif(e.getSource()==close){
this.dispose();
}
}
管理员、教师对学生基本信息管理的模块的几个界面如下:
图4-3-1管理员、教师对学生基本信息主界面
图4-3-2学生基本信息添加界面图4-3-3学生基本信息修改界面
图4-3-4添加失败时界面图4-3-4修改或删除未选中记录时界面
4.3.2学生对学生基本信息管理的模块
方法与管理员、教师对学生基本信息管理的模块相同,只是少了一些功能,主界面如
图4-3-4:
图4-3-4学生对学生基本信息管理主界面
4.4学生成绩信息管理模块
4.4.1管理员、教师对学生成绩管理的模块
调用方法与以上管理员、教师对学生基本信息管理的模块方法大致相同,只是所运用的sql语句有所不同,管理员、教师对学生成绩管理的界面如图4-4-1:
图4-4-1管理员、教师对学生成绩管理的界面
图4-4-2学生成绩信息添加界面图4-4-3学生成绩信息修改界面
4.4.2学生对学生成绩查询的模块
方法与管理员、教师对学生成绩信息管理的模块相同,只是少了一些功能,主界面如
图4-4-4:
图4-4-4学生对学生成绩信息管理主界面
4.5教师基本信息管理模块
4.5.1管理员对教师基本信息管理的模块
调用方法与以上管理员、教师对学生基本信息管理的模块方法大致相同,只是所运用的sql语句有所不同,管理员、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 学生 教师 信息管理 系统