第三次

需求分析:

1.编写一个能对0~10之间的整数进行四则运算的程序。

2.程序能接收用户输入的整数结果,并判断对错,在程序结束时,统计出答对和答错的题目数量。

3.0~10整数是随机出现。

4.增加内容:

(1)处理用户的错误输入,除法运算中分母不为0,减法结果不为负数。

(2)用户自己设定倒计时。

(3)用户自己可以设定随机整数的范围和答题的数量。

(4)用户自己可以自己选择哪种计算类型,也可以让软件随机生成四则运算中的一种。

思路: 1.还是选择窗体应用程序,在上一次的作业的基础上,进行完善。

2.这次是结对编程,需要两人合作完成,我负责查看错误,队友负责写代码。

3.需要考虑添加倒计时控件,以及编写代码。定义随机整数的范围和答题的数量,选择计算类型,处理用户的错误输入,除法运算中分母不为0,减法结果不为负数。

代码:

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;

namespace _122

{   

public partial class Form1 : Form

    {      

public Form1()    

   {          

       InitializeComponent();       

   }       

public static int count = 0, wrong = 0, right = 0;       

private int t = 60;     

 public static int m = 1, n = 10;    

   private void button1_Click(object sender, EventArgs e)  //开始的单击事件     

{           

   label8.Text = t.ToString();       

    timer1.Enabled = true;           

   timer1.Interval = 1000;        

   timer1.Start();        

   jisuan();

        }    

   private void jisuan()        //算法

{         

    Random ran = new Random();          

    string[] fuhao = new string[] { "+", "-", "*", "/" };       

    label1.Text = fuhao[ran.Next(0, 4)];        

   int n1, n2;         

   n1 = ran.Next(m, n);          

   n2 = ran.Next(m, n);     

   textBox1.Text = n1.ToString();        

   textBox2.Text = n2.ToString();        

   textBox3.Text = "";

        }

       private void textBox3_KeyDown(object sender, KeyEventArgs e)//输入结果的事件

{     

   int text3 = 0;        

   string a = label1.Text;         

  switch (a)         

     {           

    case "+":                  

text3 = int.Parse(textBox1.Text) + int.Parse(textBox2.Text);

     break;              

case "-":            

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

                {                    

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

               }  else   

                {                      

MessageBox.Show("差不能为负数!请按回车键继续做题");                  

     jisuan();              

                }                 

  break;           

  case "*":                  

text3 = int.Parse(textBox1.Text) * int.Parse(textBox2.Text);   

  break;        

  default:             

      if (textBox2.Text == "0")      

             {                 

      MessageBox.Show("分母不能为零!请按回车键继续做题");         

              jisuan();            

             }  else                 

         {                   

    text3 = int.Parse(textBox1.Text) / int.Parse(textBox2.Text);          

         }          

         break;        

   }      

     if (count == int.Parse(textBox7.Text))  //判断出题数量      

    {              

     Form2 frm2 = new Form2();          

     frm2.Show();      

     }       

    if (e.KeyCode == Keys.Enter)    

       {           

    if (textBox3.Text == text3.ToString())     //判断对错并提示

           {                

     right++; count++;              

     MessageBox.Show("回答正确!不要骄傲");     

          }else        

       {                 

   wrong++; count++;                

   MessageBox.Show("回答错误,不要灰心");   

            }         

      if (textBox3.Text == "00")     //如果输入00推出程序,显示form2窗体   

       {           

     Application.Exit();               

    Form2 frm2 = new Form2();             

      frm2.Show();         

      }          

     jisuan();    

       }      

}      

private void button2_Click(object sender, EventArgs e)   //结束按钮

      {        

   textBox3.Enabled = false;        

   Form2 frm = new Form2();    

       frm.ShowDialog(); 

      }

        private void button3_Click(object sender, EventArgs e)  //  用户选择四则运算符号

    {             label1.Text = "+";         }

        private void button4_Click(object sender, EventArgs e)    

   {             label1.Text = "-";         }

        private void button5_Click(object sender, EventArgs e)    

   {             label1.Text = "*";         }

        private void button6_Click(object sender, EventArgs e)     

  {             label1.Text = "/";         }

        private void timer1_Tick(object sender, EventArgs e)    //倒计时控件

     {    

       if (t <= 0)       

    {           

    timer1.Enabled = false;     

     textBox3.Enabled = false;       

     Form2 frm2 = new Form2();          

     frm2.Show();   

        } else

            { 

              t--;    

           label8.Text = t.ToString(); 

          }  

     }

      private void textBox5_KeyDown(object sender, KeyEventArgs e) //输入的范围   

  {        

   if (e.KeyCode == Keys.Enter)       

    {         

      m = int.Parse(textBox5.Text);    

       }   

    }

        private void textBox6_KeyDown(object sender, KeyEventArgs e)//输入的范围

        {          

if (e.KeyCode == Keys.Enter)      

     {           

    n = int.Parse(textBox6.Text);       

    }     

}

        private void textBox4_KeyDown(object sender, KeyEventArgs e) //输入倒计时

        {         

  if (e.KeyCode == Keys.Enter)       

    {                 t = int.Parse(textBox4.Text);      

     }      

}   

}

}

测试结果:

总结:

在这次练习中我们做的增量内容如下:

1,用户可以设定倒计时,

2,用户可以选择取值范围,出题数,用户必须先输入出题数才能开始计算。但在这一点有些缺陷。

3,可以判断用户的答案对错,除法以及分母不能为零,减法差不能为负数,但是用户如果输入字符,不能判断。所以这点没有写出来。

4,用户可以选择哪种计算类型,比如加减乘除,或可选择软件随机生成四则运算中的一种。

5,在结对编程中团队需要合作才能更有效地完成作业,否者会浪费时间。

6,在编程中自己写的代码出错了自己很难找到错误,不知道出错在什么地方,需要和队友一起找出错误,并加以改正。

7,自己在队友编写代码的同时,可以在队友编码出错的时候,知道队友编写出错地方,也是提升自己的能力。

结对编程的队友:马钦佩,申笑楠。

原文地址:https://www.cnblogs.com/lhf1995/p/4890347.html