• 排球计分程序(记分员)


    1.计划:

    做这个任务大概需要六天。

    2.需求:

    作为一名现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员、教练员及时掌握比赛状况。
    3.生成设计文档:

    1) 建一个数据库,将各个国家的比赛情况记录其中。

    2)对每场比赛进行计分记录。

    3)记录每个球员的进球得分,队伍中担任位置,失误。

    4)对个人及每场比赛进行累计计算。

     

    4、设计复审:

    和同学进行讨论,对设计进行了改进。

    5、代码规范:

    进行了简单的代码规范.
    6、具体编码:

    StringBuilder sb = new StringBuilder();

    public string bisai(string str)//获取比赛名控件值
    {
    return name.Text = str;
    }
    public void TeamA(string str)//获取甲方队伍名
    {
    teamA.Text = str;
    }
    public void TeamB(string str)//获取乙方队伍名
    {
    teamB.Text = str;
    }
    public void insert(string win) //记录插入
    {
    string sql = "insert into paiqiu(game,teamA,teamB,one,two,three,four,five,win,qiangqing) values(@game,@teamA,@teameB,@one,@two,@three,@four,@five,@win,@qiangqing)";
    SqlParameter[] sp = {
    new SqlParameter("@game",name.Text),
    new SqlParameter("@teamA",teamA.Text),
    new SqlParameter("@teameB",teamB.Text),
    new SqlParameter("@one",one),
    new SqlParameter("@two",two),
    new SqlParameter("@three",three),
    new SqlParameter("@four",four==null?DBNull.Value:(object)four),
    new SqlParameter("@five",five==null?DBNull.Value:(object)five),
    new SqlParameter("@win",win),
    new SqlParameter("@qiangqing",sb.ToString())
    };
    SqlHelper.ExecuteNonQuery(sql, sp);
    }
    第一局:

    if (int.Parse(txtone.Text) < 25)
    {
    int a = int.Parse(txtone.Text);
    a++;
    txtone.Text = a.ToString();
    int c = int.Parse(txtone2.Text);
    if (a == 25 && a - 1 > c)
    {
    MessageBox.Show("第一局" + btnwin1.Text);
    lblfirst.Text = "第一局比分是" + txtone.Text + ":" + txtone2.Text;
    int b = int.Parse(txtscore1.Text);
    b++;
    txtscore1.Text = b.ToString();
    }
    }
    else
    {
    int a = int.Parse(txtone.Text);
    a++;
    txtone.Text = a.ToString();
    int c = int.Parse(txtone2.Text);
    if (a - 1 > c)
    {
    MessageBox.Show("第一局" + btnwin1.Text);
    lblfirst.Text = "第一局比分是" + txtone.Text + ":" + txtone2.Text;
    int b = int.Parse(txtscore1.Text);
    b++;
    txtscore1.Text = b.ToString();
    }
    }

    }
    else if (int.Parse(txtscore1.Text) + int.Parse(txtscore2.Text) ==1)
    {
    //第一局结束
    将数据放入到数据库中

    ChaRuDAL dal = new ChaRuDAL();
    //插入第一队球员信息
    public int insert(string name,string score)
    {
    return dal.insert(name,score);
    }
    //插入第二队队球员信息
    public int insert1(string name,string score)
    {
    return dal.insert1(name,score);
    }

    工作人员查询

    public DataTable getAllName()
    {
    string sql = "select distinct name from one";
    return SqlHelper.ExecuteDataTable(sql,null);
    }

    //查询最高分

    string sql = "select count(*) as name,score from one group by score order by count(*) desc;";
    SqlDataReader dr=SqlHelper.ExecuteReader(sql,null);
    if (dr.HasRows)
    {
    dr.Read();
    name= "@name";
    score= dr["score"].ToString();
    }
    public void select(string team,int score,int chang,int ju)
    {
    string sql = "select * from paiming where sname='"+name.Text.ToString()+"' and dname='"+team+"'";
    SqlDataReader reader=SqlHelper.ExecuteReader(sql);
    if (reader.HasRows)
    {
    while (reader.Read())
    {
    int score0 = Convert.ToInt32(reader[2]) + score;
    int chang0 = Convert.ToInt32(reader[3]) + chang;
    int ju0 = Convert.ToInt32(reader[4]) + ju;
    update(team, score0, chang0, ju0);
    }
    }
    else
    {
    insertPM(team, score, chang, ju);
    }
    }
    string one=null, two=null, three=null, four=null, five=null;

    private void A_Click(object sender, EventArgs e)//甲方加分
    {
    int a=int.Parse(scoreA.Text) + 1;
    int b = int.Parse(scoreB.Text);
    sb.AppendFormat("{0}:{1}={2}:{3}\r\n", teamA.Text, teamB.Text, a, b);

    int i=Convert.ToInt32( lblNum.Text.Substring(1, 1));
    int sa = Convert.ToInt32(lblA.Text);
    scoreA.Text = a.ToString();
    if (i < 5)
    {
    if (a >= 25 && a - b >= 2)
    {
    string str = string.Format("本局甲方:{0}胜", teamA.Text);
    MessageBox.Show(str);
    scoreA.Text = "0";
    scoreB.Text = "0";
    sa++; i++;
    lblA.Text = (sa).ToString();
    lblNum.Text = "第" + i + "局";
    sb.AppendFormat("第{0}局 {1}:{2}={3}:{4} 本局{5}胜\r\n", i - 1, teamA.Text, teamB.Text, a, b, teamA.Text);
    switch(i-1)
    {
    case 1:one=string.Format("{0}:{1}",a,b); break;
    case 2:two=string.Format("{0}:{1}",a,b); break;
    case 3:three=string.Format("{0}:{1}",a,b); break;
    case 4:four=string.Format("{0}:{1}",a,b); break;
    }
    }
    }
    else
    {
    if(a>=15&&a-b>=2)
    {
    sb.AppendFormat("第{0}局 {1}:{2}={3}:{4} 本局{5}胜\r\n", i - 1, teamA.Text, teamB.Text, a, b, teamA.Text);
    string str = string.Format("本局甲方:{0}胜", teamA.Text);
    MessageBox.Show(str);
    sa++;
    lblA.Text = (sa).ToString();
    five=string.Format("{0}:{1}",a,b);
    }
    }
    if (sa == 3) {
    sb.AppendFormat("本场比赛甲方:{0}胜\r\n比赛结束",teamA.Text);
    string str=string.Format("本场比赛{0}胜",teamA.Text);
    win.Text = str;
    win.Visible = true;
    A.Visible = false;
    B.Visible = false;
    insert(teamA.Text);
    if (lblB.Text == "2") { sA = 2; sB = 1; }
    else { sA = 3; sB = 0; }
    select(teamA.Text.ToString(),sA,1,sa);
    select(teamB.Text.ToString(), sB, 0, Convert.ToInt32(lblB.Text));
    }
    textBox1.Text = sb.ToString();
    }

    private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)//记录显示
    {
    if (textBox1.Visible == false)
    {
    textBox1.Visible = true;
    }
    else
    {
    textBox1.Visible = false;
    }
    }

    private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)//比赛重置
    {
    this.Close();
    writeHistory0 a = new writeHistory0();
    a.Show();

    }

    private void Form1_Load(object sender, EventArgs e)
    {
    sb.AppendFormat("比赛名称:{0}\r\n甲方:{1} 乙方:{2}\r\n",name.Text, teamA.Text, teamB.Text);
    textBox1.Text = sb.ToString();
    }

    private void lblIndex_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)//跳转到查询
    {
    this.Close();
    historySelect a = new historySelect();
    a.Show();
    }

    private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)//退出
    {
    Application.Exit();
    }

    private void btn1_Click(object sender, EventArgs e)//甲方减分
    {
    int a = int.Parse(scoreA.Text);
    int b = int.Parse(scoreB.Text);
    if (a > 0)
    {
    a--;
    scoreA.Text = a.ToString();

    textBox1.Text = sb.ToString();
    }
    else
    {
    MessageBox.Show("操作失败");
    }
    }

    private void btn2_Click(object sender, EventArgs e)//乙方减分
    {
    int a = int.Parse(scoreA.Text);
    int b = int.Parse(scoreB.Text);
    if (b > 0)
    {
    b--;
    scoreB.Text = b.ToString();

    textBox1.Text = sb.ToString();
    }
    else
    {
    MessageBox.Show("操作失败");
    }
    }
    8、代码复审:
    经过复审修改完善了部分代码

    9、测试:
    基本功能测试成功

    10、总结:

    近两个月没有练习,做程序明显感觉许多语法忘了,费了不少功夫,近期要加大练习力度,不能懈怠。

  • 相关阅读:
    /etc/init.d/functions: No such file or directory报错问题
    在Linux上安装Python3.7.1
    python 使用openpyxl实现读写xlsx文件
    Git 撤销本地修改
    element的el-table表格自定义表头,slot="header"内,数据不更新的问题
    记录下本地修改文件名称大小写问题线上说找不到文件
    解决国内访问github慢的问题笔记
    vue项目中使用echarts实现疫情地图
    uni-app项目搭建
    uniapp引入uni-ui组件报错TypeError: this.getOptions is not a function
  • 原文地址:https://www.cnblogs.com/sdl1305702018/p/6565420.html
Copyright © 2020-2023  润新知