数据库学生管理系统课程设计

1.概述

学生管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生管理系统得到了更大的发展空间,通过对学生管理系统的开发,可以提高校务人员的工作效率。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学校部门中有着相当庞大的数据内容,而这些数据只是作为单纯数据摆放在电脑里,并没有真正使这些数据起到更大的作用。大量数据的手工操作也会是数据操作错误增加,而且还使得相关的工作更加冗长、繁锁,为了使这些数据为使用者起到更多的作用,为管理人员提供依据与分析,建立起了自己的数据库系统,由计算机管理代替手工操作,进行收集、管理业务数据,从而提高操作人员的工作效率。

2.需求分析

2.1功能需求

2.1.1对于教职工来说

在信息方面,需要对学生的信息能够了解,能够方便以后的课程教学中可以对自己进行改进。

  1. 在处理方面,当学生的信息出错时,老师能对信息进行修改。比如学生团支部更改、学生有转校、转系、转专业等,老师可以根据实际情况进行更新。需要的操作是修改、删除、增加。老师能够更改课程名、课程时长以及课程对应的学分的修改、删除、增加等等。
  2. 在安全性与完整性要求方面,系统需要设置访问用户的表示以鉴别是否为合法用户,并按照要求设置用户密码,以防止用户账号被盗用,系统也应该应对不同用户设置不同的访问权限及等级,区分教职工和学生。为了保证信息的完整性,在录入信息时,系统的各项内容不能为空,各项信息数据应保证准确正确,相同数据在不同记录中应一致。

2.1.2对于学生来说

  1. 在信息方面,学生能够查询自己的个人信息,确保学生信息的正确性。还可以查询学生的课程信息及学生培养信息,以便于学生能够了解学习目标及目的。还可以修改学生信息。
  2. 在处理方面,学生除了能够查询自己成整体信息外,还能够修改学生信息。当学生查询信息发现学生个人信息比如姓名、年龄等出错时学生可以根据个人情况进行修改、删除等。

2.2数据需求

学生信息包含:学生基本信息、课程基本信息、成绩信息。学生基本信息根据要求应该包括学生对应的学号,姓名,性别,所在班级等;课程基本信息应该包课程号,课程名,课时,学分等;成绩表包含课程号,学号,成绩等。

与学生唯一一对应的是学号,所以学号是唯一的主键,其他的都不能是,根据学号我们可以查找学生的基本信息,还有学生姓名等有关信息;根据课程号可以知道学生对应的成绩等。

与课程一一对应的是课程号,所以课程号是唯一主码,其他的都不是,根据课程号我们可以查询课程的基本信息,如课程名、对应的课时和对应的学分等。

与成绩对应的有两个主码,一个是课程号还有一个是学号。只有这两个同时确定了之后才能确定一个准确的成绩。

在用户表中可以根据用户需要进行密码的修改等一系列操作。

2.3数据字典

数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。

表1.数据库中用到的表

数据库表名

关系模式名称

备注

Student

学生表

学生学籍信息表

Course

课程表

课程基本信息表

Teach

教师表

教师基本信息表

Stu_Cour

选课表

学生选课信息

Score

成绩表

选课成绩信息表

表2.Student基本信息表结构

字段名

字段类型

说明

约束控制

Sno

char

学号

主键

Sname

char

姓名

Ssex

char

性别

Sage

int

年龄

Sdept

char

所在系

3.Teach基本信息表结构

字段名

字段类型

字段信息

约束控制

Tno

char

教师号

主键

Tname

char

教师姓名

Tsex

char

性别

Cno

char

所教课程

外部码

Tage

int

年龄

Tdept

char

所在系

4.Course基本信息表结构

字段名

字段类型

字段信息

约束控制

Cno

char

课程号

主键

Cname

char

课程名

Cpno

char

先行课

Ccredit

int

学分

5.Stu_cour基本信息表结构

字段名

字段类型

字段信息

约束控制

Cno

char

课程号

外部键

Sno

char

学号

外部键

6.Score基本信息表结构

字段名

字段类型

字段信息

约束控制

Cno

char

课程号

外部键

Sno

char

学号

外部键

Score

int

成绩

2.4系统模块设计

图4.学生管理系统模块设计

  • 概念结构设计

3.1E-R

根据需求分析可知本系统设计的实体包括:

学生基本信息:学号,姓名,性别,邮箱,地址,学院,学历,入学日期,专业,班级,学制等。

qt_temp

图5.学生基本信息E-R图

学科基本信息实体:学科编号,学科名称,学分,开课学院,课程性质

qt_temp

图6.学科基本信息实体E-R图

选课信息:ID号、课程号、学生编号、成绩

qt_temp

图7.选课信息E-R图

教师基本信息实体

qt_temp

