ASP.NET四则运算--工厂模式
2024-09-20 19:01:28
这次是在ASP.NET上实现四则运算,之前用策略模式实现了,所以这次想着用工厂模式实现一下。
Calculator.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> ///Calculator 的摘要说明 /// </summary> public class Calculator { // //TODO: 在此处添加构造函数逻辑 // ; ; public double A { get { return a; } set { a = value; } } public double B { get { return b; } set { b = value; } } public virtual double GetResult() { ; return result; } } class Add : Calculator { public override double GetResult() { ; result = A + B; return result; } } class Sub : Calculator { public override double GetResult() { ; result = A - B; return result; } } class Mul : Calculator { public override double GetResult() { ; result = A * B; return result; } } class Div : Calculator { public override double GetResult() { ; ) throw new Exception("除数不能为0"); result = A / B; return result; } } public class Factory { public static Calculator Cal(string operate) { Calculator oper = null; switch (operate) { case "+": oper = new Add(); break; case "-": oper = new Sub(); break; case "*": oper = new Mul(); break; case "/": oper = new Div(); break; } return oper; } }
index.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //界面加载 } protected void Cal_Click(object sender, EventArgs e) { Calculator oper; string strOperate = DropDownList1.SelectedItem.ToString(); oper = Factory.Cal(strOperate); oper.A = Convert.ToDouble(TextBox1.Text); oper.B = Convert.ToDouble(TextBox2.Text); string answer = Convert.ToString(oper.GetResult()); string result = TextBox1.Text + DropDownList1.SelectedItem.ToString() + TextBox2.Text;//把运算式子存在result里面 if (TextBox3.Text == answer) //如果输入答案与计算出的answer相等 { Response.Write("<script>alert('回答正确!')</script>"); //弹出回答正确 ListBox1.Items.Add(result + "=" + TextBox3.Text.Trim() + "√");//并把运算式子存在listbox里 } else //如果答错 { Response.Write("<script>alert('答题错误!')</script>"); //弹出答题错误 ListBox1.Items.Add(result + "=" + TextBox3.Text.Trim() + "×");//同样把运算式子放在listbox } TextBox1.Text = "";//把文本框清空,进行下一次出题 TextBox2.Text = ""; TextBox3.Text = ""; } }
运行截图:
工厂方法模式。用的地方不太合适!
最新文章
- JAVA基础篇NO2--Java中的基本命名规则及数据类型
- DLog的使用
- 使用C# WinForm窗体制作经理评分项目 ——S2 2.2
- C#配置文件管理
- bzoj1036
- sql语句中查询出的数据添加一列,并且添加默认值
- Java Class类以及获取Class实例的三种方式
- Java 序列化Serializable详解(附详细例子)
- 7. ZooKeeper的stat结构
- (十三)Batch Processing
- ES6你不知道的let关键字及变量的提升
- [Codeforces441E]Valera and Number
- 分布式之redis复习精讲
- Controller层aop
- c#Dapper 批量插入Mysql
- gitlab 数据同步
- beta阶段性能指标测试
- 地图上道路编号中的G S X Y
- 大数高精度计算库gmp简介
- networkManger介绍