1、《NBA球员管理系统》 《数据库原理》课程设计报告 ——NBA球员管理系统设计与实现 学 院: 信息学院 专业班级: 计算机科学与技术1班 组员姓名: 王治铭 2 陈昭儒 2 殷鹏飞 2 指导老师: 李晓莉 完成日期: 2016617 一、 概述 1.1 背景说明 软件名称:NBA球员信息管理系统 用户:球队数据分析师 1.2 开发环境 操作系统 Windows 7 软件配置Visual Basic 6
2、0 & SQL Server 2014 二、 需求分析 2、1 用户需求 NBA发展至今,整个联盟涵括了三十支球队,每支球队得球员名单上限在常规赛时期可以达到15位,加上不计其数得自由球员,管理并分析这些球员得生涯数据成为了一件棘手得事,NBA球员信息管理系统可以师解决这个问题。 本系统面向得对象为球队数据分析师,对于专业人士,她们不仅有权浏览数据,也可以对数据进行修改、删除,用户共享数据并更新数据。 2、2 主要功能 本系统从用户得需求出发,可实现以下功能: a) 球员数据浏览 b) 球员数据修改 c) 球员数据删除 2、3 数据字典 名称 数据类型 字段描述
3、 char char 球员姓名 Prage smallint 球员年龄 Pno smallint 球衣号码 PID char 球员代号 Pcapital money 球员薪金 Tname char 隶属球队名称 TID char 隶属球队代号 ppg float 场均得分 rpg float 场均篮板 apg float 场均助攻 spg float 场均抢断 bpg float 场均盖帽 Pbe smallint 最近一场得分 三、 数据库概念结构设计 根据需求分析,可知本系统有以下ER图: 球员薪金 隶属
4、球队代号 隶属球队名称 球衣号码 球员年龄 球员代号 球员姓名 球员信息 3、1 球员信息ER图 3、2 球员数据ER图 场均抢断 场均助攻 场均篮板 场均盖帽 球员代号 场均得分 球员数据 球员姓名 3、3 球员表现ER图 最近一场得分 球员表现 球员姓名 球员代号 四
5、 逻辑结构设计 4、1球员信息表 列名 NULL 约束 PID NOT NULL primary key Pname NOT NULL Pcapital NOT NULL Prage NOT NULL Pno NOT NULL Tname NOT NULL TID NOT NULL 4、2球员数据表 列名 NULL 约束 PID NOT NULL primary key Pname NOT NULL ppg NOT NULL rpg NOT NULL apg NOT NULL spg
6、 NOT NULL bpg NOT NULL 4、3 球员表现表 列名 NULL 约束 PID NOT NULL primary key Pname NOT NULL Pbe NOT NULL 五、 创建数据库及其对象 5、1 建表 5、1、1 球员信息表 create table player( PID char(10) NOT NULL, Pname char(25) NOT NULL, Pcapital money NOT NULL, Prage smallint NOT NULL, Tna
7、me char(30) NOT NULL, Pno smallint NOT NULL, TID char(15) NOT NULL, primary key (PID,Pname) ) 5、1、2 球员数据表 create table playerData ( PID char(10) NOT NULL, Pname char(25) NOT NULL, ppg float NOT NULL, rpg float NOT NULL, apg f
8、loat NOT NULL, spg float NOT NULL, bpg float NOT NULL, primary key (PID,Pname) ) 5、1、3 球员表现表 create table behave( PID char(10) NOT NULL, Pbe smallint NOT NULL, Pname char(25) NOT NULL primary key (PID) ) 六、 基于VB得UI设计 6、1 Form1窗口 Private Sub A
9、dd_Click Adodc1、Recordset、AddNew Add、Enabled = False Del、Enabled = False Edit、Enabled = True Cancel、Enabled = True End Sub Private Sub Cancel_Click Adodc1、Recordset、CancelUpdate Add、Enabled = True Del、Enabled = True Cancel、Enabled = False End Sub Private Sub mand1_Click//打开form2窗口
10、 Form2、Show End Sub Private Sub Del_Click Dim res As Integer res = MsgBox("确实要删除此行吗?", vbExclamation + vbYesNo + vbDefaultButton2) If res = vbYes Then Adodc1、Recordset、Delete Adodc1、Recordset、MoveNext If Adodc1、Recordset、EOF = True Then Adodc1、Recordset、MoveLast End If End I
11、f End Sub Private Sub Edit_Click Adodc1、Recordset、Fields("Pno") = Trim(TextPno、Text) Adodc1、Recordset、Fields("Pname") = Trim(TextPname、Text) Adodc1、Recordset、Fields("Prage") = Trim(TextPrage、Text) Adodc1、Recordset、Fields("Pcapital") = Trim(TextPcpt、Text) Adodc1、Recordset、Fields("PID") = Trim(
12、TextPID、Text) Adodc1、Recordset、Fields("TID") = Trim(TextTID、Text) Adodc1、Recordset、Fields("Tname") = Trim(TextTname、Text) Adodc1、Recordset、Update Add、Enabled = True Del、Enabled = True Cancel、Enabled = False End Sub Private Sub Exit_Click End End Sub Private Sub First_Click Adodc1、Recor
13、dset、MoveFirst End Sub Private Sub Last_Click Adodc1、Recordset、MoveLast End Sub Private Sub Next_Click Adodc1、Recordset、MoveNext If Adodc1、Recordset、EOF = True Then Adodc1、Recordset、MoveLast End If End Sub Private Sub Previous_Click Adodc1、Recordset、MovePrevious If Adodc1、Records
14、et、BOF = True Then Adodc1、Recordset、MoveFirst End If End Sub Private Sub Print_Click//打开apg窗口 apg、Show End Sub Private Sub Form_Load Cancel、Enabled = False bo1、AddItem "球员信息" bo1、AddItem "球员数据" bo1、AddItem "球员表现" bo1、AddItem "球员表现对比" Dim strPID As String Dim strSelect As S
15、tring strPID = Trim(TextPID、Text) strSelect = "select * from player" Adodc1、mandType = adCmdText Adodc1、RecordSource = strSelect Adodc1、Refresh Set DtgCond、DataSource = Adodc1 Call InitGird Dim strPID1 As String Dim strSelect1 As String strPID1 = Trim(TextPID、Text) strSelect1 =
16、 "select * from playerData" Adodc2、mandType = adCmdText Adodc2、RecordSource = strSelect1 Adodc2、Refresh Set DtgCond1、DataSource = Adodc2 Call InitGird1 Dim strPID2 As String Dim strSelect2 As String strPID2 = Trim(TextPID、Text) strSelect2 = "select * from behave" Adodc3、mandType
17、 adCmdText Adodc3、RecordSource = strSelect2 Adodc3、Refresh Set DtgCond2、DataSource = Adodc3 Call InitGird2 Dim strPID3 As String Dim strSelect3 As String strPID3 = Trim(TextPID、Text) strSelect3 = "select * from playerData join behave on playerData、PID = behave、PID " Adodc4、mandTyp
18、e = adCmdText Adodc4、RecordSource = strSelect3 Adodc4、Refresh Set DtgCond3、DataSource = Adodc4 End Sub Private Sub InitGird With DtgCond 、Columns(0)、Caption = "ID" 、Columns(1)、Caption = "Name" 、Columns(2)、Caption = "Capital" 、Columns(3)、Caption = "Age" 、Columns(4)、Caption =
19、 "Team" 、Columns(5)、Caption = "No" 、Columns(6)、Caption = "Team ID" 、Columns(0)、Width = 1000 、Columns(1)、Width = 1000 、Columns(2)、Width = 1000 、Columns(3)、Width = 1000 End With End Sub Private Sub InitGird1 With DtgCond1 、Columns(0)、Caption = "ID" 、Columns(1)、Caption =
20、 "Name" 、Columns(2)、Caption = "ppg" 、Columns(3)、Caption = "rpg" 、Columns(4)、Caption = "apg" 、Columns(5)、Caption = "spg" 、Columns(6)、Caption = "bpg" 、Columns(0)、Width = 1000 、Columns(1)、Width = 1000 、Columns(2)、Width = 1000 、Columns(3)、Width = 1000 End With End Sub Pri
21、vate Sub InitGird2 With DtgCond2 、Columns(0)、Caption = "ID" 、Columns(1)、Caption = "pbe" 、Columns(2)、Caption = "Name" 、Columns(0)、Width = 1000 、Columns(1)、Width = 1000 、Columns(2)、Width = 1000 End With End Sub Private Sub bo1_Click If bo1、Text = "球员信息" Then Frame1、ZOrder 0
22、 ElseIf bo1、Text = "球员数据" Then Frame2、ZOrder 0 ElseIf bo1、Text = "球员表现" Then DtgCond2、ZOrder 0 ElseIf bo1、Text = "球员表现对比" Then DtgCond3、ZOrder 0 End If End Sub 6、2 Form2窗口 Private Sub Add_Click Adodc2、Recordset、AddNew Add、Enabled = False Del、Enabled = False Edit、Enabled = True Ca
23、ncel、Enabled = True End Sub Private Sub Cancel_Click Adodc2、Recordset、CancelUpdate Add、Enabled = True Del、Enabled = True Cancel、Enabled = False End Sub Private Sub Del_Click Dim res As Integer res = MsgBox("确实要删除此行吗?", vbExclamation + vbYesNo + vbDefaultButton2) If res = vbYes Then A
24、dodc2、Recordset、Delete Adodc2、Recordset、MoveNext If Adodc2、Recordset、EOF = True Then Adodc2、Recordset、MoveLast End If End If End Sub Private Sub Edit_Click Adodc2、Recordset、Fields("Pbe") = Trim(TextPbe、Text) Adodc2、Recordset、Fields("Pname") = Trim(TextPname、Text) Adodc2、Recordset
25、Fields("PID") = Trim(TextPID、Text) Adodc2、Recordset、Update Add、Enabled = True Del、Enabled = True Cancel、Enabled = False End Sub Private Sub Exit_Click End End Sub Private Sub First_Click Adodc2、Recordset、MoveFirst End Sub Private Sub Last_Click Adodc2、Recordset、MoveLast End Sub Pri
26、vate Sub Next_Click Adodc2、Recordset、MoveNext If Adodc2、Recordset、EOF = True Then Adodc2、Recordset、MoveLast End If End Sub Private Sub Previous_Click Adodc2、Recordset、MovePrevious If Adodc2、Recordset、BOF = True Then Adodc2、Recordset、MoveFirst End If End Sub Private Sub Form_Lo
27、ad Cancel、Enabled = False End Sub 6、3 apg窗口 Private Sub Add_Click Adodc2、Recordset、AddNew Add、Enabled = False Del、Enabled = False Edit、Enabled = True Cancel、Enabled = True End Sub Private Sub Cancel_Click Adodc2、Recordset、CancelUpdate Add、Enabled = True Del、Enabled = True Canc
28、el、Enabled = False End Sub Private Sub Del_Click Dim res As Integer res = MsgBox("确实要删除此行吗?", vbExclamation + vbYesNo + vbDefaultButton2) If res = vbYes Then Adodc2、Recordset、Delete Adodc2、Recordset、MoveNext If Adodc2、Recordset、EOF = True Then Adodc2、Recordset、MoveLast End
29、 If End If End Sub Private Sub Edit_Click Adodc2、Recordset、Fields("ppg") = Trim(Textppg、Text) Adodc2、Recordset、Fields("Pname") = Trim(TextPname、Text) Adodc2、Recordset、Fields("rpg") = Trim(Textrpg、Text) Adodc2、Recordset、Fields("apg") = Trim(Textapg、Text) Adodc2、Recordset、Fields("PID") = Tr
30、im(TextPID、Text) Adodc2、Recordset、Fields("bpg") = Trim(Textbpg、Text) Adodc2、Recordset、Fields("spg") = Trim(Textspg、Text) Adodc2、Recordset、Update Add、Enabled = True Del、Enabled = True Cancel、Enabled = False End Sub Private Sub Exit_Click End End Sub Private Sub First_Click Adodc2、Re
31、cordset、MoveFirst End Sub Private Sub Last_Click Adodc2、Recordset、MoveLast End Sub Private Sub Next_Click Adodc2、Recordset、MoveNext If Adodc2、Recordset、EOF = True Then Adodc2、Recordset、MoveLast End If End Sub Private Sub Previous_Click Adodc2、Recordset、MovePrevious If Adodc
32、2、Recordset、BOF = True Then Adodc2、Recordset、MoveFirst End If End Sub Private Sub Form_Load Cancel、Enabled = False End Sub 七、 实验数据实例 修改球员数据。 修改球员表现。 Form1中删除操作。 Form1中添加操作。 Form1中修改操作。 八、 心得 通过这次为期五天得数据库得课程设计实习,本组从中学习到了一个数据库程序得设计得基本步骤,包括需求分析、概念结构设计、逻辑结构设计等,同时加强了关系型数据库管理方面得部分知识。需求分析就是很重要得,只有做好需求分析,后面得工作才会轻松;逻辑结构设计也很关键,需要完善实体所应包含得所有属性,如果这个阶段有纰漏,等到后面修改起来会比较麻烦。 这次课设提供了宝贵得历练,让本组对数据库认知与程序编写方面都得到了提高。