图8.教师基本信息实体E-R图

课程设计实体:课程号、学科编号、教师编号、学期、学生人数、最大学生数、学时。

qt_temp

图9.课程信息实体E-R图

总体E-R关系略图:

图10.学生管理系统总体E-R图

3.2流程图

qt_temp

图11.学生管理系统流程图

4.逻辑结构设计

将E-R图转换为关系模型,实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间内联系则有以下不同的情况:

一个m:n联系转换为一个独立的关系模式。与该联系相联的个实体的码以及联系本身的属性勾转换为关系的属性,而关系的码为各实体码的组合。

一个l:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转突为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:1联系可以转换为一个独立的关系模式, 也可以与任意一端对应的关系模式合并。3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并,
具体的基本B- R图向关系模式的转化如下:

(1)学生(学生编号,姓名,性别,邮箱,地址,学院,学历,入学日期,专业,班级,学制),其主关键字为学生编号。

(2)学科(学科编号,学科名称,学分,开课学院,课程性质),其中主关键字为学科编号。

(3)教师(教师编号,教师姓名,性别,邮箱,地址,所属学院,职称,入职日期)其中主关健字为教师编号。

(4)课程(课程号,学科编号,教师编号,学期,学生人数,最大学生数,学时)其中主关键字为课程号。

