学籍管理系统设计报告.doc_第1页
学籍管理系统设计报告.doc_第2页
学籍管理系统设计报告.doc_第3页
学籍管理系统设计报告.doc_第4页
学籍管理系统设计报告.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 设计内容与要求11 设计题目 学籍管理系统12 设计目的与要求 随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。当然几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学籍管理的工作量。该课程设计要求设计一个学籍管理的数据库系统,数据库中要求包含学生的基本信息,学校所有专业信息,学校教师信息以及课程设置的信息。同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。13 设计环境 在Windows 环境下利用My Eclipse和Tomcat作为概念模型设计与物理模型设计的工具,使用SqlServer2000作为数据库管理系统对数据进行管理与维护。2 需求分析21 系统功能要求设计能对学生的学籍及成绩进行基本管理,包括:学生基本信息和学科成绩的存储、输入、删除、修改、查询,以及升留级管理。学生基本信息应包括:学号、姓名、出生年份、籍贯、性别、专业、班级、家庭住址、本校住址、个人联系电话、家庭联系电话;成绩信息应包括:学号、课号、课名、成绩、上课时间、教师号。查询能够按照:学号、课号、班级、时间等进行查询。22 系统模块设计 学籍管理系统大体可以分成四大模块如下图所示, 首先是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是学生成绩管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有院系、教师、课程等相关信息的模块;最后是系统模块。图 2-1 系统模块图23 数据字典2.3.1 数据项 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称(即码)、注释、数据类型、长度、取值范围和是否是主码。表 2.1 数据项列表名称注释数据类型长度最小值最大值主要的班级varchar(16)16FALSE学号唯一标识学生的信息integerTRUE院系代号varchar(5)5FALSE专业号varchar(5)5FALSE姓名varchar(6)6FALSE性别varchar(2)2FALSE出生年月datetimeFALSE籍贯varchar(8)8FALSE民族varchar(2)2FALSE家庭住址varchar(20)20FALSE入学时间datetimeFALSE政治面貌varchar(6)6FALSE身份证号char(18)18FALSE联系电话varchar(12)12FALSE备注varchar(14)14FALSE课程号varchar(5)5TRUE先行课smallintFALSE学分integerFALSE备注varchar(16)16FALSE院系代号varchar(5)5TRUE院系名varchar(10)10FALSE系主任varchar(8)8FALSE备注varchar(16)16FALSE教师号varchar(5)5TRUE院系代号varchar(5)5FALSE姓名varchar(6)6FALSE性别char(2)2FALSE年龄integerFALSE工龄integerFALSE备注varchar(16)16FALSE专业号varchar(5)5TRUE院系代号varchar(5)5FALSE专业名称varchar(16)16FALSE备注varchar(16)16FALSE学号integerTRUE课程号varchar(5)5TRUE分数floatFALSE课程号varchar(5)5TRUE教师号varchar(5)5TRUE2.3.2 数据结构数据结构是为反映数据之间的组合关系,即 一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构组成。本学籍管理系统的数据组成可根据系统模块(图 1-1)的划分来设计,即分为四个数据结构,分别如下表所示。表 2.2 数据结构清单数据结构名含义说明组成学生基本信息学生基本信息的描述班级+学号+院系代号+专业号+姓名+性别+出生年月+籍贯+民族+家庭住址+入学时间+政治面貌+身份证号+联系电话+备注;成绩管理学生成绩的管理与查询管理描述学号+课程号+分数;平均分数+最高分+最低分;学生相关信息学校的院系、教师信息以及课程信息的描述课程号+课程名+先行课+学分+备注;院系代号+院系名+系主任+备注;教师号+院系代号+姓名+性别+年龄+工龄+备注;系统管理对系统中的所有表的更新、删除、修改描述2.3.3数据流数据流是数据结构在系统内传输的路径。表1-3是描述数据流的数据流定义表,其中包含了数据流名、说明、数据流组成、流量与备注等,表1-4是系统中的数据流描述,其中包括输入数据流、输出数据流等的描述。表 2.3 数据流定义表编号数据流名说明数据流组成流量备注L01学生基本信息学生的所有基本信息学生基本信息结构L02学生成绩所有学生的成绩成绩管理结构 L03分类信息同班级学生名单部分学生基本信息结构L04各门成绩学生的平均成绩(包括所有学生和同班级学生的成绩情况)成绩管理结构L05科目成绩学生的单科成绩成绩管理结构L06教师、专业、院系信息学生相关信息L07查询结果L04 | L05L08统计分析L04+L05表 2.4 数据流表使用者名称输入数据流数输出数据流数备注管理员L01+L02+L06L07+L08系统管理员拥有所有权限教务处人员L01+L02+L06L07+L08拥有对学生和教师的管理权限任课教师L02L07可对成绩进行查询与更新学生L01L07查询成绩与学生基本信息2.3.4 数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。其主要包括数据存储名、说明、编号、输入的数据流与输出的数据流、组成、数据量,存取频度、存取方式。下表表示了该学籍管理系统中的数据存储描述。表 2.5 数据存储描述数据存储名组成输入数据流输出数据流存取频度存取方式学生基本信息表学生基本信息结构L01L01, L07大顺序检索、更新院系教师及专业表学生相关信息数据结构L06L06.L07小顺序检索、更新学生成绩表成绩管理结构L02L07一般顺序检索、更新2.3.5 处理过程 该学籍管理系统的处理过程比较少,主要包含了数据的追加,更新, 修改以及删除,还有便是一些查询处理,包括对学生成绩的平均分、最高分最低分的查询,以及一些分类处理。下图显示了这些最基本的处理以及其对应的数据流与说明。表2.6 处理过程列表处理名简要说明输入数据输出数据备注添加数据L01, L06删除数据L01,L06更改数据L01, L06,L02L01,L06,L02查询数据L07统计分析L083 概念结构设计31 数据抽象与局部视图设计3.1.1 学生基本信息与课程信息视图 图3-1 学生基本信息视图 图3-2 课程信息视图根据学生与课程的关系可设计如下关系图:图3-3 学生与课程关系视图3.1.2 专业、教师及院系信息视图 图3-4 专业、教师及院系信息视图院系、教师以及专业的关系图如下:图3-5 院系教师以及专业关系图32 系统数据流图 系统的管理模块里面包含教务部门(系统管理员和教务处管理人员)、教师以及学生,下图为该学籍管理系统的系统流图,教务部门拥有对所有表的查询更新与删除权利(分类信息属于查询结果除外);教师可对教师、专业以及院系信息,分类信息,学生情况进行查询,对成绩单进行查询、更新以及删除等所有操作;学生只可对所有模块信息进行查询,同时可对自己的部分学生情况进行一定的修改与更新。图3-6系统数据流图33 合并部分视图生成E-R 图 合并数据抽象与局部视图设计中的各个局部视图以及各个实体之间的关系生成E-R图如下:图3-7 系统E-R图34 概念模型设计在生成了系统E-R图后,可根据E-R图中实体的各个属性组成以及实体与实体之间的关系用PowerDesigner设计概念模型。最后生成概念模型如下图所示:图3-8 系统概念模型设计4 逻辑结构设计41 概念模型向物理模型的转换 在概念模型设计好了之后,可直接在powerdesigner 中将设计好了的概念模型转换成物理模型。其具体操作过程为 点击主菜单的 ToolsGenerate Physical Data Model 便可以将当前的概念模型转换为物理模型,转换后的物理模型如下图所示:图4-1 物理模型图 因为一个实体模型转换为一个关系模型时遵循以下规则1.一个1:1联系可转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;2.一个1:n联系可以转换为独立的关系模式,也可以与n端对应的关系模式合并;3.一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分;所以在转换中院系与专业合并到学生基本信息关系中,院系与专业的主码成为学生信息的外码,同样院系的主码成为教师的外码。学生与课程、教师与课程均是多对多的关系所以,单独的生成了必修与教授两个关系。42 数据库物理模型设计在PowerDesigner中将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,便弹出对其设置的对话框,在General选项卡中可以对该关系的名称、注释以及码等信息进行设置。在Columns选项卡中可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。下图显示了课程与院系两个关系的物理设计其中课程号与院系代号分别为两个关系的住码: 图4-2 课程与院系的物理设计 下图是教师与专业两个关系的物理设计,起中教师号与专业号分别为主码,因为教师与专业均从属于院系,所以院系代号分别是两个关系的外码: 图4-3 教师与专业的物理设计SC与TC关系分别是学生基本信息与课程,教师与课程两个多对多联系合并生成的关系。SC关系描述了学生选择什么课程以及该课程的分数,其中来自两个关系的主码组成该关系的主码同时也是外码;TC关系是教师与课程的联系,其描述了每个教师所教授的课程关系。 图 4-4 SC与TC物理设计下面是学生基本信息的物理模型设计,学号作为主码,因为学生基本信息与专业、院系的对应关系均是n:1的联系,所以院系代号与专业号作为学生基本信息关系的外码。图4-5 学生基本信息物理设计5系统实现5.1 系统实现工具与支持平台(1) 用户界面本系统采用Eclipse设计,用户交互界面采用的是基于Windows的窗口界面。(2) 硬件接口运行本系统的硬件基本要求如下:CPU:Intel P4及以上;内存:256MB及以上;硬盘:40GB及以上。(3) 软件接口数据库服务器:MySQL。5.2系统界面及其实现方法1.系统登录界面图: 登录采用密码验证,用户输入帐号,密码后,查询数据库看是不是由该用户,如果有,看输入信息是否正确,正确后才允许登陆,否则给出提示并取消登陆。查询功能的实现采用多种查询方法,但每次只能采用一种查询,并且采用模糊查询方法,用table将查询内容显示在视图中。package severlet;import java.io.*;import java.util.Hashtable;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;public class Login extends Common HttpSession mySession=null; public void doGet ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException /设置提交表单的中文编码 request.setCharacterEncoding(gb2312); mySession = request.getSession(true); /清空错误消息 mySession.setAttribute(errMsg,); /是否进入默认页面 if ( !request.getParameterNames().hasMoreElements() ) response.sendRedirect(./AllLogin.jsp); return; /得到用户输入信息 String sUserid = request.getParameter(userid); String sPassword = request.getParameter(password); String sRole = request.getParameter(role); /如果用户是提交表单 if ( sUserid != null & sUserid.length()=8 ) /校验用户输入信息 String sRealname = getUserRealname( sUserid, sPassword, sRole ); if ( sRealname = null ) /出错了设置变量并重新显示 mySession.setAttribute( errMsg, 登录失败!请重新输入相关信息! ); mySession.setAttribute( userid, sUserid ); mySession.setAttribute( role, sRole ); response.sendRedirect(./AllLogin.jsp); return; else mySession.setAttribute( userid, sUserid ); mySession.setAttribute( realname, sRealname ); /根据用户角色的不同决定迁移到哪个页面 if ( sRole.equals( 0 ) ) /学生角色则迁移到选课一览页面 response.sendRedirect( ./StLogin.jsp ); else if(sRole.equals(1) /教师角色则迁移到选课结果一览页面 response.sendRedirect( ./TcLogin.jsp ); else if(sRole.equals(2) response.sendRedirect( ./AdLogin.jsp ); return; /如果用户非法进入这个页面 else response.sendRedirect(./AllLogin.jsp); return; public void doPost ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException doGet( request, response ); private String getUserRealname(String sUserid, String sPassword, String sRole) /获得数据库连接 Connection con = this.getDBConnection(); if ( con = null ) return null; Statement stm = null; ResultSet rs = null; String sql = null; String name=null; if(sRole.equals(0) sql = select * from Student where st_id= + sUserid + + and st_pwd= + sPassword + ; name=st_name; else if(sRole.equals(1) sql =new String( select * from Teacher where tc_id= + sUserid + and tc_pwd= + sPassword+ ); name=tc_name; else if(sRole.equals(2) sql = select * from Administrator where ad_id= + sUserid + and ad_pwd= + sPassword+ ; name=ad_name; try stm = con.createStatement(); /执行SQL语句 rs=stm.executeQuery(sql); String sRealname = null; if (rs.next() sRealname=rs.getString(name); mySession.setAttribute(resultset,rs); return sRealname; catch(Exception e) e.printStackTrace(); return null; finally try rs.close(); stm.close(); con.close(); catch(Exception ex) 2学生个人成绩查询界面通过本界面,学生可以查询本人一学期内的课程成绩。此模块实现功能如下:package severlet;import java.io.IOException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Vector;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class SetMark extends CommonConnection con=null;Statement stm = null; ResultSet rs = null; String sql = null; public SetMark()try con=this.getDBConnection();stm=con.createStatement(); catch (SQLException e) e.printStackTrace();/public void doGet ( HttpServletRequest request, HttpServletResponse response )throws ServletException, IOExceptionHttpSession mySession=null;request.setCharacterEncoding(gb2312);mySession = request.getSession(true);if ( !request.getParameterNames().hasMoreElements() )response.sendRedirect(./login.jsp);return;String username=(String) mySession.getAttribute(realname);String ccid=null; String page=(String) mySession.getAttribute(page); if(page.equals(TcCourseMark.jsp) ccid=request.getParameter(ccid); mySession.setAttribute(ccid, ccid); try sql=select * from ChooseCourse where cc_id=+ccid+ and cc_teacher=+username+;rs=stm.executeQuery(sql);if(rs.next()Vector students=this.getStudent(ccid); mySession.setAttribute(students,students);response.sendRedirect(./TcSetCourseMark.jsp); return;elseresponse.sendRedirect(./Error.jsp); return; catch (SQLException e) e.printStackTrace(); else if(page.equals(TcSetCourseMark.jsp) Vector students=(Vector) mySession.getAttribute(students); String ccid1=(String)mySession.getAttribute(ccid); for(int i=0;istudents.size();i+) Student st=(Student)students.get(i); String stid=st.getStid(); String mark=request.getParameter(stid); System.out.println(ccid1+stid+mark); this.InsertMark(ccid1, stid, mark); Vector students2=this.getStudent(ccid1); mySession.setAttribute(students,students2);response.sendRedirect(./TcSetCourseMark.jsp); return; /public void InsertMark(String ccid,String stid,String mark)try sql=update tc+ccid+ set st_mark=+mark+ where st_id=+stid+;stm.executeUpdate(sql);sql=update st+stid+ set cc_mark=+mark+ where cc_id=+ccid+;stm.executeUpdate(sql); catch (SQLException e)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论