计应191西 南雁钊一组
小学一年级100以内的加减法
1、计划:编写一个小学生100以内口算题卡。
2、开发:需求分析:作为一名一年级小学生的家长,我希望开发出一个口算题卡软件,让我的孩子能在上面练习口算题,能够自动生成100以内的正整数加减法运算,以便减轻我的工作负担。
难点:不能出现负数,自动出题然后进行解答。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
public abstract class Calculator
{
public abstract double Cal(double a, double b);
}
public class Add : Calculator //派生类Add继承抽象类Calculator
{
public override double Cal(double a, double b)//并重写了抽象方法Cal
{
double result = 0;
result = a + b;
return result;
}
}
public class Sub : Calculator
{
public override double Cal(double a, double b)
{
double result = 0;
result = a - b;
return result;
}
}
public class Mul : Calculator
{
public override double Cal(double a, double b)
{
double result = 0;
result = a * b;
return result;
}
}
public class Div : Calculator
{
public override double Cal(double a, double b)
{
double result = 0;
result = a / b;
return result;
}
}
public class Context //上下文
{
private Calculator calculate = null;//实例化一个基类的引用对象
public Context(Calculator _cal)//_cal为派生类的一个对象
{
this.calculate = _cal; //把派生类的对象赋给基类的引用对象
}
public double Cal(double a, double b, String symbol)
{
return this.calculate.Cal(a, b);//返回计算结果
}
}
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)
{
string symbol = DropDownList1.SelectedItem.ToString();
double a = Convert.ToDouble(TextBox1.Text);
double b = Convert.ToDouble(TextBox2.Text);
Context contex = null;
if (DropDownList1.SelectedIndex == 1)
{
contex = new Context(new Add()); //加法策略
}
else if (DropDownList1.SelectedIndex == 2)
{
contex = new Context(new Sub()); //减法策略
}
else if (DropDownList1.SelectedIndex == 3) //若为乘号
{
contex = new Context(new Mul()); //乘法策略
}
else if (DropDownList1.SelectedIndex == 4) //若为乘号
{
contex = new Context(new Div()); //除法策略
}
string answer = contex.Cal(a, b, symbol).ToString(); //用answer来存计算出来的答案,此时已经计算出a,b两个数的运算结果。
浙公网安备 33010602011771号