• 第三次


    需求分析:

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

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

  • 相关阅读:
    HDU 1247
    [转载]亲密接触VC6.0编译器
    [转载]你该学什么程序语言
    ACE学习2009116
    新东方英语学习二
    电脑族吃什么比较好
    爱默生生活的准则
    成大事必备9种能力9种手段9种心态
    [转载]句柄和指针
    关于WM_CREATE消息
  • 原文地址:https://www.cnblogs.com/lhf1995/p/4890347.html
Copyright © 2020-2023  润新知