首页 > 代码库 > 排球计分规则之三层架构

排球计分规则之三层架构

需求

        作为一名现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员、教练员及时掌握比赛状况。(满意条件:每一次比分的改变,都要形成一条记录)。

计划

         估计此次工作需要一周的时间。

需求分析: 

              根据用户需求可知我们此次程序需要做到每次分数变化的时候都要记录。当记分员操作之后就要形成记录。

设计文档:

根据《2015-2016赛季中国排球联赛竞赛规程》,计分规则如下:

1、目前的排球比赛采用五局三胜制。前四局每局25分,每局比赛完成后交换场地,达到24分时,必须比赛的双方相差2分才能分出胜负;决胜局为15分,比赛的双方任何一方先达到8分时,交换场地继续比赛,当双方同时达到14分时候,也是必须相差两分才能决出胜负。
排球计分的发展历程:1917年规定每局为15分。1918年规定上场运动员每队为6人。1922年规定每方必须在3次以内将球击过网。比赛方法以前采用发球得分制,1998年10月28日国际排联决定改为每球得分制,仍为五局三胜,前四局每局先得25分者为胜,第五局先得15分者为胜,若出现24平或14平时,要继续比赛至某队领先2分才能取胜。

2、每点击一次按钮,分数列表就增加一行。

3、己方失误时。对方增加一分。

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace VolleyballDll
{
    public  static  class SqlHelper
    {
        //获取连接字符串
        public static readonly string constr = ConfigurationManager.ConnectionStrings["itcast"].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);
                }
                con.Open();
                return cmd.ExecuteReader();
            
            }
            
            

        }
        //返回一张表
        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] pms)
        { 
            DataTable dt=new DataTable();
        using (SqlDataAdapter ada=new SqlDataAdapter(sql,constr))
        {
            if (pms!= null)
            {
                ada.SelectCommand.Parameters.AddRange(pms);
            }
            ada.Fill(dt);
        }
        return dt;
        }


      
    }
}





<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link rel="Stylesheet" href="http://www.mamicode.com/Css/VolleyBallIndex.css" />
    <script  language="javascript">
        function one() {
            var v = document.getElementById(‘one‘);
            if (v.style.display == "none") {
                v.style.display = "block";
            }
            else if( v.style.display="block"){
                v.style.display = "none";
            }
        }
</script>
    <style type="text/css">
        #mian
        {
            height: 227px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="mian">
    <div class="Center">
    <table>
    <tr>
    <td>
        <asp:DropDownList ID="DropDownListA" runat="server" CausesValidation="True">
        </asp:DropDownList>
     </td><td>
        <asp:DropDownList ID="DropDownListB" runat="server" CausesValidation="True">
        </asp:DropDownList>
      </td>
      </tr><tr><td colspan="2">
      <a href="javascript:one()">如果没有你需要队伍名称请添加^</a>
        <div id="one">
        <asp:TextBox ID="TeamName" runat="server"></asp:TextBox>
        <asp:Button ID="btnSaveName" runat="server" Text="保存名称" 
            onclick="btnSaveName_Click" /></td>
            </tr>
        </div>
        <tr><td>
        <asp:Button ID="btnSave" runat="server" Text="进入比赛" onclick="btnSave_Click" />
        </td><td>
        <asp:Button ID="btnSelect" runat="server" Text="查询比赛" onclick="btnSelect_Click" />
        </td></tr>
        </table>
    </div>
    </div>
    </form>
</body>
</html>

 

总结:这次的三层架构是在别人的帮助下,做成的(有太多不懂,不会的),但是运行还是有错误,还要进一步修改。

排球计分规则之三层架构