赛事管理系统

更新时间:2024-07-01 15:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

郑州大学软件学院

专班

业:[软件开发] 级:[.NET1班] 学生姓名:[李伟,闫斌斌,魏超,范程龙,范兴隶,曹晓龙,刘飞] 指导教师:[姚瑶]

完成时间:2013年4月3日

第1章 需求分析 ........................................................................................................................... 3

1 软件需求分析 ....................................................................................................................... 3

1.1 普通用户功能需求 .................................................................................................... 3 1.2 管理员功能需求 ........................................................................................................ 3 2 软件功能模块设计 ............................................................................................................... 3

2.1 软件功能分析 ............................................................................................................ 4 2.2 数据项分析 ................................................................................................................ 5

第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

select top 8*

from 运动员信息.比赛结果 go

获得参赛总数

use 比赛系统 go

select count(*) as 参赛总数 FROM 用户信息.赛事名称 Go

运动员查询成绩

USE 比赛系统

IF 姓名!=(SELECT 姓名 FROM 运动员信息) GOTO label1 BEGIN

PRINT ‘该学号学生的成绩:’

SELECT * FROM 运动员信息 WHERE 学号=@学号 RETURN END label1:

PRINT ‘该学号的学生成绩未进入前八名,仍需努力!’ Return (select * from 运动员信息 where 学号=@学号)

向运动员信息表添加主键pk-学号

ALTER TABLE dbo.运动员信息 ADD

CONSTRAINT PK_学号

PRIMARY 号

KEY(

学)

运动员信息表的学号作为成绩管理表学号的外键(外键约束)

ALTER TABLE [运动员信息].[学号] with CHECK ADD CONSTRAINT [FK_运动员信息_学号_成绩管理_学号] FOREIGN KEY ([学号])

REFERENCES [运动员信息].[成绩管理]([学号])

检查报名时间(check 约束)

CREATE TABLE 运动员信息 (报名时间 datetime

CONSTRAINT 检查报名时间

CHECK (运动员信息.报名时间<运动员信息.比赛时间) )

创建比赛结果视图

create view VIEW_比赛结果 as

select 学号,姓名,比赛结果 from 运动员信息

where 运动员信息.学号 in (用户信息.学号)

系统所涉及的主要计算机源程序: 1、 运动员管理模块

protected void Button7_Click(object sender, EventArgs e) {

Response.Redirect(\ }

protected void Btcx_Click(object sender, EventArgs e) {

if (TextBox1.Text.Length != 11) {

Label1.Text = \请输入正确格式的学号!\

Textxm.Text = \ lbxh.Text = \ Textxma.Text = \ Textxmb.Text = \ Textxmc.Text = \

Label3.Visible = false; Lbxx.Text = \

} else {

SqlConnection conn = new SqlConnection(); conn.ConnectionString =

ConfigurationManager.ConnectionStrings[\

SqlCommand cmdpd = new SqlCommand(); cmdpd.Connection = conn;

cmdpd.CommandText = \TextBox1.Text + \

SqlParameter sppd = new SqlParameter(\ sppd.Direction = ParameterDirection.Input; conn.Open();

sppd.Value = cmdpd.ExecuteScalar().ToString(); conn.Close();

if(sppd.Value.ToString()==\ {

Label1.Text = \您输入的学号不存在,或者未注册!\

Textxm.Text = \ lbxh.Text = \ Textxma.Text = \ Textxmb.Text = \ Textxmc.Text = \

Label3.Visible = false; Lbxx.Text = \

} else {

SqlCommand cmdxh = new SqlCommand(); cmdxh.Connection = conn;

cmdxh.CommandText = \\

conn.Open();

lbxh.Text = cmdxh.ExecuteScalar().ToString(); conn.Close();

SqlCommand cmdxm = new SqlCommand(); cmdxm.Connection = conn;

cmdxm.CommandText = \csname from cansai where Xh='\+ TextBox1.Text + \

conn.Open();

Textxm.Text = cmdxm.ExecuteScalar().ToString(); conn.Close();

SqlCommand cmdxma = new SqlCommand(); cmdxma.Connection = conn;

cmdxma.CommandText = \+ \

conn.Open();

Textxma.Text = cmdxma.ExecuteScalar().ToString(); conn.Close();

SqlCommand cmdxmb = new SqlCommand(); cmdxmb.Connection = conn;

cmdxmb.CommandText = \+ \

conn.Open();

Textxmb.Text = cmdxmb.ExecuteScalar().ToString();

conn.Close();

SqlCommand cmdxmc = new SqlCommand(); cmdxmc.Connection = conn;

cmdxmc.CommandText = \+ \

conn.Open();

Textxmc.Text = cmdxmc.ExecuteScalar().ToString(); conn.Close();

Label3.Visible = true; Lbxx.Text = \ }

}

}

protected void Btxg_Click(object sender, EventArgs e) {

SqlConnection conn = new SqlConnection(); conn.ConnectionString =

ConfigurationManager.ConnectionStrings[\

SqlCommand cmdjy = new SqlCommand(); cmdjy.Connection = conn;

cmdjy.CommandText = \Application[\

SqlParameter spjy = new SqlParameter(\ spjy.Direction = ParameterDirection.Input; conn.Open();

spjy.Value = cmdjy.ExecuteScalar().ToString(); conn.Close();

if (Txjy.Text == spjy.Value.ToString()) {

if (Label3.Visible == true) {

SqlCommand cmdxm = new SqlCommand(); cmdxm.Connection = conn;

cmdxm.CommandText = \\

conn.Open();

cmdxm.ExecuteScalar(); conn.Close();

SqlCommand cmdxma = new SqlCommand(); cmdxma.Connection = conn;

cmdxma.CommandText = \cansai set Xma='\+ Textxma.Text + \where Xh='\

conn.Open();

cmdxma.ExecuteScalar(); conn.Close();

SqlCommand cmdxmb = new SqlCommand(); cmdxmb.Connection = conn;

cmdxmb.CommandText = \cansai set Xmb='\+ Textxmb.Text + \where Xh='\

conn.Open();

cmdxmb.ExecuteScalar(); conn.Close();

SqlCommand cmdxmc = new SqlCommand(); cmdxmc.Connection = conn;

cmdxmc.CommandText = \cansai set Xmc='\+ Textxmc.Text + \where Xh='\

conn.Open();

cmdxmc.ExecuteScalar(); conn.Close();

Lbxx.Text = \你个禽兽,修改成功!\ } else {

Lbxx.Text = \请先查询您需要修改的学号!\ }

} else {

Lbxx.Text = \密码错误!\

}

}

protected void Btsc_Click(object sender, EventArgs e) {

SqlConnection conn = new SqlConnection(); conn.ConnectionString =

ConfigurationManager.ConnectionStrings[\

SqlCommand cmdjy = new SqlCommand(); cmdjy.Connection = conn;

cmdjy.CommandText = \Application[\

SqlParameter spjy = new SqlParameter(\ spjy.Direction = ParameterDirection.Input; conn.Open();

spjy.Value = cmdjy.ExecuteScalar().ToString(); conn.Close();

if (Txjy.Text == spjy.Value.ToString()) {

SqlCommand cmdsc = new SqlCommand(); cmdsc.Connection = conn;

cmdsc.CommandText = \cansai where Xh='\+ 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 = \管理员密码错误!\

} }

本文来源:https://www.bwwdw.com/article/1ac.html

Top