收藏 分销(赏)

学生档案管理系统课程设计实验报告.doc

上传人:快乐****生活 文档编号:2474273 上传时间:2024-05-30 格式:DOC 页数:19 大小:242.54KB
下载 相关 举报
学生档案管理系统课程设计实验报告.doc_第1页
第1页 / 共19页
学生档案管理系统课程设计实验报告.doc_第2页
第2页 / 共19页
学生档案管理系统课程设计实验报告.doc_第3页
第3页 / 共19页
学生档案管理系统课程设计实验报告.doc_第4页
第4页 / 共19页
学生档案管理系统课程设计实验报告.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、学生档案管理系统课程设计实验报告 作者: 日期:19 个人收集整理 勿做商业用途课程设计评分表学生姓名: 班级: 学号:课程设计题目:项目内容满分实 评选题能结合所学课程知识、有一定的能力训练.符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求.10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流

2、畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导教师评语: 指导教师签名: 年 月 日 实验题目:学生档案管理系统 实验时间、地点:201011212010/11/24.软件楼206机房 实验目的:通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高分析问题和解决问题的能力以及动手能力 实现过程和思路1系统需求分析 (1) 通过对调查用户的信息要求。处理要求.完整性与安全性要

3、求根据具体的数据库管理系统开发令用户满意的档案管理系统。 当用户进入该系统后要实现某某学生档案信息的查询,更新和修改。“档案管理系统”主要研究通用的档案管理信息化解决方案,研究各单位各行业档案系统的普遍特征,研发适合各类型层次单位的档案信息管理系统软件。通过通用性的研究,将该系统的可应用拓展到其他单位或者行业的档案信息系统建设,以期提高档案工作信息化水平.(2)系统需求分析阶段结果用户登录档案管理个人成绩管理个人信息管理个人所在系管理查看信息修改信息删除信息查看成绩添加成绩删除成绩查看系别添加系别删除系别 2 概念模型设计(1)概念设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽

4、象,形成一个独立于具体DBMS的概念模型,是各种数据库的共同基础。(2)将各实体画出E-R图 学号政治面貌出生日期家庭住址电话号码就读学校学生基本信息姓名性别年龄系编号专业班级 图21 学生基本信息实体的ER图 学生成绩学号语文数学物理英语 图22 学生成绩实体ER图学生所属系别专业系编号学号系人数专业 图23 学生所属系专业实体ER图学生基本信息学生成绩学生所属系别拥有属于图24各实体之间的联系ER图3 逻辑结构设计 将ER 图转换为一个关系模式(1)把每一个实体转换为关系学生基本信息(学号 ,姓名,系别年龄,班级,出生日期,政治面貌,专业,家庭住址,电话号码 ,系编号,就读学校)学生成绩(

5、学号,语文,数学,英语,物理)学生所属系别(系编号,学号,专业,系人数)(2)把每一个联系转换为关系模式属于(学号,系编号)拥有(成绩学号,学生信息学号)4物理结构设计(1)确定数据库的物理结构,主要是存取方法和存取结构为数据库各表建立索引如下:create unique index 学生信息索引 on 学生基本信息表(学号)create unique index 学生成绩索引 on 学生成绩表(学号)create unique index 学生专业索引 on 学生所属系专业表(系编号) 5数据库实施阶段二 数据库实施阶段 建立数据库.数据表.视图。索引.触发器及存储过程。 1.建立学生档案数

6、据库 create database 学生档案数据库2.建立数据表 (1)学生基本信息表 create table 学生基本信息表 ( 学号 char(10) , 姓名char(7), 性别char(2) check(性别in(男,女)) , 年龄int, 班级 char(10), 出生日期 datetime, 政治面貌 char(6), 专业 char(10), 家庭住址 char(25), 电话号码 char(11), 系编号 char(10), 就读学校 char(20), ) (2)学生成绩表 create table 学生成绩表 ( 学号 char(10), 语文 char(6),

7、数学 char(6), 英语 char(6), 物理char(6), ) (3)学生所属系专业表 create table 学生所属系专业表 ( 系编号 char(10), 学号 char(10), 系名char(10), 系人数 int, )3.建立视图 (1) 查询学生基本信息的视图定义如下。 create view 学生信息视图(学号,姓名,性别,年龄,班级,出生日期,政治面貌,专业,家庭住址,电话号码 ,系编号) as select from 学生基本信息表 (2)显示学生成绩的视图定义如下。 create view 学生成绩视图(学号,语文,数学,英语,物理) as select f

