欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第四次作业

程序员文章站 2022-03-23 09:05:12
...

一、需求分析 

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

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

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

运算符号的随机产生;

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

二、设计思路

先创建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

 

 

 

 

 

 

 

 

 

 

 

 

六、总结

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