第二次PSP

1、计划

    五天左右

2、需求分析

     作为一个排球教练的助手,我需要统计本队每名球员在球场各个技术动作的发挥情况,每个队员的技术习惯,以便教练员即时指导比赛,并作为以后球员训练的依据

3、生成设计文档

      输入本次比赛人员名单,然后根据比赛情况统计队员的技术动作、习惯,最后保存为txt文档

4、设计复审

        和同学讨教,最后精简了一点设计

5、代码规范

     Visual Studio 2010

6、具体设计

7、具体编码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Management;

using System.IO;

namespace 排球

{

    public partial class ZhouShou : Form

    {

        public ZhouShou()

        {

            InitializeComponent();

        }            

        }

        private void ZhouShou_Load(object sender, EventArgs e)

        {

           //加载时首先显示输入队员名称的groupBox

            groupBox1.Visible = true;

            groupBox2.Visible = false;

        }

      //单击确定按钮时,隐藏输入界面,显示统计界面   

 private void btnOK_Click(object sender, EventArgs e)

        {

            string ZhuGong111 = txtZhuGong1.Text;

            string ZhuGong222 = txtZhuGong2.Text;

            string FuGong111 = txtFuGong1.Text;

            string FuGong222 = txtFuGong2.Text;

            string JieYing111 = txtJieYing.Text;

            string ErChuan111 = txtErChuan.Text;

            string ZiYouRen111 = txtZiYouRen.Text;

                //判断文本框是否都有输入队名,,如果其中一个文本框为空就提示错误信息

            if (string.IsNullOrEmpty(ZhuGong111)) { MessageBox.Show("请输入本场比赛的主攻手一"); }

            else if (string.IsNullOrEmpty(FuGong111)) { MessageBox.Show("请输入本场比赛的副攻手一"); }

            else if (string.IsNullOrEmpty(ZhuGong222)) { MessageBox.Show("请输入本场比赛的主攻手二"); }

            else if (string.IsNullOrEmpty(FuGong222)) { MessageBox.Show("请输入本场比赛的副攻手二"); }

            else if (string.IsNullOrEmpty(JieYing111)) { MessageBox.Show("请输入本场比赛的接应"); }

            else if (string.IsNullOrEmpty(ErChuan111)) { MessageBox.Show("请输入本场比赛的二传"); }

            else if (string.IsNullOrEmpty(ZiYouRen111)) { MessageBox.Show("请输入本场比赛的自由人"); }

            else

            {//如果都输入就显示groupBox2,隐藏groupBox1

                groupBox1.Visible = false;

                groupBox2.Visible = true;

                linkZhuGong1.Text = ZhuGong1.Text + txtZhuGong1.Text;

                linkFuGong1.Text=FuGong1.Text+txtFuGong1.Text;

                linkZhuGong2.Text = ZhuGong2.Text + txtZhuGong2.Text;

                linkFuGong2.Text = FuGong2.Text + txtFuGong2.Text;

                linkJieYing.Text = JieYing.Text + txtJieYing.Text;

                linkErChuan.Text = ErChuan.Text + txtErChuan.Text;

                linkZiYouRen.Text = ZiYouRen.Text + txtZiYouRen.Text;

            }

 //单击任一个linklabel时,label就显示为linklabel 的值,    

 private void linkFuGong1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkFuGong1.Text;

        }

        private void linkZhuGong2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkZhuGong2.Text;

        }

       private void linkZhuGong1_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkZhuGong1.Text;

        }

        private void linkFuGong2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkFuGong2.Text;

        }

        private void linkJieYing_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkJieYing.Text;

        }

        private void linkErChuan_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkErChuan.Text;

        }

        private void linkZiYouRen_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            lblName.Text = linkZiYouRen.Text;

        }

//当单击相应的按钮时,就将所选队员名字和得分或失误次数添加到defen文本框内      

        int i = 0;

        private void button1_Click(object sender, EventArgs e)

        {

             i++;

             txtFen.AppendText = lblName.Text + button1.Text + " " + i;

        }

        int FQ = 0;

        private void btnFaQiu_Click(object sender, EventArgs e)

        {

            FQ++;

            txtFen.AppendText(lblName.Text+btnFaQiu.Text+" "+FQ);        }

        int KQ=0;

        private void btnKouQiu_Click(object sender, EventArgs e)

        {

            KQ++;

            txtFen.AppendText(lblName.Text + btnKouQiu.Text + " " + KQ);

        }

        int CW=0;

        private void btnChouWang_Click(object sender, EventArgs e)

        {

            CW++;

            txtFen.AppendText(lblName.Text + btnChouWang.Text + " " + CW);

        }

        int DQ = 0;

        private void btnDiaoQiu_Click(object sender, EventArgs e)

        {

            DQ++;

            txtFen.AppendText(lblName.Text + btnDiaoQiu.Text + " " + DQ);

        }

        int LWCJ = 0;

        private void btnLWChuJie_Click(object sender, EventArgs e)

        {

            LWCJ++;

            txtFen.AppendText(lblName.Text + btnLWChuJie.Text + " " + LWCJ);

        }

        int FQSW = 0;

        private void btnFaQiuShiWu_Click(object sender, EventArgs e)

        {

            FQSW++;

            txtFen.AppendText(lblName.Text + btnFaQiuShiWu.Text + " " + FQSW);

        }

        int KQCJ = 0;

        private void btnKouQiuChuJie_Click(object sender, EventArgs e)

        {

            KQCJ++;

            txtFen.AppendText(lblName.Text + btnKouQiuChuJie.Text + " " + KQCJ);

        }

//保存

        private void lastOK_Click(object sender, EventArgs e)

        {

            FileStream fs = new FileStream("C:\file.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter m_streamWriter = new StreamWriter(fs);

            m_streamWriter.Flush();  

            m_streamWriter.BaseStream.Seek(0, SeekOrigin.Begin);

            m_streamWriter.Write(txtFen.Text);

            m_streamWriter.Close();

            MessageBox.Show("保存成功!");

            groupBox2.Visible = false;

            groupBox1.Visible = true;

        }

    }

}

 

8、代码复审
      功能基本实现,无错 

9、测试
       
文本框值为空时弹出对话框:

输入完毕点击确定后:

保存时:

 

10、测试报告
     能实现的功能基本已被实现

11、计算工作量
        比预算少了一天

12、事后总结 

   C#学的不是很好,很多东西还需要自己去扩展,比如,就目前而言,在输入队员名称时,需要限制文本框只能输入中文我还是无法实现

原文地址:https://www.cnblogs.com/yeting9603/p/6255130.html