8、rom 学生成绩表 (3)显示学生所属系专业的视图定义如下。 create view 学生专业视图(系编号,学号,系名) as select *from 学生所属系专业表4。建立索引 create unique index 学生信息索引 on 学生基本信息表(学号)create unique index 学生成绩索引 on 学生成绩表(学号)create unique index 学生专业索引 on 学生所属系专业表(系编号)5.建立触发器 (1)插入触发器当插入学生基本信息表中某一基本信息时,触发学生所属系专业表和学生成绩表,插入相应的记录。触发学生基本信息表drop trigger 触发学

9、生基本信息1gocreate trigger 触发学生基本信息1on 学生基本信息表for insert asselect * from 学生基本信息表go举例:当在学生基本信息表中插入某一字段,将触发insert事件,例如:在学生基本信息表插入该学生所一个部分新记录,并将结果显示到查询分析器上。insert into 学生基本信息表(学号,姓名,性别,年龄,专业)values (09111603,李红,女,18,软件工程)-插入触发器在学生基本信息表插入一个触发器,并保证结在学生基本信息表添加的【学号】和【系编号】部分信息要在学生所属系专业表中相应添加并将结果显示到查询分析器上。drop t

10、rigger 触发学生基本信息2gocreate trigger 触发学生基本信息2on 学生基本信息表for insert asdeclare 系编号 varchar(10)declare 学号 varchar(10)beginselect 系编号=系编号 ,学号=学号 from insertedinsert into 学生所属系专业表(系编号,学号) values (系编号,学号)endgo举例:当向学生基本信息表中再增加一列【学号】和【系编号】insert into 学生基本信息表(系编号,学号 )values (002,09111629) (2)更新触发器 创建一个触发器,它实现当学生

11、基本信息表中学号字段的更改,将同步实现学生成绩表和学生所属系专业表的学号的改变。drop trigger 更新学生成绩表goCreate Trigger 更新学生成绩表On 学生基本信息表 -在学生基本信息表中创建触发器 for Update -触发什么事件As 事件触发后所要做的事情 if Update(学号) -判断是否更新了学号 begin Update 学生成绩表 Set 学生成绩表。学号=i.学号From 学生成绩表as br , Deleted as d ,Inserted as i -Deleted和Inserted临时表 Where br。学号=d。学号 end godrop

12、trigger 更新学生成绩表1goCreate Trigger 更新学生成绩表1On 学生基本信息表 -在学生基本信息表中创建触发器 for Update -触发什么事件As -事件触发后所要做的事情 if Update(学号) -判断是否更新了学号 begin Update 学生所属系专业表Set 学生所属系专业表。学号=i.学号From 学生所属系专业表 as bt, Deleted as d ,Inserted as i -Deleted和Inserted临时表 Where bt.学号=d。学号 end go举例:当把学生基本信息表中学号09111603改为09111604时,将触发

13、“触发学生成绩表1”的触发器select * from 学生基本信息表select from 学生成绩表select from 学生所属系专业表 update 学生基本信息表 set 学号=09111604 where 学号=09111603delete from 学生基本信息表 where 学号=09111629更新触发器在学生基本信息表创建限制学生年龄在18到30岁之间的触发器drop trigger 限制学生年龄在18到30岁gocreate trigger 限制学生年龄在18到30岁on 学生基本信息表for update,insertasif exists(select * from

14、 inserted where 年龄30)beginprint 请输入学生年龄在18到30 岁之间的数rollback transactionendgo举例:当向学生基本信息表中插入年龄小于18岁的记录select from 学生基本信息表insert into 学生基本信息表( 学号,姓名,年龄)values (09111605,张,17)(3)删除触发器当删除学生基本信息表中学号基本信息时,将同步实现学生所属系专业表和学生成绩表相应的记录整行的删除. 触发学生所属系专业表drop trigger 删除学生所属系专业表gocreate trigger 删除学生所属系专业表on 学生基本信息表

15、for deleteasbegindelete 学生所属系专业表from deleted as d ,学生所属系专业表 as brwhere d。学号=br.学号endgodrop trigger 删除学生成绩表gocreate trigger 删除学生成绩表on 学生基本信息表for deleteasbegindelete 学生成绩表from deleted as d1 ,学生成绩表 as br1where d1.学号=br1。学号endgo举例:当删除学生基本信息表中学号为09111603的记录,将同步实现学生所属系专业表和学生成绩表相应的学号记录的整行删除。select * from 学

