java学生教师信息管理系统Word文件下载.docx
《java学生教师信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《java学生教师信息管理系统Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
![java学生教师信息管理系统Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/2/80a45cd1-cf68-476d-96e5-7d9106f38e55/80a45cd1-cf68-476d-96e5-7d9106f38e551.gif)
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
籍贯
stuDept
所在系
2.教师基本信息表:
tchId
教师号
tchName
tchPwd
tchSex
tchAge
tchJg
tchDept
3.管理员基本信息表:
manId
manName
manPwd
4.学生成绩信息表:
math
int(4)
数学成绩
yuwen
语文成绩
english
英语成绩
wuli
物理成绩
huaxue
化学成绩
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教师操作对象选择界面模块
三个单选按钮:
JRadioButtontch1=newJRadioButton("
老师"
对三个按钮的事件监听:
if(el.getSource()==stu1){
StudentManagementta=newStudentManagement();
elseif(el.getSource()==tch1){
Teacherss1=newTeacher();
CorseManagementta=newCorseManagement();
运行界面如图4-2-2:
图4-2-2教师操作对象选择界面
4.2.2管理员操作对象选择界面模块
管理员操作对象选择界面模块使用的方法和教师操作对象选择模块的方法基本相同,只是对各个单选按钮的事件监听事件所调用的java文件不同;
运行界面与教师操作对象选择界面完全相同;
TeacherManagementta=newTeacherManagement();
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){
//希望删除
在StudentUpdateDialog.java中的事件监听部分程序:
//用户更新
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()};
temp.updateStudent(sql3,paras3);
在StudentManagement.java中事件监听事件的程序:
//TODOAuto-generatedmethodstub
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();
}elseif(e.getSource()==jb3){
System.out.print("
aaaa"
intrownum=this.jt.getSelectedRow();
if(rownum==-1){
请选择一行"
return;
//显示修改对话框
newStudentUpdateDialog(this,"
修改对话框"
true,sm,rownum);
//当用户点击删除
elseif(e.getSource()==jb4){
//得到学生的编号
StringstuId=(String)sm.getValueAt(rownum,0);
deletefromstuwherestuId=?
String[]paras={stuId};
temp.updateStudent(sql,paras)){
删除失败"
elseif(e.getSource()==close){
管理员、教师对学生基本信息管理的模块的几个界面如下:
图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-