zoukankan      html  css  js  c++  java
  • Calculation

    定义一个Strategy接口,其中定义一个方法,用于计算

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculation
    {
        interface Interface1
        {
            int calculate(int a, int b);
        }
    }
    

     定义具体的算法类,实现Strategy接口,算法类中的算法各自不同:加减乘等

    1,加法类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculation
    {
        class Add:Interface1
        {
            public int calculate(int a, int b)
            {   
                return  a + b;
            }
        
        }
    }
    

     2,减法类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculation
    {
        class Subtract : Interface1
        {
            public int calculate(int a, int b)
            {
                return  a - b;
            }
        }
    }
    

     3,乘法类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculation
    {
        class Multiply:Interface1
        {
            public int calculate(int a, int b)
            {
             
                 return a * b;
            }
    
        }
    }
    

     4,除法类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculation
    {
        class Except:Interface1
        {
            public int calculate(int a, int b)
            {     
                return  a / b ;
    
            }
        }
    }
    

     定义具体的环境角色

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculation
    {
        class Environment
        {
            private Interface1 inter;
            public Environment(Interface1 face)
            {
                inter = face;
            }
            public Interface1 gewrt()
            {
                return inter;
            }
            public void setwrt(Interface1 face)
            {
                inter=face;
            }
            public int calculate(int a, int b)
            {
                return inter.calculate(a, b);
            }
    
        }
    }
    

     form1的代码

    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 Calculation
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                displays();
            }
            private void displays()
            {
                Random random = new Random();
                int a, b;
                a = random.Next(0, 100);
                b = random.Next(0, 100);
                fasttext.Text = a.ToString();
                lasttext.Text = b.ToString();
                string[] operjact = new string[] { "+", "-", "*", "/" };
                string f = operjact[new Random().Next(0, 4)];
                operja.Text = f;
     
            }
    
            private void textBox3_KeyDown(object sender, KeyEventArgs e)
            {
                int a = int.Parse(fasttext.Text);
                int b = int.Parse(lasttext.Text);
                
                if (e.KeyCode == Keys.Enter)
                {
    
                    int answer = int.Parse(textBox3.Text);
                   
                    string OPter=operja.Text;
                    switch (OPter)
                    {
                        case "+":
                            Add addss = new Add();
                            Environment environment = new Environment(addss);
                            environment.calculate(a, b);
                            if (answer == environment.calculate(a, b))
                            {
                                MessageBox.Show("回答正确!");
                            }
                            else
                            {
                                MessageBox.Show("回答错误!");
                            }
                            break;
                        case "-":
                             Subtract subtrss = new Subtract();
                             Environment environment1 = new Environment(subtrss);
                             environment1.calculate(a,b);
                             if (answer == environment1.calculate(a, b))
                             {
                                 MessageBox.Show("回答正确!");
                             }
                             else
                             {
                                 MessageBox.Show("回答错误!");
                             }
                           break;
                        case "*":
                           Multiply muli = new Multiply();
                           Environment environment2 = new Environment(muli);
                           environment2.calculate(a, b);
                           if (answer == environment2.calculate(a, b))
                           {
                               MessageBox.Show("回答正确!");
                           }
                           else
                           {
                               MessageBox.Show("回答错误!");
                           }
                           break;
                        case "/":
                           Except except = new Except();
                           Environment enviroment3 = new Environment(except);
                           enviroment3.calculate(a, b);
                            if(answer==enviroment3.calculate(a,b))
                            {
                                MessageBox.Show("回答正确!");
                            }
                            else
                            {
                                MessageBox.Show("回答错误!");
                            }
                           break;
                           
    
                    }
                    textBox3.Clear();
                    displays();
                    
                 
                      
                      
                    
                }
    
            }
        }
    }
    

     总结:

    两个数是让它随机产生的,运算符是随机产生的,无法保证除以零的情况。总的来说这些代码套来套去的有点发晕。不知道自己写的怎么样。 

    其中有一部分代码不太明白感觉没什么用?

       public Interface1 gewrt()
            {
                return inter;
            }
            public void setwrt(Interface1 face)
            {
                inter=face;
            }
    

    就把他们删了试着运行了一下,还是可以正常运行。

  • 相关阅读:
    构建之法阅读笔记04
    学习进度条10
    描绘用户场景并将典型用户和用户场景描述
    学习进度条09
    构建之法阅读笔记03
    学习进度条08
    每日站立会议10(完成)
    每日站立会议09
    团队成员细节工作项估计
    JS实现全选、不选、反选
  • 原文地址:https://www.cnblogs.com/lizanqirxx/p/4975584.html
Copyright © 2011-2022 走看看