策略实现代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 简易运算 { public interface ODD { int members(int a, int b); } class Class2 : ODD { public int members(int a, int b) { return a + b; } } class sub : ODD { public int members(int a, int b) { return a - b; } } class Mul : ODD { public int members(int a, int b) { return a * b; } } class Div : ODD { public int members(int a, int b) { return a / b; } } class suanfa { public int result = 0; public int fa = 0; public int fb = 0; public void math(string TR) { if (TR == "+") { Class2 being= new Class2(); result = being.members(fa, fb); } if (TR == "-") { sub Jian = new sub(); result= Jian.members(fa, fb); } if (TR == "*") { Mul CH = new Mul(); result = CH.members(fa, fb); } if (TR == "/") { Div CF = new Div(); result = CF.members(fa, fb); } } } }
Form代码:
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(); } string path = "E:/"; public static int count = 0; public static int right = 0; public static int sum; public int m = 0; public int n = 0; private void Form1_Load(object sender, EventArgs e) { Class1 s = new Class1(); s.text1(); } private void button1_Click(object sender, EventArgs e) { StreamWriter l1 = File.AppendText("1.txt"); l1.WriteLine(text1.Text); l1.Close(); StreamWriter l2 = File.AppendText("2.txt"); l2.WriteLine(textBox2.Text); l2.Close(); StreamWriter l3 = File.AppendText("3.txt"); l3.WriteLine(text2.Text); l3.Close(); richTextBox1.Text += text1.Text + textBox2.Text +text2.Text+ " "; n++; text1.Text = ""; text2.Text = ""; textBox2.Text = ""; savet.Enabled = true; opent.Enabled = true; text1.Focus(); } private void savet_Click(object sender, EventArgs e) { SaveFileDialog TxtSaveDialog = new SaveFileDialog(); TxtSaveDialog.Filter = "RTF文件(*.RTF)|*.RTF"; if (File.Exists(path)) { this.richTextBox1.SaveFile(path, RichTextBoxStreamType.RichText); MessageBox.Show("保存成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.richTextBox1.Clear(); savet.Enabled = false; } else { if (TxtSaveDialog.ShowDialog() == DialogResult.OK) { this.richTextBox1.SaveFile(TxtSaveDialog.FileName, RichTextBoxStreamType.RichText); MessageBox.Show("保存成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.richTextBox1.Clear(); savet.Enabled = false; } } } private void opent_Click(object sender, EventArgs e) { OpenFileDialog TxTOpenDialog = new OpenFileDialog(); TxTOpenDialog.Filter = "RTF文件(*.RTF)|*.RTF"; if (TxTOpenDialog.ShowDialog() == DialogResult.OK) { path = TxTOpenDialog.FileName; this.richTextBox1.LoadFile(TxTOpenDialog.FileName, RichTextBoxStreamType.RichText); savet.Enabled = false; opent.Enabled = false; MessageBox.Show("打开成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } private void button2_Click(object sender, EventArgs e) { int a = Convert.ToInt32(jishi.Text); jishi.Text = a.ToString(); timer1.Enabled = true; timer1.Interval = 1000; string[] l1 = new string[100]; l1 = File.ReadAllLines("1.txt"); string[] l2 = new string[100]; l2 = File.ReadAllLines("2.txt"); string[] l3 = new string[100]; l3 = File.ReadAllLines("3.txt"); Box1.Text = l1[0]; Box4.Text = l2[0]; Box2.Text = l3[0]; } private void Box3_KeyDown(object sender, KeyEventArgs e) { //string s = Box4.Text; //Pack operast = new Pack(); //operast.OP = int.Parse(Box1.Text); //operast.Pt = int.Parse(Box2.Text); //operast.Oper = Box4.Text; suanfa fan = new suanfa(); string str = textBox2.Text; fan.fa = int.Parse(Box1.Text); fan.fb = int.Parse(Box2.Text); string st = Box4.Text; fan.math(st); int sum = fan.result; //switch (s) //{ // case "+": // sum = int.Parse(Box1.Text) + int.Parse(Box2.Text); // break; // case "-": // sum = int.Parse(Box1.Text) - int.Parse(Box2.Text); // break; // case "*": // sum = int.Parse(Box1.Text) * int.Parse(Box2.Text); // break; // case "/": // sum = int.Parse(Box1.Text) / int.Parse(Box2.Text); // break; // default: // break; //} if (e.KeyCode == Keys.Enter) { if (sum.ToString() == Box3.Text) { MessageBox.Show("回答正确哦!"); count++; right++; } else { MessageBox.Show("回答错误哦!"); count++; } m++; if (m < n) { Box3.Clear(); string[] ll = new string[100]; ll = File.ReadAllLines("1.txt"); Box1.Text = ll[m]; string[] l2 = new string[100]; l2 = File.ReadAllLines("2.txt"); Box4.Text = l2[m]; string[] l3 = new string[100]; l3 = File.ReadAllLines("3.txt"); Box2.Text = l3[m]; } else { jishi.Enabled = false; Form2 frm = new Form2(); frm.ShowDialog(); } } } private void timer1_Tick(object sender, EventArgs e) { //t = t + 1; //jishi.Text = t.ToString(); if(Convert.ToInt32(jishi.Text)<=0) { timer1.Enabled = false; MessageBox.Show("时间到"); } int a = Convert.ToInt32(jishi.Text); a = a - 1; jishi.Text = a.ToString(); } } }
测试截图:
总结:运用策越模式 感觉到可使算法具有灵活性,实现一个功能 原来有这么多的途径、、