当前位置:文档之家› 学生选课管理信息系统

学生选课管理信息系统

《数据库技术及其应用》课程设计报告书

目录

第一章选题背景与意义 (1)

1.1 选题的背景 (1)

1.2 课题的意义 (1)

第二章数据库结构设计 (2)

2.1 需求分析 (2)

2.2 概念结构设计 (3)

2.3 逻辑结构设计 (5)

2.4物理结构设计 (7)

第三章程序代码实现 (9)

3.1创建表 (9)

3.2数据导入 (12)

3.3查询功能实现 (14)

3.4其他实现 (16)

第四章课程设计总结 (18)

参考文献 (19)

第一章选题背景与意义

1.1 选题的背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。

随着高校的多样全面发展,学生的人数和课程的种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。由于数据繁多,容易丢失,且不易查找。并且数据处理手工操作工作量大,出错率高,出错后不易更改,造成各种不便,总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是学生选课管理信息系统的开发基本环境背景。

1.2 课题的意义

基于以上问题,我们认为有必要建立一个学生选课管理信息系统,使学生选课信息管理工作规范化、系统化、程序化,以避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。

系统实现后,极大的方便对学生进行选课和选课后班级的安排管理工作,学生选课信息的管理。避免在安排课程信息的滞后,减少信息交流的繁琐过程及其带来的额外开销。促进高校教育的计算机信息化进程,提高高校的工作效率。并且对于系统本身而言,具有更高的使用性、安全性。能够满足学生选课,以及学生对选课信息的管理。

同时,通过该课程设计,我们可以达到把数据库理论知识更加的巩固加深,加强动手操作能力与实践能力,学以致用,与现实生活中的应用充分的结合起来,也实现了知识的活学活用。

第二章数据库结构设计

2.1 需求分析

大学是一个学习的自由天地,在大学我们可以自由的学习部分学科。所以,如果我们通过传统的等级表格方式来选课程,在学生人数庞大的大学是行不通的,纯属浪费人力物力。随计算机技术的快速发展它也更加方便人们的生活,因此,通过计算机技术我们可以很好的解决这个问题,下面是我们设计的学生选课管理管理信息系统,它可以极大地方便学生选课和学校的统计,并且可以适度的调配教室安排。

功能需求:

一个完善的学生选课管理信息系统能够极大的提高学生选课信息的管理效率,具有检索迅速,查找方便,可靠性高,存储量大,更新快,寿命长,成本低等优点。

本系统主要可以实现以下任务目标:

1、系统可以准确的记录和查询学生、老师以及所开设的课程的基本信息

2、学生登录系统后可以根据本专业制定的教学计划进行选课操作,可以查询个人的基本信息

3、任课教师可以修改自己所受课程的基本信息,录入学生的期末考试成绩

4、各系的管理员需要完成新学员或者新教师的基本信息的添加,毕业生的学籍和成绩的归档管理,增补新开设的课程信息,修改已调整的课程信息,查看和制定教学计划。

性能需求:

本学生信息管理系统要能够抵御用户可能的各种操作,包括修改、更新、删除等操作,以保证软件的可行性、稳定性、健壮性,同时要对数据进行检验,保证数据有效性,可操作性,安全性。同时普通用户登录只有浏览的权限。同时系统严格控制对数据库的修改等操作设置功能,只有高级管理员和系统管理员才能对数据库进行修改。更新等操作。

系统的非功能性需求:

实用性:系统以用户需求为目标,以方便用户为原则。根据用户实际的需求情况,度身订造一套先进的局域网数据传输,从用户角度出发尽可能的方便用户使用,满足基本的用户需要,成为学校等通用的网络软件。

高可靠性:一个实用的系统同时必须是可靠的,本设计通过合理而先进的网络设计以及软、硬件的优化选型,可保证系统数据传输的正确性。

高安全性:在设计中,将充分利用网络软、硬件提供的各种安全措施,既可以保证用户共享资源,同时也可保证关键数据的安全性。

2.2 概念结构设计

1、教师任课局部E—R图,如图2-1所示:

这个局部E—R图中包含三个实体,分别是教师、成绩和课程。三个实体的关系式为教师开设课程,教师给予成绩。教师与成绩的对应比例是1:n,教师与课程的对应比例是1:1。

图2-1

2、学生选课局部E—R图,如图2-2所示:

