• 封装逻辑用策略模式实现


    运行结果:

    策略封装代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace shuxuefudao
    {  
        public interface ITaxStragety
            {
            int Calcul(int a,int b);
           
            }
       class Class2 : ITaxStragety
        {
          
          public  int Calcul(int a, int b)
            {
                return  a + b;
            }
    
        }
       class sub : ITaxStragety
        {
          public int Calcul(int a, int b)
           {
               return  a - b;
           }
       
       }
       class sheng : ITaxStragety
       {
          public int Calcul(int a, int b)
           {
               return a *b;
                           
           }
       
       }
        class chu : ITaxStragety
       {
         public int Calcul(int a, int b )
           {
               return a / b;
    
           }
       }
      
         class tiaoyong
        {                
             public int c=0;
             public int n=0;
             public void yunsuan(string m)
             { 
                 if(m=="+")
                 {
                     Class2 ss = new Class2();
                     ss.Calcul(c,n);
                                                      
                 }
                 if(m=="-")
                 {
                     sub ww = new sub();
                     ww.Calcul(c,n);
    
                    
                 }
                 if(m=="*")
                 {
                     sheng qq = new sheng();
                     qq.Calcul(c,n);
                               
                 }
                 if(m=="/")
                 {
    
                     chu pp = new chu();
                     pp.Calcul(c,n);
                 
                 }
             
             }
        }
    }
    

     内容代码:

    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 shuxuefudao
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            string path = "E:
    tf";
            public static int Count = 0;
            public static int zhengque = 0;
            public static int lefttime;
            public static int time;
            public static int sum;
            int i = 1;
            Class1 mm = new Class1();
            private void Form1_Load(object sender, EventArgs e)
            {
                if (File.Exists(path))
                {
                    this.richTextBox1.LoadFile(path, RichTextBoxStreamType.RichText);
                    open.Enabled = false;
                }
                save.Enabled = false;
            }
            private void open_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);
                    save.Enabled = false;
                    open.Enabled = false;
                    MessageBox.Show("读取成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
    
            private void save_Click(object sender, EventArgs e) //保存文件的方法
            {
                SaveFileDialog TxtSaveDialog = new SaveFileDialog();
                TxtSaveDialog.Filter = "RTF文件(*.RTF)|*.RTF";
                if (File.Exists(path))
                {
    
                    this.richTextBox1.LoadFile(path, RichTextBoxStreamType.RichText);
                    MessageBox.Show("保存成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                  
                    save.Enabled = false;
                }
                else
                {
                    if (TxtSaveDialog.ShowDialog() == DialogResult.OK)
                    {
    
                        this.richTextBox1.SaveFile(TxtSaveDialog.FileName, RichTextBoxStreamType.RichText);
                        MessageBox.Show("保存成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        
                        save.Enabled = false;
                    }
                }
            }
    
            private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                save.Enabled = true;
                if (this.richTextBox1.Text == "" || this.richTextBox1.Text == null)
                {
                    open.Enabled = true;
                }
            }
            public void shizi() //编写试题的方法
            { 
                    left.Text = "";
                    fuhao.Text = "";
                    right.Text = "";   
            }
            private void open2_Click(object sender, EventArgs e) //打开试题的方法
            {
                OpenFileDialog TxTOpenDialog = new OpenFileDialog();
                TxTOpenDialog.Filter = "RTF文件(*.RTF)|*.RTF";
                if (TxTOpenDialog.ShowDialog() == DialogResult.OK)
                {
                    path = TxTOpenDialog.FileName;
                    this.richTextBox2.LoadFile(TxTOpenDialog.FileName, RichTextBoxStreamType.RichText);
                    save.Enabled = false;
                    open.Enabled = false;
                    MessageBox.Show("导入成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
    
            private void daoru_Click(object sender, EventArgs e) //导入试题的方法
            {
                richTextBox2.Text = richTextBox1.Text;
            }
    
            private void daan1_Click(object sender, EventArgs e)
            {
                if (daan1.Text == "显示答案")
                {
                    daan.PasswordChar = Convert.ToChar(0);
                    daan1.Text = "隐藏答案";
                }
                else if (daan1.Text == "隐藏答案")
                {
                    daan.PasswordChar = '.';
                    daan1.Text = "显示答案";
    
                }
            }
    
            private void kaishi_Click(object sender, EventArgs e)
            {
    
                string[] ll = new string[100];
                ll = File.ReadAllLines("writer.txt");
                textBox1.Text = ll[0];
    
                string[] lli = new string[100];
                lli = File.ReadAllLines("writer1.txt");
                textBox2.Text = lli[0];
    
                string[] llp = new string[100];
                llp = File.ReadAllLines("writer2.txt");
                textBox3.Text = llp[0];
              
               
                int minute;
                try
                {
                    minute = int.Parse(this.shijian.Text);
                }
                catch (System.Exception ex)
                {
                    this.shijian1.Text = "输入错误";
                    return;
                }
                lefttime = minute;
                this.timer1.Interval = 1000;
                this.timer1.Enabled = true;
                this.timer1.Start();
               
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (lefttime <= 0)
                {
                    timer1.Enabled = false;
                    MessageBox.Show("答题时间到!");
                    Form2 frm2 = new Form2();
                    frm2.ShowDialog();
                    
                }
                this.shijian1.Text = "剩余时间" + lefttime.ToString() + "秒";
                lefttime--; 
            }
    
            private void jieshu_Click(object sender, EventArgs e)
            {
                Form2 frm2 = new Form2();
                frm2.ShowDialog();
            }
    
            private void button1_Click(object sender, EventArgs e) //请编辑下道题的事件
            { 
                Count++;
                ti.Text = Count.ToString();
                StreamWriter writer = File.AppendText("writer.txt");
               writer.WriteLine(left.Text);
                writer.Close();
                StreamWriter writer1 = File.AppendText("writer1.txt");
                writer1.WriteLine(fuhao.Text);
                writer1.Close();
                StreamWriter writer2 = File.AppendText("writer2.txt");
                writer2.WriteLine(right.Text);
                writer2.Close();
                richTextBox1.Text += left.Text + fuhao.Text + right.Text + label2.Text + "" + "
    ";
                //mm.m= int.Parse(left.Text);
                //mm.n = int.Parse(right.Text);
                daan.Text = Convert.ToString(mm.c);
                daan.Text += sum + "
    ";
                tiaoyong ee = new tiaoyong();
                ee.c = int.Parse(left.Text);
                ee.n = int.Parse(right.Text);
                string a = Convert.ToString(mm.m);
                ee.yunsuan(a);
                //left.Text="";
                //right.Text = "";
                //fuhao.Text = "";
                //mm.a = left.Text;
                //mm.b = right.Text;
                //mm.d = fuhao.Text;      
                //mm.Calue();
            //    string f = fuhao.Text;
            //    switch (f)
            //    {
            //        case "+":
            //            sum = int.Parse(left.Text) + int.Parse(right.Text);
            //            daan.Text += sum + "
    ";
            //            shizi();
    
            //            break;
            //        case "-":
            //            sum = int.Parse(left.Text) - int.Parse(right.Text);
            //            shizi();
            //            daan.Text += sum + "
    ";
            //            break;
            //        case "×":
            //            sum = int.Parse(left.Text) * int.Parse(right.Text);
            //            shizi();
            //            daan.Text += sum + "
    ";
            //            break;
            //        case "÷":
            //            sum = int.Parse(left.Text) / int.Parse(right.Text);
            //            shizi();
            //            daan.Text += sum + "
    ";
            //            break;
            //        default:
            //            break;
    
            //    }
            }
            private void textBox4_KeyDown(object sender, KeyEventArgs e)
            {
    
                string m = textBox2.Text;
                int result;
                switch (m)
                {
                    case "+":
                        sum = int.Parse(textBox1.Text) + int.Parse(textBox3.Text);
    
                        break;
                    case "-":
                        sum = int.Parse(textBox1.Text) - int.Parse(textBox3.Text);
                        break;
                    case "*":
                        sum = int.Parse(textBox1.Text) * int.Parse(textBox3.Text);
                        break;
                    case "/":
                        sum = int.Parse(textBox1.Text) / int.Parse(textBox3.Text);
                        break;
                    default:
                        break;
            }
                if (e.KeyCode == Keys.Enter)
                {
    
                    if (int.TryParse(textBox4.Text, out result) == false)
                    {
                        MessageBox.Show("请输入数字");
    
                    }
                    if (textBox4.Text == sum.ToString())
                    {
    
                        MessageBox.Show("回答正确");
                        zhengque++;
    
                    }
                    else
                    {
    
                        MessageBox.Show("回答错误");
                    }
                   
                   
                    textBox4.Clear();
    
                    string[] ll = new string[100];
                    ll = File.ReadAllLines("writer.txt");
                    textBox1.Text = ll[i];
                    string[] lli = new string[100];
                    lli = File.ReadAllLines("writer1.txt");
                    textBox2.Text = lli[i];
                    string[] llp = new string[100];
                    llp = File.ReadAllLines("writer2.txt");
                    textBox3.Text = llp[i];
                    i++;
    
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                File.WriteAllText("writer.txt", string.Empty);
                File.WriteAllText("writer1.txt", string.Empty);
                File.WriteAllText("writer2.txt", string.Empty);
            }
     
        }
    }
    

      

  • 相关阅读:
    Elasticsearch系列---常见搜索方式与聚合分析
    Elasticsearch系列---Elasticsearch的基本概念及工作原理
    Elasticsearch系列---初识Elasticsearch
    记一次ES查询数据突然变为空的问题
    04、管道符、重定向与环境变量
    03、新手必须掌握的Linux命令
    02、安装Linux系统
    01、VM安装教程
    02、HTML 基础
    01、HTML 简介
  • 原文地址:https://www.cnblogs.com/daidaide/p/4996093.html
Copyright © 2020-2023  润新知