足球联赛信息系统设计报告书.docx
《足球联赛信息系统设计报告书.docx》由会员分享,可在线阅读,更多相关《足球联赛信息系统设计报告书.docx(50页珍藏版)》请在冰豆网上搜索。
足球联赛信息系统设计报告书
足球联赛信息系统设计报告书
一.概述
1.项目名称:
足球联赛信息系统
2.项目背景:
结合数据库系统概论中介绍的内容和以往所学的专业知识,开发一个足球联赛信息系统。
3.项目目的:
掌握数据库管理和设计原理,熟悉并能熟练使用SQL语句,能在一个或多个数据库管理系统进行开发和管理,并结合特定程序开发语言如C、JAVA进行项目的开发。
4.开发环境:
数据库管理系统采用SQLSEVER2000SP3(加装JDBC),程序开发语言采用JAVA,集成开发环境使用JBuilder2005。
二.需求分析
1.系统使用对象:
足球编辑。
足球作为世界第一运动,拥有广大的爱好者,催生并推动了诸多周边产业的发展,比如说足球报纸的蓬勃发展。
为了方便足球编辑们的工作,让他们能对相关信息进行查询,本人开发了此足球联赛信息系统。
2.系统开发定位:
由于有其固定使用群体——足球编辑,本系统在设计上有所侧重,更加强调信息的完整性和查询功能,娱乐性较小,因而对界面上设计则未投入过多精力,整个界面相对也较朴实。
而对于操作设计从人性化着手,方便管理人员的信息录入,同时,在能满足使用者的日常需要外,还也针对一般用户简化设计。
3.系统主要功能:
本项目针对使用者的工作特点,设定了4大功能模块。
●系统管理。
一般用户和管理员的密码修改功能;系统超级管理员对用户进行类别权限设置;系统超级管理员对数据进行备份。
●系统信息录入。
这个模块是数据库的核心之一,它实现了对数据库中所有有效信息的管理。
包括联赛球队信息,联赛球员信息,联赛赛事信息,联赛犯规信息和进球信息。
要求有管理员或超级管理员权限。
同时考虑到对数据的保护,有些表中的信息无法在更改,只能由程序自动进行其相应的增删改的操作,对操作人员而言是透明的。
●联赛信息查询。
用户在这个模块中可查询系统相应的一些简单的已定制好的信息,比如积分榜,射手榜,助攻榜,累积红牌信息,累积黄牌信息。
这些基本的信息查询可以方便用户可以便捷的查询相关联赛的统计信息。
●用户定制查询。
用户可以自己定制选择查询信息,朝着人性话的方式建立。
用户查询所有系统中的信息(用户信息出外),也可以根据需要定制查询的内容,同时可以关联到上一模块中相关的联赛统计信息。
4.数据字典:
◎用户信息=用户ID+用户姓名+用户类型+用户密码+联系电话+联系地址+证件号码+备注;
◎球队信息=球队ID+球队名称+董事长+总经理+主教练+教练简介+联系电话+联系地址+邮编+传真号码+球队备注;
◎球员信息=球员ID+球员名称+所属球队+出生日期+身高+体重+场上位置+国家队身份+照片+备注;
◎进球信息=进球ID+射门球员ID+助攻球员ID+比赛场次+进球时间;
◎领牌信息=红黄牌ID+领牌球员ID+出示时间;
◎比赛信息=比赛ID+主队ID+客队ID+比赛场次+比赛时间+比赛地点+比赛结果(主队胜负平)+比赛比分+主裁信息+边裁信息;
◎积分信息=球队ID+球队名称+比赛场数+胜场数+负场数+平场数+主场战绩+客场战绩+进球总数+失球总数+积分;
5.系统数据流图
三.结构设计
1.数据库结构设计
●系统用户表:
名称
数据类型
作用
id
varchar
用户帐号
name
varchar
用户名称
type
varchar
用户类型
password
varchar
用户密码
tel
varchar
联系电话
addr
varchar
联系地址
PICNo
varchar
身份证号
remark
varchar
备注
●球队信息表
名称
数据类型
作用
T_id
varchar
球队编号
T_name
varchar
球队名称
Chairman
varchar
球队董事长
T_manager
varchar
球队经理
Coach
varchar
球队主教练
Coach_resume
varchar
教练备注
Addr
varchar
球队联系地址
Zip
varchar
邮编
Tel
varchar
联系电话
Fax
varchar
传真
T_remark
varchar
球队备注
●球员信息表
名称
数据类型
作用
P_id
varchar
球员编号
P_name
varchar
球员姓名
T_name
varchar
所属球队
Birthday
datetime
出生日期
Weight
float
体重
High
float
身高
Posi
varchar
场上位置
Nation_player
varchar
是否现役国脚
Photo
varchar
图片地址
P_remark
varchar
球员备注
●进球信息表
名称
数据类型
作用
G_id
int
进球编号
M_times
varchar
进球场次
shotter_id
varchar
射门球员编号
Assist_id
varchar
助攻球员编号
G_time
varchar
场上时间
●红黄牌信息表
名称
数据类型
作用
C_id
int
红黄牌编号
M_id
varchar
红黄牌场次
P_id
varchar
领牌球员编号
Yellow_Red
varchar
红、黄牌
C_time
varchar
出示时间
●比赛信息表
名称
数据类型
作用
M_id
varchar
比赛编号
Host_id
varchar
主队编号
Guest_id
varchar
客队编号
M_times
varchar
比赛场次
M_date
datetime
比赛时间
M_addr
varchar
比赛地点
Host_win
varchar
主队胜负平
Host_goals
int
主队进球
Guest_goals
int
客队进球
Chief_umpire
varchar
主裁判
Umpire_1
varchar
边裁1
Umpire_2
varchar
边裁2
●积分表
名称
数据类型
作用
T_id
varchar
球队编号
T_name
varchar
球队名称
Sum_match
int
比赛总数
Wins
int
胜场数
Loses
int
负场数
Too_fall
int
平场数
Host_wins
int
主场获胜数
Guest_wins
int
客场获胜数
Goals
int
总进球数
Lose_goals
int
总失球
Score
int
联赛积分
2.E-R图
图球队作为一个实体
图球员最为一个实体
图进球作为一个实体
图比赛作为一个实体
图红黄牌作为一个实体
图积分榜作为一个实体
nm
1
n
1
n
n1
21
●主要数据表关系如下:
●主要数据库SQL脚本如下:
CREATETABLE[dbo].[Cards](
[C_id][int]NOTNULL,
[M_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[P_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Yellow_Red][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[C_time][varchar](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Goals](
[G_id][int]NOTNULL,
[M_times][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[shotter_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Assist_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[G_time][varchar](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Matches](
[M_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Host_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[Guest_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[M_times][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[M_date][datetime]NULL,
[M_addr][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Host_win][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[Host_goals][int]NULL,
[Guest_goals][int]NULL,
[Chief_umpire][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Umpire_1][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Umpire_2][varchar](20)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Players](
[P_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[P_name][varchar](25)COLLATEChinese_PRC_CI_ASNULL,
[T_name][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL,
[Birthday][datetime]NULL,
[Weight][float]NULL,
[High][float]NULL,
[Posi][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[Nation_player][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[Photo][varchar](255)COLLATEChinese_PRC_CI_ASNULL,
[P_remark][varchar](255)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[TEAMScore](
[T_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[T_name][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL,
[Sum_match][int]NULL,
[Wins][int]NULL,
[Loses][int]NULL,
[Too_fall][int]NULL,
[Host_wins][int]NULL,
[Guest_wins][int]NULL,
[Goals][int]NULL,
[Lose_goals][int]NULL,
[Score][int]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Teams](
[T_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[T_name][varchar](30)COLLATEChinese_PRC_CI_ASNOTNULL,
[Coach][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Addr][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Zip][varchar](15)COLLATEChinese_PRC_CI_ASNULL,
[Tel][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Fax][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Chairman][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[T_manager][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Coach_resume][varchar](254)COLLATEChinese_PRC_CI_ASNULL,
[T_remark][varchar](254)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[operator](
[id][varchar](25)COLLATEChinese_PRC_CI_ASNOTNULL,
[name][varchar](25)COLLATEChinese_PRC_CI_ASNULL,
[type][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[password][varchar](15)COLLATEChinese_PRC_CI_ASNULL,
[tel][varchar](15)COLLATEChinese_PRC_CI_ASNULL,
[addr][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[PICNo][varchar](18)COLLATEChinese_PRC_CI_ASNULL,
[remark][varchar](255)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Cards]ADD
CONSTRAINT[PK_Card]PRIMARYKEYCLUSTERED
(
[C_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Goals]ADD
CONSTRAINT[PK_Goals]PRIMARYKEYCLUSTERED
(
[G_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Matches]ADD
CONSTRAINT[PK_Matches]PRIMARYKEYCLUSTERED
(
[M_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Players]ADD
CONSTRAINT[PK_Players]PRIMARYKEYCLUSTERED
(
[P_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[TEAMScore]ADD
CONSTRAINT[PK_TEAMScore]PRIMARYKEYCLUSTERED
(
[T_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Teams]ADD
CONSTRAINT[PK_Teams]PRIMARYKEYCLUSTERED
(
[T_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[operator]ADD
CONSTRAINT[PK_operator]PRIMARYKEYCLUSTERED
(
[id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Cards]ADD
CONSTRAINT[FK_Cards_Players]FOREIGNKEY
(
[P_id]
)REFERENCES[dbo].[Players](
[P_id]
)
GO
altertable[dbo].[Cards]nocheckconstraint[FK_Cards_Players]
GO
ALTERTABLE[dbo].[Goals]ADD
CONSTRAINT[FK_Goals_Players]FOREIGNKEY
(
[shotter_id]
)REFERENCES[dbo].[Players](
[P_id]
),
CONSTRAINT[FK_Goals_Players1]FOREIGNKEY
(
[Assist_id]
)REFERENCES[dbo].[Players](
[P_id]
)
GO
altertable[dbo].[Goals]nocheckconstraint[FK_Goals_Players]
GO
altertable[dbo].[Goals]nocheckconstraint[FK_Goals_Players1]
GO
ALTERTABLE[dbo].[Matches]ADD
CONSTRAINT[FK_Matches_TEAMScore]FOREIGNKEY
(
[Host_id]
)REFERENCES[dbo].[TEAMScore](
[T_id]
)NOTFORREPLICATION,
CONSTRAINT[FK_Matches_TEAMScore1]FOREIGNKEY
(
[Guest_id]
)REFERENCES[dbo].[TEAMScore](
[T_id]
)
GO
altertable[dbo].[Matches]nocheckconstraint[FK_Matches_TEAMScore]
GO
altertable[dbo].[Matches]nocheckconstraint[FK_Matches_TEAMScore1]
GO
ALTERTABLE[dbo].[TEAMScore]ADD
CONSTRAINT[FK_TEAMScore_Teams]FOREIGNKEY
(
[T_id]
)REFERENCES[dbo].[Teams](
[T_id]
)
GO
altertable[dbo].[TEAMScore]nocheckconstraint[FK_TEAMScore_Teams]
GO
2.系统功能模块设计图:
四.程序设计实现
1.用户登陆。
在这个模块主要由两个类来实现:
。
这是程序进入的界面,这个程序的入口类调用。
界面如下:
※。
这个类主要设置了登陆界面,并从界面获取用户输入的用户名和密码,并对这些数据进行处理,通过类中的方法进行判断是否是用户以及获得用户的权限。
主要代码实现如下:
quals("")||().equals("")||().equals(""))
{
(this,"请输入完整的信息","错误",
;
return;
}
MainFramek=(MainFrame)();
Stringoperator=();
if(!
(operator,tempPass))
(this,"错误的用户名或密码","错误",;
else{
if(!
(pass2))
(this,"两次输入的新密码不一致","错误",;
else{
(operator,pass1);
();
(this,"密码已成功修改","提示",;
}
●用户管理。
这一功能主要有实现具体功能。
而操作界面以及界面中的数据处理主要由来实现,主要是对输入数据进行检查和接受、判断,并调用相应方法处理。
界面如下:
※增加用户功能。
主要是依靠中的方法addOperator来实现。
具体实现方法前文中已有介绍。
而在此界面中主要是对用户的插入信息进行验证,确认ID未重复,并传递相应参数给addOperator来实现。
相关代码如下:
Stringid=();
quals("")){
(this,"用户名不能为空!
","警告",
;
return;
}
Stringname=();
StringuserT=(String)();
Stringtelephone=();
Stringaddr=();
chartemp[]=();
Stringpass=newString(temp);
StringPIC=();
Stringnote=();
CheckUsercUser=newCheckUser();
booleanuserExist=(id);
if(userExist)
{
(this,"系统中已存在该用户!
","错误",
;
return;
}
quals("")){
(this,"用户名不能为空!
","警告",
;
return;
}
CheckUsercUser=newCheckUser();
etPath();
Connectioncon=null;