资源描述
《NBA球员管理系统》
《数据库原理》课程设计报告
——NBA球员管理系统设计与实现
学 院: 信息学院
专业班级: 计算机科学与技术1班
组员姓名: 王治铭 2
陈昭儒 2
殷鹏飞 2
指导老师: 李晓莉
完成日期: 2016617
一、 概述
1.1 背景说明
软件名称:NBA球员信息管理系统
用户:球队数据分析师
1.2 开发环境
操作系统 Windows 7
软件配置Visual Basic 6、0 & SQL Server 2014
二、 需求分析
2、1 用户需求
NBA发展至今,整个联盟涵括了三十支球队,每支球队得球员名单上限在常规赛时期可以达到15位,加上不计其数得自由球员,管理并分析这些球员得生涯数据成为了一件棘手得事,NBA球员信息管理系统可以师解决这个问题。
本系统面向得对象为球队数据分析师,对于专业人士,她们不仅有权浏览数据,也可以对数据进行修改、删除,用户共享数据并更新数据。
2、2 主要功能
本系统从用户得需求出发,可实现以下功能:
a) 球员数据浏览
b) 球员数据修改
c) 球员数据删除
2、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图:
球员薪金
隶属球队代号
隶属球队名称
球衣号码
球员年龄
球员代号
球员姓名
球员信息
3、1 球员信息ER图
3、2 球员数据ER图
场均抢断
场均助攻
场均篮板
场均盖帽
球员代号
场均得分
球员数据
球员姓名
3、3 球员表现ER图
最近一场得分
球员表现
球员姓名
球员代号
四、 逻辑结构设计
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
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,
Tname 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 float 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 Add_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窗口
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 If
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(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、Recordset、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、Recordset、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 String
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 = "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 = 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、mandType = 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 = "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 = "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
Private 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
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
Cancel、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
Adodc2、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、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
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 Adodc2、Recordset、BOF = True Then
Adodc2、Recordset、MoveFirst
End If
End Sub
Private Sub Form_Load
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
Cancel、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 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") = Trim(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、Recordset、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 Adodc2、Recordset、BOF = True Then
Adodc2、Recordset、MoveFirst
End If
End Sub
Private Sub Form_Load
Cancel、Enabled = False
End Sub
七、 实验数据实例
修改球员数据。
修改球员表现。
Form1中删除操作。
Form1中添加操作。
Form1中修改操作。
八、 心得
通过这次为期五天得数据库得课程设计实习,本组从中学习到了一个数据库程序得设计得基本步骤,包括需求分析、概念结构设计、逻辑结构设计等,同时加强了关系型数据库管理方面得部分知识。需求分析就是很重要得,只有做好需求分析,后面得工作才会轻松;逻辑结构设计也很关键,需要完善实体所应包含得所有属性,如果这个阶段有纰漏,等到后面修改起来会比较麻烦。
这次课设提供了宝贵得历练,让本组对数据库认知与程序编写方面都得到了提高。
展开阅读全文