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

上传人:小飞机 文档编号:1603679 上传时间:2022-12-10 格式:DOC 页数:25 大小:893KB
返回 下载 相关 举报
数据库课程设计NBA篮球管理系统.doc_第1页
第1页 / 共25页
数据库课程设计NBA篮球管理系统.doc_第2页
第2页 / 共25页
数据库课程设计NBA篮球管理系统.doc_第3页
第3页 / 共25页
数据库课程设计NBA篮球管理系统.doc_第4页
第4页 / 共25页
数据库课程设计NBA篮球管理系统.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《数据库课程设计NBA篮球管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计NBA篮球管理系统.doc(25页珍藏版)》请在三一办公上搜索。

1、山西大学软件学院数据库系统概论课程设计报告书题 目 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)球队信息管理模块:实现NB

3、A球队的录入、删除等基本操作;能方便的查询球队的各项信息。 (4)球队赛程信息管理模块:实现NBA各球队赛程信息的录入、删除等基本操作;能方便查询各球队各赛季的比赛信息。2.2 数据字典通过对NBA联盟赛制赛程以及球迷关注信息的研究分析,我设计出如下的简单的数据项和数据结构:2.2.1 数据项所涉及全部数据项及其解释与类型定义:数据项名数据项含义数据类型长度Season所属赛季varchar10Name球员姓名varchar20Team_Name球队名varchar20Number球员的号码varchar4Position球员的场上位置varchar8Minutes球员的场均上场时间varch

4、ar5PTS球员的场均得分varchar8Assist球员的场均助攻varchar8Rebound球员的场均篮板varchar8Steal球员的场均抢断varchar8Block_Shot球员的场均盖帽varchar8Turnover球员的场均失误varchar8Foul球员的场均犯规varchar8FG球员的场均投篮命中率varchar5FT球员的场均罚球命中率varchar5TP球员的场均三分命中率varchar5Zone球队所属分区varchar4Coach球队主教练varchar20Arena球队主场球馆varchar20PPG球队的场均得分varchar10APG球队的场均助攻var

5、char10RPG球队的场均篮板varchar10SPG球队的场均抢断varchar10BPG球队的场均盖帽varchar10AFG球队的场均投篮命中率varchar5AFT球队的场均罚球命中率varchar5ATP球队的场均三分命中率varchar5Date_Time比赛日期和时间varchar20Opponent对手varchar20Result比赛结果varchar5Scores比分情况varchar10Site比赛地点varchar202.2.2 数据结构数据结构名数据结构含义组成球员数据表表示球员的各项数据Season, Team_Name, Number, Position, Mi

6、nutes, 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, Coach, Arena, PPG

8、, 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表:(注:上图没有完整截图)SCHEDULE表

9、:(注:上图没有完整截图)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 varchar(8),-场均抢断Block_Shot varcha

10、r(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(20),-主教练Arena varchar(20),-主场球馆PPG varchar(10),-场均得

11、分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),-当前球队Opponent varchar(20),-对手Result varchar(5),-比赛结果Scores varchar(10),-比分Sit

12、e varchar(20),-比赛地点primary key(Date_Time, Team_Name),foreign key (Team_Name) references TEAM(Team_Name)七、界面及代码以下是其中一些界面的截图以及代码,不是全部。7.1 主界面(菜单界面)主要是给用户及管理员进行导航,详情如下:截图:部分代码:(头部代码省略)namespace WindowsFormsApplication1 public partial class Menu : Form public Menu() InitializeComponent(); private void b

13、utton1_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 sender, EventArgs e) Schedule Form4 = new Schedule(); Form4.Show(); private void butto

14、n4_Click(object sender, EventArgs e) Login houtai = new Login(); houtai.Show(); private void button5_Click(object sender, EventArgs e) this.Close(); (“声明”按钮定义省略) 7.2 查看球员数据界面选择球队点击“查询”按钮即可查询该球队所有球员信息。截图:(其中一个例子)部分代码:(头部代码省略)namespace WindowsFormsApplication1 public partial class Player : Form public

15、 Player() InitializeComponent(); private void button1_Click(object sender, EventArgs e) /创建数据库连接 SqlConnection conn = new SqlConnection(Server=.;database=NBA;Integrated Security=True); try conn.Open(); /打开数据库连接 string sql = select Season as 赛季, Name as 球员, Team_Name as 球队, Number as 号码, Position as

