第四次作业

一、需求分析 

用户还可以自行输入所要计时的时间,从而进行倒计时;

单击停止按钮时也会弹出统计结果;

用户还可以自行输入随机数的产生范围;

运算符号的随机产生;

用户还可以选择是否加括号!分为前两个数加和后两个数加。

二、设计思路

先创建From1再设计From2;

编写代码先From1 中随机数、算法、定时器、结果的判断正确;

然后From2正确题数、总题数、正确率的值。

三、代码实现

From1

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 混合运算
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //定义变量
        public static int t;
        public static int m;
        public static int count=-1;
        public static int right=0;
        public void suanfa() //算法
        {
            Random s = new Random();
            int d, h;
            d = s.Next(1,5);
            h = s.Next(1,5);
            if (d == 1) 
            {
                label4.Text = "+";
            }
            if (d == 2)
            {
                label4.Text = "-";
            }
            if (d == 3)
            {
                label4.Text = "*";
            }
            if (d == 4)
            {
                label4.Text = "/";
            }
            if (h == 1)
            {
                label8.Text = "+";
            }
            if (h == 2)
            {
                label8.Text = "-";
            }
            if (h == 3)
            {
                label8.Text = "*";
            }
            if (h == 4)
            {
                label8.Text = "/";
            }
        }
        public void shu() //输出两个随机数
        {
            Random  s = new Random();
            int n1, n2, n3;
            int a = int.Parse(textBox3.Text)+1;
            int b = int.Parse(textBox4.Text)+1;
            n1 = s.Next(a,b);
            n2 = s.Next(a,n1);
            n3 = s.Next(n2,b);
            label3.Text = n1.ToString();
            label6.Text = n2.ToString();
            label9.Text = n3.ToString();
            textBox2.Text = "";
            count++;
        }
        private void timer1_Tick(object sender, EventArgs e)//定时器
        {
            if (t <= 0)
            {
                timer1.Enabled = false;
                textBox2.Enabled = false;
                MessageBox.Show("时间到!");
                Form2 da = new Form2();
                da.ShowDialog();

            }
            t = t - 1;
            textBox1.Text = t.ToString();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int c=int.Parse(textBox1.Text);
            t = c;
            timer1.Enabled = true;
            timer1.Interval = 1000;
            timer1.Start();
            shu();
            suanfa();
        }
        private void textBox2_KeyDown(object sender, KeyEventArgs e)
        {   
            if (e.KeyCode == Keys.Enter)
            {
                if(textBox2.Text==m.ToString())
                {
                    right++;
                }
                shu();
                suanfa();
            }
            string k=label4.Text;
            string l=label8.Text;
            string n=k+l;
            
            if (comboBox1.Text == "前两个加")
            {
                if (n == "+*")
                {
                    m = (int.Parse(label3.Text) + int.Parse(label6.Text)) * int.Parse(label9.Text);
                }
                if (n == "+/")
                {
                    m = (int.Parse(label3.Text) + int.Parse(label6.Text)) / int.Parse(label9.Text);
                }
                if (n == "-*")
                {
                    m = (int.Parse(label3.Text) - int.Parse(label6.Text)) * int.Parse(label9.Text);
                }
                if (n == "-/")
                {
                    m = (int.Parse(label3.Text) - int.Parse(label6.Text)) / int.Parse(label9.Text);
                }
                if (n == "++")
                {
                    m = (int.Parse(label3.Text) + int.Parse(label6.Text)) + int.Parse(label9.Text);
                }
                if (n == "+-")
                {
                    m = (int.Parse(label3.Text) + int.Parse(label6.Text)) - int.Parse(label9.Text);
                }
                if (n == "--")
                {
                    m = (int.Parse(label3.Text) - int.Parse(label6.Text)) - int.Parse(label9.Text);
                }
                if (n == "-+")
                {
                    m = (int.Parse(label3.Text) - int.Parse(label6.Text)) + int.Parse(label9.Text);
                }
                if (n == "**")
                {
                    m = (int.Parse(label3.Text) * int.Parse(label6.Text)) * int.Parse(label9.Text);
                }
                if (n == "*/")
                {
                    m = (int.Parse(label3.Text) * int.Parse(label6.Text)) / int.Parse(label9.Text);
                }
                if (n == "/*")
                {
                    m = (int.Parse(label3.Text) / int.Parse(label6.Text)) * int.Parse(label9.Text);
                }
                if (n == "//")
                {
                    m = (int.Parse(label3.Text) / int.Parse(label6.Text)) / int.Parse(label9.Text);
                }
                if (n == "*+")
                {
                    m = (int.Parse(label3.Text) * int.Parse(label6.Text)) + int.Parse(label9.Text);
                }
                if (n == "*-")
                {
                    m = (int.Parse(label3.Text) * int.Parse(label6.Text)) - int.Parse(label9.Text);
                }
                if (n == "/+")
                {
                    m = (int.Parse(label3.Text) / int.Parse(label6.Text)) + int.Parse(label9.Text);
                }
                if (n == "/-")
                {
                    m = (int.Parse(label3.Text) / int.Parse(label6.Text)) - int.Parse(label9.Text);
                }
            }
            if (comboBox1.Text == "后两个加") 
            {
                if (n == "++")
                {
                    m = int.Parse(label3.Text) + (int.Parse(label6.Text) + int.Parse(label9.Text));
                }
                if (n == "+*")
                {
                    m = int.Parse(label3.Text) + (int.Parse(label6.Text) * int.Parse(label9.Text));
                }
                if (n == "+/")
                {
                    m = int.Parse(label3.Text) + (int.Parse(label6.Text) / int.Parse(label9.Text));
                }
                if (n == "+-")
                {
                    m = int.Parse(label3.Text) + (int.Parse(label6.Text) - int.Parse(label9.Text));
                }
                if (n == "--")
                {
                    m = int.Parse(label3.Text) - (int.Parse(label6.Text) - int.Parse(label9.Text));
                }
                if (n == "-*")
                {
                    m = int.Parse(label3.Text) - (int.Parse(label6.Text) * int.Parse(label9.Text));
                }
                if (n == "-/")
                {
                    m = int.Parse(label3.Text) - (int.Parse(label6.Text) / int.Parse(label9.Text));
                }
                if (n == "-+")
                {
                    m = int.Parse(label3.Text) - (int.Parse(label6.Text) + int.Parse(label9.Text));
                }
                if (n == "**")
                {
                    m = int.Parse(label3.Text) * (int.Parse(label6.Text) * int.Parse(label9.Text));
                }
                if (n == "*/")
                {
                    m = int.Parse(label3.Text) * (int.Parse(label6.Text) / int.Parse(label9.Text));
                }
                if (n == "/*")
                {
                    m = int.Parse(label3.Text) / (int.Parse(label6.Text) * int.Parse(label9.Text));
                }
                if (n == "*+")
                {
                    m = int.Parse(label3.Text) * (int.Parse(label6.Text) + int.Parse(label9.Text));
                }
                if (n == "*-")
                {
                    m = int.Parse(label3.Text) * (int.Parse(label6.Text) - int.Parse(label9.Text));
                }
                if (n == "/-")
                {
                    m = int.Parse(label3.Text) / (int.Parse(label6.Text) - int.Parse(label9.Text));
                } 
                if (n == "/+")
                {
                    m = int.Parse(label3.Text) / (int.Parse(label6.Text) + int.Parse(label9.Text));
                }
                if (n == "//")
                {
                    m = int.Parse(label3.Text) / (int.Parse(label6.Text) / int.Parse(label9.Text));
                }
            }
            if(comboBox1.Text=="不加")
            {
                if (n == "++")
                {
                    m = int.Parse(label3.Text) + int.Parse(label6.Text) + int.Parse(label9.Text);
                }
                if (n == "+*")
                {
                    m = int.Parse(label3.Text) + int.Parse(label6.Text) * int.Parse(label9.Text);
                }
                if (n == "+/")
                {
                    m = int.Parse(label3.Text) + int.Parse(label6.Text) / int.Parse(label9.Text);
                }
                if (n == "+-")
                {
                    m = int.Parse(label3.Text) + int.Parse(label6.Text) - int.Parse(label9.Text);
                }
                if (n == "--")
                {
                    m = int.Parse(label3.Text) - int.Parse(label6.Text) - int.Parse(label9.Text);
                }
                if (n == "-*")
                {
                    m = int.Parse(label3.Text) - int.Parse(label6.Text) * int.Parse(label9.Text);
                }
                if (n == "-/")
                {
                    m = int.Parse(label3.Text) - int.Parse(label6.Text) / int.Parse(label9.Text);
                }
                if (n == "-+")
                {
                    m = int.Parse(label3.Text) - int.Parse(label6.Text) + int.Parse(label9.Text);
                }
                if (n == "**")
                {
                    m = int.Parse(label3.Text) * int.Parse(label6.Text) * int.Parse(label9.Text);
                }
                if (n == "*/")
                {
                    m = int.Parse(label3.Text) * int.Parse(label6.Text) / int.Parse(label9.Text);
                }
                if (n == "/*")
                {
                    m = int.Parse(label3.Text) / int.Parse(label6.Text) * int.Parse(label9.Text);
                }
                if (n == "*+")
                {
                    m = int.Parse(label3.Text) * int.Parse(label6.Text) + int.Parse(label9.Text);
                }
                if (n == "*-")
                {
                    m = int.Parse(label3.Text) * int.Parse(label6.Text) - int.Parse(label9.Text);
                }
                if (n == "/-")
                {
                    m = int.Parse(label3.Text) / int.Parse(label6.Text) - int.Parse(label9.Text);
                }
                if (n == "/+")
                {
                    m = int.Parse(label3.Text) / int.Parse(label6.Text) + int.Parse(label9.Text);
                }
                if (n == "//")
                {
                    m = int.Parse(label3.Text) / int.Parse(label6.Text) / int.Parse(label9.Text);
                }
            }
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if( comboBox1.Text=="前两个加")
            {
                label2.Text = "(";
                label5.Text = "";
                label7.Text = ")";
                label10.Text = "";
            }
            if (comboBox1.Text == "后两个加")
            {
                label2.Text = "";
                label5.Text = "(";
                label7.Text = "";
                label10.Text = ")";
            }
            if (comboBox1.Text == "不加")
            {
                label2.Text = "";
                label5.Text = "";
                label7.Text = "";
                label10.Text = "";
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            textBox2.Enabled = false;
            Form2 da = new Form2();
            da.ShowDialog();
        }
    }
}

 From2

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 混合运算
{
    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.right / (double)(Form1.count)) * 100).ToString() + "%";
            
        }
    }
}

 四、测试

五、

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

0.5

  • Postmortem 事后总结

1

六、总结

这次程序有好多问题 ,就实现了混合运算,不重复、不为负数都没实现不知道该如何去做,希望您给点意见。

原文地址:https://www.cnblogs.com/fanxiaotian/p/4908050.html