(5)选课(ID号,课程号,学生编号,成绩)其中主关键字为ID号。
可以与学生关系模式合并为:
学生(学生编号,姓名,性别,邮箱,地址,学院,学历,入学日期,专业,班级,学制,课程号,成绩)。

  • 19
    点赞
  • 225
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学生成绩管理系统 1 问题描述 1.1 背景 1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。 2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。 3)每门课程有课程号,课程名称、任课教师、学分等信息。 4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行 查询、浏览和修改。 1.2 数据需求 学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓 缩为:学生基本信息表、课程基本信息表和学生成绩信息表。根据学校的情况,可按下 面的步骤来分析: 1) 确定学生所在的院系、所学的专业以及所在的班级。 2) 确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在班级、学 号和学期。 3) 分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。 4) 用户信息分析,通常包括用户名和密码。 2 解决方案 ( 或数据库系统设计 ) 2.1 E-R 模型设计 根据E—R图,将其转化为如下数据实体,数据库:学生成绩管理系统.dbc,包括如下的表 和视图: 1) 学生登记表——学生表.dbf。 字段名称 字段类型 字段宽度 xh 字符型 10 xm 字符型 6 xb 字符型 2 csrq 日期型 8 bj 字符型 4 2) 课程登记表——课程表.dbf。 字段名称 字段类型 字段宽度 kch 字符型 2 kcm 字符型 10 js 字符型 10 xf 字符型 10 3) 成绩登记表——成绩表.dbf 字段名称 字段类型 字段宽度 xh 字符型 10 kch 字符型 2 cj 数值型 3 4) 借书视图(lyxview)。 为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf等 3个表中提取了10个字段的数据: 学生表.xh 学生表.xm 学生表.xb 学生表.csrq 学生表.bj 课程表.kch 课程表.kcm 课程表.js 课程表.xf 成绩表.cj 其视图关系可由以下SQL语句定义: SELECT 学生表.*, 课程表.*, 成绩表.cj; FROM 学生成绩管理系统!学生表, 学生成绩管理系统!课程表,; 学生成绩管理系统!成绩表; WHERE 学生表.xh = 成绩表.xh; AND 课程表.kch = 成绩表.kch 所建数据库如下图所示: 2.2 数据表 本系统需要使用的数据如下: 3 系统实现 3.1 开发环境 本系统由SQL语言编写,在Visual Foxpro 6.0软件环境下可以正常运行 3.2 系统流程图 系统流程图模块主要由刘龙洋同学设计,而系统的功能设计主要由李江滨同学完成, 我主要负责程序主要功能界面的设计,下面是部分流程图: 、 3.3 程序主要功能界面 1、登录界面的设计: 第一步:在表单上单击鼠标右键,并在弹出菜单中选择"数据环境"项,打开数据环境 设计器,添加数据表mm.dbf; 第二步:创建表单并保存为"登录"; 第三步:添加lable1,并设置其caption属性为"欢迎使用学生成绩管理系统!"; 第四步:添加lable2和text1并设置相关属性; 第五步:添加timer控件,并设置其Enabled属性为"真",用于设计窗口动画。 登录界面如下图所示: 2、修改密码表单的设计: 第一步:在表单上单击鼠标右键,并在弹出菜单中选择"数据环境"项,打开数据环境 设计器,添加数据表mm.dbf; 第二步:创建表单并保存为"修改密码"; 第三步:添加label1 、label2、 label3,并设置其caption属性分别为"请输入旧密码"、"请输入新密码"、"请确认新密 码"; 第四步:添加text1、 text2、 text3,并设置相关属性; 第五步:添加command1和command2,并设置其caption属性分别为"确认"和"取消"; 修改密码表单如下图: 3、学生基本信息维护表单的设计: 第一步:创建表单,并保存为学生表.scx; 第二步:添加lable1~lable5,其caption的属性如下图所示 ; 第三步: 添加文本框text1~text5,并设置相关属性; 第四步:添加"院系"、"专业"、"班级"和"学期"列表框; 第五步:添加类,并设置相关属性,用于增添和修改学生基本信息; 第六步:添加文本框text6,并设置相关属性; 第七步:添加command1~command10,并设置相关属性; 第八步:添加"返回"按钮,其功能是关闭此界面; 第九步:执行运行命令,并进行测试。 4、课程信息维护表单的设计: 第一步:创建表单,并保存为课程表.scx; 第二步:添加lable1~lable4,其caption的属性如下图所示 ; 第三步: 添加文本框text1~text4,并设置
学生成绩管理系统数据库设计 [提要] 一个好的数据库,不但可以提高数据查询效率,而且还可以保证数据的完整性和一致性 。所以,数据库在信息管理系统中有着非常重要的作用。本文介绍如何使用SQL Server 2005完成学生成绩管理系统的数据库设计。 关键词:SQL Server;成绩管理系统;数据库设计 引入 因为各高校学生人数的增多以及学生成绩管理工作的复杂性,人工管理学生成绩信息 的效率越来越低。这种情况下,学生成绩管理系统就出现了。 一、需求分析 需求分析是整个数据库设计中重要的一步,在这个阶段要充分地与用户沟通交流,了 解与分析用户的需求。学生信息管理系统中涉及的主要人员有学生、教师、管理人员; 主要的部门有教务处、系部。在需求分析时可以通过问卷调查、谈话等方式,了解用户 的需求,最终绘制系统的数据流程图。 二、数据库表 关系数据库中所有的数据都存储在关系表中,通过需求分析,我们可以在学生成绩管 理系统中创建以下数据表(此处只列举主要的数据表)。(表1、表2、表3、表4、表5) 三、索引 索引是提高查询的主要方法,在图书管理系统中,因为图书数量的庞大,所以建立索 引是必不可少的。在为表中的主键建立索引以后,系统会自动地在主键上创建聚集索引 。除此之外,我们还可以为一些经常查询的字段上,创建非聚集索引。 索引创建以后会提高查询效率,但也会引起一些问题,如降低数据更新的速度、索引 建后需要维护。所以,在创建索引时,要综合考虑其优缺点。可以参考以下原则为表中 的列创建查询:(1)经常用于查询的列;(2)经常用于分组和排序的列;(3)在连接 中常用到的列。 按照以上原则,我们可以为以下列创建索引:Stu_Id、Stu_Name、Tea_Id、Tea_Nam e、speciality_Id、class_Id等。 四、存储过程 存储过程是T- SQL语句的集合,能够实现特定的功能。使用存储过程,可以大大减少网络传输流量,提 高应用程序性能,而且由于它只在第一次执行时被优化、编译。因此使用存储过程不仅 可以极大地降低应用程序的实现难度,而且还可以极大地提高系统的运行速度、效率。 SQL Server 2005中存储过程分为:系统存储过程、用户自定义存储过程、扩展存储过程三种。例如 :在该系统中,我们可以创建存储过程实现按照学生姓名查询成绩。实现代码如下: CREATE PROCEDURE grade_by_name @name char(10) AS BEGIN SELECT*FROM grade WHERE Stu_Id=(SELECT Stu_Id FROM STUDENT WHERE Stu_Name=@name) END 五、触发器 触发器是在执行操作语句时自动执行的一种存储过程。触发器可以侦测到数据库内数 据的操作,并自动地级联影响到整个数据库的操作,从而保证数据库数据的完整性和一 致性。例如:在某一个学生退学删除学生基本信息以后,那么该学生相应的成绩信息也 应该被删除。可以以下代码完成该功能: CREATE TRIGGER STUDENT_DELETE ON Student FOR Delete As BEGIN Delete from grade Where stu_id=(Select stu_id from deleted) END 主要参考文献: [1]黄存东.数据库原理及应用.中国水利水电出版社,2011.1. [2](美)Peter Rob,Carlos Coronel.张瑜,张继萍等译.数据库系统设计、实现与管理.清华大学出版社,2005. ----------------------- 学生成绩管理系统数据库设计全文共3页,当前为第1页。 学生成绩管理系统数据库设计全文共3页,当前为第2页。 学生成绩管理系统数据库设计全文共3页,当前为第3页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值