足球运动员信息管理系统

足球运动员信息管理系统

本案例实现一个小型的足球运动员信息管理系统。完成的功能:球队管理、球员管理、联赛管理、赛绩管理以及系统管理员才具有的主教练管理和用户管理。

1.球队管理:可对球队进行添加、删除、修改、查找等功能,球队属性有:名称、主教练(来自于系统中保存的教师)、当前球员人数、建队日期和备注等属性。

2.球员管理:可对球员进行添加、删除、修改、查找等功能,球员属性有:球衣号、姓名、性别、所属球队(来自于系统中保存的球队)、相片、出生日期和备注等属性。

3.比赛管理:可对训练项目进行添加、删除、修改、查找和等功能,科目属性有:项目目名称、积分数和备注等属性。

4.日程管理:可对每一个球队参与的比赛进行添加、删除、修改、查找功能,日程属性有:所属球队(来自于系统中保存的球队)、主教练(来自于系统中保存的教师)、开始日期、结束日期和备注等属性。

5.赛绩管理:可对每一个球队的赛绩进行添加、删除、修改、查找等功能,赛绩属性有:球员姓名、所属球队(来自于系统中保存的球队)、比赛名、进球数、备注等属性。

分析

根据系统的功能划分和实现的方便,我们将整个程序分为三层:数据层、业务层和界面层。数据层负责对数据库进行操作,包括向表中插入数据、更新数据、查询数据和删除数据。业务层负责把界面上的各种操作传达给数据层。界面层主要负责界面的设计,包括控件的位置和外观等设置、实时反映系统的变化情况。

数据库表的设计

根据程序的功能得出数据实体,进行数据库设计分析,确定以下数据表,如图所示:

1.教练表(Coach)

2.比赛表(Match)

3.球员表(Player)

4.赛程表(Race)

5.赛绩表(Score)

6.球队表(Team)

7.用户表(User)

主要代码:Team.cs(BusinessRuler)using System;

using System.Windows.Forms;

using DataAccess;

using System.Data.SqlClient;

using System.Collections;

using System.Data;

namespace BusinessRuler

