您的位置:首页 > 其它

第十六周计应151班第四组排球计分程序

2016-12-26 11:13 162 查看
计划:

估计这个任务需要多少时间完成:5-6天

开发:

需求分析:作为一个排球记分员,我希望能够方便的记录分数(精确到每球的的分),以便及时的把分数反映给观众。

设计文档:①排球计分程序的加减分②比赛结果的查询③比赛详细记录的查询

具体设计:

计分窗口
public partial class Scoreing : Form
{
public string TeamA;
public string TeamB;
public int ScoreA = 0;//比分
public int ScoreB=0;
public int count = 1;//局数
public int TeamScoreA = 0;//局比分
public int TeamScoreB = 0;
public StringBuilder sb=new StringBuilder();
VolleybalScore score=new VolleybalScore();
volleyBll bll = new volleyBll();
public Scoreing()
{
InitializeComponent();
}

private void Scoreing_Load(object sender, EventArgs e)
{
lblTeamA.Text = TeamA;
lblTeamB.Text = TeamB;
jushucount(count);
score.Teams = TeamA + ":" + TeamB;
}

private void btnAddTeamA_Click(object sender, EventArgs e)
{
ScoreA++;
showScore();
victory();
jushucount(count);
}

private void btnAddteamB_Click(object sender, EventArgs e)
{
ScoreB++;
showScore();
victory();
jushucount(count);
}
private void showScore()
{
lblScoreB.Text = ScoreB.ToString();
lblScoreA.Text = ScoreA.ToString();
}
private void victory()
{
if (count < 5)
{
if ((ScoreA >= 24 && Math.Abs(ScoreA - ScoreB) >= 2) || (ScoreB >= 24 && Math.Abs(ScoreA - ScoreB) >= 2))
{
if (ScoreA - ScoreB >= 2)
{
MessageBox.Show(lblCount.Text + TeamA + "胜利");
TeamScoreA++;
if (Math.Abs(TeamScoreA - TeamScoreB) == 3)
{
MessageBox.Show("比赛结束"+ TeamA + "胜利");
score.Victory = TeamA+ TeamScoreA.ToString() + ":" + TeamScoreB.ToString();
score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString();
bll.InsertScore(score);
count=1;
ScoreA = 0;
ScoreB = 0;
showScore();
}
sb.AppendFormat("第{0}局,{1}:{2}\r", count, ScoreA, ScoreB);
lblBigScore.Text = sb.ToString();
if (count == 1)
{ score.firstScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
else if (count == 2)
{ score.secondScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
else if (count == 3)
{ score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
else if (count == 4)
{ score.fourthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
count++;
ScoreA = 0;
ScoreB = 0;
showScore();
}
if (ScoreB - ScoreA >= 2)
{
MessageBox.Show(lblCount.Text + TeamB + "胜利");
TeamScoreB++;
if (Math.Abs(TeamScoreA - TeamScoreB) == 3)
{
MessageBox.Show("比赛结束" + TeamB + "胜利");
score.Victory = TeamB + TeamScoreB.ToString() + ":" + TeamScoreA.ToString();
score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString();
bll.InsertScore(score);
count=1;
ScoreA = 0;
ScoreB = 0;
showScore();

}
sb.AppendFormat("第{0}局,{1}:{2}\r", count, ScoreA, ScoreB);
lblBigScore.Text = sb.ToString();
if (count == 1)
{ score.firstScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
else if (count == 2)
{ score.secondScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
else if (count == 3)
{ score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
else if (count == 4)
{ score.fourthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
count++;
ScoreA = 0;
ScoreB = 0;
showScore();
}
}
}
else if (count == 5)
{
if ((ScoreA >= 15 && Math.Abs(ScoreA - ScoreB) >= 2) || (ScoreB >= 15 && Math.Abs(ScoreA - ScoreB) >= 2))
{
if (ScoreA - ScoreB >= 2)
{
MessageBox.Show(lblCount.Text + TeamA + "胜利");
TeamScoreA++;
score.Victory = TeamA + TeamScoreA.ToString() + ":" + TeamScoreB.ToString();
sb.AppendFormat("第{0}局,{1}:{2}\r", count, ScoreA, ScoreB);
lblBigScore.Text = sb.ToString();
score.fifthScore = ScoreA.ToString() + ":" + ScoreB.ToString();

}
if (ScoreB - ScoreA >= 2)
{
MessageBox.Show(lblCount.Text + TeamB + "胜利");
TeamScoreB++;
score.Victory = TeamB + TeamScoreB.ToString() + ":" + TeamScoreA.ToString();
sb.AppendFormat("第{0}局,{1}:{2}/0", count, ScoreA, ScoreB);
lblBigScore.Text = sb.ToString();
score.fifthScore = ScoreA.ToString() + ":" + ScoreB.ToString();
}
count++;
ScoreA = 0;
ScoreB = 0;
showScore();
bll.InsertScore(score);
}

}

}
private void jushucount(int count)
{
if(count==1)
{
lblCount.Text= "第一局";
}
else if (count == 2)
{
lblCount.Text = "第二局";
}
else if (count == 3)
{ lblCount.Text = "第三局"; }
else if (count == 4)
{ lblCount.Text = "第四局"; }
else if (count == 5)
{
lblCount.Text = "第五局";
}
else
{
lblCount.Text = "第一局";
}
}


活动图:


类图


具体编码:

Bll
public bool InsertTeam(string team)
{
return dal.InsertTeam(team) > 0;
}
public SqlDataReader ShowTeamA()
{
return dal.ShowTeamA();
}
public SqlDataReader ShowTeamB(string teamA)
{
return dal.ShowTeamB(teamA);
}
public void InsertScore(VolleybalScore score)
{ dal.InsertScore(score); }


Model
namespace Model
{
public class VolleybalScore
{
public string Teams;
public string Victory;
public string firstScore;
public string secondScore;
public string thirdScore;
public string fourthScore;
public string fifthScore;
}
}


selectTeam选择队伍窗口
public partial class SelectTeams : Form
{
public SelectTeams()
{
InitializeComponent();
}
private volleyBll bll = new volleyBll();
private void button1_Click(object sender, EventArgs e)
{
AddTeams addform = new AddTeams();
addform.ShowDialog();
}
private void cmbShowTeamA()
{
SqlDataReader reader = bll.ShowTeamA();
while (reader.Read())
{
cmbTeamA.Items.Add(reader[0]);
}
}
private void cmbShowTeamB(string teamA)
{
SqlDataReader reader = bll.ShowTeamB(teamA);
while (reader.Read())
{
cmbTeamB.Items.Add(reader[0]);
}
}
private void SelectTeams_Load(object sender, EventArgs e)
{
cmbShowTeamA();
}

private void cmbTeamA_SelectedIndexChanged(object sender, EventArgs e)
{
cmbTeamB.Items.Clear();
string teamA = cmbTeamA.SelectedItem.ToString();
cmbShowTeamB(teamA);
}

private void btnSubmit_Click(object sender, EventArgs e)
{
Scoreing fm = new Scoreing();
fm.TeamA = cmbTeamA.SelectedItem.ToString();
fm.TeamB = cmbTeamB.SelectedItem.ToString();
SelectUser user=new SelectUser();
fm.Show();
this.Close();
}

private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
SelectUser fm = new SelectUser();
fm.Show();
}

}


DAL
public int InsertTeam(string team)//添加队伍信息
{
string sql = "insert into VolleyballTeams values(@team)";
SqlParameter pms = new SqlParameter("@team",team);
int count = SqlHelper.ExecuteNonQuery(sql,pms);
return count;
}
public SqlDataReader ShowTeamA()//显示A队
{
string sql = "select * from VolleyballTeams";
SqlDataReader reader = SqlHelper.ExecuteReader(sql);
return reader;
}
public SqlDataReader ShowTeamB(string teamA)//显示B对
{
string sql = "select * from VolleyballTeams where name !=@teamA";
SqlParameter pms = new SqlParameter("@teamA",teamA);
SqlDataReader reader = SqlHelper.ExecuteReader(sql, pms);
return reader;
}
public  void InsertScore(VolleybalScore score)//添加大比分
{
string sql = "insert into VolleybalScore values(@team,@victory,@firstScore,@secondScore,@thirdScore,@fourthScore,@fifthScore)";
SqlParameter[] pms = new SqlParameter[]{
new SqlParameter("@team",score.Teams),
new SqlParameter("@victory",score.Victory),
new SqlParameter("@firstScore",score.firstScore),
new SqlParameter("@secondScore",score.secondScore),
new SqlParameter("@thirdScore",score.thirdScore),
new SqlParameter("@fourthScore",score.fourthScore==null?"null":score.fourthScore),
new SqlParameter("@fifthScore",score.fifthScore==null?"null":score.fifthScore)
};
SqlHelper.ExecuteNonQuery(sql,pms);
}


程序运行截图在上次的博客中已贴出,本次只是完善了功能,UI并无变动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: