1.简单封装
1》计算类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 计算
{
class operater1
{
private int x;
private int y;
private string opers;
private int answer;
public int X
{
set
{
x = value;
}
}
public int Y
{
set
{
y = value;
}
}
public string Opers
{
set
{
opers = value;
}
}
public int Answer
{
get
{
return answer;
}
}
public void operation()
{
switch (opers)
{
case "+":
answer = x + y;
break;
case "-":
if (x > y)
{
answer = x - y;
}
else
{
throw new Exception("被减数不能小于减数!"); }
break;
case "*":
answer = x * y;
break;
case "/":
if (y == 0)
{
throw new Exception("除数不能为零!");
}
else
{
answer = x / y;
}
break; } }
} }
2》写入类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; namespace 计算
{
class writes
{
public void inscribe(string a, string b)
{ StreamWriter aaa = new StreamWriter(a, true);
aaa.WriteLine(b);
aaa.Close(); }
public void cleanup(string c, string d,string e)
{
StreamWriter ddd = new StreamWriter(c);
ddd.WriteLine(" ");
ddd.Close();
StreamWriter aaa = new StreamWriter(d);
aaa.WriteLine("");
aaa.Close();
StreamWriter fff = new StreamWriter(e);
fff.WriteLine("");
fff.Close();
}
}
}
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;
using System.IO; namespace 计算
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)//写入
{
writes writ = new writes();
string fnm = @"one";
string text1=this.textBox1.Text;
writ.inscribe(fnm, text1);
string fnmm = @"tow";
string text2 = this.textBox2.Text;
writ.inscribe(fnmm, text2);
string fnm1 = @"fuhao";
string text3 = this.comboBox1.Text;
writ.inscribe(fnm1, text3);
textBox1.Clear();
textBox2.Clear(); } private void button2_Click(object sender, EventArgs e)
{
Form2 fam = new Form2();
fam.ShowDialog(); } private void button3_Click(object sender, EventArgs e)//清空题库
{
string a = @"tow";
string b = @"one";
string c = @"fuhao";
writes clean = new writes();
clean.cleanup(a, b, c);
} }
}
form2代码
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;
using System.IO; namespace 出题
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private int i = 1;
public static int count;
public static int right;
private void timer1_Tick(object sender, EventArgs e)
{
try
{
int t = int.Parse(textBox5.Text);
if (t <= 0)
{
timer1.Enabled = false;
textBox5.Enabled = false;
MessageBox.Show("时间到了!");
Form3 fr3 = new Form3();
fr3.ShowDialog();
}
t = t - 1;
textBox5.Text = t.ToString(); }
catch
{
} }
private void button1_Click(object sender, EventArgs e)//开始
{
butt();
try
{
string t = textBox5.Text;
textBox5.Text = t;
timer1.Enabled = true;
timer1.Interval = 1000;
timer1.Start();
}
catch
{
} }
private void textBox4_KeyDown(object sender, KeyEventArgs e)//后台代码的应用
{
if (e.KeyCode == Keys.Enter)
{ operater1 operater = new operater1();
operater.X = int.Parse(textBox1.Text);
operater.Y = int.Parse(textBox3.Text);
operater.Opers = textBox2.Text;
operater.operation();
if (textBox4.Text == operater.Answer.ToString())
{
MessageBox.Show("回答正确!");
right++;
}
else
{
MessageBox.Show("回答错误!");
}
count++;
textBox4.Clear();
butt(); } }//用户的输入
private void button2_Click(object sender, EventArgs e)//停止
{
textBox4.Enabled=false; }
private void butt()
{
string[] line = File.ReadAllLines("one");
if (i < line.Length)
{
textBox1.Text = line[i];
string[] lines = File.ReadAllLines("tow");
textBox3.Text = lines[i];
string[] lin = File.ReadAllLines("fuhao");
textBox2.Text = lin[i]; }
i++;
if (i == line.Length + 1)
{
Form3 foo = new Form3();
foo.ShowDialog();
} }//读题
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}//关闭窗体 }
}
2.策略模式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 计算
{
interface operater1
{ int calculate(int a, int b); }
class Add : operater1
{ public int calculate(int a, int b)
{ return a + b; } }
class Sub : operater1
{
public int calculate(int a, int b)
{
return a - b;
}
}
class Mul : operater1
{
public int calculate(int a, int b)
{
return a * b;
}
}
class Div : operater1
{
public int calculate(int a, int b)
{
if (b == 0)
{
throw new Exception("除数不能为零!");
}
else
{
return a / b;
}
}
}
}
实现策略
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 计算
{
public class Clacuter
{
private operater1 oper1;
public Clacuter(string aSS)
{
switch (aSS)
{
case "+":
oper1 = new Add();
break;
case "-":
oper1 = new Sub();
break;
case "*":
oper1 = new Mul();
break;
case "/":
oper1 = new Div();
break;
} }
public int Calculation(int a,int b)
{
return oper1.calculate(a, b);
}
}
}
2,》写入类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; namespace 出题
{
class writes
{
public void inscribe(string a, string b)
{ StreamWriter aaa = new StreamWriter(a, true);
aaa.WriteLine(b);
aaa.Close(); }
public void cleanup(string c, string d,string e)
{
StreamWriter ddd = new StreamWriter(c);
ddd.WriteLine(" ");
ddd.Close();
StreamWriter aaa = new StreamWriter(d);
aaa.WriteLine("");
aaa.Close();
StreamWriter fff = new StreamWriter(e);
fff.WriteLine("");
fff.Close();
}
}
}
3》form2代码
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;
using System.IO; namespace 计算
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private int i = 1;
public static int count;
public static int right;
private void timer1_Tick(object sender, EventArgs e)
{
try
{
int t = int.Parse(textBox5.Text);
if (t <= 0)
{
timer1.Enabled = false;
textBox5.Enabled = false;
MessageBox.Show("时间到了!");
Form3 fr3 = new Form3();
fr3.ShowDialog();
}
t = t - 1;
textBox5.Text = t.ToString(); }
catch
{
} }
private void button1_Click(object sender, EventArgs e)//开始
{
butt();
try
{
string t = textBox5.Text;
textBox5.Text = t;
timer1.Enabled = true;
timer1.Interval = 1000;
timer1.Start();
}
catch
{
} }
private void textBox4_KeyDown(object sender, KeyEventArgs e)//策略模式代码的实现
{
if (e.KeyCode == Keys.Enter)
{
Clacuter clacuter=new Clacuter(textBox2.Text);
int B = clacuter.Calculation(int.Parse(textBox1.Text), int.Parse(textBox3.Text)); if (textBox4.Text ==B.ToString())
{
MessageBox.Show("回答正确!");
right++;
}
else
{
MessageBox.Show("回答错误!");
}
count++;
textBox4.Clear();
butt(); } }//用户的输入
private void button2_Click(object sender, EventArgs e)//停止
{
textBox4.Enabled=false; }
private void butt()
{
string[] line = File.ReadAllLines("one");
if (i < line.Length)
{
textBox1.Text = line[i];
string[] lines = File.ReadAllLines("tow");
textBox3.Text = lines[i];
string[] lin = File.ReadAllLines("fuhao");
textBox2.Text = lin[i]; }
i++;
if (i == line.Length + 1)
{
Form3 foo = new Form3();
foo.ShowDialog();
} }//读题
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}//关闭窗体 }
}
3.Asp换脸
1》后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
///operater1 的摘要说明
/// </summary>
interface operater1
{ int calculate(int a, int b); }
class Add : operater1
{ public int calculate(int a, int b)
{ return a + b; } }
class Sub : operater1
{
public int calculate(int a, int b)
{
return a - b;
}
}
class Mul : operater1
{
public int calculate(int a, int b)
{
return a * b;
}
}
class Div : operater1
{
public int calculate(int a, int b)
{
if (b == 0)
{
throw new Exception("除数不能为零!");
}
else
{
return a / b;
}
}
}
public class Clacuter
{
private operater1 oper1;
public Clacuter(string aSS)
{
switch (aSS)
{
case "+":
oper1 = new Add();
break;
case "-":
oper1 = new Sub();
break;
case "*":
oper1 = new Mul();
break;
case "/":
oper1 = new Div();
break;
} }
public int Calculation(int a,int b)
{
return oper1.calculate(a, b);
}
}
web代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
chuti();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
int a = int.Parse(TextBox1.Text);
int b = int.Parse(TextBox2.Text);
Clacuter claacuter = new Clacuter(TextBox3.Text);
string answer = claacuter.Calculation(a, b).ToString();
if (TextBox4.Text == answer)
{
Response.Write("回答正确!");
}
else
{
Response.Write("回答错误!");
Response.Write(answer);
} }
protected void Button2_Click(object sender, EventArgs e)
{
chuti();
}
private void chuti()
{
Random random = new Random();
TextBox1.Text = random.Next(1, 100).ToString();
TextBox2.Text = random.Next(1, 100).ToString();
string[] arry = new string[] { "+", "-", "*", "/" };
TextBox3.Text = arry[random.Next(0, 4)]; }
}
运行图片