数据库课程设计NBA篮球管理系统.docx

上传人:b****7 文档编号:25494648 上传时间:2023-06-09 格式:DOCX 页数:27 大小:883.08KB
下载 相关 举报
数据库课程设计NBA篮球管理系统.docx_第1页
第1页 / 共27页
数据库课程设计NBA篮球管理系统.docx_第2页
第2页 / 共27页
数据库课程设计NBA篮球管理系统.docx_第3页
第3页 / 共27页
数据库课程设计NBA篮球管理系统.docx_第4页
第4页 / 共27页
数据库课程设计NBA篮球管理系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据库课程设计NBA篮球管理系统.docx

《数据库课程设计NBA篮球管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计NBA篮球管理系统.docx(27页珍藏版)》请在冰豆网上搜索。

数据库课程设计NBA篮球管理系统.docx

数据库课程设计NBA篮球管理系统

山西大学软件学院

数据库系统概论课程设计报告书

题目NBA数据系统

专业软件工程

班级

姓名

学号

指导教师

2017年6月

一、选题背景....................................................................3

二、需求分析....................................................................3

2.1功能需求................................................................3

2.2数字字典...............................................................4

2.2.1数据项...............................................................4

2.2.2数据结构............................................................6

2.2.3数据流...............................................................6

三、概念结构设计..............................................................6

3.1球员E-R图............................................................7

3.2球队E-R图............................................................7

3.3赛程E-R图............................................................8

四、逻辑结构设计..............................................................8

五、物理结构设计.............................................................8

5.1球员数据表............................................................9

5.2球队信息表............................................................9

5.3赛程信息表.........................................................10

六、数据库实施..............................................................10

七、界面及代码...............................................................13

八、心得体会..................................................................23

一、选题背景

本学期的课设又开始了,我的想法就是为每个球迷建立一个方便查询NBA相关信息的数据库系统。

虽然当今NBA数据系统很强大而且很全面,但这次我就是想继续通过自己的能力以及利用自己学习的知识来做出一个可以利用的软件系统。

另外,NBA球员多,球队多,比赛也多。

球迷需要一个可以方便查询所有信息的一个系统。

所以,针对这个背景,我便定了这个题目。

以下就是我的设计思想和过程。

二、需求分析

2.1功能需求

系统要实现的主要功能有:

(1)建立数据库:

根据系统功能设计的要求以及功能模块的划分,设计相关数据库。

(2)球员数据管理模块:

实现NBA球员基本情况的录入、删除等基本操作;对球员基本信息能提供灵活的查询方式。

(3)球队信息管理模块:

实现NBA球队的录入、删除等基本操作;能方便的查询球队的各项信息。

(4)球队赛程信息管理模块:

实现NBA各球队赛程信息的录入、删除等基本操作;能方便查询各球队各赛季的比赛信息。

2.2数据字典

通过对NBA联盟赛制赛程以及球迷关注信息的研究分析,我设计出如下的简单的数据项和数据结构:

2.2.1数据项

所涉及全部数据项及其解释与类型定义:

数据项名

数据项含义

数据类型

长度

Season

所属赛季

varchar

10

Name

球员姓名

varchar

20

Team_Name

球队名

varchar

20

Number

球员的号码

varchar

4

Position

球员的场上位置

varchar

8

Minutes

球员的场均上场时间

varchar

5

PTS

球员的场均得分

varchar

8

Assist

球员的场均助攻

varchar

8

Rebound

球员的场均篮板

varchar

8

Steal

球员的场均抢断

varchar

8

Block_Shot

球员的场均盖帽

varchar

8

Turnover

球员的场均失误

varchar

8

Foul

球员的场均犯规

varchar

8

FG

球员的场均投篮命中率

varchar

5

FT

球员的场均罚球命中率

varchar

5

TP

球员的场均三分命中率

varchar

5

Zone

球队所属分区

varchar

4

Coach

球队主教练

varchar

20

Arena

球队主场球馆

varchar

20

PPG

球队的场均得分

varchar

10

APG

球队的场均助攻

varchar

10

RPG

球队的场均篮板

varchar

10

SPG

球队的场均抢断

varchar

10

BPG

球队的场均盖帽

varchar

10

AFG

球队的场均投篮命中率

varchar

5

AFT

球队的场均罚球命中率

varchar

5

ATP

球队的场均三分命中率

varchar

5

Date_Time

比赛日期和时间

varchar

20

Opponent

对手

varchar

20

Result

比赛结果

varchar

5

Scores

比分情况

varchar

10

Site

比赛地点

varchar

20

2.2.2数据结构

数据结构名

数据结构含义

组成

球员数据表

表示球员的各项数据

