结对编程

结对编程:

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

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的效果,今天与付媛媛一起合作

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

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

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

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

 

posted @ 2015-10-17 22:32  青春如诗,你如画  阅读(194)  评论(1编辑  收藏  举报