足球联赛信息系统设计报告书.docx
《足球联赛信息系统设计报告书.docx》由会员分享,可在线阅读,更多相关《足球联赛信息系统设计报告书.docx(73页珍藏版)》请在冰豆网上搜索。
![足球联赛信息系统设计报告书.docx](https://file1.bdocx.com/fileroot1/2023-4/19/0298ed7c-7b02-4e5f-8012-da9a786717eb/0298ed7c-7b02-4e5f-8012-da9a786717eb1.gif)
足球联赛信息系统设计报告书
足球联赛信息系统设计报告书
概述
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.系统数据流图
用户信息设置基本
3.结构设计
1.数据库结构设计
•系统用户表:
名称
数据类型
作用
id
varchar
用户帐号
name
varchar
用户名称
type
varchar
用户类型
password
varchar
用户密码
tel
varchar
联系电话
addr
varchar
联系地址
PICNo
varchar
身份证号
remark
varchar
备注
•球队信息表
名称
数据类型
作用
Tid
varchar
球队编号
Tname
varchar
球队名称
Chairman
varchar
球队董事长
Tmanager
varchar
球队经理
Coach
varchar
球队主教练
Coachresume
varchar
教练备注
Addr
varchar
球队联系地址
Zip
varchar
邮编
Tel
varchar
联系电话
Fax
varchar
传真
Tremark
varchar
球队备注
•球员信息表
名称
数据类型
作用
P」d
varchar
球员编号
Pname
varchar
球员姓名
T_name
varchar
所属球队
Birthday
datetime
出生日期
Weight
float
体重
High
float
身高
Posi
varchar
场上位置
Nationplayer
varchar
是否现役国脚
Photo
varchar
图片地址
Premark
varchar
球员备注
•进球信息表
名称
数据类型
作用
G」d
int
进球编号
Mtimes
varchar
进球场次
shotterid
varchar
射门球员编号
Assistid
varchar
助攻球员编号
Gtime
varchar
场上时间
•红黄牌信息表
名称
数据类型
作用
C」d
int
r红黄牌编号
M」d
varchar
红黄牌场次
P」d
varchar
领牌球贝编号
YellowRed
varchar
「红、黄牌
Ctime
varchar
出示时间
•比赛信息表
名称
数据类型
作用
M」d
varchar
比赛编号
Hostid
varchar
主队编号
Guestid
varchar
客队编号
Mtimes
varchar
比赛场次
Mdate
datetime
比赛时间
Maddr
varchar
比赛地点
Hostwin
varchar
主队胜负平
Hostgoals
int
主队进球
Guestgoals
int
客队进球
Chiefumpire
varchar
主裁判
Umpire1
varchar
边裁1
Umpire2
varchar
边裁2
•积分表
名称
数据类型
作用
Tid
varchar
球队编号
Tname
varchar
球队名称
Summatch
int
比赛总数
Wins
int
胜场数
Loses
int
负场数
Toofall
int
平场数
Hostwins
int
主场获胜数
Guestwins
int
客场获胜数
Goals
int
总进球数
Losegoals
int
总失球
Score
int
联赛积分
2.E-R图
图2.3进球作为一个实体
场次
日期时间
比赛地点
王裁
主队平
边裁2
』
边裁1
客队编号
主队赢
编号
主队编号
比赛
主队输
L」
f\
主队进球数
客队进球数
Id
图2.4比赛作为一个实体
图2.5红黄牌作为一个实体
图2.6积分榜作为一个实体
•主要数据表关系如下:
Playcra*
?
3irtb4«¥
Vfiight
Hl
?
DE1
—
2Ta.Liarx_pl-E.yejr
?
Tsii-aik
V
T_Iian-
V.45
Tina
(hir耳rjfiriH
Losa^goals
TRAJScore♦
Cards*
¥
7
l»_U
r_u
X4114¥_KaJ
C_1ink
Icitches・
k
rt.id
d
W_tiT.es
W制dir
Chief-aijisrc-■Jirpirci^]iJnpire^
TrnnH♦
•主要数据库SQL脚本如下:
CREATETABLE[dbo].[Cards](
[C」d][int]NOTNULL,
[M」d][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[P」d][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_ASNOT
NULL,
[G_time][varchar](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Matches](
[M」d][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[Host_id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[Guest_id][varchar](20)COLLATEChinese_PRC_CI_ASNOT
NULL,
[M_times][varchar](10)COLLATEChinese_PRC_CI_ASNOT
NULL,
[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」d][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_AS
NULL,
[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]ADDCONSTRAINT[PK_Card]PRIMARYKEY(
[C_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Goals]ADDCONSTRAINT[PK_Goals]PRIMARYKEY(
[G_id]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Matches]ADDCONSTRAINT[PK_Matches]PRIMARYKEY(
[M_id]
)ON[PRIMARY]
GO
CLUSTERED
CLUSTERED
CLUSTERED
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.系统功能模块设计图:
4.程序设计实现
1.用户登陆。
在这个模块主要由两个类来实现:
CheckUser.class,
LoginSystem.class这是程序进入的界面,Main.class这个程序的入口类调用。
界面如下:
探LoginSystem.class。
这个类主要设置了登陆界面,并从界
面获取用户输入的用户名和密码,并对这些数据进行处理,
通过CheckUser.class类中的方法进行判断是否是用户以及获得用户的权限。
主要代码实现如下:
//取得用户输入的用户名
Stringoperator=username.getText();
//取得用户输入的密码
chartemp[]=password.getPassword();
StringtempPass=newString(temp);
//检查用户是否为合法用户
if(cUser.isValidUser(operator,tempPass)==false){
JOptionPane.showMessageDialog(this,"错误的用户名或密码","错误",
JOptionPane.WARNING_MESSAGE);
logincount++;
//如果输入错误三次,自动退出系统
if(logincount>=3)
System.exit
(1);
}
else{
//初始化系统主界面
MainFrameframe=newMainFrame();
〃获取用户类型
StringuserType=cUser.getUserType(operator);
//将主界面置于屏幕中央}
探CheckUser.classo这个类主要圭寸装了对用户表的相关操作,
如查询用户名是否存在(userExist)、修改密码
(updatePassword、增加用户(addOperator)、删除用户
(deleteOperator)、获得用户类型(getUserType)。
各方法
主要代码如下:
♦isValidUser:
Connect