数据库课程设计 学生选课信息管理系统 sql.docx
《数据库课程设计 学生选课信息管理系统 sql.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 学生选课信息管理系统 sql.docx(23页珍藏版)》请在冰豆网上搜索。
![数据库课程设计 学生选课信息管理系统 sql.docx](https://file1.bdocx.com/fileroot1/2023-1/31/1cc41aeb-50de-46cd-8139-b474642cbedd/1cc41aeb-50de-46cd-8139-b474642cbedd1.gif)
数据库课程设计学生选课信息管理系统sql
11、月食:
当地球转到月球和太阳的中间,太阳、地球、月球大致排成一条直线时,地球就会挡住太阳射向月球的光,这时在地球上的人就只能看到月球的一部分或全部看不到,于是就发生了月食。
15、经过有效处理的废水,可以排放到湖泊、河流和海洋中,也可以渗入地下。
答:
硫酸铜溶液的颜色逐渐变浅,取出铁钉后,发现浸入硫酸铜溶液中的那部分变红了。
4、填埋场在填满垃圾以后,可以在上面修建公园、体育场、但是不能用来建筑房屋和种植庄稼。
12、淡水在自来水厂中除了沉淀和过滤之外,还要加入药物进行灭菌处理,这样才能符合我们使用的标准。
16、空气是我们生命中生时每刻都需要的地球资源,大气污染影响着我们的健康,如大气中的飘尘易使呼吸系统发生病变。
减少废气和废物排放是控制大气污染最根本的办法。
答:
水分和氧气是使铁容易生锈的原因。
二、问答:
1、放大镜为什么能放大物体的图像呢?
我们注意到它的特点了吗?
(P3)
上海电机学院电子信息学院
数据库原理
课程设计
设计题目:
学生选课信息管理系统
专业:
软件工程
班级:
BX0903
学号:
************
*****
组长:
孙诚
组员:
张婉珺、王骏怡、陶静
2011年12月
课程设计评分表
姓名
班级
学号
课设题目
指导教师
评分项目
满分分值
得分
设计文档(30分)
文档格式
封面
2
页面布局
4
目录格式
3
图表质量
2
页眉页脚
2
文档内容
内容完整性
6
内容逻辑性
5
内容正确性
6
程序代码(30分)
程序功能
15
编程规范
7
编程文档
8
答辩(20分)
课题陈述
7
问题答辩
10
是否超时
3
考勤(20分)
20
总评成绩
指导教师评语
签名:
年月日
教研室意见
签名:
年月日
课程设计答辩记录表
教
师
提
问
学
生
答
辩
情
况
记
录
成绩
答辩小组教师签名
摘要
随着科技的不断发展,学生的选课信息已经摈弃了以往的手工文件管理阶段,进化成为了高科技、高效率的数据库应用程序来进行管理。
学生选课信息管理系统是基于SQLSERVER数据库为后台、VB开发应用软件作为前台的一种C/S模式的数据库应用程序。
使用学生选课信息管理系统可以更高效、准确地进行学生选课、查询、记录添加等各种操作,大大减少信息管理人员的负担。
关键词:
学生选课信息管理系统,VB,SQLSERVER数据库,C/S模式
第一章系统概述
《数据库原理及应用》课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。
本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。
为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。
我们按照以上几点开发了学生选课管理系统数据库。
学生选课信息管理系统要求读者较好的正规数据库知识与技术外,还要求读者掌握某种客户端开发工具或语言。
这里是利用相对简单易学易掌握的VisualBasic6.0开发工具来实现示例系统的。
如果读者对该开发工具不熟悉,这里也无妨。
这次课程设计能顺利通过是老师的细心指导和我们小组团结一致、努力的结果。
在这次课程设计中每位同学都积极参与各项环节的设计,但我们也有分工。
初步列出如下:
孙诚是用VB制作前台的界面以及数据库整体设计与规划;张婉珺和王骏怡担任的工作是对系统的需求分析、构思数据流图、把E-R图转化成关系模型并对其进行规范化处理、用SQL语言建表、视图以及文档的初步编写等。
陶静的工作是负责画数据流图和E-R图,以及转化初始关系模型,和内容摘要等的编写。
孙诚作为组长,除对我们所制作单个模块审核外还担任了WORD文档的总结排版。
这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。
第二章系统数据库设计部分
2.1需求分析
2.1.1需求描述
随着中国教育信息化时代的来临,各大校园对于内部信息的管理已经采用IT新潮的应用和管理系统技术来进行。
为了紧随信息化时代的脚步,不被时代所淘汰,学生的信息管理也应当由传统的手工管理模式进化为软件与数据库结合应用的管理模式,从而加强学生信息的管理能力,让学校整体管理水平得到较大的提升。
通过调查本地的学校,根据学校的具体情况设计学生选课信息管理系统。
主要功能有:
1.学生管理:
学生信息查询、插入、删除、修改等
2.课程管理:
课程信息查询、插入、删除、修改等
3.选课管理:
选课信息查询、插入、删除、修改等
4.系统管理:
操作员信息的管理
5.系统维护:
如数据安全管理(含备份与恢复)、操作员管理、权限设置等
2.1.2数据流图
图2.1数据流图
(1)
图2.2数据流图
(2)
2.1.3数据字典
数据元素
数据类型
长度
数据来源
学号
char
5
学生表
学生姓名
char
8
学生表
性别
char
2
学生表
生日
smalldatetime
default
学生表
所在系
char
20
学生表
课程号
char
3
课程表
课程名
char
20
课程表
学分
decimal
3,1
课程表
学号
char
5
选课表
课程号
char
3
选课表
操作员编号
char
4
操作员表
操作员姓名
char
12
操作员表
密码
char
10
操作员表
权限
char
20
操作员表
2.2数据库概念结构设计
2.2.1E-R图
图2.3数据库E-R图
2.2.2实体及属性的定义
表2-1学生信息表Student的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Sno
Char
5
N
学号
Sname
Char
8
N
姓名
Sex
Char
2
Y
性别
Sbirth
SmallDatetime
Y
出生日期
Sdept
Char
20
Y
所在系
表2-2课程信息表Course的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Cno
Char
3
N
课程代码
Cname
Char
20
N
课程名称
Credit
Decimal
3
1
Y
学分
表2-3选课成绩表SC的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Sno
Char
5
N
学号
Cno
Char
3
N
课程代码
Grade
Decimal
5
1
Y
成绩
表2-4操作员表Operator的表结构
主码
列名
数据类型
宽度
小数位
空否
备注
Pk
Operator_id
Char
4
N
操作员编号
Operator_name
Char
12
N
操作员姓名
Password
Char
10
Y
密码
Permission
Char
20
Y
权限
2.3数据库逻辑结构设计
2.3.1初始关系模式
Student(Sno,Sname,Sex,Sbirth,Sdept)
其中各项含义分别为:
学生(学号,姓名,性别,出生日期,所在系)
Course(Cno,Cname,Credit)
其中各项含义分别为:
课程(课程代码,课程名称,学分)
SC(Sno,Cno,Grade)
其中各项含义分别为:
选修(学号,课程代码,成绩)
Operator(Operator_id,Operator_name,Password,Permission)
其中各项含义分别为:
操作员(操作员编号,操作员姓名,密码,权限)
2.3.2规范化处理
经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。
(下划线代表主码,斜体外码)
Student(Sno,Sname,Sex,Sbirth,Sdept)
Course(Cno,Cname,Credit)
SC(Sno,Cno,Grade)
Operator(Operator_id,Operator_name,Password,Permission)
2.4数据库物理结构设计
2.4.1基于SQLServer的数据表设计
用SQLSERVERMANAGEMENTSTUDIO建表,以学生表为例如下图所示:
图2.4学生表
用SQL语言建表代码如下:
createtableStudent(
Snochar(5)primarykey,
Snamechar(8)notnull,
Sexchar
(2)check(sexin('男','女')),
Sbirthsmalldatetime,
Sdeptchar(20)
);
go
createtableCourse(
Cnochar(3)primarykey,
Cnamechar(20)notnull,
CreditDecimal(3,1)
)
go
createtableSC(
Snochar(5)referencesStudent(Sno),
Cnochar(3)referencesCourse(Cno),
Gradedecimal(5,1),
constraintpkprimarykey(Sno,Cno)
)
go
createtableOperator(
Operator_idchar(4)primarykey,
Operator_namechar(12)notnull,
Passwordchar(10),
Permissionchar(20)default'0'
)
go
2.4.2索引表
表2-5学生信息表Student的表索引表
索引
列名
数据类型
宽度
主
Sno
Char
5
无
Sname
Char
8
无
Sex
Char
2
无
Sbirth
SmallDatetime
无
Sdept
Char
20
表2-6课程信息表Course的索引表
索引
列名
数据类型
宽度
主
Cno
Char
3
无
Cname
Char
20
无
Credit
Decimal
3
表2-7选课成绩表SC的索引表
索引
列名
数据类型
宽度
主
Sno
Char
5
Cno
Char
3
无
Grade
Decimal
5
表2-8操作员表Operator的索引表
索引
列名
数据类型
宽度
主
Operator_id
Char
4
无
Operator_name
Char
12
无
Password
Char
10
无
Permission
Char
20
2.4.3角色
建立了操作员角色
图2.5角色
2.4.4视图
用SQL管理工具建立常用的一个视图,即学生_成绩视图。
菜单栏中单击工具→向导→数据库→创建视图向导,选择你所要建的试图的对象,选择列名,按照提示,最后单击完成即可。
使用SQL语句建立视图的命令如下:
createview学生_成绩
as
selectsc.sno,sname,o,cname,grade
fromstudentjoinsconstudent.sno=sc.sno
joincourseono=o
图2.6学生_成绩视图预览
2.5数据库操作部分
2.5.1数据库的插入操作
INSERT
INTO<表名>[(<属性列1>[,<属性列2>…)]
VALUES(<常量1>[,<常量2>]);
例如:
在学生表中插入一个新同学的相关信息(注:
学号是主码,故不可以相同)
insert
intostudent
values('04','张伟','男',1990-2-3,'计算机')
2.5.2数据库的修改操作
UPDATE<表名>
SET<列名>=<表达式>
[WHERE<条件>];
例如:
在学生表中修改学号为’04’的所在系为’人文科学’。
updatestudent
setsdept='人文科学'
wheresno='04'
2.5.3数据库的删除操作
DELETE
FROM<表名>
[WHERE<条件>];
例如:
删除学号为’04’的相关信息
delete
fromstudent
wheresno='04'
2.5.4数据库的备份及还原操作
使用SQLServer模糊备份和还原操作:
◆将包含数据的扩展盘区写入备份集,而无需考虑使备份期间正由用户修改的页同步。
这显著减小了备份对当前用户的影响。
还使备份得以串行地复制页。
取消了所有随机读取,从而加快使用频繁的系统中的备份过程。
但这同时也意味着备份中的页以一种不一致的、无法恢复的状态存储。
◆将事务日志作为备份的一部分复制。
RESTORE语句:
RESTOREFILELISTONLY
FROMDISK='D:
\info.bak'
RESTOREDATABASETestDB
FROMDISK='D:
\info.bak'
WITHMOVE'info'TO'D:
\testdb.mdf',
MOVE'info_log'TO'D:
\testdb.ldf'
◆如果数据库不存在,则创建数据库,并初始化数据库中的扩展盘区。
如果RESTORE语句执行时数据库已存在,则可以跳过这一步。
◆复制备份集中的扩展盘区。
因为所有的扩展盘区都按串行顺序排列,所以这个过程较快。
将忽略未在备份集中找到的扩展盘区;它们将不作为空的扩展盘区进行初始化。
◆使用事务日志恢复数据库。
将日志中记录的数据修改前滚到日志末尾,然后回滚任何未完成的事务。
这将使数据库返回到一致的已恢复状态,这种状态与数据库在BACKUP语句完成时的状态一致。
备份数据库
BACKUPDATABASEinfo
TODISK='D:
\info.bak'
还原数据库
--返回由备份集内包含的数据库和日志文件列表组成的结果集
RESTOREFILELISTONLY
FROMDISK='D:
\info.bak'
--还原由BACKUP备份的数据库
RESTOREDATABASEinfo
FROMDISK='D:
\info.bak'
--指定还原后的数据库物理文件名称及路径
RESTOREDATABASETestDB
FROMDISK='D:
\info.bak'
WITH
MOVE'info'TO'D:
\test\testdb.mdf',
MOVE'info_log'TO'D:
\test\testdb.ldf'
MOVE'logical_file_name'TO'operating_system_file_name'
指定应将给定的logical_file_name移到operating_system_file_name。
默认情况下,logical_file_name将还原到其原始位置。
如果使用RESTORE
语句将数据库复制到相同或不同的服务器上,则可能需要使用MOVE选项重
新定位数据库文件以避免与现有文件冲突。
可以在不同的MOVE语句中指定
数据库内的每个逻辑文件。
--强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。
RESTOREDATABASETestDB
FROMDISK='D:
\info.bak'
WITHREPLACE,
MOVE'info'TO'D:
\test\testdb.mdf',
MOVE'info_log'TO'D:
\test\testdb.ldf'
2.5.5关系图
图2.7关系图
第三章系统界面设计部分
3.1应用程序与其菜单项规划
结合VisualBasic6.0进行数据库应用开发的特点,设计过程可按如下步骤进行:
●创建应用库及应用对象;
●创建全局变量;
●创建菜单;
●创建数据窗口;
●创建窗口并在窗口中放置所需控件。
系统的主菜单、各菜单项标题、名称:
⏹学生管理(m_student)
◆学生信息录入(m_student_input):
open(w_student_input)
◆学生信息查询(m_student_query):
open(w_student_query)
⏹课程管理(m_course)
◆课程设置(m_course_set):
open(w_course_set)
◆课程查询(m_course_query):
open(w_course_query)
⏹成绩管理(m_score)
◆成绩录入(m_score_input):
open(w_score_input)
◆成绩查询(m_score_query)
Ø按学生查询(m_score_query_student):
open(w_score_query_student)
Ø按课程查询(m_score_query_course):
open(w_score_query_course)
⏹系统管理(m_system)
◆口令更改(m_system_password):
open(w_changepassword)
◆重新登录(m_system_relogin):
open(w_login)
◆操作员管理(m_system_operator):
open(w_operator)
⏹退出系统(m_system_exit):
close(parentwindow)
其中方形为一级菜单、菱形为二级子菜单、箭头为三级子菜单。
3.2登录界面设计
打开程序后,首先进入欢迎与登录界面:
图3.1欢迎界面
图3.2登录界面
3.3主界面设计
本程序是一个MDI(MultipleDocumentInterface)的多窗体文档界面。
在一个主窗体下可以同时开启复数个子窗体,为此可实现一个同时的多点查询与操作。
图3.3MDI主窗体及其子窗体介绍
3.4子界面设计
下面将以学生信息录入为例来介绍子窗体的设计,其余子窗体也大致采用类似的设计方法。
首先点击菜单→学生管理→学生信息录入菜单项,弹出学生信息录入子窗体。
图3.4学生信息录入子窗体
当单击“添加”按钮时,将会弹出添加学生信息子窗体,确定后添加新纪录进入数据库。
图3.5学生信息录入子窗体
再次查看学生表,可发现新添加的记录:
图3.6学生信息录入成功
通过打开菜单→学生信息管理→学生信息查询菜单项,可以通过学号或姓名两种方式来查询学生信息。
以下以通过学号来查询学生的信息,通过输入学号“04”来查询:
图3.7学生信息查询成功
更多的信息操作功能与源代码的实现可查看本报告的附件VB程序与数据库文件。
第四章总结
经过这些天的设计和开发,学生选课信息管理系统基本开发完毕。
本系统基本能够完成学生、课程、选课等信息查询、插入、删除、修改等。
这次的课程设计是分组讨论和制作的。
在制作的过程中,我学到的不仅是知识,我还认识到许多事情。
这次设计对我们的综合能力是一次很好的锻炼,使我的编程水平提高了一大步,同时也使我充分的认识到合作的可贵。
在我们设计本次课题时,将书本上所学的知识尽可能地发挥到了实践中。
经过需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施及数据库运营与维护6大阶段,我们制作并运营成功了一个强大的以SQLSERVER数据库与后台、以VisualBasic6.0所制作的应用程序为前台
在我们所制作的学生选课信息管理系统中,涉及到数据库、VB等,前台是用VB制作的,其中包括主界面和一些按扭等,后台用到的是我们所学的数据库的知识,建立了基本表和视图、角色等,权限在前台已经制作,故在后台不在重复。
在后台中我们还简单的制作了数据库的备份与还原,用来防止数据库遭到破坏,可即时修改。
最后按照沈老师的要求编写成文档,从中也对WORD的运用提高了一步。
但是该系统还有许多不尽如人意的地方,比如用户界面与SQL语言的连接上并不是很完善,这是因为我们对VB不是很了解。
还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生选课管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。
最后,在这里我要衷心的感谢我们的指导老师沈学东老师,沈老师严谨的指导态度与深厚的理论知识都让我受益非浅,从他身上我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高我们才能在短时间内顺利的完成这次课程设计。
由于我们水平有限,因此在我们所设计的学生选课管理系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。
主要参考文献
[1]数据库系统概论作者:
王珊萨师煊第四版高等教育出版社2006年
[2]VisualBasic6.0数据库系统开发实例导航作者:
刘韬、骆娟、何旭洪
[3]数据库原理及应用实验指导作者:
钱雪忠陶向东北京邮电大学出版社2005