《学生学籍管理系统的设计与实现(共21页).doc》由会员分享,可在线阅读,更多相关《学生学籍管理系统的设计与实现(共21页).doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 数据库系统课程设计报告 题 目 学生学籍管理系统的设计与实现 学生姓名 高凯 学 号 学 院 计算机与软件学院专 业 网络工程 指导教师 马 瑞二一五年 月 日目 录1 引言11.1开发背景和意义12 系统需求分析及相关技术介绍12.1 系统需求分析12.2 系统的可行性分析23 总体设计23.1 系统模块设计23.2 数据库设计33.2.1 数据库逻辑结构设计33.2.2 数据库物理结构设计34 系统实现44.1 系统功能结构54.1.1 功能模块说明54.1.2 功能设计与介绍. 54.2 具体功能介绍54.2.1 登陆界面. .64.2.2 主功能界面. .7
2、5 主要程序代码及说明. .146课题总结. .19参考文献. .19专心-专注-专业学生学籍管理系统的设计和实现1引言当今社会中,计算机的使用已经深入到日常工作和生活的方方面面。电脑早早从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。我们都知道,对于学生的学籍管理是一个教育单位不可缺少的部分,它的内容对学校的管理者来说至关重要。所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的
3、方式管理文件档案,这种管理方式存在着许多缺点,如效率低、保密性差;另外,时间一长将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。而使用计算机对学生学籍信息进行管理具有手工管理所无法比拟的优点,例如检索迅速、查找方便、存储量大、保密性好等等。这些优点能够极大地提高学生管理的效率,也是学校科学化、正规化管理的重要途径。1.1开发背景和意义长期以来,学校对学生学籍的管理都还使用着传统的模式。在此模式下,人工的记录学生信息、考试信息等等。而随着现代素质教育与时代的不断发展,这样的模式已经不能完全适应现代的教育形势。较之传统的管理方式,我所设计的学生学籍管理系统的优势有:一方面可以实现
4、数据共享,不但像使用单机系统一样,进行便捷地各种数据的添加、修改、删除、查询和统计等操作,并且具有相当的安全性和可靠性;另一方面,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是学校的科学化、正规化管理与社会接轨的重要条件。2系统需求分析和可行性分析2.1 系统需求分析学生学籍管理系统是基于学校的工作需求而设定,围绕这一工作需求,根据高校人员结构分析,在项目开发前期的需求分析工程中,学生学籍管理系统的应用应包括系统设置、学生信息管理、学生成绩管理以及系统说明等部分。系统应具有学生学籍信息输入、删除和修改的功能,学生成绩信息亦是如
5、此。系统的查询功能应较为完备,不同的用户将登录到不同的主界面,进行不同的界面操作功能。能方便地进行相应数据的简单查询和任意字段组合的复合查询,改变以前只有专门人员才能进行数据查询的情况。系统应有学生数据安全保密措施,由于身份不同将登录到不同的主界面,高级的用户可以操作低级用户的信息,而低级用户之间互不能操作,保持了信息的安全性。但在需要时可由系统维护人员通过添加用户并授权来设置相应权限。在系统程序设计中应充分利用数据库服务器的处理能力,降低网络通信量,尽可能减少数据修改冲突,以最大程度地提高系统的执行速度和可靠性,真正起到提高工作效率的作用。2.2 系统可行性分析系统可行性主要包括3个方面:技
6、术上的可行性、经济上的可行性和管理上的可行性。首先,系统在技术上无论是硬件性能要求,还是软件性能要求,均可行。其次,从开发项目的成本与效益来看,系统开发的设备费用、运行费用、培训费用并不能过大,而通过系统的实施,一方面,提高了工作效率,将带来更多的经济效益;另一方面,系统所产生的间接效益也不容忽视。工作效率的提高可以节省人力资源,减轻了有关业务人员手工处理的工作负担,及时提供决策信息,促进业务的规范化、系统化、条理化和程序化。最后,科学的管理是建立管理信息系统的前提。管理人员支持本系统的研发运行,相应的管理制度改革的时机已经成熟,规章制度已经齐全,原始数据正确。随着时代的发展,人员素质已经逐步
7、提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。3系统总体设计系统设计的任务是确定系统的数据模式、功能结构和系统结构,确定系统支持环境、实现方法和技术。系统设计的基本内容是:选择数据库管理系统,建立数据模式;选择系统支持环境,包括支持系统运行的硬件和软件要求,确定系统实现功能和方法以及选择系统的基本架构和技术。3.1 系统模块设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为逻辑结构设计打下基础。这个阶段用到的工具是ER图(实体-联系图)。本系统E-R图如下:班级
8、民族学号所在系性别学 生姓名生日地址 学生实体E-R图3.2 数据库设计3.2.1数据库逻辑结构设计逻辑结构设计的主要目标是将概念结构转换为一个特定的DBMS可处理的数据模型和数据库模式。该模型必须满足数据库的存取、一致性及运行等各方面的用户需求。该设计以概念结构设计中的E-R图为主要依据,设计出相关的整体逻辑结构。根据E-R图可知:学生信息(学号,性别,姓名,班号,入校日期,出生日期,联系电话,家庭住址,备注);3.2.2 数据库物理结构设计从一个满足用户需求的已确定的逻辑模型出发,在限定的软、硬件环境下,利用DBMS提供的各种手段设计数据库的内模式,即设计数据的存储结构和存取方法。数据库物
9、理结构设计是对于给定的逻辑数据模型,选择一个适合的物理结构,主要涉及存取方法与存储结构,它依赖于计算机系统。3.2.2.1关系模式关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。通过对关系模式的优化,得到一个基本表。 学生信息表字段名字段类型长度主键或外键字段值约束对应中文属性名student_snovarchar50Primary KeyNot Null学号student_snamevarchar50姓名student_ssexvarchar50性别borndatevarchar50出生日期Classnovarchar50班号Nationvarchar
10、50民族Sdeptvarchar50所在系addressvarchar50地址 3.2.2.2简单物理设计 在SQL Server 2014 中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的student数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。要建立各个表,选择student数据库中的表,单击鼠标右键,在弹出的菜单中选择“新建表”。 程序系统设计图如下:删除查询登录退出失败成功登录验证 添加修改显示学生学籍管理系统 4系统实现4.1 系统功能结构4.1.1功能模块说明1.管
11、理员登陆界面。该界面可以输入管理员号,登陆密码。用户通过验证通过后方可进入管理系统。一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。2.查询学生信息。可以选择由用户选择“显示系统中当前的所有学生信息”。也可以选择按照“某一个学号查询该学号的学生信息”。查询到的信息会在窗口中依次显示出来。3.添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。完成新纪录的添加。4.修改学生信息。可以选择按照“学号”或者“姓名”找到该学生的学生信息并输入要修改的属性,并输入新的数据。完成对学生记录的修改。5.删除学生记录。可以根据输入的“学号
12、”或者“姓名”进行删除的操作。6.显示学生信息。可以显示所有学生的信息、以供查看。4.1.2功能设计与介绍1.添加学生信息2.修改学生信息3.查询学生信息4.删除学生信息5.显示学生信息6.退出管理系统4.2 具体功能介绍首先,登录流程图如下所示:删除查询登录退出失败成功登录验证学生学籍管理系统 添加修改显示其次,函数之间的调用如下图所示:Search()Login成功登录验证 Add()失败Modify()Delete()Display()4.2.1登陆界面登录界面输入“姓名”和“密码”,点击“Login”,通过验证则进入主功能菜单。如果输入错误则会有相应的警告!1.当输入一个错误时,会出现
13、下图:2.登陆成功时会出现下图:4.2.2主功能界面1. 显示点击,弹出如下窗口:2添加点击,弹出如下窗口:若输入的学号已经存在,则会弹出如下窗口:成功添加时会弹出:3修改点击并输入修改信息,若输入的学号不存在,则:输入要修改的正确学号,弹出如下窗口:4查询点击,弹出如下窗口:当输入的学号不存在时,则:输入正确的学号时,则会弹出窗口:5删除点击,弹出如下窗口:当输入的学号不存在时,会弹出提示:当删除成功时,弹出窗口:6退出点击,退出学籍管理系统。5 主要程序代码及说明1. 菜单部分代码:package XSXJGL;import java.awt.Container;import java.a
14、wt.LayoutManager;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;importjava.awt.*;import javax.swing.JButton;import javax.swing.JFrame;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;public class Menu JFrame jf;JButton j1,j2, j3, j4, j5,j6; publicstaticvoid
15、main(Stringargs) Menum =newMenu(); m.go(); publicvoidgo() jf=newJFrame(学生学籍管理系统); jf.setBounds(200, 200, 300, 200); Containercp=jf.getContentPane(); cp.setLayout(new FlowLayout(FlowLayout.LEADING,20,20); j1=newJButton(添加学生信息); j2=newJButton(修改学生信息); j3=newJButton(查询学生信息); j4=newJButton(删除学生信息); j5=n
16、ewJButton(显示学生信息); j6=newJButton(退出管理系统); cp.add(j1); cp.add(j2); cp.add(j3); cp.add(j4); cp.add(j5); cp.add(j6); j1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)new Add(););j2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Modify m
17、odify=new Modify(););j3.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Search search=new Search(););j4.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)Delete delete=new Delete(););j5.addActionListener(new ActionListener()public void ac
18、tionPerformed(ActionEvent e)Display display=new Display(););j6.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)System.exit(0);); jf.setVisible(true); 2. 登录部分代码:package XSXJGL;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import j
19、ava.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;public class Login public static void main(String args) final String userName = 1;final String pa
20、sswrod = 1;final JFrame jFrame = new JFrame(登陆界面);Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();jFrame.setBounds(int)dimension.getWidth() - 200) / 2, (int)dimension.getHeight() - 300) / 2, 200, 150);jFrame.setResizable(false);jFrame.setLayout(null);jFrame.setDefaultCloseOperation
21、(JFrame.EXIT_ON_CLOSE);JLabel label1 = new JLabel(姓名);label1.setBounds(10, 10, 100, 30);jFrame.add(label1);JLabel label2 = new JLabel(密码);label2.setBounds(10, 40, 100, 30);jFrame.add(label2);final JTextField text1 = new JTextField();text1.setBounds(50, 15, 130, 20);jFrame.add(text1);final JPasswordF
22、ield text2 = new JPasswordField();text2.setBounds(50, 45, 130, 20);jFrame.add(text2);JButton button = new JButton(Login);button.setBounds(10, 75, 170, 40);button.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if(userName.equals(text1.getText() & passwrod.eq
23、uals(text2.getText() jFrame.dispose();JOptionPane.showMessageDialog(null, 登陆成功, 提示, JOptionPane.INFORMATION_MESSAGE);jFrame.dispose();(new Menu().go(); else JOptionPane.showMessageDialog(null, 错误, 提示, JOptionPane.ERROR_MESSAGE);text1.setText();text2.setText(););jFrame.add(button);jFrame.setVisible(t
24、rue);jFrame.setLocationRelativeTo(null);3. 连接数据库部分代码:package com.microsoft.sqlserver.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import XSXJGL.Delete;public class myConnection static String url
25、= jdbc:sqlserver:/localhost:1433;DatabaseName=XSXJGL;static String user= sa;static String pw= sqlserverSa;static Connection conn ;public static Connection getmyConnection()try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);conn = DriverManager.getConnection(url,user,pw);return conn; cat
26、ch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return null;其他部分代码由于篇幅过长,不再赘述。6 课题总结通过本次课程设计,我巩固了所学到的知识,之前的学习只是停留在理论基础上,现在自己动手操作试验后,才是真正的理解及体会。数据库也学了一个学期,有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但仍有许多不理解的东西,这次的课程设计让我有了更深的理解和更好的认识。之前
27、的困惑通过这次的课程设计也解决了一些,虽然还是不能够全面的理解,但是有进步就是收获。我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力。在系统编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验也越丰富,也使自己的能力有了进一步的提高。由于知识和经验的不足,这个系统还是有许多需要改进的地方,以后我会更加努力的,在学习的过程中不断地提高和改进。加强了我关于理论联系实际、与具体课题项目结合开发、设计系统的能力。在本次课程设计中,我遇到了许多困难,在解决它们的同时收获颇多,特别是如何分析、建立、开发一个系统。我认
28、识到在一个系统开发的过程中编码不是最重要的,重要的是系统分析并建立起系统模型。在分析一个系统之前,分析人员必须要对将要开发的系统所涉及到的各方面内容有一个总体的认识,并清楚该系统所要实现的功能。 有了这次的经验,以后在做类似系统时,一定在实现之前先设计周全,努力做到更完善,更好。参考文献: 1 彭东SQL Server 2005 应用开发技术指南北京:清华大学出版社2 夏邦贵SQL Server 数据库开发入门与范例解析北京:北京机械工业出版社3 岳付强等SQL Server 从实战到入门M北京:清华大学出版社,20094 李春葆Visual Basic 数据库系统设计与开发北京:清华大学出版社