16、生基本信息表select from 学生成绩表select from 学生所属系专业表 deletefrom 学生基本信息表where 学号=09111603删除触发器在学生基本信息表创建一个触发器,并保证结在学生基本信息表删除的【学号】和【系编号】部分信息要在学生所属系专业表中相应删除并将结果显示到查询分析器上。drop trigger 触发学生基本信息3gocreate trigger 触发学生基本信息3on 学生基本信息表for deleteasbegindelete 学生所属系专业表 from deleted as djoin 学生所属系专业表 on 学生所属系专业表.学号=d.学号a

17、nd 学生所属系专业表.系编号=d.系编号endgo举例:当向学生基本信息表中再删除一列【学号】和【系编号】select * from 学生所属系专业表delete from 学生基本信息表where 学号=09111629 and 系编号=002(4)综合触发器举例在学生所属系专业表中增加一个学生人数字段(系人数)表示该系当前最新的学生人数,该字段的值随着学生信息表中的记录数发生改变,即:当学生基本信息表中新增学生记录,并且分配了具体的所属系别后,该系的学生人数自动加1;当学生表中删除某记录并且删除的记录原有所属系别时,该系的学生人数自动减1;当学生信息表中的所属系别值发生改变时,原来系别的

18、学生人数自动减1,新的系别的学生人数自动加1.以上处理要求分别用insert、delete、update触发器实现其处理功能.insert触发器:DROP TRIGGER 增加系人数GOCREATE TRIGGER 增加系人数 ON 学生基本信息表AFTER INSERT -插入数据成功以后触发ASselect from 学生所属系专业表DECLARE 插入的系编号 varchar(11)SELECT 插入的系编号 = 系编号 FROM inserted -将插入数据的所属系别取出保存变量UPDATE 学生所属系专业表 SET 系人数 = ISNULL(系人数,0)+1WHERE 系编号 =

19、插入的系编号 -将所属系别的学生人数加1GO 举例:在学生基本信息表中插入系编号为 002的记录,将会触发 【增加系人数】触发器 则在学生所属系专业表中系编号为002的系人数将增加1个。insert into 学生基本信息表(学号,姓名 ,系编号)values(09111604,王明,002)delete触发器:DROP TRIGGER 减少系人数GOCREATE TRIGGER 减少系人数 ON 学生基本信息表AFTER DELETE-删除数据成功以后触发ASselect * from 学生基本信息表select * from 学生所属系专业表DECLARE 删除前系编号 varchar(1

20、0)SELECT 删除前系编号 = 系编号 FROM deleted -将删除数据的所属系别取出保存变量UPDATE 学生所属系专业表 SET 系人数 = isNULL(系人数,0)1WHERE 系编号 =删除前系编号 -将所属系别的学生人减少1GO举例:在学生基本信息表中删除系编号为 002的记录,将会触发 【减少系人数】触发器 则在学生所属系专业表中系编号为002的系人数将减少1个。 delete from 学生基本信息表where 系编号=002 update触发器:解决的是转系的问题DROP TRIGGER 转系触发器GOCREATE TRIGGER 转系触发器 ON 学生基本信息表A

21、FTER UPDATE -修改数据成功以后触发ASselect * from 学生基本信息表select * from 学生所属系专业表DECLARE 删除前系编号 varchar(10), 插入的系编号 varchar(10)IF UPDATE(系编号) -判断是否修改了所属系别列BEGINSELECT 删除前系编号 = 系编号 FROM deleted-存储修改之前的系别数据SELECT 插入的系编号 =系编号 FROM inserted-存储修改之后的系别数据UPDATE 学生所属系专业表 SET 系人数 = ISNULL(系人数,0)1WHERE 系编号 = 删除前系编号-将原所属系别

22、的学生人数减1UPDATE 学生所属系专业表 SET系人数 = ISNULL(系人数,0)+1WHERE 系编号= 插入的系编号-将新所属系别的学生人数加1ENDGO举例:当更把在学生基本信息表中系编号为 002的记录改为001时,将会触发 【减少系人数】触发器和【增加系人数】触发器,将相应地在学生所属系专业表中系编号为002的系人数将减少1个,而系编号为001的将相应增加系人数1个。select from 学生基本信息表beginupdate 学生基本信息表set 系编号=001where 系编号=002end7.数据入库采用事先在Excel中录入数据,然后使用SQL2000数据导入/导出功

