学生学籍管理系统 您所在的位置:网站首页 学生管理系统E-R图学校 学生学籍管理系统

学生学籍管理系统

2024-02-20 09:57| 来源: 网络整理| 查看: 265

二 需求分析

2.1 系统功能要求设计

此系统实现如下系统功能:

我们小组所设计的学生学籍管理数据库系统主要分为两大模块层面,一是:学生登录层面,二是:教师登录层面。不同层面根据不同用户的需求所实现的功能不同,这样能够更人性化地贴合个体的使用,最大程度地提升系统的使用及运行效率。所以系统设有两种不同的登录选择,用户根据实际情况自行登录,修改、查询、管理信息。

学生层面:

(1)       数据库中含有学生个人的基本信息;

(2)       学生选课的基本信息;

(3)       学生所选修的课程的考试成绩;

(4)       学生能够在系统上进行选课;

(5)       学生还能对密码进行修改及基本功能安全退出。

教师层面:

(1)       进行学生信息的添加;

(2)       管理学生信息;

(3)       开设课程;

(4)       登记学生成绩;

(5)       显示教师个人信息;

(6)       教师还能对密码进行修改及基本功能安全退出。

此系统开发期间我们小组不定时地进行用户使用反馈信息收集,根据收集数据不断对系统进行优化、完善。目的是希望从使用者的角度查找系统的缺陷之处,继而使得整个系统的运行、结构更加清晰化、条理化、自动化。

另外我们系统的设计为人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。

2.2 系统模块设计

2.3 数据字典

数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2008建立“学生选课”数据库,其基本表清单及表结构描述如下:

数据库中用到的表:

数据库中用到的表:

数据库表名

关系模式名称

备注

Student

学生

学生学籍信息表

Course

课程

课程基本信息表

selectKe

选修课程成绩

选课成绩信息表

teacher

教师

教师信息表

connection

开课

教师开课信息表

studentTable

学生账号

学生账号表

Student基本情况数据表,结构如下:

字段名

字段类型

Not Null

说明

xh

varchar(10)

PRIMARY KEY NOT NULL

学号

password

varchar(15)

NULL,

密码

name

nvarchar(10)

NULL,

姓名

age

nvarchar(10)

NULL,

年龄

sex

varchar(2)

NULL,

性别

birthtime

datetime

NULL,

出生年月

address

nvarchar(50)

NULL,

家庭地址

classes

varchar(20)

NULL,

班级

tel

varchar(20)

NULL,

联系电话

nation

varchar(20)

NULL,

籍贯

profession

varchar(20)

NULL,

专业

image

nvarchar(50)

NULL,

图片

graduation

nchar(10)

NULL

在校情况

course数据表,结构如下:

字段名

字段类型

约束控制

说明

kno

varchar(20)

PRIMARY KEY NOT NULL

课程号

kname

varchar(20)

NOT NULL

课程名

Khour

varchar(10)

NOT NULL

课程学时

credit

varchar(3)

NOT NULL

学分

kdescription

varchar(50)

NOT NULL

课程简介

selectKe数据表,结构如下:

字段名

字段类型

约束控制

说明

xh

varchar(20)

PRIMARY KEY NOT NULL

学号

kno

varchar(20)

PRIMARY KEY NOT NULL

课程号

score

varchar(3)

NULL

成绩

kname

varchar(20)

NOT NULL

课程名

teacher数据表,结构如下:

字段名

字段类型

约束控制

说明

tno

varchar(20)

PRIMARY KEY NOT NULL

教师号

password

varchar(15)

NULL

密码

tname

varchar(10)

NULL

教师姓名

xb

varchar(2)

NULL

性别

connection数据表,结构如下:

字段名

字段类型

约束控制

说明

tno

varchar(20)

PRIMARY KEY NOTNULL

教师号

kno

varchar(20)

PRIMARY KEY NOTNULL

课程号

studentTable数据表,结构如下:

字段名

字段类型

约束控制

说明

xh

 varchar(20)

 PRIMARY KEY NOT NULL

学号

password

 varchar(20)

 NOT NULL

密码

三 概念模型设计

学生学籍管理系统概念模型设计

学生学籍管理系统的实体有学生实体、教师实体、选课实体、课程实体、教课实体。各个实体具体的描述E-R图如图下所示:

在这里我只给出一个例子图:

四 逻辑和物理结构设计

4.1由系统E—R图转化而得到的关系模式如下:

学生(学号,姓名,性别,年龄,出生年月,家庭地址,班级,学院,民族,联系电话,照片,在校情况),其主关键字为学号;

课程(课程号,课程名,课程学时,课程学分,课程简介),其主关键字为课程号;

选修成绩(学号,课程号,成绩,课程名),其主关键字分别为学号、课程号;

教师(教师号,密码,教师姓名,性别),其主关键字为教师号

开课(教师号,课程号),其主关键字分别为教师号、课程号;

学生账号(学号,密码),其主关键字为学号。

4.2 确定关系模型的存取方法

确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。在主关键字上建立索引,索引虽然能加速查询的速度,但是为数据库中的每张表都设置大量的索引并不是一个一个好的方法。每个索引都将占用一定的存储空间,如果建立聚簇索引(会改变数据物理存储位置的一种索引),占用需要的空间就会更大;其次,当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的更新速度。对于那些在查询中很少使用和参考的列不应该创建索引。因为既然这些列很少使用到,有索引并不能提高查询的速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。所以在确定关系模型的存储方法考虑诸多原因,只对于开课表中的教师号以及课程号作为索引。

4.3 确定数据库的存储结构

   确定数据库的存储结构主要指确定数据的存放位置和存储结构包括确定关系、索引、日志、备份等的存储安排及存储结构以及确定系统存储参数的配置。

