排球计分程序:
一,设计
估计这个任务完成需要七天。
二,开发
1. 需求分析
作为一个赛事管理人员,我希望知道每场比赛队伍得分和积分情况,以便给每队进行排名。
从分析用例故事可以知道完成此程序需要这两项任务:选择任务和查询队伍的比分和积分情况。
2.生成设计文档
由排球用户故事的需求可知,这个程序用来统计各个队伍的比分与积分情况,并对各个队伍进行排名。
3.设计复审
大概需要一天的时间。
4.代码规范:
利用VS对该程序进行代码规范。
5.活动图
6.部分代码
public static class SqlHelper
{
private static readonly string constr = ConfigurationManager.ConnectionStrings["connectionStr"].ConnectionString;
public static int ExecuteNonQuery(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.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();
}
}
}
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms)
{ SqlConnection con = new SqlConnection(constr);
using (SqlCommand cmd = new SqlCommand(sql, con))
{ if (pms != null)
{ cmd.Parameters.AddRange(pms);
}
try
{
con.Open();
con.Close();
con.Dispose();
throw;
}
}
}
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;
}
}
}
namespace VolleyballBll { public class volleyBll
{ private volleyDal dal = new volleyDal();
public DataTable SelectScore(string team)
{ return dal.SelectScore(team);
}
public bool SelectScoreCount(string team)
{ return dal.SelectScoreCount(team);
}
}
}
namespace volleyball
{ public partial class SelectScore : Form
{ public SelectScore()
{ InitializeComponent();
}
private volleyBll bll = new volleyBll();
private void dgvload(string team)
{ if (bll.SelectScoreCount(team))
{ dgvScore.DataSource = bll.SelectScore(team);
}
else
{ MessageBox.Show("找不到这个队伍的比赛记录");
dgvScore.DataSource = bll.SelectScore(team);
}
}
private void SelectScore_Load(object sender, EventArgs e)
{
}
private void btnSelect_Click(object sender, EventArgs e)
{ string team = txtTeam.Text.Trim();
if (!String.IsNullOrEmpty(team))
{ dgvload(team);
}
else
{ MessageBox.Show("输入队名不能为空");
}
}
}
}
namespace VolleyballDal { public class volleyDal
{ public DataTable SelectScore(string team)
{ string sql = "select * from VolleybalScore where Teams like ‘%"+team+"%‘";
DataTable dt = SqlHelper.ExecuteDataTable(sql);
return dt;
}
public bool SelectScoreCount(string team)
{ string sql = "select count(*) from VolleybalScore where Teams like ‘%" + team + "%‘";
int count = (int)SqlHelper.ExecuteScalar(sql);
return count>0;
}
}
}
页面如下:
7.代码复审
三个小时
三.最后总结
做的还不够完善,还有很多不足之处,花费时间太长,我会在接下来的时间尽自己所能进行修改和完善。