Season,Team_Name,Number,Position,Minutes,PTS,Assist,Rebound,Steal,Block_Shot,Foul,FG,FT,TP

球队信息表

表示球队的各项信息

Team_Name,Zone,Coach,Arena,PPG,APG,RPG,SPG,BPG,AFG,AFT,ATP

赛程信息表

表示球队之间的赛程安排以及部分比赛结果

Date_Time,Team_Name,Opponent,Result,Scores,Site

2.2.3数据流

数据流名称

操作

数据流来源

数据流去向

数据流组成

球员数据

增删球员数据

管理员操作

球员数据表

同表中相关属性

球队信息

增删球队信息

管理员操作

球队信息表

同表中相关属性

赛程信息

增删赛程信息

管理员操作

赛程信息表

同表中相关属性

三、概念结构设计

3.1球员数据E-R模型

3.2球队信息E-R模型

3.3赛程信息E-R模型

四、逻辑结构设计

根据概念结构设计阶段的E-R模型,现按规则将其转换为以下3个关系模式:

(表名和属性名均用英文)

①PLAYER(Season,Season,Name,Team_Name,Number,Position,Minutes,PTS,Assist,Rebound,Steal,Block_Shot,Turnover,Foul,FG,FT,TP)

②TEAM(Zone,Coach,Arena,PPG,APG,RPG,SPG,BPG,AFG,AFT,ATP)

③SCHEDULE(Date_Time,Team_Name,Opponent,Result,Scores,Site)

五、物理结构设计

将逻辑设计阶段设计的关系模型转化为物理数据库。

5.1PLAYER表(球员数据表)

5.2TEAM表(球队信息表)

5.3SCHEDULE表(赛程信息表)

六、数据库实施

6.1向数据库输入数据

数据的数据只是象征性的输入一些代表性数据。

以下是输入数据的结果图,过程中没有发生错误以及约束冲突问题。

PLAYER表:

(注:

上图没有完整截图)

TEAM表:

(注:

上图没有完整截图)

SCHEDULE表:

(注:

上图没有完整截图)

6.2建立数据库(SQL语句)

createtablePLAYER

Seasonvarchar(10),--赛季

Namevarchar(20),--球员姓名

Team_Namevarchar(20),--所在球队

Numbervarchar(4),--球员号码

Positionvarchar(8),--场上位置

Minutesvarchar(5),--场均上场时间

PTSvarchar(8),--场均得分

Assistvarchar(8),--场均助攻

Reboundvarchar(8),--场均篮板

Stealvarchar(8),--场均抢断

Block_Shotvarchar(8),--场均盖帽

Turnovervarchar(8),--场均失误

Foulvarchar(8),--场均犯规

FGvarchar(5),--场均投篮命中率

FTvarchar(5),--场均罚球命中率

TPvarchar(5),--场均三分命中率

primarykey(Season,Number,Team_Name)

createtableTEAM

Team_Namevarchar(20)primarykey,--球队名

Zonevarchar(4),--分区

Coachvarchar(20),--主教练

Arenavarchar(20),--主场球馆

PPGvarchar(10),--场均得分

APGvarchar(10),--场均助攻

RPGvarchar(10),--场均篮板

SPGvarchar(10),--场均抢断

BPGvarchar(10),--场均盖帽

AFGvarchar(5),--场均投篮命中率

AFTvarchar(5),--场均罚球命中率

ATPvarchar(5)--场均三分命中率

createtableSCHEDULE

Date_Timevarchar(20),--日期

Team_Namevarchar(20),--当前球队

Opponentvarchar(20),--对手

Resultvarchar(5),--比赛结果

Scoresvarchar(10),--比分

Sitevarchar(20),--比赛地点

primarykey(Date_Time,Team_Name),

foreignkey(Team_Name)referencesTEAM(Team_Name)

七、界面及代码

以下是其中一些界面的截图以及代码,不是全部。

7.1主界面(菜单界面)

主要是给用户及管理员进行导航,详情如下:

截图:

部分代码:

(头部代码省略)

namespaceWindowsFormsApplication1

{

publicpartialclassMenu:

Form

{

publicMenu()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

PlayerForm2=newPlayer();

Form2.Show();

}

privatevoidbutton2_Click_1(objectsender,EventArgse)

{

TeamForm3=newTeam();

Form3.Show();

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

ScheduleForm4=newSchedule();

Form4.Show();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

Loginhoutai=newLogin();

houtai.Show();

}

privatevoidbutton5_Click(objectsender,EventArgse)

{

this.Close();

}

(“声明”按钮定义省略)

}

}

}

7.2查看球员数据界面

选择球队点击“查询”按钮即可查询该球队所有球员信息。

截图:

(其中一个例子)

部分代码:

