运动比赛信息管理数据库系统
目录
运动比赛信息管理数据库系统
我在20个选题中选择第18个选题“运动比赛信息管理”开发数据库系统。
规范运动比赛流程。简化运动比赛管理过程,使得运动比赛信息管理电子化和及时化;提高比赛信息处理的速度和准确度,能够准确、及时和有效的查询和修改运动进程相关信息。
项目管理员、团队管理员、运动员、系统管理员
运动比赛项目信息、运动比赛项目信息、学院团队信息、运动员信息、比赛成绩信息
用户可以选择不同的身份登录(系统管理员、团队管理员、项目管理员、运动员)。运动员报名参赛和成绩查询。团队管理员进行团队管理、运动员管理和运动成绩查询。项目管理员管理运动比赛信息和参赛管理。系统管理员对系统进行用户管理和系统维护。
系统功能模板主要有比赛信息管理、团队管理、参赛管理、运动成绩管理和系统管理等。
在校田径运动会中设置了各类比赛。每一比赛类别有类别编号、类别名称和主管等属性,每一比赛类别包含很多比赛项目,每一比赛项目有项目编号、项目名称、比赛时间和级别等属性。各个学院团队有团编号、团名称、领队等属性,每个学院团队有多名运动员组成,运动员有编号,姓名,年龄,性别等属性。每一名运动员可以参加多个比赛项目,每一比赛项目有多名运动员参加,运动员参加比赛有成绩属性。
比赛类别与比赛项目之间是一对多联系(1:n)
学院团队与运动员之间是一对多联系(1:n)
比赛项目与运动员之间是多对多联系(m:n)
实体:比赛类别、比赛项目、学院团队、运动员
比赛类别(类别编号、类别名称、主管)
比赛项目(项目编号,项目名称,比赛时间,级别,类别编号)
学院团队(团编号,团名称,领队)
运动员(运动员编号,姓名,年龄,性别,团编号)
参加(项目编号,运动员编号,成绩)
Compcate(比赛类别)、compgame(比赛管理)、schoolteam(学院团队)、sportsman(运动员)、partin(参加)
在数据库sportsgame中创建一个名为selectscore的存储过程,查询所有运动成绩名次在八名以内的运动员的编号、姓名、运动项目和成绩,并按成绩降序排列。
USE [sportsgame]
GO
Create PROCEDURE selectscore1
AS
SELECT a.pid, a.pname, b.gname, c.achive
FROM sportsman a, Compgame b, partinPerson c
WHERE a.pid=c.pid AND b.gid =c.gid AND c.achive<8
ORDER BY c.achive DESC
基于sportsman 表创建一个INSERT和UPDATE 触发器tr_CheckStID,如果输入的运动员编号pid的第三位未出现在schoolteam表的tid中,则不允许插入或更新记录,并显示相应提示“无此学院,不能输入这样的运动员编号”。写创建语句:
CREATE TRIGGER tr_CheckStID
ON sportsman
FOR INSERT
AS
BEGIN
DECLARE @gid VARCHAR(3)
SELECT @gid=tid FROM INSERTED
IF NOT EXISTS (SELECT * FROM sportsman WHERE tid =@gid)
BEGIN
PRINT '无此学院,不能输入这样的学号'
ROLLBACK TRANSACTION
END
END


文件菜单,创建工程项目。创建登录窗体FormLogin如下:

项目->添加数据源,依次下一步设置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="ConsoleApp4.My.MySettings.sportsgameConnectionString"
connectionString="Data Source=DESKTOP-J5U71PU;Initial Catalog=sportsgame;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
当操作者输入了用户名、密码和用户类型时,系统就打开sportsgame数据库中的userinfo用户信息表进行识别。若用户名、密码和用户类型正确,操作者就可以登录到运动比赛信息管理系统中,同时系统根据角色权限的类别授予权限范围。若选择“系统管理员”身份则可操作整个系统;若选择普通用户登录则只能对系统中的相应权限操作

Public Class Form1
Private results As String
Private user_name As String
Private pass_word As String
Private user_type As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Label1.Text = "111"
user_name = TextBox1.Text
pass_word = TextBox2.Text
user_type = ComboBox1.Text
Dim myform2 As New Form2()
cmmd.CommandText = "select count(*) FROM userinfo where username= '" + user_name + "' and password= '" + pass_word + "' and type= '" + user_type + "'"
'myReader = cmmd.ExecuteScalar()
If (Convert.ToInt64(cmmd.ExecuteScalar()) > 0) Then
'Label4.Text = user_name + pass_word + user_type
myform2.Show()
Finalize()
End If
Label4.Text = "用户名或密码错误!"
End Sub
Private Sub form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“SportsgameDataSet.userinfo”中。您可以根据需要移动或删除它。
Me.UserinfoTableAdapter.Fill(Me.SportsgameDataSet.userinfo)
conn.ConnectionString = "Data Source=DESKTOP-J5U71PU;Initial Catalog=sportsgame;Integrated Security=True"
conn.Open()
cmmd.Connection = conn
TextBox1.Text = "张三"
TextBox2.Text = "123456"
End Sub
Private Sub Form1_FormClosed(sender As Object, e As Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
If conn.State <> ConnectionState.Closed Then
myReader.Close()
conn.Close()
End If
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.Dispose()
End Sub
End Class
添加新项—>MDI父窗体




Private Sub 比赛成绩ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 比赛成绩ToolStripMenuItem.Click
Dim ofd As New Form2
If ofd.ShowDialog() = DialogResult.OK Then
Me.Text = ofd.Visible
End If
End Sub

首先在数据库管理系统SQL Server2019建立数据库、在数据库中建立数据表,录入数据,设置存储过程和触发器等。然后在应用系统开发工具Visual Basic.NET进行数据库应用系统的实现。依次是创建系统登录窗体及其程序实现、创建系统主窗体及其程序实现、查询信息窗体实现及其程序实现、编辑信息窗体实现及其程序实现等。
问题1:先用了英文名,后来还是改为了采用中文名
根据这学期学过的例题和作业,先采用了英文字段名,但是在应用系统开发工具Visual Basic.NET连接用数据表的时候,发现英文名对于用户使用不太直观明白,查询了资料,SQL Sever2019对语言的支持很好,使用中文很顺畅。所以,后来采用了中文名。
问题2:VB连接SQL数据库的问题解决
SQL的联结实例化,并且输入SQL服务器的相关参数,保存服务器名称、数据库名称、登录密码。
问题3:登录窗体不同用户角色类型登录的程序实现
在登录Button程序窗体中反复调试程序才成功。
[1] 严晖,刘卫国等.数据库技术与应用SQL Sever2019[M].中国水利水电出版社,2022.
[2] 严晖,周肆清等.数据库技术与应用实践教程SQL Sever2019[M].中国水利水电出版社,2022.
[3] 王洪姿,焦怡迪,刘思伶等.天津市青少年田径比赛在线报名系统的设计与实现[J].科技视界,2020,No.306(12):78-80.DOI:10.19694/j.cnki.issn2095-2457.2020.12.030.
[4] 银雪莉,阳亚,韦忠孝.第3~4届广西高校大学生田径比赛成绩比较分析[J].当代体育科技,2019,9(36):221-223.DOI:10.16655/j.cnki.2095-2813.2019.36.221.