{

public class Team

{

private DataGridView _dgvTeam;

public Team(DataGridView dgv)

{

_dgvTeam = dgv;

}

public Team()

{

}

//验?证¤系μ统?是?否?有瓺球ò队ó

public static bool IsTeamExists()

{

if (DataAccess.Team.IsTeamExists().HasRows)

{

return true;

}

else

{

MessageBox.Show("目?前?还1没?有瓺球ò队ó,?请?首骸?先a创洹?建¨球ò队ó", "错洙?误ó", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

return false;

}

}

//验?证¤该?队ó是?否?有瓺球ò员a

public bool IsPlayerExists(string teamName)

{

DataAccess.Team objTeam = DataAccess.Team.CreateInstance(teamName);

if (objTeam.CurrentCount > 0)

{

return true;

}

else

{

MessageBox.Show("该?班悒?目?前?还1没?有瓺学§生Θ?,?无T法ぁ?进?行D战?

绩¨管?理え?,?请?首骸?先a添 ?加ó学§生Θ?!?", "错洙?误ó", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

return false;

}

}

//验?证¤该?队ó球ò员a人?数簓是?否?已?超?过y额?定¨

public static bool isInCapacity(string teamName)

{

int playerCapacity = Convert.ToInt32(BusinessRuler.ReaderWirteConfig.GetValueByKey("PlayerCapaticyInTeam")); DataAccess.Team objTeam = DataAccess.Team.CreateInstance(teamName);

if (objTeam.CurrentCount == playerCapacity)

{

MessageBox.Show("该?队ó球ò员a人?数簓已?满ú!?", "错洙?误ó", MessageBoxButtons.OK, MessageBoxIcon.Error);

return false;

}

return true;

}

//验?证¤球ò队ó名?是?否?已?存?在ú

public static bool CheckExists(string teamName)

{

return DataAccess.Team.CheckExists(teamName).HasRows;

}

//检ì查?该?球ò队ó是?否?已?开a赛a?

public bool IsRaceExist(string teamName)

{

DataAccess.Team objTeam = new DataAccess.Team(teamName);

if (objTeam.FillByAllMatchName().Tables[0].Rows.Count > 0)

{

return true;

}

else

{

MessageBox.Show(teamName + " 球ò队ó尚 无T赛a?程ì,?无T法ぁ?进?行D赛a?绩¨管?理え?,?请?先a添 ?加ó赛a?程ì!?", "错洙?误ó", MessageBoxButtons.OK, MessageBoxIcon.Error);

return false;

}

}

//更?新?数簓据Y网?格?的?显?示?

public void UpdateDataGrid()

{

if (this._dgvTeam != null)

{

DataSet objDataSet = DataAccess.Team.FillByAllTeam();

this._dgvTeam.DataSource = objDataSet.Tables[0];

}

}

//添 ?加ó球ò队ó

public void AddTeam(string teamName, string coach, DateTime entranceDate, string remark)

{

//首骸?先a判D断?球ò队ó名?称?是?否?已?存?在ú

if (CheckExists(teamName))

{

MessageBox.Show("球ò队ó名?" + teamName + "已?存?在ú,?请?重?新?输?入?球ò队ó名?!?", "球ò队ó名?已?存?在ú", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

if(DataAccess.Team.CreateTeam(teamName, coach, entranceDate, remark) > 0) {

UpdateDataGrid();

MessageBox.Show("成?功|添 ?加ó球ò队ó!?", "操ù作痢?成?功|", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

}

}

}

//修T改?球ò队ó

public void ModifyTeam(string teamName, string coach, DateTime entranceDate, string remark)

{

DataAccess.Team objTeam = new DataAccess.Team(teamName);

objTeam.Coach = coach;

objTeam.EntranceDate = entranceDate;

objTeam.Remark = remark;

if (objTeam.Update() > 0)

{

UpdateDataGrid();

MessageBox.Show("修T改?球ò队ó资哩?料?成?功|!?", "操ù作痢?成?功|", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

}

}

//删?除y球ò队ó

public void DeleteTeam(string teamName)

{

if (!CheckExists(teamName))

{

MessageBox.Show("球ò队ó名?" + teamName + "不?存?在ú,?请?重?新?输?入?球ò队ó名?!?", "球ò队ó名?不?存?在ú", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

if (DialogResult.Yes == MessageBox.Show("真?的?要癮删?除y球ò队ó' " + teamName + " '吗e?\n 删?除y该?队ó时骸?,?将?同?时骸?删?除y该?队ó所ù有瓺球ò员a的?档苔?案?及?相à关?赛a?程ì、¢赛a?绩¨的?记?录?,?确ü?定¨要癮继ì续?吗e??", "删?除y确ü?认?", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{

DataAccess.Team objTeam = new DataAccess.Team(teamName);

if (objTeam.Delete() > 0)

{

UpdateDataGrid();

MessageBox.Show("成?功|删?除y球ò队ó' " + teamName + " '!", "操ù作痢?成?功|", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

}

}

}

}

public void FillCboByAllTeamName(ComboBox cbo, int position)

{

cbo.Items.Clear();

DataTable teamNames = DataAccess.Team.GetAllTeamName();

foreach (DataRow row in teamNames.Rows)

{

cbo.Items.Add(row[0].ToString());

}

cbo.SelectedIndex = position;

}

public void FillCboByAllTeamName(ComboBox cbo, string theTeamName)

{

cbo.Items.Clear();

int position = 0;

int i = 0;

DataTable teamNames = DataAccess.Team.GetAllTeamName();

foreach (DataRow row in teamNames.Rows)

{

cbo.Items.Add(row[0].ToString());

if (row[0].ToString().Equals(theTeamName))

{

position = i;

}

i++;

}

cbo.SelectedIndex = position;

}

//查?找ò球ò队ó

public static void FindByTeamName(DataGridView dgv, string teamName)

{

for (int row = 0; row < dgv.Rows.Count; row++)

{

if

(dgv.Rows[row].Cells["colTeamName"].Value.ToString().Equals(teamName))

{

dgv.Rows[row].Selected = true;

return;

}

}

MessageBox.Show("已?到?记?录?末?尾2!?", "结á果?", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

}

//按恪?教ì练ⅰ?查?找ò

public static void FindByCoach(DataGridView dgv, string coach, bool useMatch)

{

for (int row = Int32.Parse(dgv.Tag.ToString()); row < dgv.Rows.Count; row++) {

bool condition = dgv.Rows[row].Cells["colCoach"].Value.ToString().Equals(coach);

if (useMatch)

{

condition = dgv.Rows[row].Cells["colCoach"].Value.ToString().Contains(coach);

}

if (condition)

{

dgv.Rows[row].Selected = true;

dgv.Tag = (row + 1).ToString();

return;

}

}

MessageBox.Show("已?到?记?录?末?尾2!?", "结á果?", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

dgv.Tag = 0;

}

//按恪?建¨队ó日?期ú查?找ò

public static void FindByDate(DataGridView dgv, DateTime startDate, DateTime finishDate)

{

for (int row = Int32.Parse(dgv.Tag.ToString()); row < dgv.Rows.Count; row++) {

DateTime dateValue = DateTime.Parse(dgv.Rows[row].Cells["colEntranceDate"].Value.ToString());

if (dateValue >= startDate && dateValue <= finishDate)

{

dgv.Rows[row].Selected = true;

dgv.Tag = (row + 1).ToString();

return;

}

}

MessageBox.Show("已?到?记?录?末?尾2!?", "结á果?", MessageBoxButtons.OK, https://www.360docs.net/doc/0a19272069.html,rmation);

dgv.Tag = 0;

}

}

}

主要代码:

2.Team.cs(DataAccess)

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;

using System.Data.SqlClient;

using System.Collections;

namespace DataAccess

{

public class Team

{

private string _teamName;

private string _coach;

private int _currentCount;

private DateTime _entranceDate;

private string _remark;

#region

public string TeamName

{

get

{

return _teamName;

}

set

{

_teamName = value;

}

}

public string Coach

{

get

{

return _coach;

}

set

{

_coach = value;

}

}

public int CurrentCount

{

get

{

return _currentCount; }

set

{

_currentCount = value;

}

}

public DateTime EntranceDate

{

get

{

return _entranceDate;

}

set

{

_entranceDate = value;

}

}

public string Remark

{

get

{

return _remark;

}

set

{

_remark = value;

}

}

#endregion

//实害?例 化ˉ球ò队ó

public Team(string teamName)

{

_teamName = teamName;

}

public Team()

{

}

public static Team CreateInstance(string teamName) {

Team c = null;

string strSql = "select * from Team where [TeamName] = @teamName ";

SqlCommon sqlcomm = new SqlCommon();

SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter("@teamName", teamName));

if (reader.Read())

{

c = new Team(teamName);

c._coach = reader["Coach"].ToString();

c._currentCount = (Convert.ToInt32(reader["CurrentCount"].ToString()));

c._entranceDate = (DateTime)reader["EntranceDate"];

c._remark = reader["Remark"].ToString();

}

reader.Close();

return c;

}

//得?到?所ù有瓺球ò队ó名?

public static DataTable GetAllTeamName()

{

string strSql = "select TeamName from Team";

SqlCommon sqlcomm = new SqlCommon();

DataSet ds = sqlcomm.CreaDataSet(strSql, null);

return ds.Tables[0];

}

//新?建¨球ò队ó

public static int CreateTeam(string teamName, string coach, DateTime entranceDate, string remark)

{

string strSql = "insert into Team(TeamName,Coach,EntranceDate,Remark) values(@teamName,@coach,@entranceDate,@remark);";

SqlCommon sqlcomm = new SqlCommon();

SqlParameter[] pa = new SqlParameter[4];

pa[0] = new SqlParameter("@TeamName", teamName);

pa[1] = new SqlParameter("@Coach", coach);

pa[2] = new SqlParameter("@EntranceDate", entranceDate);

pa[3] = new SqlParameter("@Remark", remark);

return sqlcomm.ExecuteNonQuery(strSql, pa);

}

//更?新?球ò队ó

public int Update()

{

string strSql = "update Team set [Coach] = @coach,[EntranceDate] =

@entranceDate,[Remark] = @remark where [TeamName] = @teamName";

SqlCommon sqlcomm = new SqlCommon();

return sqlcomm.ExecuteNonQuery(strSql, new SqlParameter("@Coach", this._coach), new SqlParameter("@EntranceDate", this._entranceDate), new SqlParameter("@Remark", this._remark), new SqlParameter("@teamName", _teamName));

}

//删?除y球ò队ó

public int Delete()

{

//删?除y球ò队ó的?同?时骸?删?除y该?班悒?所ù有瓺学§生Θ?记?录?、¢赛a?程ì记?录?、¢战?绩¨记?录?

StringBuilder strSql = new StringBuilder();

strSql.Append("delete from Score where [PlayerNo] in (Select [PlayerNo] from Team where [TeamName] = @teamName) ;");

strSql.Append("delete from Race where [TeamName] = @teamName ;");

strSql.Append("delete from Player where [TeamName] = @teamName ;");

strSql.Append("delete from Team where [TeamName] = @teamName ;");

SqlCommon sqlcomm = new SqlCommon();

return sqlcomm.ExecuteNonQuery(strSql.ToString(), true, false, new SqlParameter("@teamName", _teamName));

}

//检ì查?是?否?有瓺班悒?

public static SqlDataReader IsTeamExists()

{

string strSql = "select * from Team ";

SqlCommon sqlcomm = new SqlCommon();

SqlDataReader reader = sqlcomm.ExecuteReader(strSql, null);

return reader;

}

//检ì查?是?否?有瓺班悒?

public SqlDataReader IsStudentExists()

{

string strSql = "select * from Team where [TeamName] = @teamName and [CurrentCount] > 0 ";

SqlCommon sqlcomm = new SqlCommon();

SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter("@teamName", _teamName));

return reader;

}

//检ì查?球ò队ó名?是?否?已?存?在ú

public static SqlDataReader CheckExists(string teamName)

{

string strSql = "select * from Team where [teamName] = @teamName";

SqlCommon sqlcomm = new SqlCommon();

SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter("@teamName", teamName));

return reader;

}

//得?到?所ù有瓺球ò队ó的?记?录?

public static DataSet FillByAllTeam()

{

string strSql = "select * from Team";

SqlCommon sqlcomm = new SqlCommon();

DataSet ds = sqlcomm.CreaDataSet(strSql, null);

return ds;

}

//获?取?球ò队ó所ù有瓺学§生Θ?的?集ˉ合?

public DataSet FillByAllPlayer()

{

string strSql = "select PlayerNo,PlayerName,Gender,Birthday,Remark from Player where [TeamName] = @teamName";

SqlCommon sqlcomm = new SqlCommon();

DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter("@teamName", _teamName));

return ds;

}

public DataTable GetAllPlayerNo()

{

string strSql = "select PlayerNo from Player where [TeamName] = @teamName";

SqlCommon sqlcomm = new SqlCommon();

DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter("@teamName", _teamName));

return ds.Tables[0];

}

//得?到?指?定¨球ò队ó所ù有瓺赛a?程ì信?息¢的?记?录?

public DataSet FillByAllRace()

{

string strSql = "select MatchName,Coach,BeginDate,FinishDate,Remark from Race where [TeamName] = @teamName";

SqlCommon sqlcomm = new SqlCommon();

DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter("@teamName", _teamName));

return ds;

}

//得?到?指?定¨球ò队ó所ù有瓺赛a?程ì名?称?的?记?录?

public DataSet FillByAllMatchName()

{

string strSql = "select MatchName from Race where [TeamName] = @teamName";

SqlCommon sqlcomm = new SqlCommon();

DataSet ds = sqlcomm.CreaDataSet(strSql, new SqlParameter("@teamName", _teamName));

return ds;

}

//判D断?该?班悒?是?否?已?存?在ú相à应畖赛a?程ì

public SqlDataReader GetDataReaderByMatchName(string matchName)

{

string strSql = "select * from Race where [TeamName] = @teamName and [MatchName] = @matchName ";

SqlCommon sqlcomm = new SqlCommon();

SqlDataReader reader = sqlcomm.ExecuteReader(strSql, new SqlParameter("@teamName", _teamName), new SqlParameter("@matchName", matchName));

return reader;

}

}

}

相关文档
最新文档