(头部代码省略)

namespaceWindowsFormsApplication1

{

publicpartialclassPlayer:

Form

{

publicPlayer()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

//创建数据库连接

SqlConnectionconn=newSqlConnection(@"Server=.;database=NBA;IntegratedSecurity=True");

try

{

conn.Open();//打开数据库连接

stringsql="selectSeasonas'赛季',Nameas'球员',Team_Nameas'球队',Numberas'号码',Positionas'位置',Minutesas'场均上场时间',PTSas'场均得分',Assistas'场均助攻',Reboundas'场均篮板',Stealas'场均抢断',Block_Shotas'场均盖帽',Turnoveras'场均失误',Foul'场均犯规',FG'场均投篮命中率',FTas'场均罚球命中率',TPas'场均三分命中率'fromPLAYERwhereTeam_Name='{0}'";//编写SQL语句

sql=string.Format(sql,comboBox1.SelectedItem.ToString());//填充SQL语句

SqlDataAdapterada=newSqlDataAdapter(sql,conn);//创建数据适配器对象

DataSetds=newDataSet();//创建数据集对象

ada.Fill(ds);//填充数据集

dataGridView1.DataSource=ds.Tables[0];//将数据集中的内容与datagridview绑定

}

catch

{

MessageBox.Show("操作错误!

");

}

finally

{

conn.Close();//关闭数据库连接

}

}

}

}

7.3查看球队信息导航界面

在主界面上点击“查看球队信息”按钮进入球队信息导航界面。

在这个界面中会给出30个球队的按钮,点击其中一个则可查询该球队信息。

截图:

部分代码:

(头部代码省略)

namespaceWindowsFormsApplication1

{

publicpartialclassTeam:

Form

{

publicTeam()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

ATLlaoying=newATL();

laoying.Show();

}

(这里只列举一个按钮,其余还有29个按钮定义省略)

7.4球队信息界面(以芝加哥公牛为例)

在球队信息导航界面中点击“芝加哥公牛”进入该界面。

自动从数据库中提取该球队数据。

且其中文本框内容为只读。

截图:

部分代码:

(头部代码省略)

namespaceWindowsFormsApplication1

{

publicpartialclassCHI:

Form

{

publicCHI()

{

InitializeComponent();

}

privatevoidCHI_Load(objectsender,EventArgse)

{

textBox1.ReadOnly=true;//设置textBox为只读

textBox2.ReadOnly=true;

textBox3.ReadOnly=true;

textBox4.ReadOnly=true;

textBox5.ReadOnly=true;

textBox6.ReadOnly=true;

textBox7.ReadOnly=true;

textBox8.ReadOnly=true;

textBox9.ReadOnly=true;

textBox10.ReadOnly=true;

textBox11.ReadOnly=true;

SqlConnectionconn=newSqlConnection(@"Server=.;database=NBA;IntegratedSecurity=True");

conn.Open();//打开数据库连接

stringsql="selectZonefromTEAMwhereTeam_Name='公牛'";//编写SQL语句

SqlCommandcmd=newSqlCommand(sql,conn);//创建命令对象

textBox1.Text=cmd.ExecuteScalar().ToString();

sql="selectCoachfromTEAMwhereTeam_Name='公牛'";//编写SQL语句

cmd=newSqlCommand(sql,conn);//创建命令对象

textBox2.Text=cmd.ExecuteScalar().ToString();

sql="selectArenafromTEAMwhereTeam_Name='公牛'";//编写SQL语句

cmd=newSqlCommand(sql,conn);//创建命令对象

textBox3.Text=cmd.ExecuteScalar().ToString();

(这里只列出三个,剩下8个省略)

conn.Close();

}

}

}

7.5后台登陆以及后台功能选择界面

提供登陆以及检查用户名密码。

成功进入后即可选择功能。

截图:

选择功能界面部分代码:

namespaceWindowsFormsApplication1

{

publicpartialclassHoutai:

Form

{

publicHoutai()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

AddPlayerAddPlayer=newAddPlayer();

AddPlayer.Show();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

AddTeamAddTeam=newAddTeam();

AddTeam.Show();

}

(其他四个功能代码省略)

}

}

}

7.6后台添加功能界面(以添加球员为例)

在文本框中输入内容,然后插入到insert语句中,完成插入数据过程。

截图:

部分代码:

namespaceWindowsFormsApplication1

{

publicpartialclassAddPlayer:

Form

{

publicAddPlayer()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

SqlConnectionconn=newSqlConnection(@"Server=.;database=NBA;IntegratedSecurity=True");

try

{

conn.Open();//打开数据库连接

stringsql="insertintoPLAYER(Season,Name,Team_Name,Number,Positio

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1