运动会管理系统Word文件下载.docx
《运动会管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《运动会管理系统Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
对于代表队,需要有代表队号、代表队的名称、领队、本代表队的总积分、总名次等属性;
对于运动员需要有运动员号、姓名、年龄、性别等属性;
对于比赛项目,需要有项目号、项目类别、项目名称、成绩单位等属性。
在运动会管理系统中,基本规定为:
一个代表队包含多个运动员,一个运动员只能属于一个代表队;
一个运动员可以参加多个比赛项目,一个比赛项目也可以被多个运动员参加;
假设各个比赛项目结束后,按照成绩由高到低排出名次,并对前3名运动员给予相应的积分,如第1、2、3名分别积分为3分、2分、1分,而获得其他名次的运动员积分为0分,将代表队中所有成员的积分累加,得到各代表队总积分,将总积分由高到低排序,得到各个代表队的排名情况。
为简化系统需求,本系统只考虑代表队、运动员、比赛项目的关系,其他关系不考虑。
4.2实验内容
4.2.1概念结构设计
4.2.1.1抽象出实体,并画出各实体的E-R图;
②
分析各实体之间的联系及类型,设计运动会管理系统总体E-R图;
4.2.2逻辑结构设计
根据E-R
图,设计运动会管理数据库的关系模式。
(1)运动员(运动员号、姓名、年龄、性别);
(2)代表队(代表队号、代表队的名称、领队、本代表队的总积分、总名次);
(3)比赛项目(项目号,项目类别,项目名称,成绩单位);
(4)参加(运动员号,
项目号,成绩,积分,名次)
4.2.3数据库物理设计与实施
(1)建立数据库
建立“运动会管理系统”数据库,其初始大小为100MB,增长率为10%,数据文件和日志文件名分别为:
“运动会管理系统_data”和“运动会管理系统_log”,存储路径为“D:
\MSSQL.1\MSSQL\Data”文件夹下。
创建运动会数据库SQL代码如下:
CREATEDATABASE运动会管理系统
on(
NAME=运动会管理系统_data,
FILENAME=’D:
\MSSQL.1\MSSQL\Data\运动会管理系统.mdf'
SIZE=100MB,
MAXSIZE=200MB,
FILEGROWTH=10%
)
LOGON(
NAME=运动会管理系统_log,
FILENAME='
D:
\MSSQL.1\MSSQL\Data\运动会管理系统.ldf'
SIZE=1MB,
MAXSIZE=20MB,
GO
(2)建立基本表
①创建代表队表
SQL代码:
CREATETABLE代表队表
(
代表队号CHAR(10)NOTNULLPRIMARYKEY,
队名称CHAR(20)NOTNULL,
领队CHAR(10)NOTNULL,
总积分INTNOTNULLCHECK(总积分>
=0),
总名次INTNOTNULLCHECK(总名次>
)
创建运动员表
CREATETABLE运动员表
运动员号CHAR(6)NOTNULLPRIMARYKEY,
姓名CHAR(10)NOTNULL,
性别CHAR(10)NOTNULLCHECK(性别='
男'
or性别='
女'
),
年龄TinyintNOTNULLCHECK(年龄>
1and年龄<
100),
代表队号CHAR(10)NOTNULL,
)
③
创建比赛项目表
CREATETABLE比赛项目
项目号CHAR(6)NOTNULLPRIMARYKEY,
项目类别CHAR(10)NOTNULL,
项目名称CHAR(20)NOTNULL,
成绩单位CHAR(20)NOTNULL,
④
创建比赛详情表
CREATETABLE比赛详情
运动员号CHAR(6)NOTNULL,
项目号CHAR(6)NOTNULL,
成绩Float,
积分TinyintCHECK(积分>
=0),
名次TinyintCHECK(名次>
CONSTRAINT运动会管理系统_比赛详情_运动员号FOREIGNKEY(运动员号)REFERENCES运动员表(运动员号),
CONSTRAINT运动会管理系统_比赛详情_项目号FOREIGNKEY(项目号)REFERENCES比赛项目(项目号),
(3)管理基本表
(3-1)向运动员表中增加“身高”列,其数据类型为整型。
altertable运动员表add身高INTNULL
(3-2)将运动员表中的“身高”的数据类型改为浮点型。
altertable运动员表altercolumn身高float
(3-3)为运动员表中的“身高”属性增加取值必须大于0的约束条件。
altertable运动员表addconstraint运动会管理系统_运动员表_身高check(身高>
0)
(3-4)删除运动员表中的“身高”列。
altertable运动员表dropconstraint运动会管理系统_运动员表_身高
altertable运动员表dropcolumn身高
(4)使用Insert语句插入数据,各表中的数据如下:
(4-1)代表队表数据:
insertinto代表队表values('
GLXY'
'
管理学院'
吴道福'
7'
2'
insertinto代表队表values('
JSJXY'
计算机学院'
张鹏'
6'
3'
SXXY'
数学学院'
宋威'
4'
WYXY'
外语学院'
王光明'
8'
1'
(4-2)运动员表数据:
insertinto运动员values('
G11001'
钱翔'
'
14'
G11002'
吴帆'
16'
G11003'
石乔乔'
G11004'
张桂芳'
19'
G11005'
洪雪'
18'
J11001'
张月'
J11002'
田楠'
J11003'
赵恒博'
J11004'
徐铜铃'
15'
J11005'
李明'
S11001'
崔天齐'
S11002'
王尹'
S11003'
刘冰洁'
S11004'
杨中华'
S11005'
李雪平'
W11001'
叶星'
W11002'
顾羽翔'
W11003'
袁建明'
W11004'
刘琼'
17'
W11005'
孟储强'
(4-3)比赛项目表数据:
insertinto比赛项目values('
JS001M'
径赛'
男子米'
秒'
JS002W'
女子米'
分钟'
TS001M'
田赛'
男子三级跳远'
米'
TS002W'
女子铅球'
(4-4)比赛详情表数据
insertinto比赛详情values('
12.91'
13.15'
13.19'
13.55'
0'
1.24'
1.25'
1.32'
2.02'
5.47'
5.15'
5.11'
4.98'
5.72'
5.38'
5.21'
5.02'
(5)建立和管理视图
(5-1)生成一张“项目类别”为“田赛”的视图,并将该视图命名为“田赛项目”。
createview田赛项目asselect*from比赛项目where项目类别='
(5-2)生成一张“项目类别”为“径赛”的视图,并将该视图命名为“径赛项目”。
createview径赛项目asselect*from比赛项目where项目类别='
(6)建立和管理索引
(6-1)为运动员表中的“姓名”建立次索引。
createindexsportnameon运动员表(姓名)
(6-2)为项目表中的“项目类别”建立次索引。
createindexclassificationon比赛项目(项目类别)
4.2.4访问数据库
1.数据查询
(1)查询姓名为“杨中华”的运动员的运动员号和所在的代表队号。
select运动员表.运动员号,运动员表.代表队号
from运动员表
where姓名='
(2)查询代表队号为“JSJXY”的所有成员姓名。
select姓名from运动员表where代表队号='
(3)统计项目名称为“男子100米”比赛的参赛运动员名称、年龄、项目号、项目名称、成绩,并按成绩由高到低排列。
select运动员表.姓名,运动员表.年龄,比赛详情.项目号,比赛项目.项目名称,比赛详情.成绩
from运动员表,比赛详情,比赛项目
where比赛详情.项目号=比赛项目.项目号and运动员表.运动员号=比赛详情.运动员号and项目名称='
orderby比赛详情.成绩desc
(4)查询“杨中华”参加的比赛项目的情况。
select运动员表.姓名,比赛详情.运动员号,比赛详情.项目号,比赛项目.项目名称,比赛详情.成绩,比赛详情.积分,比赛详情.名次
from运动员表,比赛项目,比赛详情
where比赛详情.项目号=比赛项目.项目号and运动员表.运动员号=比赛详情.运动员号and姓名='
(5)列出运动员号为“G1104”的运动员的所有的个人信息及比赛信息。
select比赛详情.运动员号,运动员表.姓名,运动员表.性别,运动员表.年龄,运动员表.代表队号,比赛详情.项目号,比赛项目.项目类别,
比赛项目.项目名称,比赛详情.成绩,比赛详情.积分,比赛详情.名次from运动员表,比赛项目,比赛详情
where比赛详情.项目号=比赛项目.项目号and运动员表.运动员号=比赛详情.运动员号and运动员表.运动员号='
(6)统计代表队号为“JSJXY”的参加比赛的各个运动员的积分情况,并且按积分由大到小的顺序排序。
select比赛详情.运动员号,运动员表.姓名,比赛详情.积分
from运动员表,比赛详情
where运动员表.运动员号=比赛详情.运动员号and运动员表.代表队号='
orderby比赛详情.积分
desc
(7)统计所有比赛项目中,同一个运动员号的运动员的积分情况。
Select运动员表.运动员号,运动员表.姓名,比赛项目.项目号,比赛详情.积分
where比赛项目.项目号=比赛详情.项目号and比赛详情.运动员号=运动员表.运动员号
(8)查询个人总积分大于等于3的运动员的情况。
Select运动员表.运动员号,运动员表.姓名,运动员表.性别,运动员表.年龄,运动员表.代表队号
where运动员表.运动员号=比赛详情.运动员号
and比赛详情.积分>
=3
2.数据更新
(1)增加一名新的运动员,要求运动员号:
S11006;
姓名:
王林;
性别:
男;
年龄:
17;
代表队号:
SXXY。
insertinto运动员表(运动员号,姓名,性别,年龄,代表队号)
values('
S11006'
王林'
(2)将“王林”的年龄更新为16。
update运动员表set年龄='
where姓名='
(3)将运动员号为“S11006”的运动员的代表队号更新为“GLXY”。
update运动员表set代表队号='
where运动员号='
(4)将所有运动员的年龄加1。
update运动员表set年龄=年龄+1
(5)由于测算问题,需要将项目号为“TS001M”的比赛成绩全部减少0.5米。
update比赛详情set成绩=成绩-0.5where项目号='
(6)删除运动员号为“S1106”的运动员信息。
Deletefrom运动员表where运动员号='
4.2.5数据库维护
(1)使用SQL语句备份数据库
(1-1)创建备份设备
EXECsp_addumpdevice'
DISK'
mybackup1'
'
\MSSQL.1\MSSQL\Backup'
(1-2)备份数据库
BackupDatabase运动会管理系统
ToDISK='
\MSSQL.1\MSSQL\Backup\运动会管理系统.BAK'
五、参考文献
《软件工程及实践》,电子工业出版社,窦万峰,郑阿奇。
《数据库技术与应用》,清华大学出版社,顾斌。
《数据库系统原理教程》,清华大学出版社,王珊、陈虹;
六、实验心得
这次设计中不断的出现问题,我则自己努力,不断的改正错误,改进自己的程序,有些自己实在是无法解决的问题,则会与其他同学讨论,或上网查询、搜寻资料……在不断的改进过程中,深刻的认识到自己程序的漏洞和不健全性,而且一些pb的语法和函数自己不是很了解,以致有很多错误改了很长时间才能调试正确。
通过这次设计,不但让我进一步加深了对知识的巩固,而且很好的锻炼了我的独立思考能力,以及分析问题解决问题的能力。
今后凡事都不要着急,要冷静的分析思考,越是急越是无法解决,只有沉着冷静深入思考才能真正的解决问题。
只要自己努力凡事都能解决。
而且深刻感受到了知识的重要性。
平时如果不多积累知识,在编写自己的程序时会手忙脚乱无所适从,相反如果平时自己扎实学习,知识掌握的都很牢固,到写程序的时候会得心应手,很熟练很快的写出程序,虽然有些毛病,但是如果仔细检查,也会在很短的时间内解决。
由此我更加认识到课堂知识的重要性,以及自己多积累,多查资料的重要性。
最重要的一点经验就是老师提供了设计提纲,跟着老师的设计思路慢慢完善很重要,总是先建表,再找关系,这是很不正确的,以后设计也要按照老师给的这个思路,要先进行目标明确,任务分析,然后是系统边界,再是需求分析,之后是ER图,然后才是数据库设计,最后是程序的编写与完善。
这样就避免了我们平时写程序的时候边写边修改数据库,数据库应该是比较完善的时候才进行程序的编写。
以后做程序要先理清思路,不要急于完成,先把各角色的任务权限分清,各模块划分好,联系好,要先从整体把握,再从细节抓起
课程设计感触颇深,首先是深刻感受到程序的实际应用性,这学期的课程设计的题目都是贴近实际生活的问题,我们就能够很清楚的明白自己写的程序要解决什么样的实际问题,应该解决什么样的实际问题,觉得自己的程序更有实用价值。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求