1、面向对象程序设计课程设计报告题目 : 学生教师信息管理系统 目录第一章 课程设计项目简介1第二章 需求分析12.1 系统设计与功能分析12.1.1本系统实现的大致功能1第三章 设计思路33.1设计数据库33.2以类图说明基本设计思路43.3功能流程以及工作流程描述53.3.1 登录窗口53.3.2 选择操作对象窗口63.3.3 学生的操作窗口63.3.4 管理员的操作窗口63.3.5 教师的操作窗口7第四章 系统实现74.1登录界面模块74.2操作对象选择界面模块84.2.1 学生操作对象选择界面模块84.2.2教师操作对象选择界面模块84.2.2管理员操作对象选择界面模块94.3学生基本信息
2、管理模块104.3.1管理员、教师对学生基本信息管理的模块104.3.2学生对学生基本信息管理的模块144.4学生成绩信息管理模块144.4.1管理员、教师对学生成绩管理的模块144.4.2学生对学生成绩查询的模块154.5教师基本信息管理模块164.5.1管理员对教师基本信息管理的模块164.5.2教师对教师基本信息查询的模块17第五章 使用说明185.1开发、运行环境要求185.2程序运行18第六章 设计总结19第七章 参考文献19第一章 课程设计项目简介学生-教师信息管理系统是一个学校管理不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的
3、内容对于学校的决策者和管理者来说都至关重要。所以学生-教师信息管理系统应该能够为用户提供相关的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、
4、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。本文介绍了学生教师信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程,具体模块实施采用了原型法和面向对象系统开发方法。并采用JAVA作为开发工具,mysql作为后台数据库。本系统具有学生基本信息管理、学生成绩信息管理、教师基本信息管理等功能。分成三大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。 本系统完成了学生信息的查询、修改、增加、删除;教师信息的查询、修改、增加、删除以及学生成绩信息的查询、修改、增加、删除等功能。第二章
5、需求分析2.1 系统设计与功能分析 学生教师信息管理系统,可用于学校等机构的学生、教师基本信息管理、学生成绩信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用mysql数据库作为后台的数据库进行信息的存储,用SQL语句完成学生、教师基本信息的查询,修改,添加,删除的操作以及成绩的查询修改,录入,删除等。用ODBC驱动实现前台Java与后台mysql数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。mysql数据库高效安全,两者结合可相互利用各自的优势。2.1.1本系统实现的大致功能
6、为保证本学生教师管理系统的安全性,分别对不同的用户可在系统中进行的操作作出了一定的权限设置。1. 用户登陆界面:该界面可以选择使用者的身份,“管理员,教师,学生”,不同的身份有不同的操作界面和功能权限,用户名(本系统采用的是ID号)和密码输入正确即可登录。登录的用户信息分别存储在mysql数据库的“stu(学生信息表)”,“man(管理员信息表)”, “tch(教师信息表)”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。2. 学生管理界面:提供了学生基本信息的查询,学生成绩信息的查询,学生所拥有的操作权限如图2-1;图2-1学生管理模块用例图3. 教师管理界面:提供了对学生基本籍
7、信息的查询、修改、添加、删除;学生成绩的查询、修改、添加、删除等功能,教师所拥有的操作权限如图2-2;图2-2教师管理模块用例图4. 管理员管理界面:拥有最高的权限,允许对学生、教师基本信息和学生成绩信息进行查询、修改、添加、删除等功能,管理员所拥有的操作权限如图2-3;图2-3管理员管理模块用例图第三章 设计思路3.1设计数据库1.学生基本信息表:字段名类型备注stuIdchar(6)学号stuNamevarchar(20)姓名stuPwdChar(6)密码stuSexchar(2)性别stuAgeInt(3)年龄stuJgvarchar(20)籍贯stuDeptvarchar(20)所在系
8、2. 教师基本信息表:字段名类型备注tchIdchar(6)教师号tchNamevarchar(20)姓名tchPwdChar(6)密码tchSexchar(2)性别tchAgeInt(3)年龄tchJgvarchar(20)籍贯tchDeptvarchar(20)所在系3. 管理员基本信息表:字段名类型备注manIdchar(6)教师号manNamevarchar(20)姓名manPwdChar(6)密码4. 学生成绩信息表:字段名类型备注tchIdchar(6)学号tchNamevarchar(20)姓名mathint(4)数学成绩yuwenint(4)语文成绩englishint(4)英
9、语成绩wuliint(4)物理成绩huaxueint(4)化学成绩3.2以类图说明基本设计思路 用户界面提供学生、教师、管理员等用户登录的操作;学生可以进行学生基本信息查询、学生成绩查询的操作;管理员可以进行学生基本信息管理、教师基本信息管理、学生成绩管理的操作;教师可以进行学生基本信息管理、教师基本信息查询、学生成绩管理的操作,系统的类图如图3-1;图3-1系统类图3.3功能流程以及工作流程描述3.3.1 登录窗口使用用户,如学生、教师、管理员进行登录时,输入正确的用户名及密码,并选择所属类别(学生、教师、管理员),如果输入的用户名及密码与该类别在数据库mysql中的用户名(用户ID)及密码
10、一致,我们就认为输入的用户名及密码是正确的,则可进行该类型用户所能进行的所有操作。在设计所属类别选择时,使用了ButtonGroup组件,再在ButtonGroup组件中加入了3个JRadioButton单选按钮,并分别为这3个JRadioButton单选按钮设置事件监听,即选择相应类别时,在用户名或密码正确的情况下,就可进入进行下一步操作。在登录页面还加入了两个JButton组件,即“登录”、“退出”,并为它们设置了事件监听,在之前的操作:选择用户类别,用户名、密码输入正确的情况下,点击“登录”,就可进入相应的窗口进行操作,如果用户名或密码输入错误,则出现错误信息对话框:“用户名或者密码错误
11、”;点击“退出”则退出系统。在此基础上使用了getRootPane().setDefaultButton()的方法设定回车所对应的按钮。3.3.2 选择操作对象窗口登录成功后,出现的窗口是选择操作对象的窗口,即选择对学生这一对象的操作、对老师这一对象的操作或者对学生成绩的操作等。系统针对不同的用户类别,设置的选择对象的响应操作是不同的,这样就有效地管理了系统的权限问题:如学生只能对学生基本信息及学生成绩信息进行查询操作;教师能对学生基本信息、学生成绩信息进行查询、修改、添加、删除等各项操作以及对教师基本信息进行查询的操作;而管理员拥有最高权限,即能进行各项的查询、修改、添加、删除等操作。3.3
12、.3 学生的操作窗口 因为学生只能对学生基本信息及学生成绩信息进行查询操作,所以学生在选择操作对象后,得到相应的学生基本信息查询窗口或学生成绩查询窗口只能进行查询或关闭窗口的操作。在学生基本信息查询和学生成绩查询这两个窗口中,加入了JTable组件,用来显示相应的信息,同时运用了JScrollPane(jt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)的方法使得显示信息时,能够有一个滚动条;加入了两个JButton组件,即“查询”、“关闭”,在“查询”按钮前加入了一个JText
13、Field组件,学生进行查询操作时,在JTextField中填写所要查询的名字,然后点击“查询”,或者回车(此处设定回车所对应的按钮为“查询”)调用可sql语句,就可以得到所要查找的人的相应信息了;在点击“关闭”时,所对应的事件监听用了dispose()的方法,对窗口进行关闭操作。3.3.4 管理员的操作窗口管理员拥有最高权限,即能进行各项的查询、修改、添加、删除等操作,所以管理员在选择操作对象后,得到相应的学生基本信息窗口、学生成绩窗口或教师基本信息窗口能进行查询、修改、添加、删除等各项操作操作。在相应的窗口中加入了五个JButton组件,即“查询”、“添加”、“修改”、“删除”、“关闭”。
14、对“查询”、“关闭”的点击事件与学生的操作窗口所用的方法相同。点击“添加”按钮,弹出相应的添加窗口,在添加窗口中包含有输入加入相应信息的几个JTextField组件及三个JButton组件,即“添加”、“重置”、“取消”按钮,点击“添加”按钮,响应“添加”的点击事件,可将添加的内容加入到数据库中,并在相应JTable组件中显示;点击“重置”按钮,响应“重置”的点击事件,可将之前输入但没有点击“添加”的内容清空,然后用户就可以重新输入内容了;点击“取消”按钮响应“取消”的点击事件,运用dispose()的方法,退出添加窗口。选择某一记录,点击“修改”按钮,弹出相应的修改窗口,在修改窗口中包含有输
15、入要修改的相应信息的几个JTextField组件及三个JButton组件,即“修改”、“重置”、“取消”按钮,点击“修改”按钮,响应“修改”的点击事件,可将修改后的内容加入到数据库中,并在相应JTable组件中显示,如果只点击“修改”按钮,而未选择某一记录,则出现错误信息对话框:“请选择一行”;点击“重置”及“取消”按钮的事件监听方法和上述添加窗口中“重置”及“取消”按钮的事件监听方法相同。选择某一记录,点击“删除”按钮,可将选中的记录从数据库中删除,并在相应JTable组件中显示的记录信息删除,如果只点击“删除”按钮,而未选择某一记录,则出现错误信息对话框:“请选择一行”。3.3.5 教师的
16、操作窗口教师进行学生基本信息及学生成绩的查询、修改、添加、删除等操作,同时也能进行教师基本信息的查询操作,所以教师在选择操作对象后,得到相应的学生基本信息窗口、学生成绩窗口或教师基本信息窗口,在学生基本信息窗口、学生成绩窗口中使用的方法与管理员的操作方法相同,所以是调用的是同一程序,在教师基本信息窗口中使用的方法与学生操作中的方法相同。第四章 系统实现 该系统由5个模块构成,包括登录界面模块、操作对象选择界面模块、学生基本信息管理模块、学生成绩信息管理模块、教师基本信息管理模块,以下分别加以叙述:4.1登录界面模块登录界面模块包括Management.java文件。Management类继承了
17、JFrame类,实现了事件监听接口,它有一个不带参数的构造函数Management(),用来生成Management实例,Management类将所有的功能集中到面板中,生成按钮,通过按钮的响应函数调用其他模块的函数来实现学生教师管理系统的各个功能,以下是主界面的运行程序如图4-1,当用户名或密码输入错误时,则出现错误信息对话框:“用户名或者密码错误”,如图4-2;图4-1-1登录界面图4-1-2错误信息对话框4.2操作对象选择界面模块4.2.1 学生操作对象选择界面模块两个单选按钮:JRadioButton stu1 = new JRadioButton(学生);JRadioButton c
18、orse = 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教师操作对象选择界面模块三个单选按钮:JRadi
19、oButton 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(
20、);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
21、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管理员、教师对学生基本信息管理的模块管理
22、员、教师对学生基本信息管理的模块为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:my
23、sql:/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(),
24、 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(
25、);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 p
26、aras3 = 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中事件监
27、听事件的程序:public void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (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);/ 当用户点
28、击添加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;/ 显示修
29、改对话框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 s
30、ql = 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-
31、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学生对学生成绩查询的模块 方法与管理
32、员、教师对学生成绩信息管理的模块相同,只是少了一些功能,主界面如图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教师对教师基本信
33、息查询主界面第五章 使用说明5.1开发、运行环境要求(1) 数据库软件:mysql(2) Java开发工具:Eclipse5.2程序运行运行程序为Management.java文件,默认的用户名和密码:学生用户名:xx1001密 码:xx1001教师用户名:s10001密 码:s10001管理员用户名:m10001密 码:m10001第六章 设计总结 本系统具有学生基本信息管理、学生成绩信息管理、教师基本信息管理等功能。分成三大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。本系统完成了学生信息的查询、修改、增加、删除;教师信息的查询、修改、增加、删除以及学生成绩信息的查询
34、、修改、增加、删除等功能。 在这次课程设计中,遇到最大的困难是连接数据库,开始我想连接sql server2008数据库,但也许是软件的问题,总连不上,最后在同学的帮助下连接了mysql数据库,可能由于知识掌握得不够全面,一些细小的问题都要纠结很久才能够解决,这也敲响了我要巩固基础知识的警钟。同时这次课程设计让我接触到了许多新知识,学到许多新东西,锻炼了我的独立学习能力,也锻炼了我解决问题的能力。由于我能力有限,加上时间仓促,所以本系统必然会存在一些缺陷和不足。希望老师批评指正。第七章 参考文献1 韩顺平 循序渐进学.java.从入门到精通(视频)教程2 (美)BRIAN JEPSON(译),钱毅,张租荫 Java数据库编程指南 电子工业出版社 1998-103 郑莉,王行言,马素霞 Java语言程序教程 清华大学出版社 2006-01