23、能,将数据导入到相应基本表中。8.创建各个功能的存储过程。(1)创建带参数的存储过程,他的功能是向在学生基本信息表中插入一元组,新元组的值由参数提供。drop procedure 学生信息存储过程GOcreate procedure 学生信息存储过程 ( 学号 char(10), 姓名 char (6), 性别 char (2) =女 , 年龄 int, 班级 char(10), 出生日期 datetime=1989/04/05, 政治面貌 char(6), 专业 char(10), 家庭住址 char(25), 电话号码 char(11), 系编号 char(10), 就读学校 char(2

24、0)=东华理工大学)asinsert into 学生基本信息表 values(学号, 姓名, 性别, 年龄, 班级 , 出生日期,政治面貌, 专业, 家庭住址,电话号码, 系编号,就读学校)GO举例:执行数据库学生档案数据库带参数的存储过程 “学生信息存储过程”beginexec 学生信息存储过程 学号=09111629, 姓名=泉水叮咚, 性别=男, 年龄=21, 班级=16 , 出生日期=1989/04/05,政治面貌=打酱油的, 专业=软件工程, 家庭住址=湖南怀化,电话号码=15270992345, 系编号=003,就读学校=东华理工大学select * from 学生基本信息表end

25、beginexec 学生信息存储过程 学号=09111630, 姓名=在水一方, 年龄=18, 班级=16 , 出生日期=1991-04-05,政治面貌=打酱油的, 专业=软件工程, 家庭住址=江西上饶,电话号码=15270994698, 系编号=004select from 学生基本信息表end(2)创建能够返回值的存储过程,他的功能是从数据表 学生基本信息表中根据学号查询某一同学的姓名和系别,查询结果由参数 姓名,系编号和就读学校返回.drop procedure 创建能够返回值的存储过程GOcreate procedure 创建能够返回值的存储过程( 学号 char(10), 姓名 ch

26、ar(6)output, 系编号 char(8)output, 就读学校 char(13) output)asselect 姓名=姓名, 系编号=系编号,就读学校=就读学校from 学生基本信息表where 学号=学号GO 举例:当执行数据库学生档案数据库中带参数的存储过程创建能够返回值的存储过程,其结果将保存在参数 姓名,系编号和就读学校中.begin declare 姓名 char(6)declare 系编号 char(8)declare 就读学校 char(13)exec 创建能够返回值的存储过程 09111602,姓名 output,系编号 output, 就读学校 outputsel

27、ect 姓名= 姓名 ,系编号= 系编号,就读学校= 就读学校end6数据库运行和维护软件测试当在学生基本信息表中插入某一字段,将触发insert事件,例如:在学生基本信息表插入该学生所一个部分新记录,并将结果显示到查询分析器上.当更把在学生基本信息表中系编号为 002的记录改为001时,将会触发 【减少系人数】触发器和【增加系人数】触发器,将相应地在学生所属系专业表中系编号为002的系人数将减少1个,而系编号为001的将相应增加系人数1个.select * from 学生基本信息表beginupdate 学生基本信息表set 系编号=001where 系编号=002end结果如下:其他功能留

28、给用户自己验证。7实验总结档案管理系统是一个非常典型的数据库管理系统,它主要进行档案管理及一些基本的数据管理.本系统包括:档案管理、档案的更新、档案的删除、档案的修改、报表输出。本系统在以上这些传统功能的基础上增加了功能强大的各种统计分析及人性化的操作功能。智能方便的操作极大地提高档案管理的效率、避免人为操作的种种弊端,为管理提供及时、准确的信息。在Window平台下运用软件工程、数据库原理等实现档案信息管理系统的开发。 档案管理系统是数据库应用的一个典型实例。因为档案管理系统数据处理量大、日常操作频繁.在手工操作方式下,存在着工作效率低,数据整理麻烦,同时也容易产生一些人为的操作错误。不仅浪

29、费了大量的人力、物力及时间,而且使货物资源不能有效地利用,同时也不利于管理.为了解决大量的数据处理及手工操作所带来的种种弊端,方便管理及对档案的查阅情况进行各种统计分析.该系统针对档案管理的现有资源进行设计,投入使用后能大大地提高档案管理的效率,充分地利用信息资源,避免人为操作错误,节省大量的人力、物力及时间,为管理者提供及时、准确的信息.课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分

30、重要的,而数据库语言又是最常见,功能最强大的一种高级语言,因此做好数据库语言课程设计是十分必要的。8心得体会回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服