运行界面:

数据库保存的题:

数据库封装代码:

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;
using System.Data.SqlClient;
using System.Data;
namespace WpfApplication1
{
class shujuku
{
public string str = @"Data Source=.;Initial Catalog=四则运算;Integrated Security=True;Pooling=False";
public SqlConnection sqlcon = new SqlConnection();
public SqlDataAdapter sda = new SqlDataAdapter();
public DataSet ds = new DataSet();
public DataTable dt = new DataTable();
public string x1;
public string x2;
public string x3;
public string x4;
public string x5;
public string x6;
public string x7;
public string x8;
public void dbcon()
{
try
{
sqlcon = new SqlConnection(str); }
catch (Exception ex)
{
MessageBox.Show("数据链接不成功"+ex.Message);
}
} public void ChuTi()
{
dbcon();
sqlcon.Open();
string sqltr = "insert into Table2(第一个数,符号,第二个数) values('" + x1 + "','" + x2 + "','" + x3 + "')";
SqlCommand comm = new SqlCommand(sqltr, sqlcon);
try
{
comm.ExecuteNonQuery();
MessageBox.Show("出题成功!"); }
catch (Exception ex)
{
MessageBox.Show("出题失败" + ex.ToString());
}
sqlcon.Close();
}
public void ShanChu()
{
dbcon();
sqlcon.Open();
string sqltr = "delete from Table2";
SqlCommand comm = new SqlCommand(sqltr, sqlcon);
try
{
comm.ExecuteNonQuery();
MessageBox.Show("删除成功");
}
catch (Exception ex)
{
MessageBox.Show("删除失败" + ex.ToString());
} SqlDataReader reder = comm.ExecuteReader();
sqlcon.Close();
}
public void JiSuan()
{ int i = int.Parse(x4);
dbcon();
sqlcon.Open();
string sqltr = "select * from Table2 ";
SqlCommand comm = new SqlCommand(sqltr, sqlcon);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
x5 = dt.Rows[i][0].ToString();
x6 = dt.Rows[i][1].ToString();
x7 = dt.Rows[i][2].ToString();
sqlcon.Close();
}
public void DaoRu()
{
dbcon();
sqlcon.Open();
string sqltr = "select * from Table2 ";
SqlCommand comm = new SqlCommand(sqltr, sqlcon);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i][0].ToString();
dt.Rows[i][1].ToString();
dt.Rows[i][2].ToString();
x8 += dt.Rows[i][0].ToString().Trim() + dt.Rows[i][1].ToString().Trim() + dt.Rows[i][2].ToString().Trim() + "\n";
}
sqlcon.Close();
} }
}

wpf代码:

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;
using System.Data.SqlClient;
using System.Data; namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public static int Count = 0;
public static int zhengque = 0;
public static int lefttime;
public static int sum;
shujuku sj = new shujuku();
private void button1_Click(object sender, RoutedEventArgs e)
{ sj.x1 = left.Text;
sj.x2 = fuhao.Text;
sj.x3 = right.Text;
sj.ChuTi();
string f = fuhao.Text;
switch (f)
{
case "+":
sum = int.Parse(left.Text) + int.Parse(right.Text);
daan1.Text += sum + "\r\n"; break;
case "-":
sum = int.Parse(left.Text) - int.Parse(right.Text); daan1.Text += sum + "\r\n";
break;
case "*":
sum = int.Parse(left.Text) * int.Parse(right.Text); daan1.Text += sum + "\r\n";
break;
case "/":
sum = int.Parse(left.Text) / int.Parse(right.Text); daan1.Text += sum + "\r\n";
break;
default:
break; }
left.Clear();
fuhao.Clear();
right.Clear();
} private void button2_Click(object sender, RoutedEventArgs e)
{
sj.ShanChu(); } private void button4_Click(object sender, RoutedEventArgs e)
{
sj.x4=textBox5.Text;
textBox1.Text= sj.x5;
textBox2.Text= sj.x6;
textBox3.Text=sj.x7 ;
sj.JiSuan(); } private void button5_Click(object sender, RoutedEventArgs e)
{
if (daan1.Text == "显示答案")
{
daan1.Visibility = Visibility.Visible;
daan1.Text = "隐藏答案";
}
else if (daan1.Text == "隐藏答案")
{
daan1.Visibility = Visibility.Hidden;
daan1.Text = "显示答案"; }
} private void button3_Click(object sender, RoutedEventArgs e)
{
textBox6.Text = sj.x8;
sj.DaoRu();
} private void textBox4_KeyDown(object sender, KeyEventArgs e)
{
tiaoyong ty = new tiaoyong();
string fuha = textBox2.Text;
ty.c = int.Parse(textBox1.Text);
ty.n = int.Parse(textBox3.Text);
ty.yunsuan(fuha);
if (e.Key == Key.Enter)
{
if (textBox4.Text == ty.result.ToString())
{
MessageBox.Show("回答正确");
zhengque++;
}
else
{
MessageBox.Show("回答错误");
}
textBox4.Clear(); } } private void Window_Loaded(object sender, RoutedEventArgs e)
{
shujuku sj = new shujuku();
} }
}

