WPF中实现

计算类的封装

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace wpfone1
{
    
        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 wpfone1
{
  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);

        }
    }
}

 

写入类以及清除题库的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace wpfone1
{
    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();
        }
    }
}

 

 window1的设计以及代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace wpfone1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs 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, RoutedEventArgs e)
        {
            string a = @"tow";
            string b = @"one";
            string c = @"fuhao";
            Writes clean = new Writes();
            clean.cleanup(a, b, c);
        }

        private void button3_Click(object sender, RoutedEventArgs e)//开始做题
        {
            Window2 wind = new Window2();
            wind.ShowDialog();

        }
    }
}

 Window2的设计及代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;

namespace wpfone1
{
    /// <summary>
    /// Window2.xaml 的交互逻辑
    /// </summary>
    public partial class Window2 : Window
    {
        public Window2()
        {
            InitializeComponent();
        }
        private int i = 1;
        public static int count;
        public static int right;
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            duti();
        }

        private void textBox4_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.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();
                duti();

            }

        }
        public void duti()
        {
            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)
            {
                MessageBox.Show("你的题做完了,可以去休息一下了!");
                Window3 win3 = new Window3();
                win3.ShowDialog();
            }
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
            Window3 win3 = new Window3();
            win3.ShowDialog();

        }
    }
}

 

window3的设计及代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace wpfone1
{
    /// <summary>
    /// Window3.xaml 的交互逻辑
    /// </summary>
    public partial class Window3 : Window
    {
        public Window3()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            textBox1.Text = Window2.right.ToString();
            textBox2.Text = (Window2.count - Window2.right).ToString();
            textBox3.Text = ((Window2.right / (double)(Window2.count)) * 100).ToString() + "%";
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}

 

 测试

 

总结;

在这里实现感觉跟在windowform中差不太多只有很少的一部分代码有点不一样,用法也有些少许不同!

总的感觉就是在窗体的设计中比较容易操作,感觉比在windowform中更容易些!

 

posted @ 2015-12-09 19:13  小李少  阅读(222)  评论(0编辑  收藏  举报