排球计分程序重构

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

计划:估计此次工作需要两周的时间。

需求分析:每次计分的时候都会产生一条记录,并且有详细的比分情况,此次新加了一个精确到得分选手,需要对数据库新加表,并建立外键。而且之前的数据结构需要变化一下。

类图

流程图

程序截图:

代码:

UI层
volleyBll bll = new volleyBll();
        private void xiangxibifen_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource= bll.selectxiangxidefen();
            DataTable dt = bll.selectxiangxidefen();
            for (int i = 0; i <dt.Rows.Count;i++)
            {    int j=0;

                if (dt.Rows[i][2] == DBNull.Value)
                { continue;  }
                else
                {
                     j= Convert.ToInt32(dt.Rows[i][2]);
                }

               dataGridView1.Rows[i].Cells[0].Value = bll.selecxuanshou(j, 1);

            }
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                int k = 0;
                if (dt.Rows[i][4] == DBNull.Value)
                { continue; }
                else
                {
                    k = Convert.ToInt32(dt.Rows[i][4]);
                }
                dataGridView1.Rows[i].Cells[1].Value = bll.selecxuanshou(k, 7);
            }
        }
BLL
  public DataTable selectxiangxidefen()
        {
            return dal.Selectxiangxidefen();
        }
        public string selecxuanshou(int serialnum, int team)
        {
            return dal.selecxuanshou(serialnum,team);
        }
Dal
 public DataTable Selectxiangxidefen()
        {
            string sql = "select * from score";
            DataTable dt = SqlHelper.ExecuteDataTable(sql);
            return dt;
        }
        public string selecxuanshou(int serialnum, int team)
        {
            string duiyuan = "";
            string sql = "select  name ,dute from team where [email protected] and [email protected] ";
            SqlParameter[] pms ={
                 new SqlParameter("@serialnum",serialnum),
           new SqlParameter("@team",team)

           };
            SqlDataReader reader = SqlHelper.ExecuteReader(sql, pms);
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    duiyuan = reader[0].ToString() + reader[1].ToString();

                }

            }
            return duiyuan;
        }

代码复审正在进行,此次还是有些地方比如业务逻辑层并没有处理好,可以通过传参数的方法。但是遇到一个问题,数据库的表的外键不知道怎么去创建,所以部分地方不太完美,表没有真正的连接起来。

时间: 2024-10-07 06:09:46

排球计分程序重构的相关文章

排球计分程序重构(一)

前言: 上学期制作的排球计分程序,本次重构主要进行了一些功能性的完善,能够查询队伍比分,以及计分精确到队员. 已经将网站发布到我的服务器上面可以浏览 http://www.colorfulhy520.top:82/Home/Index 进入正题: 初步计划将文章系列分为以下几篇: 1.综述 2.数据库设计 3.Controller和View设计 4.代码讲解 5.总结 运用到的技术 1.Petapoco PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器(ORM, Object R

排球计分程序重构(三)

Controller设计 BaseController 继承自Controller类 写了公用的一些方法和类,其他控制器继承BaseController HomeController 首页显示总比分3:0. 3:1之类的 TeamsController 队伍的操作 TeamMemberController 队员的操作 DetailScoreController 显示详细比分 ScoreingController 计分操作

排球计分程序重构(四)

View的设计 _Layout视图 其他视图在代码讲解中详细贴出 1 <!DOCTYPE html> 2 <html style="width:100%;height:100%;"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta charset="utf

排球计分程序重构(下篇)

public ActionResult Scores(long page, long limit) { PetaPoco.Page<CompetitionScore> list = CompetitionScore.Page(page, limit, "select * from CompetitionScore"); Data data = new Data(); data.count = list.TotalItems; data.data = new List<

排球计分程序重构(五中篇)

代码讲解2 TeamsController 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 7 namespace MVCVolleyball.Controllers 8 { 9 public class TeamsController : BaseController 10 { 11 12 #region

排球计分程序重构(二)

数据库的设计 1.CompetitionScore表 用于记录总比分 比如3:0 3:1这样的大比分 字段: Id HomeTeamId--主队Id GuestTeamId--客队Id HomeTeamScore--主队比分 GuestTeamScore--客队比分 2.TotalScore表 用于记录回合比分的表 比如24:22这样的每一回合的比分 字段: Id CompetitionId--比赛Id.与总比分的Id值相同,如果一场比赛有五回合那么五条记录的CompetitionId与总比分的

新需求下的排球计分程序

暑假针对不同的需求对学期末的排球计分程序进行了重构.记录如下: 当然在做这个程序的时候,也一定会用到我们平时所学的其他技术: 1.C#语言 2.ASP.NET  MVC 3.关系数据库基础知识 4.软件工程基础知识 5.PetaPoco技术 6.JQuery,Ajax 7.UiIKit  H5框架. 8.T4模板. 需求: 作为一名教练员,我希望知道详细得分信息,以便于了队员的状态. 设计文档 在参考我们平时使用的比赛网站做出如下设计文档: 首先我们进入首页,首页我们选择业务项目,之后进入具体的

排球计分程序——简单显示比分界面

作业:作为一个观众,我希望了解某一场比赛的比分,以便了解赛况.(满意条件:精确到每一局的结果比分)排球计分程序之--用户故事. 根据我当前的能力和老师要求,我想的页面效果大概是这样: 数据库的表: 运行效果如下: 选择第三局: 已胜局数还没写出来,比赛最终结果还没写出来: 部分代码如下: public class PartResult { public int partNum { get; set; } public int resultA { get; set; } public int re

ASP.NET MVC 排球计分程序 (一)综述

---恢复内容开始--- 本篇博客主要是为了用MVC来做出一个排球的计分程序,该计分程序主要实现的功能有,将两队队员的姓名和其对应的球衣号插入数据库,根据在场上的表现,由记分员记录两队的发球,扣球,拦网等得分情况,在比赛过程中可以实现自动判断是否到达获胜比分,是否获得本场比赛的胜利.当比赛胜时.可以查询出本场的MVP,以及最佳得分员,最佳发球员等数据. 初步计划将这个文章系列分为以下几篇: 1.综述 2. 一些排球计分的基本实现方 3.需求分析与数据库设计 4.实体类和SQLHelper类的设计