赛事管理系统.docx
《赛事管理系统.docx》由会员分享,可在线阅读,更多相关《赛事管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
赛事管理系统
第1章需求分析
根据数据库系统生存期的设计方法,从数据库应用系统和开发的全过程来考虑,将数据库应用系统设计分为以下几个阶段:
需求分析、概念设计、逻辑设计、物理设计。
1软件需求分析
1.1普通用户功能需求
要设计一个优秀的运动会赛事编排管理系统,就必须首先明确用户对系统的要求。
赛事编排管理系统的功能为:
方便用户报名参加比赛,查询个人赛项成绩。
普通用户是系统的服务对象,也是系统的主要参与者。
一个赛事编排管理系统的好坏主要是由普通用户来评判的。
因此,该系统需满足以下几方面需求:
1.用户管理:
目前可提供用户自定义报名。
2.成绩查询:
该用户可以对所有人、所有班级、比赛项目的成绩进行查询。
3.赛程查询:
对整个赛事的赛项进行查看,并得知赛项的详细内容,如比赛规则,参赛人数,比赛时间等。
1.2管理员功能需求
(1)管理员是一个软件系统的管理者,需要处理各种信息的增添、修改、删除,也要对用户的信息进行维护,在本软件中,管理员可以实现以下功能:
(2)查看赛事的信息。
(3)可删除和更新用户信息。
(4)能处理已存在用户报名参加比赛。
(5)可以对赛项进行编制处理和增删改。
(6)可以按模块中的内容精确查询。
(7)可以对赛项的赛程进行时间,分组等进行设置和增删改。
(8)可以对比赛选手进行增删改。
(9)可以对选手的成绩进行增删改。
(10)可以进行软件登陆身份验证。
2软件功能模块设计
2.1软件功能分析
通过对本系统功能的集中和分解,从内容结构上对软件功能进行如下划分:
注册录入用户数据到用户数据表,设置用户权限。
登录读取用户数据表,自动区分管理员与运动员,自动跳转到各自第一功能模块。
报名读取用户信息,用户先选择报名的赛事,选择分队、比赛项目。
在提交时对比当前服务器时间和赛事报名时间,若在报名时间内则判断报名项目个数。
报名数据保存在运动员数据表中。
否则报名失败。
成绩查询读取成绩数据表,显示用户所参加赛事名称及比赛项目的成绩、排名。
赛程查询读取用户所报项目,按一定规则限制条件进行查询。
可以分学号、姓名等进行查询。
赛事管理管理员添加赛事名称,确定报名时间及比赛(开始)时间。
提交时保存数据到赛事数据表,并提示进行赛程编排。
选手管理查询报名参与运动会运动员的学号,返回该运动员报名的具体信息,无匹配结果,则返回提示查无此人。
管理员可以对已报名的运动员信息进行删除与修改。
对运动员信息的修改与删除必须使用管理员的密码校验,防止非管理员恶意更改运动员信息。
此功能仅管理员可以使用,普通用户无法访问该页面。
赛程管理管理员可手动进行所有赛程编排、管理,也可以读取系统预设中的赛程表。
结果保存至赛程数据表中。
用户管理读取所需要普通用户的信息,管理员可以实现对普通用户一些基本资料的修改。
成绩录入选择赛事,显示所有比赛项目的前8名。
选择赛程,录入运动员的成绩保存至成绩数据表。
本系统包括的功能模块如图2-1-1所示:
图2-1-1系统业务流程图
2.2数据项分析
通过对系统功能模块的分析,设计数据项如下:
1.用户信息:
姓名、性别、学号、系别、赛事等级,参赛时间,赛事性质,
赛事名称。
2.赛项信息:
赛事ID、赛事名称、规则、赛事性质,赛事时间、报名时间,。
3.运动员信息:
参赛项目、报名时间、姓名、学号、系别、性别,修改参赛项目,赛事性质,比赛结果,比赛时间,修改比赛结果。
4.赛程信息:
赛事名称、参赛项目、赛事性质、比赛时间、参赛运动员。
5.成绩管理:
姓名、学号、性别、赛事名称、参赛项目、性质、排名。
6.管理员信息包括:
管理员账号,密码。
第二章-概念结构设计部分
图2.1
数据字典
实体:
管理员,用户,运动员
实体属性如下:
管理员:
录入成绩
用户:
姓名、性别、学号、系别
运动员:
姓名,学号,性别,系别,参赛性质,参赛项目,修改参赛项目
报名时间,参赛时间,比赛结果
第三章——逻辑结构设计
E-R图向关系模型的转换
用户(姓名、性别、学号、系别)
此为用户对应的关系模式。
运动员(姓名,学号,性别,系别,参赛性质,参赛项目,报名时间,
参赛时间,比赛结果)
此为运动员对应的关系模式。
包含赛事信息,个人信息。
管理员(参赛项目,比赛结果)
第四章--物理设计
从赛事系统中获得赛事前八名信息
use比赛系统
go
selecttop8*
from运动员信息.比赛结果
go
获得参赛总数
use比赛系统
go
selectcount(*)as参赛总数FROM用户信息.赛事名称
Go
运动员查询成绩
USE比赛系统
IF姓名!
=(SELECT姓名FROM运动员信息)
GOTOlabel1
BEGIN
PRINT‘该学号学生的成绩:
’
SELECT*FROM运动员信息WHERE学号=@学号
RETURN
END
label1:
PRINT‘该学号的学生成绩未进入前八名,仍需努力!
’
Return(select*from运动员信息where学号=@学号)
向运动员信息表添加主键pk-学号
ALTERTABLEdbo.运动员信息
ADD
CONSTRAINTPK_学号
PRIMARYKEY(学号)
运动员信息表的学号作为成绩管理表学号的外键(外键约束)
ALTERTABLE[运动员信息].[学号]
withCHECK
ADDCONSTRAINT[FK_运动员信息_学号_成绩管理_学号]
FOREIGNKEY([学号])
REFERENCES[运动员信息].[成绩管理]([学号])
检查报名时间(check约束)
CREATETABLE运动员信息
(报名时间datetime
CONSTRAINT检查报名时间
CHECK(运动员信息.报名时间<运动员信息.比赛时间)
)
创建比赛结果视图
createviewVIEW_比赛结果
as
select学号,姓名,比赛结果
from运动员信息
where运动员信息.学号in(用户信息.学号)
系统所涉及的主要计算机源程序:
1、运动员管理模块
protectedvoidButton7_Click(objectsender,EventArgse)
{
Response.Redirect("GL-Index.aspx");
}
protectedvoidBtcx_Click(objectsender,EventArgse)
{
if(TextBox1.Text.Length!
=11)
{
Label1.Text="请输入正确格式的学号!
";
Textxm.Text="";
lbxh.Text="";
Textxma.Text="";
Textxmb.Text="";
Textxmc.Text="";
Label3.Visible=false;
Lbxx.Text="";
}
else
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=ConfigurationManager.ConnectionStrings["CtString"].ConnectionString;
SqlCommandcmdpd=newSqlCommand();
cmdpd.Connection=conn;
cmdpd.CommandText="selectcount(*)fromcansaiwhereXh='"+TextBox1.Text+"'";
SqlParametersppd=newSqlParameter("pd",SqlDbType.Char);
sppd.Direction=ParameterDirection.Input;
conn.Open();
sppd.Value=cmdpd.ExecuteScalar().ToString();
conn.Close();
if(sppd.Value.ToString()=="0")
{
Label1.Text="您输入的学号不存在,或者未注册!
";
Textxm.Text="";
lbxh.Text="";
Textxma.Text="";
Textxmb.Text="";
Textxmc.Text="";
Label3.Visible=false;
Lbxx.Text="";
}
else
{
SqlCommandcmdxh=newSqlCommand();
cmdxh.Connection=conn;
cmdxh.CommandText="selectXhfromcansaiwhereXh='"+TextBox1.Text+"'";
conn.Open();
lbxh.Text=cmdxh.ExecuteScalar().ToString();
conn.Close();
SqlCommandcmdxm=newSqlCommand();
cmdxm.Connection=conn;
cmdxm.CommandText="selectcsnamefromcansaiwhereXh='"+TextBox1.Text+"'";
conn.Open();
Textxm.Text=cmdxm.ExecuteScalar().ToString();
conn.Close();
SqlCommandcmdxma=newSqlCommand();
cmdxma.Connection=conn;
cmdxma.CommandText="selectXmafromcansaiwhereXh='"+TextBox1.Text+"'";
conn.Open();
Textxma.Text=cmdxma.ExecuteScalar().ToString();
conn.Close();
SqlCommandcmdxmb=newSqlCommand();
cmdxmb.Connection=conn;
cmdxmb.CommandText="selectXmbfromcansaiwhereXh='"+TextBox1.Text+"'";
conn.Open();
Textxmb.Text=cmdxmb.ExecuteScalar().ToString();
conn.Close();
SqlCommandcmdxmc=newSqlCommand();
cmdxmc.Connection=conn;
cmdxmc.CommandText="selectXmcfromcansaiwhereXh='"+TextBox1.Text+"'";
conn.Open();
Textxmc.Text=cmdxmc.ExecuteScalar().ToString();
conn.Close();
Label3.Visible=true;
Lbxx.Text="";
}
}
}
protectedvoidBtxg_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=ConfigurationManager.ConnectionStrings["CtString"].ConnectionString;
SqlCommandcmdjy=newSqlCommand();
cmdjy.Connection=conn;
cmdjy.CommandText="selectuserpasswordfromLoginwhereXh='"+Application["name"].ToString()+"'";
SqlParameterspjy=newSqlParameter("jy",SqlDbType.Char);
spjy.Direction=ParameterDirection.Input;
conn.Open();
spjy.Value=cmdjy.ExecuteScalar().ToString();
conn.Close();
if(Txjy.Text==spjy.Value.ToString())
{
if(Label3.Visible==true)
{
SqlCommandcmdxm=newSqlCommand();
cmdxm.Connection=conn;
cmdxm.CommandText="updatecansaisetcsname='"+Textxm.Text+"'whereXh='"+TextBox1.Text+"'";
conn.Open();
cmdxm.ExecuteScalar();
conn.Close();
SqlCommandcmdxma=newSqlCommand();
cmdxma.Connection=conn;
cmdxma.CommandText="updatecansaisetXma='"+Textxma.Text+"'whereXh='"+TextBox1.Text+"'";
conn.Open();
cmdxma.ExecuteScalar();
conn.Close();
SqlCommandcmdxmb=newSqlCommand();
cmdxmb.Connection=conn;
cmdxmb.CommandText="updatecansaisetXmb='"+Textxmb.Text+"'whereXh='"+TextBox1.Text+"'";
conn.Open();
cmdxmb.ExecuteScalar();
conn.Close();
SqlCommandcmdxmc=newSqlCommand();
cmdxmc.Connection=conn;
cmdxmc.CommandText="updatecansaisetXmc='"+Textxmc.Text+"'whereXh='"+TextBox1.Text+"'";
conn.Open();
cmdxmc.ExecuteScalar();
conn.Close();
Lbxx.Text="你个禽兽,修改成功!
";
}
else
{
Lbxx.Text="请先查询您需要修改的学号!
";
}
}
else
{
Lbxx.Text="密码错误!
";
}
}
protectedvoidBtsc_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=ConfigurationManager.ConnectionStrings["CtString"].ConnectionString;
SqlCommandcmdjy=newSqlCommand();
cmdjy.Connection=conn;
cmdjy.CommandText="selectuserpasswordfromLoginwhereXh='"+Application["name"].ToString()+"'";
SqlParameterspjy=newSqlParameter("jy",SqlDbType.Char);
spjy.Direction=ParameterDirection.Input;
conn.Open();
spjy.Value=cmdjy.ExecuteScalar().ToString();
conn.Close();
if(Txjy.Text==spjy.Value.ToString())
{
SqlCommandcmdsc=newSqlCommand();
cmdsc.Connection=conn;
cmdsc.CommandText="deletecansaiwhereXh='"+TextBox1.Text+"'";
conn.Open();
cmdsc.ExecuteScalar();
conn.Close();
Lbxx.Text="删除成功!
";
lbxh.Text="";
Textxm.Text="";
Textxma.Text="";
Textxmb.Text="";
Textxmc.Text="";
Label3.Visible=false;
}
else
{
Lbxx.Text="管理员密码错误!
";
}
}