码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算《《《代码封装 策略模式

时间:2015-11-29 16:21:45      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace sum
 7 {
 8     class Class1
 9     {
10         public interface Calculator        //声明计算接口
11         {
12             double Cal(double x, double y);
13         }
14         private double x;                //定义x变量;
15 
16         public double X                  //封装字段
17         {
18             get { return x; }
19             set { x = value; }
20 
21         }
22         private double y;               //定义y变量
23 
24 
25         public double Y                  //封装字段
26         {
27             get { return y; }
28             set { y = value; }
29 
30         }
31         public class Add : Calculator            //接口法运算
32         {
33             public double Cal(double x, double y)
34             {
35                 double result = 0;
36                 result = x + y;
37                 return result;
38             }
39         }
40         public class Sub : Calculator 
41         {
42             public double Cal(double x, double y)
43             {
44                 double result = 0;
45                 result = x - y;
46                 return result;
47             }
48         }
49         public class Mul : Calculator 
50         {
51             public double Cal(double x, double y)
52             {
53                 double result = 0;
54                 result = x * y;
55                 return result;
56             }
57         }
58         public class Div : Calculator  
59         {
60             public double Cal(double x, double y)
61             {
62                 double result = 0;
63                 result = x / y;
64                 return result;
65             }
66         }
67         public class Opear                  //定义运算符  
68         {
69             private Calculator calculate;
70             public Opear(Calculator calculate)
71             {
72                 this.calculate = calculate;
73             }
74             public double Cal(double x, double y, String op)  //返回运算结果
75             {
76                 return this.calculate.Cal(x, y);
77             }
78         }
79     }
80 }

策略模式引用:

 1  private void textBox8_KeyDown(object sender, KeyEventArgs e)
 2         {
 3             sum.Class1.Opear opear = null;
 4             double x = Convert.ToDouble(textBox5.Text); //为相关的变量赋值
 5             double y = Convert.ToDouble(textBox7.Text);
 6             string op = textBox6.Text;
 7             switch (op)
 8             {
 9                 case "+":
10                      opear = new  sum.Class1.Opear(new sum.Class1.Add()); //策略模式的引用
11                     break;
12                 case "-":
13                     opear = new sum.Class1.Opear(new sum.Class1.Sub());
14 
15                     break;
16                 case "*":
17                     opear = new sum.Class1.Opear(new sum.Class1.Mul());
18 
19                     break;
20                 case "/":
21                     opear = new sum.Class1.Opear(new sum.Class1.Div());
22 
23                     break;
24                 default:
25                     break;
26             }
27             
28             if (e.KeyCode == Keys.Enter)
29             {
30                 string answer = opear.Cal(x, y, op).ToString();
31                 if (textBox8.Text ==answer.ToString())
32                 {
33                     MessageBox.Show("回答正确");
34                     Count++;
35                     Right++;
36                 }
37                 else
38                 {
39                     MessageBox.Show("回答错误");
40                     Count++;
41                 }

 

运行结果:

保存出好的题技术分享

 

 

 

 

 

 

 

技术分享

技术分享技术分享

 

四则运算《《《代码封装 策略模式

标签:

原文地址:http://www.cnblogs.com/thinking-star/p/5004834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!