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)]; } }
运行图片