排球比赛计分规则

开发流程如下:

·项目计划

完成这个项目需要的时间:3~5天

·项目开发

·需求分析

.用户故事:

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

·生成设计文档

·由排球比赛用户故事的需求分析可知,此程序是用来统计各个队伍的总比分和队伍中每个球员的详细得分情况的,并针对每一次比分的改变,都要形成一条记录。

·计划复审

·正在进一步的商讨中。

·代码规范

·根据Visual Studio 2010规范去写。

·具体设计

·URL活动图如下:

·URL活动图如下:

·具体编码

//SqlHelper类

public static class SqlHelper
    {
        //1.连接字符串
        private static readonly string constr = ConfigurationManager.ConnectionStrings["itcast"].ConnectionString;

//2.执行增删改
        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();
                }
            }
        }

//3.执行返回单个值(查)
        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();
                }
            }
        }

//4.执行返回多个值,多行
        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();
                    return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                }
                catch (Exception)
                {
                    con.Close();
                    con.Dispose();
                    throw;
                }
            }
        }

//5.执行返回一张表
        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;
        }
    }

//Model实体模型

public class TuanDui
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }

public class JiFen
    {
        public int Num { get; set; }
        public string NameA { get; set; }
        public string NameB { get; set; }
        public int JuNum { get; set; }
        public int JuFenA { get; set; }
        public int JuFenB { get; set; }
        public int ZongA { get; set; }
        public int ZongB { get; set; }
    }

//volleyballDAL层

public class volleyballDAL
    {

public TuanDui SelectTuanDui()
        {
            string sql = "select * from tuandui";
            TuanDui td = null;
            using (SqlDataReader reader = SqlHelper.ExecuteReader(sql))
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        td = new TuanDui();
                        td.ID = (int)reader["Id"];
                        td.Name = reader["Name"].ToString();
                    }
                }
            }
            return td;
        }

public JiFen SelectJiFen()
        {
            string sql = "select * from JiFen";
            JiFen jf = null;
            using (SqlDataReader reader = SqlHelper.ExecuteReader(sql))
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        jf = new JiFen();
                        jf.Num = (int)reader["Num"];
                        jf.NameA = reader["NameA"].ToString();
                        jf.NameB = reader["NameB"].ToString();
                        jf.JuNum = (int)reader["JuNum"];
                        jf.JuFenA = (int)reader["JuFenA"];
                        jf.JuFenB = (int)reader["JuFenA"];
                        jf.ZongA = (int)reader["ZongA"];
                        jf.ZongB = (int)reader["ZongB"];
                    }
                }
            }
            return jf ;

}  
    }

//volleyballBLL层

public class volleyballBLL
    {
        private volleyballDAL dal = new volleyballDAL();

public TuanDui GetSelectTuanDui()
        {
            return dal.SelectTuanDui();
        }

public JiFen GetSelectJiFen()
        {
            return dal.SelectJiFen();
        }

}

//volleyballUI层

public partial class volleyball : System.Web.UI.Page
    {
        private JuFen jf = new JuFen();

private volleyballDAL dal = new volleyballDAL();

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
               
            }
        }

public void Add(string add)
        {
            jf.JuFenA = Convert.ToInt32(txtJuFenA.Text);
            jf.JuFenB = Convert.ToInt32(txtJuFenB.Text);
            jf.ZongA = Convert.ToInt32(txtZongA.Text);
            jf.ZongB = Convert.ToInt32(txtZongB.Text);
            jf.Num = jf.ZongA = jf.ZongB;
            if(add=="A1")
            {
                jf.JuFenA += 1;
                txtJuFenA.Text = jf.JuFenA.ToString();
                PanDuan();
            }
            else if(add=="B1")
            {
                jf.JuFenB += 1;
                txtJuFenB.Text=jf.JuFenB .ToString();
                PanDuan();
            }
        }