16、位置, 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语句 sql = string.Format(sql, comboBox1.SelectedItem.ToString(); /填充SQL语句 SqlDataAdapter

17、ada = new SqlDataAdapter(sql, conn); /创建数据适配器对象 DataSet ds = new DataSet(); /创建数据集对象 ada.Fill(ds); /填充数据集 dataGridView1.DataSource = ds.Tables0; /将数据集中的内容与datagridview绑定 catch MessageBox.Show(操作错误!); finally conn.Close(); /关闭数据库连接 7.3 查看球队信息导航界面在主界面上点击“查看球队信息”按钮进入球队信息导航界面。在这个界面中会给出30个球队的按钮,点击其中一个则可查

18、询该球队信息。截图:部分代码:(头部代码省略)namespace WindowsFormsApplication1 public partial class Team : Form public Team() InitializeComponent(); private void button1_Click(object sender, EventArgs e) ATL laoying = new ATL(); laoying.Show(); (这里只列举一个按钮,其余还有29个按钮定义省略)7.4球队信息界面(以芝加哥公牛为例)在球队信息导航界面中点击“芝加哥公牛”进入该界面。自动从数据库中

19、提取该球队数据。且其中文本框内容为只读。截图:部分代码:(头部代码省略)namespace WindowsFormsApplication1 public partial class CHI : Form public CHI() InitializeComponent(); private void CHI_Load(object sender, EventArgs e) textBox1.ReadOnly = true; /设置textBox为只读 textBox2.ReadOnly = true; textBox3.ReadOnly = true; textBox4.ReadOnly =

20、 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 SqlConnection(Server=.;database=NBA;Integrated Security=True); conn.Open(); /打开数据库连接

21、 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 = 公牛 ; /编写SQL语句 cmd = new SqlCommand(sql, conn); /创建命令对象 textBox2.Text = cmd.ExecuteScal

22、ar().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 后台登陆以及后台功能选择界面提供登陆以及检查用户名密码。成功进入后即可选择功能。截图:选择功能界面部分代码:namespace WindowsFormsApplication1 public pa

23、rtial 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 sender, EventArgs e) AddTeam AddTeam = new AddTeam(); AddTeam.Show(); (其他四个功能代码省略) 7.6 后台

24、添加功能界面(以添加球员为例)在文本框中输入内容,然后插入到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 S

25、ecurity=True); try conn.Open(); /打开数据库连接 string sql = insert into PLAYER(Season, Name, Team_Name, Number, Position, Minutes, PTS, Assist, Rebound, Steal, Block_Shot, Turnover, Foul, FG, FT, TP) values(+textBox1.Text+, +textBox2.Text+, +textBox3.Text+, +textBox4.Text+, +textBox5.Text+, +textBox6.Text

26、+, +textBox7.Text+, +textBox8.Text+, +textBox9.Text+, +textBox10.Text+, +textBox11.Text+, +textBox12.Text+, +textBox13.Text+, +textBox14.Text+, +textBox15.Text+, +textBox16.Text+) ; /编写SQL语句 SqlCommand cmd = new SqlCommand(sql, conn); /创建命令对象 int returnvalue = cmd.ExecuteNonQuery();/执行SQL语句 if (retu

27、rnvalue != -1) /判断是否添加成功 MessageBox.Show(添加成功!); catch MessageBox.Show(操作错误!); finally conn.Close(); /关闭数据库连接 7.7 后台删除功能界面(以删除球队信息为例)先输入球队名(主键)进行查询,然后选中某行信息再点击删除。截图:部分代码:namespace WindowsFormsApplication1 public partial class DeleteTeam : Form public DeleteTeam() InitializeComponent(); private void

28、button2_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Server=.;database=NBA;Integrated Security=True); try conn.Open(); /打开数据库连接 string sql = select Team_Name as 球队名, Zone as 分区, Coach as 主教练, Arena as 球馆, PPG as 场均得分, APG as 场均助攻, RPG as 场均篮板, SPG as 场均抢断, BPG as 场均盖帽, AF

29、G as 场均投篮命中率, AFT as 场均罚球命中率, ATP as 场均三分命中率 from TEAM where Team_Name = 0 ; /编写SQL语句 sql = string.Format(sql, textBox1.Text); SqlDataAdapter ada = new SqlDataAdapter(sql, conn); /创建数据适配器对象 DataSet ds = new DataSet(); /创建数据集对象 ada.Fill(ds); /填充数据集 dataGridView1.DataSource = ds.Tables0; /将数据集中的内容与dat

30、agridview绑定 catch MessageBox.Show(操作错误!); finally conn.Close(); /关闭数据库连接 private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Server=.;database=NBA;Integrated Security=True); try /获取选中行中的主键值 int team_name = int.Parse(dataGridView1.SelectedRows0.Cells0.Value.T

31、oString(); conn.Open(); /打开数据库连接 string sql = delete from TEAM where Team_Name = + team_name + ; /编写SQL语句 SqlCommand cmd = new SqlCommand(sql, conn);/创建命令对象 int returnvalue = cmd.ExecuteNonQuery();/执行SQL语句 if (returnvalue != -1) /判断是否添加成功 MessageBox.Show(删除成功!); catch MessageBox.Show(操作错误!); finally conn.Close(); /关闭数据库连接 八、心得体会感觉这次做的课设内容是自己成就感最大的一回,不但把界面做出来了,而且可以连接后台数据库并实现各项功能。这次课设经历也是我自己认为收获最大的一次,体会到未来工作时做项目的部分流程。再对我的程序进行一下分析吧,我感觉不足之处就是我没有做出修改功能update,个人感觉是这个系统的短板

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号