1、数据库课程设计NBA篮球管理系统山西大学软件学院数据库系统概论课程设计报告书题 目 NBA数据系统 专 业 软件工程 班 级 姓 名 学 号 指导教师 2017年6月一、选题背景.3二、需求分析. .3 2.1 功能需求.3 2.2 数字字典. 42.2.1 数据项. . .42.2.2 数据结构. 62.2.3 数据流. 6三、概念结构设计.63.1 球员E-R图.73.2 球队E-R图.73.3 赛程E-R图.8四、逻辑结构设计.8五、物理结构设计.85.1 球员数据表.95.2 球队信息表.95.3 赛程信息表.10六、数据库实施. .10七、界面及代码.13八、心得体会.23一、选题背
2、景本学期的课设又开始了,我的想法就是为每个球迷建立一个方便查询NBA相关信息的数据库系统。虽然当今NBA数据系统很强大而且很全面,但这次我就是想继续通过自己的能力以及利用自己学习的知识来做出一个可以利用的软件系统。另外,NBA球员多,球队多,比赛也多。球迷需要一个可以方便查询所有信息的一个系统。所以,针对这个背景,我便定了这个题目。以下就是我的设计思想和过程。二、需求分析2.1 功能需求系统要实现的主要功能有:(1)建立数据库:根据系统功能设计的要求以及功能模块的划分,设计相关数据库。(2)球员数据管理模块:实现NBA球员基本情况的录入、删除等基本操作;对球员基本信息能提供灵活的查询方式。(3
3、)球队信息管理模块:实现NBA球队的录入、删除等基本操作;能方便的查询球队的各项信息。 (4)球队赛程信息管理模块:实现NBA各球队赛程信息的录入、删除等基本操作;能方便查询各球队各赛季的比赛信息。2.2 数据字典通过对NBA联盟赛制赛程以及球迷关注信息的研究分析,我设计出如下的简单的数据项和数据结构:2.2.1 数据项所涉及全部数据项及其解释与类型定义:数据项名数据项含义数据类型长度Season所属赛季varchar10Name球员姓名varchar20Team_Name球队名varchar20Number球员的号码varchar4Position球员的场上位置varchar8Minutes
4、球员的场均上场时间varchar5PTS球员的场均得分varchar8Assist球员的场均助攻varchar8Rebound球员的场均篮板varchar8Steal球员的场均抢断varchar8Block_Shot球员的场均盖帽varchar8Turnover球员的场均失误varchar8Foul球员的场均犯规varchar8FG球员的场均投篮命中率varchar5FT球员的场均罚球命中率varchar5TP球员的场均三分命中率varchar5Zone球队所属分区varchar4Coach球队主教练varchar20Arena球队主场球馆varchar20PPG球队的场均得分varchar1
5、0APG球队的场均助攻varchar10RPG球队的场均篮板varchar10SPG球队的场均抢断varchar10BPG球队的场均盖帽varchar10AFG球队的场均投篮命中率varchar5AFT球队的场均罚球命中率varchar5ATP球队的场均三分命中率varchar5Date_Time比赛日期和时间varchar20Opponent对手varchar20Result比赛结果varchar5Scores比分情况varchar10Site比赛地点varchar202.2.2 数据结构数据结构名数据结构含义组成球员数据表表示球员的各项数据Season, Team_Name, Number
6、, 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, Site2.2.3 数据流数据流名称操作数据流来源数据流去向数据流组成球员数据增删球员数据管理员操作球员数据表同表中相关属性球队信息增
7、删球队信息管理员操作球队信息表同表中相关属性赛程信息增删赛程信息管理员操作赛程信息表同表中相关属性三、概念结构设计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, Coa
8、ch, Arena, PPG, APG, RPG, SPG, BPG, AFG, AFT, ATP)SCHEDULE(Date_Time, Team_Name, Opponent, Result, Scores, Site)五、物理结构设计将逻辑设计阶段设计的关系模型转化为物理数据库。5.1 PLAYER表(球员数据表)5.2 TEAM表(球队信息表)5.3 SCHEDULE表(赛程信息表)六、数据库实施6.1 向数据库输入数据数据的数据只是象征性的输入一些代表性数据。以下是输入数据的结果图,过程中没有发生错误以及约束冲突问题。PLAYER表:(注:上图没有完整截图)TEAM表:(注:上图没有
9、完整截图)SCHEDULE表:(注:上图没有完整截图)6.2 建立数据库(SQL语句)create table PLAYER( 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
10、varchar(8), -场均抢断 Block_Shot varchar(8), -场均盖帽 Turnover varchar(8), -场均失误 Foul varchar(8), -场均犯规 FG varchar(5), -场均投篮命中率 FT varchar(5), -场均罚球命中率 TP varchar(5), -场均三分命中率 primary key(Season, Number, Team_Name)create table TEAM( Team_Name varchar(20) primary key, -球队名 Zone varchar(4), -分区 Coach varchar
11、(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) -场均三分命中率)create table SCHEDULE( Date_Time varchar(20), -日期 Team_Name varchar(20), -当
12、前球队 Opponent varchar(20), -对手 Result varchar(5), -比赛结果 Scores varchar(10), -比分 Site varchar(20), -比赛地点 primary key(Date_Time, Team_Name), foreign key (Team_Name) references TEAM(Team_Name)七、界面及代码以下是其中一些界面的截图以及代码,不是全部。7.1 主界面(菜单界面)主要是给用户及管理员进行导航,详情如下:截图:部分代码:(头部代码省略)namespace WindowsFormsApplication1
13、 public partial class Menu : Form public Menu() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Player Form2 = new Player(); Form2.Show(); private void button2_Click_1(object sender, EventArgs e) Team Form3 = new Team(); Form3.Show(); private void button3_Click(object s
14、ender, EventArgs e) Schedule Form4 = new Schedule(); Form4.Show(); private void button4_Click(object sender, EventArgs e) Login houtai = new Login(); houtai.Show(); private void button5_Click(object sender, EventArgs e) this.Close(); (“声明”按钮定义省略) 7.2 查看球员数据界面选择球队点击“查询”按钮即可查询该球队所有球员信息。截图:(其中一个例子)部分代码
15、:(头部代码省略)namespace WindowsFormsApplication1 public partial class Player : Form public Player() InitializeComponent(); private void button1_Click(object sender, EventArgs e) /创建数据库连接 SqlConnection conn = new SqlConnection(Server=.;database=NBA;Integrated Security=True); try conn.Open(); /打开数据库连接 stri
16、ng sql = select Season as 赛季, Name as 球员, Team_Name as 球队, Number as 号码, Position as 位置, Minutes as 场均上场时间, PTS as 场均得分, Assist as 场均助攻, Rebound as 场均篮板, Steal as 场均抢断, Block_Shot as 场均盖帽, Turnover as 场均失误, Foul 场均犯规, FG 场均投篮命中率, FT as 场均罚球命中率, TP as 场均三分命中率 from PLAYER where Team_Name = 0; /编写SQL语句
17、 sql = string.Format(sql, comboBox1.SelectedItem.ToString(); /填充SQL语句 SqlDataAdapter ada = new SqlDataAdapter(sql, conn); /创建数据适配器对象 DataSet ds = new DataSet(); /创建数据集对象 ada.Fill(ds); /填充数据集 dataGridView1.DataSource = ds.Tables0; /将数据集中的内容与datagridview绑定 catch MessageBox.Show(操作错误!); finally conn.Cl
18、ose(); /关闭数据库连接 7.3 查看球队信息导航界面在主界面上点击“查看球队信息”按钮进入球队信息导航界面。在这个界面中会给出30个球队的按钮,点击其中一个则可查询该球队信息。截图:部分代码:(头部代码省略)namespace WindowsFormsApplication1 public partial class Team : Form public Team() InitializeComponent(); private void button1_Click(object sender, EventArgs e) ATL laoying = new ATL(); laoying
19、.Show(); (这里只列举一个按钮,其余还有29个按钮定义省略)7.4球队信息界面(以芝加哥公牛为例)在球队信息导航界面中点击“芝加哥公牛”进入该界面。自动从数据库中提取该球队数据。且其中文本框内容为只读。截图:部分代码:(头部代码省略)namespace WindowsFormsApplication1 public partial class CHI : Form public CHI() InitializeComponent(); private void CHI_Load(object sender, EventArgs e) textBox1.ReadOnly = true;
20、/设置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; SqlConnection conn = new
21、 SqlConnection(Server=.;database=NBA;Integrated Security=True); conn.Open(); /打开数据库连接 string sql = select Zone from TEAM where Team_Name = 公牛 ; /编写SQL语句 SqlCommand cmd = new SqlCommand(sql, conn);/创建命令对象 textBox1.Text = cmd.ExecuteScalar().ToString(); sql = select Coach from TEAM where Team_Name = 公
22、牛 ; /编写SQL语句 cmd = new SqlCommand(sql, conn); /创建命令对象 textBox2.Text = cmd.ExecuteScalar().ToString(); sql = select Arena from TEAM where Team_Name = 公牛 ; /编写SQL语句 cmd = new SqlCommand(sql, conn); /创建命令对象 textBox3.Text = cmd.ExecuteScalar().ToString(); (这里只列出三个,剩下8个省略) conn.Close(); 7.5 后台登陆以及后台功能选择界
23、面提供登陆以及检查用户名密码。成功进入后即可选择功能。截图:选择功能界面部分代码:namespace WindowsFormsApplication1 public partial class Houtai : Form public Houtai() InitializeComponent(); private void button1_Click(object sender, EventArgs e) AddPlayer AddPlayer = new AddPlayer(); AddPlayer.Show(); private void button2_Click(object send
24、er, EventArgs e) AddTeam AddTeam = new AddTeam(); AddTeam.Show(); (其他四个功能代码省略) 7.6 后台添加功能界面(以添加球员为例)在文本框中输入内容,然后插入到insert语句中,完成插入数据过程。截图:部分代码:namespace WindowsFormsApplication1 public partial class AddPlayer : Form public AddPlayer() InitializeComponent(); private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Server=.;database=NBA;Integrated Security=True); try conn.Open(); /打开数据库连接 string sql = insert into PLAYER(Season, Name, Team_Name, Number, Positio
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1