资源描述
《面向对象程序设计》
课程设计报告
题目 : 学生—教师信息管理系统
目录
第一章 课程设计项目简介 1
第二章 需求分析 1
2.1 系统设计与功能分析 1
2.1.1本系统实现的大致功能 1
第三章 设计思路 3
3.1设计数据库 3
3.2以类图说明基本设计思路 4
3.3功能流程以及工作流程描述 5
3.3.1 登录窗口 5
3.3.2 选择操作对象窗口 6
3.3.3 学生的操作窗口 6
3.3.4 管理员的操作窗口 6
3.3.5 教师的操作窗口 7
第四章 系统实现 7
4.1登录界面模块 7
4.2操作对象选择界面模块 8
4.2.1 学生操作对象选择界面模块 8
4.2.2教师操作对象选择界面模块 8
4.2.2管理员操作对象选择界面模块 9
4.3学生基本信息管理模块 10
4.3.1管理员、教师对学生基本信息管理的模块 10
4.3.2学生对学生基本信息管理的模块 14
4.4学生成绩信息管理模块 14
4.4.1管理员、教师对学生成绩管理的模块 14
4.4.2学生对学生成绩查询的模块 15
4.5教师基本信息管理模块 16
4.5.1管理员对教师基本信息管理的模块 16
4.5.2教师对教师基本信息查询的模块 17
第五章 使用说明 18
5.1开发、运行环境要求 18
5.2程序运行 18
第六章 设计总结 19
第七章 参考文献 19
第一章 课程设计项目简介
学生--教师信息管理系统是一个学校管理不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生--教师信息管理系统应该能够为用户提供相关的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
本文介绍了学生—教师信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程,具体模块实施采用了原型法和面向对象系统开发方法。并采用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 学生操作对象选择界面模块
两个单选按钮:
JRadioButton stu1 = new JRadioButton("学生");
JRadioButton corse = new JRadioButton("学生成绩");
对两个按钮的事件监听:
public void actionPerformed(ActionEvent el) {
if(el.getSource()==stu1){
Student ta = new Student();
}
else if(el.getSource()==corse){
StudentCorse ta = new StudentCorse();
}
else if(el.getSource()==close){
k.dispose();
}
}
运行界面如图4-2-1:
图4-2-1 学生操作对象选择界面
4.2.2教师操作对象选择界面模块
三个单选按钮:
JRadioButton stu1 = new JRadioButton("学生");
JRadioButton tch1 = new JRadioButton("老师");
JRadioButton corse = new JRadioButton("学生成绩");
对三个按钮的事件监听:
public void actionPerformed(ActionEvent el) {
if(el.getSource()==stu1){
StudentManagement ta = new StudentManagement();
}
else if(el.getSource()==tch1){
Teacher ss1= new Teacher();
}
else if(el.getSource()==corse){
CorseManagement ta = new CorseManagement();
}
else if(el.getSource()==close){
k.dispose();
}
}
运行界面如图4-2-2:
图4-2-2 教师操作对象选择界面
4.2.2管理员操作对象选择界面模块
管理员操作对象选择界面模块使用的方法和教师操作对象选择模块的方法基本相同,只是对各个单选按钮的事件监听事件所调用的java文件不同;运行界面与教师操作对象选择界面完全相同;对三个按钮的事件监听:
public void actionPerformed(ActionEvent el) {
if(el.getSource()==stu1){
StudentManagement ta = new StudentManagement();
}
else if(el.getSource()==tch1){
TeacherManagement ta = new TeacherManagement();
}
else if(el.getSource()==corse){
CorseManagement ta = new CorseManagement();
}
else if(el.getSource()==close){
k.dispose();
}
}
4.3学生基本信息管理模块
4.3.1管理员、教师对学生基本信息管理的模块
管理员、教师对学生基本信息管理的模块为StudentManagement.java文件,而StudentManagement.java调用了StuModel.java学生模型文件、StudentUpdateDialog.java学生信息更新文件、StuAddDialog.java学生信息添加文件。在StuModel.java中连接数据库mysql:
PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/student";
String user = "root";
String password = "123";
在StuAddDialog.java中,事件监听事件:
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jb1) {
// 希望添加
StuModel temp = new StuModel();
String sql3 = "insert into stu values(?,?,?,?,?,?,?)";
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();
} else if (e.getSource() == jb2) {
// 希望重置
jtf1.setText("");
jtf2.setText("");
jtf3.setText("");
jtf4.setText("");
jtf5.setText("");
jtf6.setText("");
jtf7.setText("");
jtf1.requestFocus();
}else if (e.getSource() == jb3) {
// 希望删除
this.dispose();
}
}
在StudentUpdateDialog.java中的事件监听部分程序:
public void actionPerformed(ActionEvent e) {
//用户更新
if (e.getSource() == jb1) {
String sql3 = "update stu set stuName=?,Pwd=?,stuSex=?,stuAge=?,
stuJg=?,stuDept=? where stuId=?";
String[] paras3 = { this.jtf2.getText(), jtf3.getText(),
this.jtf4.getText(), this.jtf5.getText(),
this.jtf6.getText(),this.jtf7.getText(), this.jtf1.getText() };
StuModel temp = new StuModel();
temp.updateStudent(sql3, paras3);
this.dispose();
StudentManagement ta = new StudentManagement();
}
在StudentManagement.java中事件监听事件的程序:
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == jb1) {
String name = this.jtf.getText().trim();
String sql = "select * from stu where stuName='" + name + "'";
if (name.trim().equals("")) {
sm = new StuModel();
} else {
sm = new StuModel(sql);
}
jt.setModel(sm);
}
// 当用户点击添加
else if (e.getSource() == jb2) {
StuAddDialog sad = new StuAddDialog(this, "添加学生", true);
// 重新再获得新的数据模型
sm = new StuModel();
jt.setModel(sm);
} else if (e.getSource() == jb3) {
System.out.print("aaaa");
int rownum = this.jt.getSelectedRow();
if (rownum == -1) {
JOptionPane.showMessageDialog(this, "请选择一行");
return;
}
// 显示修改对话框
new StudentUpdateDialog(this, "修改对话框", true, sm, rownum);
}
// 当用户点击删除
else if (e.getSource() == jb4) {
int rownum = this.jt.getSelectedRow();
if (rownum == -1) {
JOptionPane.showMessageDialog(this, "请选择一行");
return;
}
// 得到学生的编号
String stuId = (String) sm.getValueAt(rownum, 0);
StuModel temp = new StuModel();
String sql = "delete from stu where stuId=?";
String[] paras = { stuId };
if (!temp.updateStudent(sql, paras)) {
JOptionPane.showMessageDialog(this, "删除失败");
}
sm = new StuModel();
jt.setModel(sm);
}
else if(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语句有所不同,管理员、教师对基本学生信息管理的界面如图4-4-1:
图4-5-1管理员对教师基本信息管理的界面
图4-5-2教师基本信息添加界面 图4-5-3教师基本信息修改界面
4.5.2教师对教师基本信息查询的模块
方法与管理员、教师对教师基本信息管理的模块相同,只是少了一些功能,主界面如
图4-5-4:
图4-5-4教师对教师基本信息查询主界面
第五章 使用说明
5.1开发、运行环境要求
(1) 数据库软件:mysql
(2) Java开发工具:Eclipse
5.2程序运行
运行程序为Management.java文件,默认的用户名和密码:
学生
用户名:
xx1001
密 码:
xx1001
教师
用户名:
s10001
密 码:
s10001
管理员
用户名:
m10001
密 码:
m10001
第六章 设计总结
本系统具有学生基本信息管理、学生成绩信息管理、教师基本信息管理等功能。分成三大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。本系统完成了学生信息的查询、修改、增加、删除;教师信息的查询、修改、增加、删除以及学生成绩信息的查询、修改、增加、删除等功能。
在这次课程设计中,遇到最大的困难是连接数据库,开始我想连接sql server2008数据库,但也许是软件的问题,总连不上,最后在同学的帮助下连接了mysql数据库,可能由于知识掌握得不够全面,一些细小的问题都要纠结很久才能够解决,这也敲响了我要巩固基础知识的警钟。同时这次课程设计让我接触到了许多新知识,学到许多新东西,锻炼了我的独立学习能力,也锻炼了我解决问题的能力。由于我能力有限,加上时间仓促,所以本系统必然会存在一些缺陷和不足。希望老师批评指正。
第七章 参考文献
[1] 韩顺平 循序渐进学.java.从入门到精通(视频)教程
[2] (美)BRIAN JEPSON(译),钱毅,张租荫 Java数据库编程指南 电子工业出版社 1998-10
[3] 郑莉,王行言,马素霞 Java语言程序教程 清华大学出版社 2006-01
展开阅读全文