四则运算

四则运算

 

一、需求分析

(1)当单击“+”或“-”或“x”或“÷”按钮时,程序会随机产生两个1-10的随机整数,由用户输出结果。

(2)当单击“停止”按钮时,程序会给出“正确”、“错误”等信息。

二、设计思路

(1)创建Windows窗体应用程序,设计窗体,根据需要编写代码。

(2)因为要统计出答对、答错的题目数量,首先定义两个变量“right”和“fault”

(3)然后用Random()方法来产生随机数。

(4)单击textBox3的KeyDown事件实现加减乘除的运算,并且按下回车键,确认输入结果;为了减少代码的数量,用switch语句来判断运算符。

(5)单击“停止”按钮,弹出Form2窗体,显示测试结果。

三、代码实现

Form1代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace szys
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static int Count = 0;
        public static int right = 0;
        public static int fault = 0;
        private void RandomNum()
        {
            Random ran = new Random();
            int n1, n2;
            n1 = ran.Next(1, 11);
            n2 = ran.Next(1, 11);
            textBox1.Text = n1.ToString();
            textBox2.Text = n2.ToString();
            textBox3.Text = "";
            Count++;
        }

        private void textBox3_KeyDown(object sender, KeyEventArgs e)
        {
            int sum;
            string s =label9.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 button5_Click(object sender, EventArgs e)
        {

            Form2 frm2 = new Form2();
            frm2.ShowDialog();
        }


        private void button1_Click(object sender, EventArgs e)
        {

            label9.Text = "+";
             RandomNum();
            

            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            label9.Text = "-";
            RandomNum();
        }
            

        private void button3_Click(object sender, EventArgs e)
        {
            label9.Text = "x";
            RandomNum();
           
        }
        private void button4_Click(object sender, EventArgs e)
        {
            label9.Text = "÷";
            RandomNum();
            
        }
       
       }
    }

 Form2代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace szys
{
    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();
            textBox4.Text = ((Form1.Count - (double)(Form1.right))).ToString();
            textBox3.Text = ((Form1.right / (double)(Form1.Count)) * 100).ToString() + "%";
        }

      
}      
        
    }

四、测试

运行程序,测试各个功能

五、PSP耗时分析

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

0.5

  • Postmortem事后总结

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

六、总结

   看似不简单,其实也不难。老师布置的这个作业很有挑战性,刚看到题目要求感觉是不可完成的任务,但还是想要尝试一下。

   我们可以用Java和C#来实现,我选择了C#,对于是用控制台应用程序还是用Windows窗体应用程序,我犹豫好长时间,我个人感觉用Windows窗体应用程序比较容易理解。在窗体设计方面还是挺得心应手,但代码编写费了不少脑筋;特别是需要转换运算符的时候,如果只是实现一个加法测试程序,问题就简单多了。

   在你决心做之前一定要对自己有信心,然后要有耐心,遇到困难想办法克服,一步一步地做。不管做的怎样,还是坚持做完了。

七、思考题

        用Random()方法产生随机数,把产生的两个数的取值范围由1-11改成1-101.

八、附加题

    用If语句判断,由MessageBox.Show()弹出错误提示信息。

   

 

   

   

 

转载于:https://www.cnblogs.com/twinkle-0908/p/4851468.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值