学生选课局部E—R图包含有三个实体分别是学生、成绩与课程。学生要选修课程,学生要拥有成绩,这个成绩又是学生所选课程的成绩。学生与成绩的对应比例是1:1,学生与课程的对应比例也是1:1。

图2-2

3、课程教室安排E—R图,如图2-3所示:

课程安排E—R图包含有两个实体,分别为课程和教室。课程所在教室是需要确定的,一个课程对应一个上课教室,即课程与教室的对应比例是1:1。

图2-3

4、将以上三个局部E—R图联系在一起整合成全局E—R图,如图2-4所示:

图2-4

2.3 逻辑结构设计

学生选课管理信息系统教师信息表结构如表2-1所示,学生信息表如表2-2所示,教室信息表如表2-3所示,选课信息表如表2-4所示,成绩信息表如表2-5所示。

表2-1 教师信息表结构

列名数据类型是否允许空备注教室编号nchar(6) 否主键教师姓名nchar(8) 否

性别nchar(1) 是

年龄tinyint 是

学历nchar(10) 是

职称nchar(10) 是

毕业院校nchar(12) 是

健康状况nchar(10) 是

联系方式nchar(12) 否

表2-2 学生信息表结构

列名数据类型允许空备注学号char(10) 否主键姓名char(8) 是

所属院系nchar(12) 是

已选课情况nchar(2) 是

表2-3 教室信息表结构

列名数据类型允许空备注教室号char(12) 否主键教师姓名char(8) 是

容纳人数tinyint 是

空闲时间nchar(16) 是

表2-4 选课信息表结构

列名数据类型允许空备注课程编号nchar(12) 否主键教师编号nchar(6) 否

学号nchar(10) 否主键教室号nchar(12) 否主键课程名称nchar(12) 是

教师姓名nchar(8) 是

选课人数tinyint 是

表2-5 成绩信息表结构

列名数据类型是否允许空备注

学号nchar(10) 否

主键教师编号nchar(6) 否

课程名称nchar(6) 是

学分numeric(4,2) 是

成绩numeric(6,2) 是

2.4物理结构设计

1、建立数据库

经过对学生选课管理信息的需求分析,概念结构的建立以及逻辑结构的设计后,数据库的结构已经非常清晰,接下来就是运用SQL Sever 2005建立数据库,我们一学生选课管理信息系统为数据库命名。

2、创建表

数据完整性约束定义

①创建主键:

学生信息表的学号列为主键

成绩信息表的教师编号列和学号列为主键

教师信息表的教师编号列为主键

选课信息表的课程编号列和学号列和教师号列为主键

教室信息表的教师号列为主键

②外键约束:

用管理工具创建外键:

成绩信息表与学生信息表通过学号列创建外键

学生信息表与选课信息表通过学号列创建外键

成绩信息表与教师信息表通过教师编号列创建外键

选课信息表与教师信息表通过教师编号列创建外键

选课信息表与教室信息表通过教室号列创建外键

关系图如2-5所示:

图2-5关系图

第三章程序代码实现

3.1创建表

3.1.1创建数据库

用管理语句创建数据库中的表,步骤如图3-1所示,结果如图3-2所示。

图3-1

图3-2

3.1.2创建表

成绩信息表的创建如图3-3所示,教师信息表的创建如图3-4所示,教室信息表的创建如图3-5所示,选课信息表的创建如图3-6所示,学生信息表的创建如图3-7所示:

图3-3 成绩信息表的创建

图3-4 教师信息表的创建

图3-5 教室信息表的创建

图3-6 选课信息表的创建

图3-7 学生信息表的创建

3.1.3表的完善:

1、创建check约束:

--在成绩信息表上的成绩和学分列上创建check约束

alter table成绩信息

add constraint ck_成绩check(成绩>=0 and成绩<=100)

alter table成绩信息

add constraint ck_学分check(学分>=0 and学分<=2)

--在选课信息表上的选课人数列上创建check约束

alter table选课信息

add constraint ck_选课人数check(选课人数>=50 and选课人数<=200) --在教室信息表上的容纳人数列上创建check约束

alter table教室信息

add constraint ck_容纳人数check(容纳人数>=50 and容纳人数<=200) 2、创建索引:

--在学生信息表的学号上创建索引

create unique index IDX_学号on学生信息(学号)

--在教师信息表上的教师编号创建索引

