记分员程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记分员程序相关的知识,希望对你有一定的参考价值。

现场记分员

 

1.计划

通过对用户故事的分析,估计这个任务需要3~5天时间。

2.开发

2.1需求分析

作为一名现场记分员,我希望详细记录比赛现场比分增长情况。

2.2生成设计文档

技术分享

 

 

根据对用户故事的分析,将其按照三层架构的要求进行设计,便于后续对其他用户故事

的设计提供方便。

2.3设计复审

思考文档是否满足用户需求,文档的可行性,对界面的设计

以及出现的问题。

2.4代码规范

根据设计文档制定出合适的规范,对程序需要实现的功能

作出合理的划分,增加代码的复用性,以便于提高各个部分功能的可用性。

2.5具体设计

根据用户需求将UI层设计以及数据库设计出来,

对于要实现的功能有一个合理的规划。

UI层设计

技术分享

 

数据库设计

技术分享

 

技术分享

 

 

2.6具体编码

代码:

namespace Common
{
public static class SqlHelper
{//获取连接字符串
private static readonly string constr =
ConfigurationManager.ConnectionStrings["connectionStr"].ConnectionString;
//ExecuteNonQuery()方法
//ExecuteScalar()方法
//ExecuteReader()方法
//ExecuteDataTable()方法
//执行增删改的
public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
//使用using关键字定义一个范围,在范围结束时自动调用这个类实例的Dispose处理对象
using (SqlConnection con = new SqlConnection(constr))
{
//创建执行sql命令对象
using (SqlCommand cmd = new SqlCommand(sql, con))
{
//判断是否传递了sql参数
if (pms != null)
{
//将参数添加到parametes集合中
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteNonQuery();

}
}
}
//执行返回当个值的
public static object ExecuteScalar(string sql, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);

}
con.Open();
return cmd.ExecuteScalar();
}
}
}
//执行返回sqlDataReader
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);

}
try
{
con.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch (Exception)
{
con.Close();
con.Dispose();
throw;
}
}
}
}
//执行返回DataTable
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] pms)
{
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(sql, constr))
{
if(pms!=null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
}
return dt;
}

}
}


conn = new SqlConnection(@"Data Source=.;Initial Catalog=workers;Integrated Security=True");
adapter = new SqlDataAdapter("select * from China", conn);
ds = new DataSet();
adapter.Fill(ds,"china");
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.RowHeadersVisible = false;

//建立一个DataTable类型的方法

}
private DataTable dbcon(string strSql)
{
conn.Open();
this.adapter = new SqlDataAdapter(strSql,conn);
DataTable dtSelect = new DataTable();
int rnt = this.adapter.Fill(dtSelect);
conn.Close();
return dtSelect;
}

private void button2_Click(object sender, EventArgs e)
{
if (dbUpdate())
{
MessageBox.Show("更新成功");
}
}
private Boolean dbUpdate()
{
string strSql = "select * from China";
DataTable dtUpdate = new DataTable();
dtUpdate = this.dbcon(strSql);
dtUpdate.Rows.Clear();
DataTable dtShow = new DataTable();
dtShow = (DataTable)this.dataGridView1.DataSource;
for (int i = 0; i < dtShow.Rows.Count; i++)//循环遍历
{
dtUpdate.ImportRow(dtShow.Rows[i]);

}
try
{
this.conn.Open();
SqlCommandBuilder cb = new SqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate);
this.conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
dtUpdate.AcceptChanges();
return true;
}

