封装,策略模式,Asp换脸
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)]; }
}
运行图片

封装,策略模式,Asp换脸的更多相关文章
- 封装,策略,Asp换脸
封装.策略 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespac ...
- 计算器软件的代码实现 (策略模式+asp.net)
一 策略模式代码的编写 using System; using System.Collections.Generic; using System.Linq; using System.Web; /// ...
- 计算器软件实现系列(五)策略模式+asp.net
一 策略模式代码的编写 using System; using System.Collections.Generic; using System.Linq; using System.Web; /// ...
- Wpf+数据库代码封装+策略模式封装
运行界面: 数据库保存的题: 数据库封装代码: using System; using System.Collections.Generic; using System.Linq; using Sys ...
- ASP.NET四则运算--策略模式
在ASP.NET中实现四则运算,同样使用了类的封装,以及策略模式.只不过是把封装的类.前台代码以及后台的代码分离开来,但同样是要达到功能的实现. Calculator.cs using System; ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- ASP.net之策略模式
设计思路: 用ASP.net设计,调用策略模式.在第一个数和第二个数的文本框中输入数值,单击录题按钮,数值保存在n1,n2文档中,把要做的题都保存完后,单击开始按钮,开始做题,做完单击判断按钮,进行判 ...
- 【Android】策略模式封装百度地图路线规划模块
百度地图的Demo里有个路线规划的功能,但是,这个功能和Activity耦合性太高,所以需要单独抽离出路径规划功能,进行"解耦". 注:由于项目原因,本文只针对驾车路线规划进行封装 ...
- Android 设计模式实战之关于封装计费代码库的策略模式详谈
写在之前 这周生活上出现了很多的不如意,从周一开始就觉得哪里出现了问题,然后就是各种烦躁的情绪,后来事情还真是如预感的那样发生了,很是心痛,但也无可奈何,希望大家都好好珍惜自己身边的人:友人,亲人,家 ...
随机推荐
- Bluetooth Baseband介绍
目录 1. 概述 1.1 Clock(时钟) 1.2 寻址方式 2. 物理信道(Physical Channels) 3. 物理链路(Physical Links) 4. 逻辑传输层(Logical ...
- jquerymobile动态添加元素之后不能正确渲染解决方法
jquerymobile动态添加元素之后有些不能被正确渲染的解决方法: listview: 添加 jq(".detail").listview(&quo ...
- 【Android测试】【随笔】Bugtags初体验
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5410003.html 前言 早晨接到一个临时任务,就是尝试 ...
- 【Java 基础篇】【第四课】初识类
看看Java中如何定义一个类,然后用来调用的,这个比较简单,直接看代码吧. 我发现的类和C++不一样的地方: 1.Java中类定义大括号后没有分号: 2.好像没有 public.private等关键字 ...
- ArcGIS API for Silverlight动态标绘的实现
原文:ArcGIS API for Silverlight动态标绘的实现 1.下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地 ...
- 如何迁移测试的MAGENTO到正式运行的MAGENTO
或者这个题目叫做如何改变MAGENTO的运行目录 第一,我们需要在PHPMYADMIN备份整个MAGENTO的数据.备份数据并且存为.SQL. 在这儿假设你的测试网站在http://dev.site. ...
- imx6 lvds 代码分析
查看imx6 kernel中lvds设备和驱动的初始化过程. 相关文档: arm/arm/mach-mx6/board-mx6q_sabresd.c kernel/drivers/video/mxc/ ...
- Session服务器配置指南与使用经验
一.摘要 所有Web程序都会使用Session保存数据. 使用独立的Session服务器可以解决负载均衡场景中的Session共享问题.本文介绍.NET平台下建立Session服务器的几种办法, 并介 ...
- js引入img标签和图片
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 细聊分布式ID生成方法
细聊分布式ID生成方法 https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=403837240&idx=1&sn=ae9 ...