策略封装代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace WpfApplication1
{ 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 result = 0;
public int c=0;
public int n=0;
public void yunsuan(string m)
{
if (m == "+")
{
Class2 jia = new Class2();
result = jia.Calcul(c, n);
}
if (m == "-")
{
sub su = new sub();
result = su.Calcul(c, n);
}
if (m == "*")
{
sheng sh = new sheng();
result = sh.Calcul(c, n); }
if (m == "/")
{ chu ch = new chu();
result = ch.Calcul(c, n); } }
} }

  

Wpf+数据库代码封装+策略模式封装的更多相关文章

  1. 【Android】策略模式封装百度地图路线规划模块

    百度地图的Demo里有个路线规划的功能,但是,这个功能和Activity耦合性太高,所以需要单独抽离出路径规划功能,进行"解耦". 注:由于项目原因,本文只针对驾车路线规划进行封装 ...

  2. 《大话设计模式》ruby版代码:策略模式

    需求: 商场收银软件,根据客户购买物品的单价和数量,计算费用,会有促销活动,打八折,满三百减一百之类的. 一,使用工厂模式. # -*- encoding: utf-8 -*- #现金收费抽象类 cl ...

  3. 有效的减少代码中太多的if、else?-策略模式

    写这篇文章的目的和上一篇单例模式一样,策略模式也是一种常用的设计模式,太多的if-else不仅看着不太美观而且不好维护,对于自己来说也等于复习了一遍策略模式.先说一下策略 模式的定义: 策略模式封装了 ...

  4. WPF 策略模式

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

  5. 小白写了一堆if-else,大神实在看不下去了,竟然用策略模式直接摆平了

    这里涉及到一个关键词:策略模式,那么到底什么是策略模式呢?本文就来好好给大家讲讲策略模式,大家可以带着如下几个问题来阅读本文:   1. 如何通过策略模式优化业务逻辑代码(可以根据自己从事的工作思考) ...

  6. 理解javascript中的策略模式

    理解javascript中的策略模式 策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换. 使用策略模式的优点如下: 优点:1. 策略模式利用组合,委托等技术和思想,有效 ...

  7. JavaScript设计模式与开发实践 - 策略模式

    引言 本文摘自<JavaScript设计模式与开发实践> 在现实中,很多时候也有多种途径到达同一个目的地.比如我们要去某个地方旅游,可以根据具体的实际情况来选择出行的线路. 如果没有时间但 ...

  8. [.net 面向对象程序设计深入](24)实战设计模式——策略模式(行为型)

    [.net 面向对象程序设计深入](24)实战设计模式——策略模式(行为型) 1,策略模式定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它 ...

  9. 再起航,我的学习笔记之JavaScript设计模式20(策略模式)

    策略模式 策略模式(Strategy):将定义的一组算法封装起来,使其相互之间可以替换.封装的算法具有一定的独立性,不会随客户端变化而变化. 其实策略模式在我们生活中可应用的地方还是比较多的,比如在商 ...

随机推荐

  1. 使用java发送QQ邮件的总结

    最近帮朋友做个网站,实现用邮箱订阅功能,所以现在把这个发送邮件的功能放在这里,算是这两天工作的总结吧! 首先,想要实现订阅功能,要把邮箱保存,但是这个做的是个小网站,前后台交互的太少了,所以我就直接保 ...

  2. 什么是控制反转(IOC)?什么是依赖注入?

    控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程技巧,对象之间耦合关系在编译时通常是未知的.在传统编程方式中,业务逻辑的流程是应用程序中早已被设定好关联关系的对象来决定的 ...

  3. ubuntu终端下快捷键之--字体放大缩小

    1.快捷键 Ctrl  -   字体缩小 Ctrl  + (有的电脑是“Ctrl Shift +” 三个按键同时按下)字体放大 Ctrl 0  恢复默认字体 2.终端设置默认字体 在终端下,点击右键- ...

  4. mysql——leetcode问题记录

    问题: 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | ...

  5. 20155327 2017-2018-2 《Java程序设计》第一周学习总结

    20155327 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 三大平台: 1.Java SE:JVM,JRE,JDK,java语言 JVM:Java虚拟机 ...

  6. c++ 自定义类型,函数指针类型

    用typedef定义函数指针类型 -函数指针和函数指针数组 46课里边有如下代码 int add(int a,int b,int d) { return a+b+d; } int mul(int a, ...

  7. ISP与IAP

    ISP:in system program 顾名思义,在系统编程,单片机不用从电路上拆下,直接用下载器或者串口即可完成程序的烧写.这个是用于工程师调试程序,或者出厂时烧写程序.本质上是芯片出厂时烧录到 ...

  8. 【转载】COM 组件设计与应用(十七)——持续性

    原文:http://vckbase.com/index.php/wv/1264.html 一.前言 我们写程序,经常需要实现这样的需求: 例一.程序运行产生一个窗口,用户关闭的时候需要记录窗口的位置, ...

  9. CentOS7 msmtp+mutt发送邮件

    一.安装软件 # msmtp软件各版本下载地址:https://marlam.de/msmtp/download/ [root@--- ~]# wget https://marlam.de/msmtp ...

  10. #2007. 「SCOI2015」国旗计划

    好久没更过博了.. 首先断环为链,因为线段互相不包含,所以对每个线段\(i\)可以找一个满足\(r_j\geq l_i\)的\(l_j\)最小的线段,dp的时候\(i\)就会从\(j\)转移过来 然后 ...