public class ContactBLL
{

private void button1_Click(object sender, EventArgs e)
{
//判断国家是否填了,没有填则先输入国家
if (texguojia1.Text == "" || texguojia1.Text == null)
{
MessageBox.Show("请先输入国家:");
}
//获取第一场第一个国家是多少分如果单击某个国家胜
//则该文本框加一分
if (diyiju.Text == "" && texguojia1.Text != "")
{

if (int.Parse(diyichang1.Text) < 25)
{
int a = int.Parse(diyichang1.Text);
a++;

diyichang1.Text = a.ToString();
//如果分数到达二十五则在第一局中显示某个国家第一局胜
int c = int.Parse(diyichang2.Text);
if (a == 25 && a - 1 > c)
{
MessageBox.Show("第一局" + button1.Text);
diyiju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}
else
{
int a = int.Parse(diyichang1.Text);
a++;
diyichang1.Text = a.ToString();
int c = int.Parse(diyichang2.Text);
if (a - 1 > c)
{
MessageBox.Show("第一局" + button1.Text);
diyiju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}

}
else if (dierju.Text == "" && texguojia1.Text != "")
{
//第一局结束
//判断第二局
if (int.Parse(dierchang1.Text) < 25)
{
int a = int.Parse(dierchang1.Text);
a++;
dierchang1.Text = a.ToString();
int c = int.Parse(dierchang2.Text);
if (a == 25 && a - 1 > c)
{
MessageBox.Show("第二局" + button1.Text);
dierju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}
else
{
int a = int.Parse(dierchang1.Text);
a++;
dierchang1.Text = a.ToString();
int c = int.Parse(dierchang2.Text);
if (a - 1 > c)
{
MessageBox.Show("第二局" + button1.Text);
dierju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}

}
else if (disanju.Text == "" && texguojia1.Text != "")
{
int fen = 25;

if (int.Parse(disanchang1.Text) < fen)
{
int a = int.Parse(disanchang1.Text);
a++;
disanchang1.Text = a.ToString();
int c = int.Parse(disanchang2.Text);
if (a == fen && a - 1 > c)
{
MessageBox.Show("第三局" + button1.Text);
disanju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}

}
else
{
int a = int.Parse(disanchang1.Text);
a++;
disanchang1.Text = a.ToString();
int c = int.Parse(disanchang2.Text);
if (a - 1 > c)
{
MessageBox.Show("第三局" + button1.Text);
disanju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}

}
else if (disiju.Text == "" && texguojia1.Text != "")
{
int fen = 25;
if (int.Parse(changneibifen1.Text) == 3)
{
MessageBox.Show(button1.Text);
return;
}
else if (int.Parse(changneibifen2.Text) == 3)
{
MessageBox.Show(button2.Text);
return;
}
else if (int.Parse(changneibifen1.Text) == 2 || int.Parse(changneibifen2.Text) == 2)
{
//决胜场
fen = 25;
}
if (int.Parse(disichang1.Text) < fen)
{
int a = int.Parse(disichang1.Text);
a++;
disichang1.Text = a.ToString();
int c = int.Parse(disichang2.Text);
if (a == fen && a - 1 > c)
{
MessageBox.Show("第四局" + button1.Text);
disiju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}
else
{
int a = int.Parse(disichang1.Text);
a++;
disichang1.Text = a.ToString();
int c = int.Parse(disichang2.Text);
if (a - 1 > c)
{
MessageBox.Show("第四局" + button1.Text);
disiju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}

}
else if (texguojia1.Text != "")
{
int fen = 25;
if (int.Parse(changneibifen1.Text) == 3)
{
MessageBox.Show(button1.Text);
return;
}
else if (int.Parse(changneibifen2.Text) == 3)
{
MessageBox.Show(button2.Text);
return;
}
else if (int.Parse(changneibifen1.Text) == 2 || int.Parse(changneibifen2.Text) == 2)
{
//决胜场
fen = 15;
}

if (int.Parse(diwuchang1.Text) < fen)
{
int a = int.Parse(diwuchang1.Text);
a++;
diwuchang1.Text = a.ToString();
int c = int.Parse(diwuchang2.Text);
if (a == fen && a - 1 > c)
{
MessageBox.Show("第五局" + button1.Text);
diwuju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}
else
{
int a = int.Parse(diwuchang1.Text);
a++;
diwuchang1.Text = a.ToString();
int c = int.Parse(diwuchang2.Text);
if (a - 1 > c)
{
MessageBox.Show("第五局" + button1.Text);
diwuju.Text = button1.Text;
int b = int.Parse(changneibifen1.Text);
b++;
changneibifen1.Text = b.ToString();
}
}
}

}
private void button2_Click(object sender, EventArgs e)
{
//判断是否输入了国家名字
if (texguojia2.Text == "" || texguojia2.Text == null)
{
MessageBox.Show("请先输入队名:");
}

//判断分数是否达到25如果单击按钮后分数没有达到25则分数加1
if (diyiju.Text == "" && texguojia2.Text != "")
{
if (int.Parse(diyichang2.Text) < 25)
{
int a = int.Parse(diyichang2.Text);
a++;

diyichang2.Text = a.ToString();
//如果分数达到25则显示第一局某国家胜
int c = int.Parse(diyichang1.Text);
if (a == 25 && a - 1 > c)
{
MessageBox.Show("第一局" + button2.Text);
diyiju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}

}
else
{
int a = int.Parse(diyichang2.Text);
a++;
diyichang2.Text = a.ToString();
int c = int.Parse(diyichang1.Text);
if (a - 1 > c)
{
MessageBox.Show("第一局" + button2.Text);
diyiju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}
}

}
else if (dierju.Text == "" && texguojia2.Text != "")
{
//第一局结果以出现
//判断第二局
if (int.Parse(dierchang2.Text) < 25)
{
int a = int.Parse(dierchang2.Text);
a++;

dierchang2.Text = a.ToString();
//如果分数达到25则显示第一局某国家胜
int c = int.Parse(dierchang1.Text);
if (a == 25 && a - 1 > c)
{
MessageBox.Show("第二局" + button2.Text);
dierju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}

}
else
{
int a = int.Parse(dierchang2.Text);
a++;
dierchang2.Text = a.ToString();
int c = int.Parse(dierchang1.Text);
if (a - 1 > c)
{
MessageBox.Show("第二局" + button2.Text);
dierju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}
}
}
else if (disanju.Text == "" && texguojia2.Text != "")
{
int fen = 25;
//if (int.Parse(changneibifen1.Text) == 2 || int.Parse(changneibifen2.Text) == 2)
//{
// fen = 15;
//}
//else if(int.Parse(changneibifen1.Text)==3)
//{
// MessageBox.Show(button1.Text);
//}
//else if (int.Parse(changneibifen2.Text) == 3)
//{
// MessageBox.Show(button2.Text);
//}
if (int.Parse(disanchang2.Text) < fen)
{
int a = int.Parse(disanchang2.Text);
a++;

disanchang2.Text = a.ToString();
//如果分数达到25则显示第一局某国家胜
int c = int.Parse(disanchang1.Text);
if (a == fen && a - 1 > c)
{
MessageBox.Show("第三局" + button2.Text);
disanju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}

}
else
{
int a = int.Parse(disanchang2.Text);
a++;
disanchang2.Text = a.ToString();
int c = int.Parse(disanchang1.Text);
if (a - 1 > c)
{
MessageBox.Show("第三局" + button2.Text);
disanju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}
}
}
else if (disiju.Text == "" && texguojia2.Text != "")
{
int fen = 25;
if (int.Parse(changneibifen1.Text) == 3)
{
MessageBox.Show(button1.Text);
return;
}
else if (int.Parse(changneibifen2.Text) == 3)
{
MessageBox.Show(button2.Text);
return;
}
else if (int.Parse(changneibifen1.Text) == 2 || int.Parse(changneibifen2.Text) == 2)
{
//决胜场
fen = 25;
}

if (int.Parse(disichang2.Text) < fen)
{
int a = int.Parse(disichang2.Text);
a++;

disichang2.Text = a.ToString();
//如果分数达到25则显示第一局某国家胜
int c = int.Parse(disichang1.Text);
if (a == fen && a - 1 > c)
{
MessageBox.Show("第四局" + button2.Text);
disiju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}

}
else
{
int a = int.Parse(disichang2.Text);
a++;
disichang2.Text = a.ToString();
int c = int.Parse(diyichang1.Text);
if (a - 1 > c)
{
MessageBox.Show("第四局" + button2.Text);
disiju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}
}
}
else if (texguojia2.Text != "")
{
int fen = 25;
if (int.Parse(changneibifen1.Text) == 3)
{
MessageBox.Show(button1.Text);
return;
}
else if (int.Parse(changneibifen2.Text) == 3)
{
MessageBox.Show(button2.Text);
return;
}
else if (int.Parse(changneibifen1.Text) == 2 || int.Parse(changneibifen2.Text) == 2)
{
//决胜场
fen = 15;
}
if (int.Parse(diwuchang2.Text) < fen)
{
int a = int.Parse(diwuchang2.Text);
a++;

diwuchang2.Text = a.ToString();
//如果分数达到25则显示第一局某国家胜
int c = int.Parse(diwuchang1.Text);
if (a == fen && a - 1 > c)
{
MessageBox.Show("第五局" + button2.Text);
diwuju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}
}
else
{
int a = int.Parse(diwuchang2.Text);
a++;
diwuchang2.Text = a.ToString();
int c = int.Parse(diwuchang1.Text);
if (a - 1 > c)
{
MessageBox.Show("第五局" + button2.Text);
diwuju.Text = button2.Text;
int b = int.Parse(changneibifen2.Text);
b++;
changneibifen2.Text = b.ToString();
}
}
}

2.6具体编码

代码:

代码复审

对代码进行复审,并对代码进行重构,提高代码质量,可维护性。

通过复审尽可能发现错误,便于后续的开发速度,以及新功能的的

添加。

测试

使用VS2010进行所有的单元测试。

 

 

 

3.3事后总结,并提出过程改进计划

 

对于ASPNET只是有一个大概的认知,对于一般应用处理程序搭建的三层还是很薄弱,只能慢慢赶了。

 








































































































































































































































































































































































































































































































































































以上是关于记分员程序的主要内容,如果未能解决你的问题,请参考以下文章

排球记分员计分程序————综述

记分员计分程序

排球记分员计分程序————Controller控制器与Action方法的设计

排球计分员程序

排球比赛记分员

排球计分程序