- 计划
估计此程序需要3-5天。
- 开发
- 需求分析
用户故事:作为一个赛事管理人员,我希望知道每场比赛队伍得分和积分情况,以便给每队进行排名。
从分析用例故事可以知道完成此程序需要这两项任务:选择业务和查询队伍积分排名。
以下为改程序的活动图:
- 代码规范:使用Vs2010和帕斯卡命名法和骆驼命名法 。
- 具体设计:
根据《2015-2016赛季中国排球联赛竞赛规程》,积分规则如下:
1、计分方式:比赛结果为3:0、3:1时,胜队积3分,负队积0分;比赛结果为3:2时,胜队积2分,负队积1分;积分高者排名在前。
2、当积分相等时,决定名次顺序为:①胜场;②总胜局/总输局(C值);③总得分/总失分(Z值)。
3、当三队或三队以上Z值仍相等时,则仅在该几队之间依次按照上述第2条决定名次办法①、②、③决定。
故需要建立表头为:队伍名称,胜场,总胜局/总输局,总得分/总失分,积分,名次的数据表。
以下为程序的类图:
- 具体编码
以下为部分代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using VolleyballBll; 8 using Moudel; 9 10 namespace VolleyballUI 11 { 12 public partial class Index : System.Web.UI.Page 13 { 14 private TeamBll teamBll = new TeamBll(); 15 16 protected void Page_Load(object sender, EventArgs e) 17 { 18 if (!IsPostBack) 19 { 20 BindDropDownList(); 21 } 22 } 23 24 protected void btnSaveName_Click(object sender, EventArgs e) 25 { 26 Team team = new Team(); 27 team.Name=TeamName.Text.Trim(); 28 if (teamBll.GetInsertTeamName(team)) 29 { 30 Response.Redirect("Index.aspx"); 31 } 32 else 33 { 34 Response.Write("<script>alert('添加失败')</script>"); 35 } 36 } 37 38 public void BindDropDownList() 39 { 40 DropDownListA.DataSource = teamBll.GetSelectAllTeams(); 41 DropDownListA.DataTextField = "Name"; 42 DropDownListA.DataValueField = "ID"; 43 DropDownListA.DataBind(); 44 DropDownListB.DataSource = teamBll.GetSelectAllTeams(); 45 DropDownListB.DataTextField = "Name"; 46 DropDownListB.DataValueField = "ID"; 47 DropDownListB.DataBind(); 48 } 49 50 protected void btnSave_Click(object sender, EventArgs e) 51 { 52 if (DropDownListA.SelectedItem.Text == DropDownListB.SelectedItem.Text) 53 { 54 Response.Write("<script>alert('同一支队伍之间不能比赛!')</script>"); 55 } 56 else 57 { 58 Response.Redirect("Main.aspx?TeamA=" + DropDownListA.SelectedItem.Text + "&TeamB=" + DropDownListB.SelectedItem.Text); 59 } 60 } 61 62 protected void btnSelect_Click(object sender, EventArgs e) 63 { 64 if (DropDownListA.SelectedItem.Text == DropDownListB.SelectedItem.Text) 65 { 66 Response.Write("<script>alert('同一支队伍之间没有比赛!')</script>"); 67 } 68 else 69 { 70 Response.Redirect("Select.aspx?TeamA=" + DropDownListA.SelectedItem.Text + "&TeamB=" + DropDownListB.SelectedItem.Text); 71 } 72 } 73 } 74 }
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using Moudel; 8 using System.Data.SqlClient; 9 using VolleyballBll; 10 11 namespace VolleyballUI 12 { 13 public partial class Select : System.Web.UI.Page 14 { 15 private GameBll gameBll = new GameBll(); 16 protected void Page_Load(object sender, EventArgs e) 17 { 18 Game game = new Game(); 19 game.TeamA = Request.QueryString["TeamA"]; 20 game.TeamB = Request.QueryString["TeamB"]; 21 if (!IsPostBack) 22 { 23 SelectTable.DataSource= gameBll.GetSelectGame(game); 24 SelectTable.DataBind(); 25 } 26 } 27 } 28 }
以下为选择队伍的界面:
以下为查询后的界面:
关于代码复审,测试和之后的报告,会在接下来的几天时间内完成并逐渐完善自己的程序。