《学生学籍管理系统-Java-+-SQL-Server2000.doc》由会员分享,可在线阅读,更多相关《学生学籍管理系统-Java-+-SQL-Server2000.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date学生学籍管理系统-Java-+-SQL-Server2000第一章 系统概述目录第一章 系统概述1第二章 系统需求分析22.1 系统设计思想22.2 学校工作流程分析22.3 用户具体需求分析22.4 系统设计分析32.5 系统功能分析32.6 系统功能模块图42.7拟实现的简单操作界面42.8UML建模92.8.1用例图92.8.2活动图92.9数据流图10第三章数
2、据库设计133.1 概念结构设计133.1.1 E-R图133.2 逻辑结构设计143.3 流程图153.4 数据字典173.5 物理结构设计17第四章系统实现204.1 系统测试204.2 系统运行结果截图204.3 程序代码27第五章 总 结44参考文献45-第一章 系统概述随着信息技术在管理上越来越深如而广泛的应用,管理信息系统的实施在技术上已经逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。学生学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,
3、所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对学生学籍进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。本系统是一个典型的信息管理系统,主要完成对学生基本信息、班级信息、课程信息、成绩信息等多种数据信息的管理,包括
4、数据库中表的录入、修改、删除等。系统还可以完成对各类信息的查询、录入、修改、删除等功能,其中学籍管理用户包括系统管理员、普通用户,普通用户包括教师和学生。由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。本系统是在WindowsXP 系统的环境下开发的,所采用的开发语言是Java语言,使用的开发工具为: MyEclipse6.0,采用Microsoft SQL Server 2000数据库管理系统。第二章 系统需求分析2.1 系统设计思想 1.采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源, 减少开发中
5、的时间和财力、物力、提高系统开发的水平和应用效果。 2.系统满足学校的需求,例如学生信息的录入、查询、更新等。管理员对用户的查询、增加、删除等。 3.系统应具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。2.2 学校工作流程分析 学校工作总体规划由教务人员在学生学籍信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。 新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。 在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安
6、排一个辅导员及,并对各科老师进行安排。 每举行一次考试后由任课老师对本科的成绩进行录入,上交教务处,汇总,并进行排名,由教务处再进行汇总,并对各班级各科成绩及总成绩进行排名。 教务处、辅导员及任课老师跟据实际情况对录入的成绩进行维护,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。2.3 用户具体需求分析 普通用户:对各科成绩的查询及查看所有学生的成绩以及所有学生的信息,修改用户密码。 系统管理员:能够浏览所有用户信息,能添加删除用户,修改密码,新生入学还能够添加修改新生的学籍信息,删除毕业生的学籍信息,对所有院系的课程进行安排,能够进行各班级管理,还能对学生成绩进行添加、修改、查询
7、等管理。2.4 系统设计分析 本系统功能主要分为六大类: 用户管理:用于对用户的添加删除,赋予不同权限及对用户密码的修改及查询。 课程管理:用于对各学期课程的开设、修改、查询和删除。 成绩管理:用于对成绩的添加、修改、查询和删除。 班级管理:用于对班级的添加、修改、查询和删除。 帮助信息:用于对本系统的具体操作进行详解。2.5 系统功能分析权限功能:为用户设置权限功能,可分为普通用户,系统管理员。普通用户只是查询不能修改,系统管理员能修改、删除所有信息。录入功能:系统没有为普通用户提供相应的录入功能,为系统管理员提供对所有信息的录入功能。 查询功能:为所有用户提供查询的功能,可查询允许范围内的
8、所有信息。维护功能:为普通用户提供查询及相应的修改功能,为系统管理员提供对所有信息的修改删除功能。帮助功能:能帮助初次使用者对本系统的应用及处理常见的问题。退出功能:结束并关闭系统。2.6 系统功能模块图 图2.1 系统功能模块图2.7 拟实现的简单操作界面1. 程序基本界面: 点击每个菜单都有相应的下拉列表,如图所示“用户管理”。图2.2 程序基本界面图2. 用户登入界面,输入用户名与密码: 图2.3 用户登陆界面图3. 用户浏览界面,从这可以看到所有存在的用户及各自的权限:图2.4 用户浏览界面图4. 修改密码界面:图2.5 修改密码界面图5. 添加用户界面,添加的用户自动保存至用户数据库
9、中:图2.6 添加用户界面图6. 删除用户界面,只有系统管理员用户才可进行此操作:图2.7 删除用户界面图7. 添加学籍信息界面,新生入学时添加其个人信息:图2.8 添加学籍界面图8. 查询学生个人信息界面,可按学号、班号、姓名三种方式进行查询:图2.9 查询学生信息界面图9. 查改删学籍信息界面:图2.10 查删改学籍界面图10. 添加班级信息界面,包括班号、班级辅导员、年级、自习室:图2.11 添加班级信息界面图11. 查询班级信息界面:图2.12 查询班级信息界面图12. 添加课程信息界面:图2.13 添加课程信息界面图13. 查删改课程信息界面:图2.14 查删改课程信息界面图14.
10、设置年级课程界面:图2.15 设置年级课程界面图15. 添加成绩信息界面:图2.16 添加成绩信息界面图16. 改删成绩信息界面:图2.17 改删成绩界面图17. 查询成绩界面:图2.18 查询成绩界面图2.8 UML建模2.8.1 用例图用例图是对系统需求的描述,表达了系统的功能和所提供的服务,包括学生信息管理子系统、系统信息管理子系统、课程管理子系统、班级管理子系统、成绩管理子系统,如图2.19所示。图2.19 系统用例图2.8.2 活动图活动图可以用来描述工作流和并发处理行为,表达从一个活动到另一个活动的控制流,描述的是响应内部处理的对象类的行为。在本系统中,首先登陆学籍管理系统,输入其
11、用户名和密码,若用户名和密码有误则返回,否则进入下一步,普通用户和管理员用户的功能各不同相同。如图2.20所示。图2.20 系统活动图2.9 数据流图本系统从总体上分为系统信息管理、学生信息管理、课程管理、班级管理和成绩管理五大部分。每个模块有自己的作用。下面的各模块功能流图就是由各功能之间的关系而得出的。1. 系统管理数据流图图2.21 系统管理数据流图2. 学生信息数据流图图2.22 学生信息数据流图3. 课程管理数据流图图2.23 课程管理数据流图4. 班级管理数据流图图2.24 班级管理数据流图5. 成绩管理数据流图图2.25 成绩管理数据流图从以上数据流图中可以看出学生信息管理系统所
12、需完成具体的功能:系统管理模块: 用户的添加、删除、浏览及权限的赋予。学生信息管理模块:输入学生基本信息,并可以对学生信息进行添加、查询、修改、删除。还可以关键字查询并从数据库里调出的学生基本信息.输出学生基本信息,学号、班号、姓名查询的信息结果。班级信息管理模块:输入班号、教室号、班主任等信息,并可以对班级信息进行添加、修改、查询、删除。包括班号、教室号、班主任、年级的录入及修改。输出班号、教室号、班主任年级等信息。成绩信息管理模块:输入成绩信息,并可以对成绩信息进行添加、查询、修改、删除。还可以用关键字查询并调出数据库里的学生基本成绩信息的修改、删除等。输出查询的学生成绩信息。课程信息管理
13、模块:输入课程的基本信息,并可以对课程信息进行添加、修改、删除及课程设置。课程设置能够对各年级的课程进行分类。划分学期所学的课程。输出课程的基本信息、年级及学期中所要学的课程等。第三章 数据库设计3.1 概念结构设计概念结构的实际是整个数据库设计的关键,这个阶段主要的目标是通过对用户需求进行综合、归纳与抽象,形成一个独立于DBMS的概念模型(E-R图)。它的主要特点是:1.能真实、充分地反映现实世界,包括事物与事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;2.易于理解,因此可以用它和不熟悉计算机的用户交换意见;3.易于更改,当应用环境和应用要求改变时,容易对概念模型修
14、改和扩充;4.易于向关系、网状、层次等各种数据模型转换。3.1.1 E-R图1. 分E-R图: a b c de图3.1 分E-R图2. 系统的总体E-R图:图3.1 总体E-R图3.2 逻辑结构设计这个阶段的任务就是把概念结构设计阶段设计好的基本E-R图转换为与DBMS所支持的数据模型相符合的逻辑结构。在这个阶段里,该系统的目标就是把基本的E-R图转换成关系数据模型。通过转换,得到的所需的数据表如下,其中,有下划线的属性为主键。学生(姓名,性别,学号,班级号,出生日期,入学日期,家庭住址,备注) 班级(班级号,年级,辅导员,自习室 )用户(用户名,密码,权限)课程(课程名,课程编号,课程类型
15、,课程描述)成绩(学生姓名,学号,班级名称,课程名,分数)3.3 流程图1. 系统流程图图3.2 系统流程图2. 分模块流程图(1)录入模块流程图图3.3 录入模块流程图(2)系统管理模块流程图图3.4 系统维护模块流程图(3) 查询模块流程图图3.5 查询模块流程图3.4 数据字典名称:学籍信息表说明:对学生情况的描述定义:姓名+性别+学号+年龄+班号+联系电话+入学日期+家庭住址+备注名称:班级信息表说明:对班级信息的描述定义:班号+年级+辅导员+自习室名称:课程信息表说明:对课程信息的描述定义:课程编号+课程名称+课程类型+课程描述名称:成绩信息表说明:对学生考试成绩情况的描述定义:姓名
16、+班级+学号+课程+分数名称:用户信息表说明:对用户登陆信息的描述定义:用户名+密码+用户权限3.5 物理结构设计根据逻辑关系模型可直接设计基于某种数据库管理系统支持的物理结构,我们知道关系数据库是由表构成的,所以依据系统用户信息、学生基本信息、班级信息、课程信息和成绩信息在数据库中建立相应的表。本系统采用的后台数据库是Microsoft SQL Server 2000数据库系统,根据学籍管理系统的数据字典,设计出学籍管理系统数据库中各个数据表,本数据库名称为“student”,其中包含五张表,它们分别是学生基本信息数据表,班级信息数据表,课程信息数据表,成绩信息数据表,用户登陆信息数据表。1
17、. 学生基本信息数据表,包括学生的学号、姓名、性别、生日、家庭地址、联系电话,入学日期,还有所在的系与班级,便于管理和查询学生的基本信息。表3.1 学生基本信息数据表2. 班级信息数据表,包括班级号、年级、辅导员、自习教室,设置为字符型。表3.2 班级数据信息表3. 班级信息数据表,包括班级名称及所在的年级,均设为字符型。表3.3 班级信息数据表4. 课程信息数据表,包括课程的编号、课程名称、课程类型及一些课程描述。表3.4 课程信息数据表5. 成绩信息数据表,包括考试科目编号、姓名、班级、学号、分数,便于成绩查询。表3.5 成绩信息数据表6. 用户信息数据表,包括用户名、密码以及用户的权限。
18、表3.6 用户信息数据表第四章 系统实现4.1 系统测试测试是为了发现程序和系统中的错误而执行程序的过程。它的目标是在精心控制的环境下,通过系统的方法来检查程序,以便发现程序中的错误。测试工作是保证系统质量的关键,也是对系统最终的评审。4.2 系统运行结果截图1. 程序基本界面:2. 用户登陆界面: 3 添加用户界面: 4 修改密码: 5 删除用户界面: 6 添加学籍信息界面:7. 查删改学籍信息界面:8. 查询学籍信息:9. 添加班级信息界面:10. 查删改班级信息界面:11. 添加课程信息界面:12. 查删改课程信息界面:13. 添加成绩信息界面: 14. 改删成绩信息界面:15. 查询成
19、绩信息界面:a. 直接确定查询b. 按学号查询c. 按班号查询d. 按课程查询4.3 程序代码/package studentsystem;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;import javax.swing.UIManager;import java.awt.Toolkit;import java.awt.Canvas;import java.awt.Dimension;import java.io.FileInputStream;import java.io.*
20、;public class mainFrame extends JFrame JPanel contentPane; String user1; int power; Statement ps; ResultSet rs; Connection con; String url; String username; JMenuBar jMenuBar1 = new JMenuBar(); JMenu jMenuFile = new JMenu(); JMenu jMenuHelp = new JMenu(); JMenuItem jMenuHelpAbout = new JMenuItem();
21、JMenuItem adduser = new JMenuItem(); JMenuItem deleteuser = new JMenuItem();/ JMenu xjgl = new JMenu(); JMenuItem cxxj = new JMenuItem(); JMenuItem xgxj = new JMenuItem(); JMenuItem tjxj = new JMenuItem(); JMenu bjgl = new JMenu(); JMenuItem xgbj = new JMenuItem(); JMenuItem tjbj = new JMenuItem();
22、JMenu kcsz = new JMenu(); JMenuItem sznj = new JMenuItem(); JMenuItem xgkc = new JMenuItem(); JMenuItem tjkc = new JMenuItem(); JMenu cjgl = new JMenu(); JMenuItem tjcj = new JMenuItem(); ImageIcon icon = new ImageIcon(images + File.separator+a.jpg); JLabel jLabel1 = new JLabel(icon, JLabel.CENTER);
23、 JMenuItem xgcj = new JMenuItem(); JMenuItem cxcj = new JMenuItem(); JMenuItem exit = new JMenuItem(); JMenuItem jMenuItem1 = new JMenuItem(); JMenuItem llyh = new JMenuItem(); JMenuItem login = new JMenuItem();/ JMenu ghbj = new JMenu(); JMenu jMenu1 = new JMenu(); public mainFrame() enableEvents(A
24、WTEvent.WINDOW_EVENT_MASK); try jbInit(); catch (Exception e) e.printStackTrace(); /Component initialization private void jbInit() throws Exception contentPane = (JPanel)this.getContentPane(); contentPane.setLayout(null); /this.setSize(new Dimension(800, 600); this.setResizable(false); this.setTitle
25、(学生管理系统); jMenuFile.setFont(new java.awt.Font(Dialog, 0, 15); jMenuFile.setForeground(Color.black); jMenuFile.setText(用户管理 ); jMenuHelp.setFont(new java.awt.Font(Dialog, 0, 15); jMenuHelp.setText( 帮助信息 ); jMenuHelpAbout.setFont(new java.awt.Font(Dialog, 0, 15); jMenuHelpAbout.setText(关于 ); jMenuHelp
26、About.addActionListener(new mainFrame_jMenuHelpAbout_ActionAdapter(this); adduser.setFont(new java.awt.Font(Dialog, 0, 15); adduser.setText(添加用户); adduser.addActionListener(new mainFrame_adduser_actionAdapter(this); deleteuser.setFont(new java.awt.Font(Dialog, 0, 15);/ deleteuser.setText(删除用户); dele
27、teuser.addActionListener(new mainFrame_deleteuser_actionAdapter(this); xjgl.setFont(new java.awt.Font(Dialog, 0, 15); xjgl.setText( 学籍管理 ); xjgl.addActionListener(new mainFrame_xjgl_actionAdapter(this); bjgl.setFont(new java.awt.Font(Dialog, 0, 15); bjgl.setText( 班级管理 ); kcsz.setFont(new java.awt.Fo
28、nt(Dialog, 0, 15); kcsz.setText( 课程设置 ); cjgl.setFont(new java.awt.Font(Dialog, 0, 15); cjgl.setText(成绩管理); tjcj.setFont(new java.awt.Font(Dialog, 0, 15); tjcj.setText(添加成绩信息); tjcj.addActionListener(new mainFrame_tjcj_actionAdapter(this); tjxj.setFont(new java.awt.Font(Dialog, 0, 15); tjxj.setForeg
29、round(Color.black); tjxj.setText(添加学籍信息); tjxj.addActionListener(new mainFrame_tjxj_actionAdapter(this); xgxj.setFont(new java.awt.Font(Dialog, 0, 15); xgxj.setText(查改删学籍信息); xgxj.addActionListener(new mainFrame_xgxj_actionAdapter(this); cxxj.setFont(new java.awt.Font(Dialog, 0, 15); cxxj.setText(查询
30、学籍信息); cxxj.addActionListener(new mainFrame_cxxj_actionAdapter(this); tjbj.setFont(new java.awt.Font(Dialog, 0, 15); tjbj.setText(添加班级信息); tjbj.addActionListener(new mainFrame_tjbj_actionAdapter(this); xgbj.setFont(new java.awt.Font(Dialog, 0, 15); xgbj.setText(查改删班级信息); xgbj.addActionListener(new m
31、ainFrame_xgbj_actionAdapter(this); tjkc.setFont(new java.awt.Font(Dialog, 0, 15); tjkc.setText(添加课程信息); tjkc.addActionListener(new mainFrame_tjkc_actionAdapter(this); xgkc.setFont(new java.awt.Font(Dialog, 0, 15); xgkc.setText(查改删课程信息); xgkc.addActionListener(new mainFrame_xgkc_actionAdapter(this);
32、sznj.setFont(new java.awt.Font(Dialog, 0, 15); sznj.setText(设置年级课程); sznj.addActionListener(new mainFrame_sznj_actionAdapter(this); jLabel1.setText(); jLabel1.setBounds(new Rectangle(1, 0, 800, 603); xgcj.setFont(new java.awt.Font(Dialog, 0, 15); xgcj.setText(改删成绩信息); xgcj.addActionListener(new main
33、Frame_xgcj_actionAdapter(this); cxcj.setFont(new java.awt.Font(Dialog, 0, 15); cxcj.setText(查询成绩信息); cxcj.addActionListener(new mainFrame_cxcj_actionAdapter(this); exit.setFont(new java.awt.Font(Dialog, 0, 15); exit.setText(退出系统); exit.addActionListener(new mainFrame_exit_actionAdapter(this); exit.a
34、ddMouseListener(new mainFrame_exit_mouseAdapter(this); jMenuItem1.setFont(new java.awt.Font(Dialog, 0, 15); jMenuItem1.setText(修该密码); jMenuItem1.addActionListener(new mainFrame_jMenuItem1_actionAdapter(this); llyh.setFont(new java.awt.Font(Dialog, 0, 15); llyh.setText(浏览用户); llyh.addActionListener(n
35、ew mainFrame_llyh_actionAdapter(this); login.setFont(new java.awt.Font(Dialog, 0, 15); login.setText(用户登录); login.addActionListener(new mainFrame_login_actionAdapter(this); ghbj.setFont(new java.awt.Font(Dialog, 0, 15); jMenuFile.add(login); jMenuFile.add(llyh); jMenuFile.add(jMenuItem1); jMenuFile.
36、add(adduser); jMenuFile.add(deleteuser); jMenuFile.add(exit); jMenuHelp.add(jMenuHelpAbout); jMenuBar1.add(jMenuFile); jMenuBar1.add(xjgl); jMenuBar1.add(bjgl); jMenuBar1.add(kcsz); jMenuBar1.add(cjgl); jMenuBar1.add(ghbj); jMenuBar1.add(jMenu1); jMenuBar1.add(jMenuHelp); xjgl.add(tjxj); xjgl.add(xg
37、xj); xjgl.add(cxxj); bjgl.add(tjbj); bjgl.add(xgbj); kcsz.add(tjkc); kcsz.add(xgkc); kcsz.add(sznj); cjgl.add(tjcj); cjgl.add(xgcj); cjgl.add(cxcj); contentPane.add(jLabel1, null); this.setJMenuBar(jMenuBar1); xjgl.setEnabled(false); bjgl.setEnabled(false); kcsz.setEnabled(false); cjgl.setEnabled(fa
38、lse); jMenuFile.setEnabled(true); llyh.setEnabled(false); adduser.setEnabled(false); deleteuser.setEnabled(false); this.setBounds(100, 100, 800, 600); this.setVisible(true); public static void main(String args) mainFrame main = new mainFrame(); public void jMenuFileExit_actionPerformed(ActionEvent e
39、) System.exit(0); public void jMenuHelpAbout_actionPerformed(ActionEvent e) new about(); /Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) super.processWindowEvent(e); if (e.getID() = WindowEvent.WINDOW_CLOSING) jMenuFileExit_actionPerformed(null); void adduser_actionPerformed(ActionEvent e) new adduser(); void deleteuser_actionPerformed(ActionEvent e) new deleteuser(); void xgmm_actionPerformed(ActionEvent e) new xiugaimima(); void tjbj_actionPerformed(ActionEvent e) new addxj(); void exit_actionPerformed(Act
限制150内