zoukankan      html  css  js  c++  java
  • 第十六周计应151班第四组排球计分程序

    计划:

    估计这个任务需要多少时间完成:5-6天

    开发:

    需求分析:作为一个排球记分员,我希望能够方便的记录分数(精确到每球的的分),以便及时的把分数反映给观众。

    设计文档:①排球计分程序的加减分②比赛结果的查询③比赛详细记录的查询

    具体设计:

    计分窗口
    public partial class Scoreing : Form
        {
            public string TeamA;
            public string TeamB;
            public int ScoreA = 0;//比分
            public int ScoreB=0;
            public int count = 1;//局数
            public int TeamScoreA = 0;//局比分
            public int TeamScoreB = 0;
            public StringBuilder sb=new StringBuilder();
           VolleybalScore score=new VolleybalScore();
            volleyBll bll = new volleyBll();
            public Scoreing()
            {
                InitializeComponent();
            }
    
            private void Scoreing_Load(object sender, EventArgs e)
            {
                lblTeamA.Text = TeamA;
                lblTeamB.Text = TeamB;
                jushucount(count);
                score.Teams = TeamA + ":" + TeamB;
            }
    
            private void btnAddTeamA_Click(object sender, EventArgs e)
            {
                ScoreA++;
                showScore();
                victory();
                jushucount(count);
            }
    
            private void btnAddteamB_Click(object sender, EventArgs e)
            {
                ScoreB++;
                showScore();
                victory();
                jushucount(count);
            }
            private void showScore()
            {
                lblScoreB.Text = ScoreB.ToString();
                lblScoreA.Text = ScoreA.ToString();
            }
            private void victory()
            {
                if (count < 5)
                {
                    if ((ScoreA >= 24 && Math.Abs(ScoreA - ScoreB) >= 2) || (ScoreB >= 24 && Math.Abs(ScoreA - ScoreB) >= 2))
                    {
                        if (ScoreA - ScoreB >= 2)
                        {
                            MessageBox.Show(lblCount.Text + TeamA + "胜利");
                            TeamScoreA++;
                            if (Math.Abs(TeamScoreA - TeamScoreB) == 3)
                            {
                                MessageBox.Show("比赛结束"+ TeamA + "胜利");
                                score.Victory = TeamA+ TeamScoreA.ToString() + ":" + TeamScoreB.ToString();
                                score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString();
                                bll.InsertScore(score);
                                count=1;
                                ScoreA = 0;
                                ScoreB = 0;
                                showScore();
                            }
                            sb.AppendFormat("第{0}局,{1}:{2}
    ", count, ScoreA, ScoreB);
                            lblBigScore.Text = sb.ToString();
                            if (count == 1)
                            { score.firstScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            else if (count == 2)
                            { score.secondScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            else if (count == 3)
                            { score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            else if (count == 4)
                            { score.fourthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            count++;
                            ScoreA = 0;
                            ScoreB = 0;
                            showScore();
                        }
                        if (ScoreB - ScoreA >= 2)
                        {
                            MessageBox.Show(lblCount.Text + TeamB + "胜利");
                            TeamScoreB++;
                            if (Math.Abs(TeamScoreA - TeamScoreB) == 3)
                            {
                                MessageBox.Show("比赛结束" + TeamB + "胜利");
                                score.Victory = TeamB + TeamScoreB.ToString() + ":" + TeamScoreA.ToString();
                                score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString();
                                bll.InsertScore(score);
                                count=1;
                                ScoreA = 0;
                                ScoreB = 0;
                                showScore();
                                
                            }
                            sb.AppendFormat("第{0}局,{1}:{2}
    ", count, ScoreA, ScoreB);
                            lblBigScore.Text = sb.ToString();
                            if (count == 1)
                            { score.firstScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            else if (count == 2)
                            { score.secondScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            else if (count == 3)
                            { score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            else if (count == 4)
                            { score.fourthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); }
                            count++;
                            ScoreA = 0;
                            ScoreB = 0;
                            showScore();
                        }
                    }
                }
                else if (count == 5)
                {
                    if ((ScoreA >= 15 && Math.Abs(ScoreA - ScoreB) >= 2) || (ScoreB >= 15 && Math.Abs(ScoreA - ScoreB) >= 2))
                    {
                        if (ScoreA - ScoreB >= 2)
                        {
                            MessageBox.Show(lblCount.Text + TeamA + "胜利");
                            TeamScoreA++;
                            score.Victory = TeamA + TeamScoreA.ToString() + ":" + TeamScoreB.ToString();
                            sb.AppendFormat("第{0}局,{1}:{2}
    ", count, ScoreA, ScoreB);
                            lblBigScore.Text = sb.ToString();
                            score.fifthScore = ScoreA.ToString() + ":" + ScoreB.ToString();
    
                        }
                        if (ScoreB - ScoreA >= 2)
                        {
                            MessageBox.Show(lblCount.Text + TeamB + "胜利");
                            TeamScoreB++;
                            score.Victory = TeamB + TeamScoreB.ToString() + ":" + TeamScoreA.ToString();
                            sb.AppendFormat("第{0}局,{1}:{2}/0", count, ScoreA, ScoreB);
                            lblBigScore.Text = sb.ToString();
                            score.fifthScore = ScoreA.ToString() + ":" + ScoreB.ToString();
                        }
                        count++;
                        ScoreA = 0;
                        ScoreB = 0;
                        showScore();
                        bll.InsertScore(score);
                    }
    
                }
                   
                }
             private void jushucount(int count)
            { 
                if(count==1)
                {
                    lblCount.Text= "第一局";
                }
                else if (count == 2)
                {
                    lblCount.Text = "第二局";
                }
                else if (count == 3)
                { lblCount.Text = "第三局"; }
                else if (count == 4)
                { lblCount.Text = "第四局"; }
                else if (count == 5)
                {
                    lblCount.Text = "第五局";
                }
                else
                {
                    lblCount.Text = "第一局";
                }
            }

    活动图:

    类图

    具体编码:

    Bll
    public bool InsertTeam(string team)
            {
                return dal.InsertTeam(team) > 0;
            }
            public SqlDataReader ShowTeamA()
            {
                return dal.ShowTeamA();
            }
            public SqlDataReader ShowTeamB(string teamA)
            {
                return dal.ShowTeamB(teamA);
            }
            public void InsertScore(VolleybalScore score)
            { dal.InsertScore(score); }
    Model
    namespace Model
    {
        public class VolleybalScore
        {
            public string Teams;
            public string Victory;
            public string firstScore;
            public string secondScore;
            public string thirdScore;
            public string fourthScore;
            public string fifthScore;
        }
    }
    selectTeam选择队伍窗口
    public partial class SelectTeams : Form
        {
            public SelectTeams()
            {
                InitializeComponent();
            }
            private volleyBll bll = new volleyBll();
            private void button1_Click(object sender, EventArgs e)
            {
                AddTeams addform = new AddTeams();
                addform.ShowDialog();
            }
            private void cmbShowTeamA()
            {
                SqlDataReader reader = bll.ShowTeamA();
                while (reader.Read())
                {
                    cmbTeamA.Items.Add(reader[0]);
                }
            }
            private void cmbShowTeamB(string teamA)
            {
                SqlDataReader reader = bll.ShowTeamB(teamA);
                while (reader.Read())
                {              
                    cmbTeamB.Items.Add(reader[0]);
                }
            }
            private void SelectTeams_Load(object sender, EventArgs e)
            {
                cmbShowTeamA();
            }
    
            private void cmbTeamA_SelectedIndexChanged(object sender, EventArgs e)
            {
                cmbTeamB.Items.Clear();
                string teamA = cmbTeamA.SelectedItem.ToString();
                cmbShowTeamB(teamA);
            }
    
            private void btnSubmit_Click(object sender, EventArgs e)
            {           
                Scoreing fm = new Scoreing();
                fm.TeamA = cmbTeamA.SelectedItem.ToString();
                fm.TeamB = cmbTeamB.SelectedItem.ToString();           
                SelectUser user=new SelectUser();
                fm.Show();
                this.Close();
            }
    
            private void btnBack_Click(object sender, EventArgs e)
            {
                this.Close();
                SelectUser fm = new SelectUser();
                fm.Show();
            }
    
        
    
          
        }
    DAL 
    public int InsertTeam(string team)//添加队伍信息
           {
               string sql = "insert into VolleyballTeams values(@team)";
               SqlParameter pms = new SqlParameter("@team",team);
               int count = SqlHelper.ExecuteNonQuery(sql,pms);
               return count;
           }
           public SqlDataReader ShowTeamA()//显示A队
           {
               string sql = "select * from VolleyballTeams";
               SqlDataReader reader = SqlHelper.ExecuteReader(sql);
               return reader;
           }
           public SqlDataReader ShowTeamB(string teamA)//显示B对
           {
               string sql = "select * from VolleyballTeams where name !=@teamA";
               SqlParameter pms = new SqlParameter("@teamA",teamA);
               SqlDataReader reader = SqlHelper.ExecuteReader(sql, pms);
               return reader;
           }
           public  void InsertScore(VolleybalScore score)//添加大比分
           {
               string sql = "insert into VolleybalScore values(@team,@victory,@firstScore,@secondScore,@thirdScore,@fourthScore,@fifthScore)";
               SqlParameter[] pms = new SqlParameter[]{
                   new SqlParameter("@team",score.Teams),
                   new SqlParameter("@victory",score.Victory),
                   new SqlParameter("@firstScore",score.firstScore),
                   new SqlParameter("@secondScore",score.secondScore),
                   new SqlParameter("@thirdScore",score.thirdScore),
                   new SqlParameter("@fourthScore",score.fourthScore==null?"null":score.fourthScore),
                   new SqlParameter("@fifthScore",score.fifthScore==null?"null":score.fifthScore)
           };
               SqlHelper.ExecuteNonQuery(sql,pms);           
           }
      

    程序运行截图在上次的博客中已贴出,本次只是完善了功能,UI并无变动

  • 相关阅读:
    子组 正则表达式
    正则表达式
    马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?-2014-03-20
    形象化的spring 依赖注入原理
    程序员的六层境界
    apache配置运行zendframework 2
    php编写简单的页面跳转功能
    php随机验证码
    没啥说的
    PHP流程控制语句下
  • 原文地址:https://www.cnblogs.com/colorful-Ji/p/6221643.html
Copyright © 2011-2022 走看看