public void Jian(string sub)
        {
            jf.JuFenA = Convert.ToInt32(txtJuFenA.Text);
            jf.JuFenB = Convert.ToInt32(txtJuFenB.Text);
            jf.ZongA = Convert.ToInt32(txtZongA.Text);
            jf.ZongB = Convert.ToInt32(txtZongB.Text);
            jf.Num = jf.ZongA +jf.ZongB;
            if(sub=="A2")
            {
                if (Convert.ToInt32(txtJuFenA.Text) == 0)
                {
                    jf.JuFenA =0;
                    txtJuFenA.Text = jf.JuFenA.ToString();
                }
                else
                {
                    jf.JuFenA -= 1;
                    txtJuFenA.Text = jf.JuFenA.ToString();
                }

}
            else if(sub == "B2")
            {
                if (Convert.ToInt32(txtJuFenB.Text) == 0)
                {
                    jf.JuFenB = 0;
                    txtJuFenB.Text = jf.JuFenB.ToString();
                }
                else
                {
                    jf.JuFenB -= 1;
                    txtJuFenB.Text = jf.JuFenB.ToString();
                }
            }
        }

protected void Button1_Click(object sender, EventArgs e)
        {
            string add="A1";
            Add(add);
        }

protected void Button3_Click(object sender, EventArgs e)
        {
            string sub = "A2";
            Jian(sub);
        }

protected void Button2_Click(object sender, EventArgs e)
        {
            string add = "B1";
            Add(add);
        }

protected void Button4_Click(object sender, EventArgs e)
        {
            string sub = "B2";
            Jian(sub);
        }

.界面显示

·代码复审

.正在进一步复审中。

·测试

.准备放在下一步中进行。

.报告

.测试报告

.测试结束后再写。

.计算工作量

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

.整个项目费时费力费心血,但收获不少.会进一步改进此程序,争取做到更加完善.

时间: 2024-10-10 04:31:15

排球比赛计分规则的相关文章

排球比赛计分规则功能说明书

1.1 编写目的 这份需求规格说明书是需求分析阶段的产物,在经过我们小组内的沟通之后,详细的了解了比赛计分规则之后及用户需要所形成的汇总.通过这个文档能够明确以后项目的进度与规划,组织软件的开发与测试. 1.2 项目背景 开发名称:排球比赛计分规则 项目提出者:老师 项目开发者:第二组全体成员 用户:喜欢排球的观众.裁判员.教练及运动员 实现该软件的计算机网络:学校机房 项目与其他软件:系统关系 1.3 专业术语解释 短平快 排球运动快球的一种.一般指二传手正面传出速度快.弧度平的球的同时,扣球

排球比赛计分程序的典型用户和场景

 姓名 赵四 性别.年龄 男,20 职业 保安 收入 3000~4000/月 知识层次和能力 大专生,有一定的电脑操作能力,对排球非常的感兴趣 生活/工作能力 学习,工作 动机.目的.困难 动机是想看排球比赛,目的给自己喜欢的球队加油,困难是不懂排球规则 用户偏好 看电影,玩游戏 用户比例 不确定 典型场景 休息时想看奥运会,替自己喜欢的球队加油 典型描述 奥运会期间,想看中国女排比赛,但周围没有人懂排球规则, 所以想看这个排球比赛计分规则来了解,  以便更好的理解比赛 姓名: 王五 性别和年龄

排球比赛计分程序功能说明书

编写目的让裁判和排球爱好者,赛事组织便于记录分数和查询赛事记录.目标不包括犯规判定.项目用户赛事组织和裁判以及广大排球爱好者.项目典型场景2016年里约奥运会女排决赛.专业术语插上进攻后排队员插到前排作二传,把球传给前排3个队员扣球的进攻形式.一般以1号位插上为多.插上进攻能保持前排3点进攻,充分利用球网的全长,有利于突破对方的防线.战术变化多,可以打出交叉.梯次.夹塞.立体进攻.双快一游动等战术进攻. 夹塞进攻一位扣球队员却二传手配合,佯扣短平快球,吸引对方拦网.另一位扣手突然插入两人之间扣球