(1)创建学生基本信息表:

CREATE TABLE student(

    xh varchar(10)PRIMARYKEY NOT NULL,

    password varchar(15)NULL,

    name nvarchar(10)NULL,

    age nvarchar(10)NULL,

    sex varchar(2)NULL,

    birthtime datetimeNULL,

    address nvarchar(50)NULL,

    classes varchar(20)NULL,

    tel varchar(20)NULL,

    nation varchar(20)NULL,

    profession varchar(20)NULL,

    image nvarchar(50)NULL,

    graduation nchar(10)NULL)

(2)创建课程表:

CREATE TABLE course(

    kno varchar(20)PRIMARYKEY NOT NULL,

    kname varchar(20)NOTNULL,

    Khour varchar(10)NOTNULL,

    credit varchar(3)NOTNULL,

    kdescriptionvarchar(50)NOTNULL   )

(3)创建教师表:

CREATE TABLE teacher(

    tno varchar(20)PRIMARYKEY  NOT NULL,

    password  varchar(15)NULL,

    tname varchar(10)NULL,

    txb varchar(2)NULL)

(4)创建选课成绩表:

CREATE TABLE selectKe(

    xh varchar(20)PRIMARYKEY NOT NULL,

    kno varchar(20)NOTNULL,

    score varchar(3)NULL,

    kname varchar(20)NOTNULL)

(5)创建开课表:

CREATE TABLE connection(

    tno varchar(20)NOTNULL,

    kno varchar(20)NOTNULL,

    PRIMARY KEY (tno,kno))

(6)创建学生账号表:

CREATE TABLE studentTable(

    xh varchar(20) PRIMARYKEY NOT NULL,

    password varchar(20)NOTNULL)

在connection表上创建索引SS与SS1

  create indexSSon connection(tnoASC)

   Go

   create indexSS1on connection(knoASC)

下图显示了开课、选修课程成绩和课程三个关系的物理设计其中课程号与学号号分别为关系的主码。

五数据库的实施与维护

5.1 数据库的实施:

   经过小组成员相互之间的讨论之后,终于得出一个可行的(在我们能力之内的)数据库设计方案 。C同学按照A同学做的需求分析设计了整个数据库。C同学他经过再三检验确定数据库没有问题了。就把数据库发送给我。个人在拿到数据库后就开始编写数据库的前台系统。把C同学设计的数据库实施到学生学籍管理系统并进行可行性维护。个人才采用J2EE的技术来编写数据库前台:下面是数据库前台系统部分编码过程说明:

   数据库前台系统设计采用的是J2EE的Struts2与Hibernate两个框架,数据库前台系统的Dao层部分代码:

1、    连接数据库的关键代码:数据库的用户名是xuan,密码为:123456;同sqljdbc4驱动加载数据库

org.hibernate.dialect.SQLServerDialect jdbc:sqlserver://localhost:1433;databaseName=Student3 xuan 123456 com.microsoft.sqlserver.jdbc.SQLServerDriver Myxuan

2、学生查看个人基本信息的编码,执行到该部分代码是就会从Student表中取出相应的数据

public Student findOneStudent(Student stu){ try { System.out.println("数据插"+stu.getXh()); Session session=org.util.HibernateSessionFactory.getSession(); Transaction tx=session.beginTransaction(); Query query=session.createQuery("from Student where xh=?"); query.setParameter(0,stu.getXh()); query.setMaxResults(1); Student admin=(Student)query.uniqueResult(); tx.commit(); org.util.HibernateSessionFactory.closeSession(); System.out.println("数据插入成功"); System.out.println("数据插"+admin.getName()); return admin; } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } }

上面的代码是利用Hibernate的HQL语言在运行学生学籍管理系统是向数据库查询

学生个人的基本信息,以from Student where xh=?"学号为条件,以下是前台调试时向student表插入的数据:

1、   成绩登记代码

登记成绩是在select

登记成绩是在select 登记成绩操作/ public void T_registerScore(SelectKe ske,String xh,String kno){ Session session=org.util.HibernateSessionFactory.getSession(); Transaction tx=session.beginTransaction(); Query query=session.createQuery("from SelectKe where xh=? and kno=?"); query.setParameter(0,xh); query.setParameter(1,kno); List list=query.list(); if(list.size()>0){ SelectKe ske2=(SelectKe) list.get(0); ske2.setScore(ske.getScore()); session.update(ske2); tx.commit(); org.util.HibernateSessionFactory.closeSession(); System.out.println("登记成绩成功"); }else { System.out.println("登记成绩失败"); } }///

1、   学生浏览选课代码:

学生浏览选课 public List selectCourse(){ Session session=org.util.HibernateSessionFactory.getSession(); Transaction tx=session.beginTransaction(); @SuppressWarnings("unchecked") List list=session.createQuery("from Course").list(); tx.commit(); org.util.HibernateSessionFactory.closeSession(); System.out.println("所有选课信息"); return list; }

教师开课时添加的课程表的数据

Struts2的核心配置文件:struts.xml的部分代码:

/T_showStudent.jsp /ErrorLogin.jsp /teacher.jsp /ErrorLogin.jsp /students.jsp /ErrorLogin.jsp /oneCourseInfo.jsp /ErrorLogin.jsp /oneCourseInfo.jsp /ErrorLogin.jsp /resultsView.jsp /ErrorLogin.jsp

  1、系统前台登录界面

教师登录后的管理部分界面

3、学生登录后的管理部分界面

后面还有更详细的,敬请留意更新!

## 资项目地址

[项目地址]



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有