• 结对编程


    结对编程:

    一:根据老师要求在第二次作业基础上做增量开发,我们完成了老师的具体要求

    1:处理用户的具体输入,例如输入字母或符号等,处理除法运算中分母为

    零的情况,吃力结果为负的情况,保证是小学生水平不出现负数。

    2:设定倒计时。

    3:用户可以设定随机整数的范围和题目数量。

    4:用户可以选择计算类型,例如加减乘除,或可以选择随机生成四则运

    算中的一种。

    二:设计思路

    1:在上次作业的基础上,我们在窗体上再放两个textBox控件,由用户填写取值范围;放一个Timer控件,设定倒计时。

    2:当定义Random()方法的时候,再定义一个变量m,如果第一个数小于第二个数,就由m来转换第一个数和第二个数的位置。

    3:在除法运算中考虑到分子和分母都有可能为0的情况,所以在运行除法运算之前,就要求取值范围不能从0开始。

    三:PSP耗时分析

    PSP2.1 Personal Software Process Stages Time(h)
    Planning 计划 13
      • Estimate 估计这个任务需要多长时间 13
    Development 开发 11
      • Analysis 需求分析 0.5
      • Design Spec 生成设计文档
      • Coding Standard 代码规范
      • Design 具体设计
      • Coding 具体代码 3
      • Code Review 代码复审 2
      • Text 测试 1
    Reporting 报告 2
      • Test Report 测试报告 0.5
      • Size Measurement 计算工作量

      • Postmortem 事后总结

    1

    耗时13个小时终于完成了!

    四:具体思路如下(增量思路)

    Miss xu:老师这次布置的作业有点难度啊!

    Miss fu:恩,我们来看看怎么做!

    Miss xu:先来看增量内容的第一个问题;

    Miss fu:用户的错误输入?就是说用户如果输入字母或符号,按回车键的时候,会有错误提示框,应该不难。我来写试试!

               if (textBox3.Text == sum.ToString())

                            right++;

                    if (textBox3.Text != sum.ToString())

                    {

                        MessageBox.Show("结果必须是数字!");

                    }

                  RandomNum();

                }

    Miss xu:我们来运行看看!(当我输入字母的时候,按回车键,确实弹出提示框了)

    Miss fu:太棒了!我也来试试。(fu拿来鼠标和键盘)

         (fu点击“÷”按钮,出来第一个数是3第二个数是2,fu就随便填了一个数字,发现也弹出了“结果必须是数字!”的提示框)

    Miss xu:不行啊!我输入数字也有提示信息,虽然计算错误,但也不符合我们的要求啊。

    Miss fu:看来这个方法行不通啊!

    Miss xu:要不这样吧!我们就在窗体的“结果”上面放个Label控件,设Text为“输入结果只能是数字”提醒用户,我想就算是小学生也不会把结果写成字母或符号吧!

    Miss fu:这个主意不错,就这样吧!

    Miss fu:处理结果为负数的情况,就是第一个数必须大于第二个数

    Miss xu: 我们用If语句来判断,如果第一个数小于第二个数,就用MessageBox.Show()弹出提示框(“结果不能为负数,请按回车键进入下一题!”)。我写试试:

              if (int.Parse(textBox1.Text) >= int.Parse(textBox2.Text))

                        {

                            result = int.Parse(textBox1.Text) - int.Parse(textBox2.Text);

                        }

                        else

                        {

                            MessageBox.Show("结果不能为负数,请按回车键进入下一题!");

                        }

                        break;

    Miss fu:运行试试

    Miss xu:运行成功啦!我们来多做几题(我们发现结果为负数的也被计入了总数,这就不符合我们的要求了)

    Miss fu:有没有什么方法,在点击“-”按钮的时候,第一个数就已经大于第二个数了。我们应该在button3(“-”按钮)的Click事件里写代码。

       (我们改了又写,写了又改,还是不行)

    Miss fu:要不我们去问问毛连成(同学)吧,他学的不错。

    Miss xu: 好的!

    (他告诉我们在Random()方法中定义一个变量,用If语句来判断,如果第二个数大于第一个数,变量=n2.ToString();

                    textBox2.Text = n1.ToString();

                    textBox1.Text = 变量;

                    textBox3.Text = "";

                    Count++;这样把第一个数和第二数位置变一下就可以了。)

    (我们根据他告诉的方法,写了代码

      private void RandomNum()

            {

                Random ran = new Random();

                int n1, n2; string m;

                n1 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

                n2 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

                if (n1 >= n2)

                {

                    textBox1.Text = n1.ToString();

                    textBox2.Text = n2.ToString();

                    textBox3.Text = "";

                    Count++;

                }

                else if (n1 < n2)

                {

                    m = n2.ToString();

                    textBox2.Text = n1.ToString();

                    textBox1.Text = m;

                    textBox3.Text = "";

                    Count++;

                }

               

            }   

    Miss fu:太好了,终于成功了,非常谢谢毛连成。

    Miss xu:哈哈!那分母不为0,用这种方法也可以做了,我也写试试: private void R()

            {

                Random ran = new Random();

                int a1, a2; string m;

                a1 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

                a2 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

               

               

                if (a2 != 0)

                {

                    textBox1.Text = a1.ToString();

                    textBox2.Text = a2.ToString();

                    textBox3.Text = "";

                    Count++;

                }

                else if(!(a2!=0)||a1!=0)

                {

                    m = a2.ToString();

                    textBox2.Text = a1.ToString();

                    textBox1.Text = m;

                    textBox3.Text = "";

                    Count++;

                }

    Miss fu:不行,还有分母为0的。你想一下,如果分子也为0,那位置换了,分母不还是0 吗。

    Miss xu:是哦。那我们判断一下,如果第二数为0 第一个数就不能为0,这样就可以换位置了。

    (我们写了好久,都不行)

    Miss fu:这数是随机给的,我们不能保证分子不为0;既然这样,我们就让取值范围从1开始,就能避免为0的情况了。写试试:

       private void R()

            {

                Random ran = new Random();

                int a1, a2;

                a1 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

                a2 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

                if (int .Parse(textBox4.Text)!=0)

                {

                    textBox1.Text = a1.ToString();

                    textBox2.Text = a2.ToString();

                    textBox3.Text = "";

                    Count++;

                }

               

                else

                {

                    MessageBox.Show("在除法运算中,取值范围不能从0开始?");

                }

            }

     

    Miss xu:倒计时我们学过,我来写(xu拿过键盘很快就写好了)

    Miss fu:OK,看下一个要求,设定随机整数的范围,我们把上次1-11的范围改成可以改变的范围,先在窗体上放两个textBox控件

    Miss xu:我来添加

    Miss fu:我来写代码:

            n1 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

                n2 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text));

    Miss xu:我感觉题目数量就不用设定了,我们在第二个窗体已经设定答题的总数。

    Miss fu:恩恩,第4个增量内容也不用写了,上次作业已经做过了。

    Miss xu:终于完成了!

    miss fu: 好饿,去吃饭吧!

    具体内容:

    1:form1
    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace sizeyunsuan { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public static int Count = 0; public static int right = 0; public static int fault = 0; private int t = 60; private void RandomNum() { Random ran = new Random(); int n1, n2; string m; n1 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text)); n2 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text)); if (n1 >= n2) { textBox1.Text = n1.ToString(); textBox2.Text = n2.ToString(); textBox3.Text = ""; Count++; } else if (n1 < n2) { m = n2.ToString(); textBox2.Text = n1.ToString(); textBox1.Text = m; textBox3.Text = ""; Count++; } } private void R() { Random ran = new Random(); int a1, a2; a1 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text)); a2 = ran.Next(int.Parse(textBox4.Text), int.Parse(textBox5.Text)); if (int.Parse(textBox4.Text)!=0) { textBox1.Text = a1.ToString(); textBox2.Text = a2.ToString(); textBox3.Text = ""; Count++; } else { MessageBox.Show("在除法运算中,取值范围不能从0开始"); } } private void timer1_Tick(object sender, EventArgs e) { if (t <= 0) { timer1.Enabled = false; textBox3.Enabled = false; MessageBox.Show("时间到!"); textBox3.Enabled = false; Form2 frm2 = new Form2(); frm2.ShowDialog(); } t = t - 1; label10.Text = t.ToString(); } private void textBox3_KeyDown(object sender, KeyEventArgs e) { int sum=0; string s = label4.Text; switch (s) { case "+": sum = int.Parse(textBox1.Text) + int.Parse(textBox2.Text); break; case "-": sum = int.Parse(textBox1.Text) - int.Parse(textBox2.Text); break; case "x": sum = int.Parse(textBox1.Text) * int.Parse(textBox2.Text); break; default: sum = int.Parse(textBox1.Text) / int.Parse(textBox2.Text); break; } if (e.KeyCode == Keys.Enter) { if (textBox3.Text == sum.ToString()) right++; RandomNum(); } } private void button1_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); frm2.ShowDialog(); } private void button2_Click(object sender, EventArgs e) { label4.Text = "+"; label10.Text = t.ToString(); timer1.Enabled = true; timer1.Interval = 1000; timer1.Start(); RandomNum(); } private void button3_Click(object sender, EventArgs e) { label4.Text = "-"; label10.Text = t.ToString(); timer1.Enabled = true; timer1.Interval = 1000; timer1.Start(); RandomNum(); } private void button4_Click(object sender, EventArgs e) { label4.Text = "x"; label10.Text = t.ToString(); timer1.Enabled = true; timer1.Interval = 1000; timer1.Start(); RandomNum(); } private void button5_Click(object sender, EventArgs e) { label4.Text = "÷"; label10.Text = t.ToString(); timer1.Enabled = true; timer1.Interval = 1000; timer1.Start(); R(); } } }
    2:form2
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace sizeyunsuan
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void Form2_Load(object sender, EventArgs e)
            {
                textBox1.Text = Form1.Count.ToString();
                textBox2.Text = Form1.right.ToString();
                textBox3.Text = ((Form1.Count - (double)(Form1.right))).ToString();
                textBox4.Text = ((Form1.right / (double)(Form1.Count)) * 100).ToString() + "%";
    
            }
        }
    }
    

     五:总结

       雷锋曾说:“一滴水只有放进大海里才永远不会干涸,一个人只有当他把自己

    和集体事业融合在一起的时候才最有力量。”这句话说的真不错,一个人的力量

    是有限的只有彼此和互帮互助才能实现1+1>2的效果,今天与付媛媛一起合作

    共同完成了这道题,虽然中间遇的到困难,但在我们的共同努力下解决了问题,

    感觉这应该就是老师讲的团队合作(虽然我们只有两个人)。在做题的过程中

    也发现了付媛媛身上有许多自己可以学习的地方,挑战困难的精神,坚持不懈

    的精神,认真学习的态度!

  • 相关阅读:
    python爬虫之Scrapy框架
    Web自动化测试工具:Selenium
    多线程爬取新闻标题和链接
    python里更推荐使用的requests库
    python豆瓣的简单爬虫
    4 个好用的 Linux 监控工具
    8个你会爱上的 VS Code 扩展
    SpringBoot 构建 Docker 镜像的 3 种方式
    OAuth2 图解
    Prometheus + Grafana 监控 SpringBoot
  • 原文地址:https://www.cnblogs.com/12345-xyy/p/4888466.html
Copyright © 2020-2023  润新知