计应1班第4小组“排球比赛计分程序”的典型用户、创立场景、用户故事

姓名 张三 年龄 20 职业 在校大学生 收入 月生活费1200 知识层次和能力 大专生,学习计算机,对排球运动很是喜爱 动机,目的,困难 动机是喜欢看排球比赛,目的给中国队加油,困难是不是十分了解排球规则 用户 偏好 运动 用户比例 不确定 典型场景 看奥运会,为中国队加油 典型描述 快到奥运会期间,想看中国女排比赛,但不了解排球规则,所以想看这个排球比赛计分规则来了解,  以便更好的理解比赛 姓名 李四 年龄 50 职业 体育馆负责人 收入 一万/月 知识层次和能力 本科生毕业,管理一个体育

“排球比赛计分程序”的典型用户、场景用户故事

典型用户:   张小明--排球运动员 名字 张小明 性别.年龄 男.20岁 职业 国家排球运动员 收入 10万元/年 知识层次和能力 本科毕业,拥有高超的排球技术 工作状况 平常在基地训练 用户偏好 用一些计分程序 用户比例 ? 典型场景 使用各种计分程序 典型描述 不在打排球就在打排球的路上   李华中---裁判 名字 李华中 性别.年龄 男.44岁 职业 裁判 收入 20万元/年 知识层次和能力 本科,每天和软件打交道 工作状况 训练球员 用户偏好 用一些计分程序 用户比例 ? 典型场景 比

MVC之排球比赛计分程序 ——(一)需求分析与数据库设计

在实际的项目中,需求分析和数据库的设计是很重要的一个环节,这个环节会直接影响项目的开发过程和质量.实际中,这个环节不但需要系统分析师.软件工程师等计算机方面的专家,还需要相关领域的领域专家参与才能完成. 需求分析: 这个项目是一个排球比赛计分程序,其业务极为简单,现将其描述如下. 1.任何观众都可以进行比赛的分数查询,查询完成后,页面上显示查询的相应的比赛内容. 2.任何观众都不可以对分数进行增删改查. 3.记分员可以对比赛进行实时记录,并将分数记录在数据库,方便观众查询,以及对分数进行通过操作

MVC之排球比赛计分程序 ——(七)具体实现

1,新建一个项目,命名为:Volleyball,选择基本模板.如图: 点击确定.创建项目. 2,右键单击model文件夹,添加模型类:模型类分别是:GzScore.cs和Players.cs 具体代码如下: public class Team    {        [Key]        public int TId { get; set; }        [Display(Name = "队伍名称")]        public string TName { get; set

MVC之排球比赛计分程序 ——(五)控制器的设计与实现

控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求.所以当单击Web页面中的超链接和发送HTML表单时, 控制器本身不输出任何东西和做任何处理.它只是接收请求并决定调用哪个模型构件去处理请求, 然后用确定用哪个视图来显示模型处理返回的数据. Controller控制器接受用户请求,然后返回视图.控制器控制视图的产生.我们根据此软件的需求,设计所 需要的Controller.我们添加控制器就需要放到controller文件夹里. 我们为实现此软件的需求,目前我们需要五个Controlle

排球比赛积分规则

比赛性质: 排球比赛是两队在由球网分开的场地上进行比赛的集体项目. 比赛的目的,是各队遵守规则,将球击过球网,使其落在对方场区的地面上,而防止秋落在本方场区的地面上.每队可击球三次(拦网触球除外)将球击回对方场区. 比赛由发球开始.发球队员击球使其从网上飞至对方厂区,比赛由此继续进行,直至球落地.出界或一队不能合法的 将球击回对方厂区. 比赛队员组成: 一个队最多有12名队员,一名教练,一名助理,一名训练员和一名医生.队员有一名队长,可选一名队员为后排自由防守队员. 比赛方法: 胜一场:五局三胜