create unique index IDX_教师编号on教师信息(教师编号)

--在教室信息表上的教室号上创建索引

create unique index IDX_教室号on教室信息(教室号)

3、创建视图

--创建视图学生_选课

create view学生_选课

as

select学生信息.学号,学生姓名,课程名称,选课信息.教师姓名,教室信息.教室号,上课时间

from选课信息join学生信息

on选课信息.学号=学生信息.学号

join教室信息

on选课信息.教室号=教室信息.教室号

--创建视图教师_学生

create view教师_学生

as

select教师信息.教师编号,教师信息.教师姓名,课程名称,学生信息.学号,学生姓名,所属院系

from选课信息join教师信息

on选课信息.教师编号=教师信息.教师编号

join学生信息

on选课信息.学号=学生信息.学号

3.2数据导入

成绩信息表的数据导入如图3-8所示,教师信息表的数据导入如图3-9所示,教室信息表的数据导入如图3-10所示,选课信息表的数据导入如图3-11所示,学生信息表的数据导入如图3-12所示。

图3-8 成绩信息表的数据导入

图3-9 教师信息表的数据导入

图3-10 教室信息表的数据导入

图3-11 选课信息表的数据导入

图3-12 学生信息表的数据导入3.3查询功能实现

1、查询所有同学的基本信息

程序代码如下,上机操作及结果如图3-13所示。

select*

from学生信息

图3-13

2、查询学号为091410010的同学的基本信息

程序代码如下,上机操作及结果如图3-14所示。

select*

from学生信息

where学号='091410010'

图3-14

3、查询李东同学选的课程名称以及上课地点

程序代码如下,上机操作及结果如图3-15所示。

select学生姓名,学生信息.学号,课程名称,教室号from学生信息join选课信息

on学生信息.学号=选课信息.学号

where学生姓名='李东'

图3-15

4、查询王明同学所选课程的任课老师的基本信息

程序代码如下,上机操作及结果如图3-16所示。

select*

from教师信息

where教师姓名=(select教师信息.教师姓名

from选课信息join学生信息

on选课信息.学号=学生信息.学号

join教师信息

on选课信息.教师编号=教师信息.教师编号

where学生姓名='王明')

图3-16

3.4其他实现

1、在学生_选课视图上查询所有学生选的课程名称,上课地点以及上课时间

程序代码如下,上机操作及结果如图3-17所示。

select课程名称,教室号,上课时间

from学生_选课

图3-17

2、在教师_学生视图上查询教师所教的学生的姓名,学号,以及学生所在院系

程序代码如下,上机操作及结果如图3-18所示。

select教师姓名,教师编号,学生姓名,学号,所属院系

from教师_学生

图3-18

第四章课程设计总结

转眼已经到了课程设计结束的时间,俗话说一分耕耘一分收获,你付出多少你会收获多少。的确,虽然时间很短,但是对于本次课程设计我学到了很多。本次的课程设计让我体会到了团队的力量,让我明白了一个人的力量是微不足道了,它提前为我们步入社会以后加强团队合作打下基础。我主要负责的是创建数据库、表。虽然已经学了半个学期的数据库,并且自我感觉学的还不错,但是当操作时还是不熟练,经过再一次认真的学习了老师所教授的知识,回顾在以往上机时所遇到的问题以及老师给予的解答,对创建表和数据库有了一定的了解。

本次课程设计给我最大的感受就是使我对数据库以及表的创建有了全新的认识。让我明白了表中主键、约束、外键、索引、视图等在表中所发挥的作用以及所实现的功能。通过对数据库程序的编写,让我对数据库的查询功能有了更进一步的认识。开始的时候,由于自己能力有限,所以创建的数据库并不是很完美,经过在网上查找资料以及书籍的查询,修改了几次,才达到了自己的要求。

谈谈本次的心得体会,一方面,我感觉颇有成就感,但是,另一方面,我知道我们所做的学生管理信息系统还有很多的不足。将此系统运用到实际中去,可能会遇到很多的问题,对于此信息系统,我们还有许多地方要进一步完善。由于我们自己的能力有限,再加上缺乏更多的实际操作,所以要完成一个完美的数据库,我们还要学很多。但我认为我们已经达到了本次课程设计的要求。在以后的时间里,我们会学更多关于数据库的知识,来丰富我们自己。

相关主题
文本预览
相关文档 最新文档