学生学籍管理系统_学生学籍管理系统的开发

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

二 需求分析

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驱动加载数据库

   <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=Student3</property>
        <property name="connection.username">xuan</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="myeclipse.connection.profile">Myxuan</property>

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<Course> selectCourse(){
	Session session=org.util.HibernateSessionFactory.getSession();
	Transaction tx=session.beginTransaction();
	@SuppressWarnings("unchecked")
	List<Course> list=session.createQuery("from Course").list();
	tx.commit();
	org.util.HibernateSessionFactory.closeSession();
	System.out.println("所有选课信息");
	return list;
}

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

学生学籍管理系统_学生学籍管理系统的开发

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

        <!-- 删除学生信息 -->
        <action name="deleteStudent" class="action.TeacherAction" method="deleteteStudent">
            <result name="success">/T_showStudent.jsp</result>
            <result name="input">/ErrorLogin.jsp</result>
        </action>
      <!-- 教师添加课程 -->
        <action name="T_addCourse" class="action.TeacherAction" method="addCourse">
            <result name="success">/teacher.jsp</result>
            <result name="input">/ErrorLogin.jsp</result>
        </action>
       <!-- 学生选课 -->
        <action name="selectOnekc" class="action.StudentAction" method="selectOnekc">
            <result name="success">/students.jsp</result>
            <result name="error">/ErrorLogin.jsp</result>
        </action>
       <!-- 个人选课信息 -->
        <action name="oneCourseInfo" class="action.StudentAction" method="oneCourseInfo">
            <result name="success">/oneCourseInfo.jsp</result>
            <result name="error">/ErrorLogin.jsp</result>
        </action>
          <!-- 退选 -->
        <action name="deleteOnekc" class="action.StudentAction" method="deleteOnekc">
            <result name="success">/oneCourseInfo.jsp</result>
            <result name="error">/ErrorLogin.jsp</result>
        </action>
            <!-- 查看成绩 -->
        <action name="resultsView" class="action.StudentAction" method="resultsView">
            <result name="success">/resultsView.jsp</result>
            <result name="error">/ErrorLogin.jsp</result>
        </action>

  1、系统前台登录界面

学生学籍管理系统_学生学籍管理系统的开发

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

学生学籍管理系统_学生学籍管理系统的开发

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

学生学籍管理系统_学生学籍管理系统的开发

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

## 资项目地址

[项目地址]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181405.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • dhcp option 82 接入交换机_dhcpoption怎么配置

    dhcp option 82 接入交换机_dhcpoption怎么配置Option82应用场景在该场景下,临时接入者可以在不安装认证客户端的情况下,直接访问Internet资源,但是不能访问学校、企业、政府单位的内网,适用于各种会务、学术交流、临时参观等应用场景,正式员工可以在会议区通过认证接入到内网。为了实现该场景,我们首先要对神州数码网络交换机产品的DHCPOption82功能进行描述。Option82相关技术Option82功能介绍  DH…

    2022年10月16日
  • ftp 发生意外错误 0x8ffe2740

    ftp 发生意外错误 0x8ffe2740一般是由端口被占用造成的可以修改端口号解决转载于:https://www.cnblogs.com/xyangs/archive/2012/06/18/2553231.html

  • android 反编译,反,注射LOG

    android 反编译,反,注射LOG

  • java程序日志管理

    java程序日志管理初入软件开发这一行的人,可能对日志管理的概念并不是很明确,大概是由于经验所限,以至于根本还考虑不到这个问题。而从某种意义上来说,日志管理实际上也不需要初入这一行的人来管,他们只需要负责实现自己的主要业务逻辑和功能就好了。我当初刚入行的时候就有很长一段时间完全不用去关心日志,到后来偶尔涉及到的时候,也都是从其他地方采用cv大法直接搬用。不过,随着工作时间的变化,随着手头上任务重要程度的变化

  • pycharm 换行_pycharm自动换行快捷键

    pycharm 换行_pycharm自动换行快捷键python脚本有时一行代码写的非常长,一个屏幕塞不下,左右拉动滚动条视觉不友好。第一种方法:python里有换行标识”\”,如jfdb=spark.read.format(“jdbc”).option(“driver”,mysql_driver).option(“url”,mysql_url).option(“dbtable”,”xxxxxxxxxxxxxxxxxxxxxxxx”).option(“user”,mysql_acount).option(“password”,mysql_pa

  • java有哪些服务器_java服务器有哪些?

    java有哪些服务器_java服务器有哪些?java服务器有哪些?应用服务器主要为应用程序提供运行环境,为组件提供服务。Java的应用服务器很多,从功能上分为两大类,JSP服务器和JavaEE服务器,也可分其他小类。JSP服务器有Tomcat、BejyTiger、Geronimo、Jetty、Jonas、Jrun、Orion、Resin等等。JavaEE服务器有TongWeb、BESApplicati…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号