C# 学习之旅(3) --- 会说话的简易计算器
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.Speech;
using System.Speech.Synthesis; namespace calculator
{
public partial class Form1 : Form
{
SpeechSynthesizer sp = new SpeechSynthesizer(); public Form1()
{
InitializeComponent();
} private void Add_Click(object sender, EventArgs e)
{
Compute compute = new Compute();
compute.set(number1, number2);
answer.Text = string.Format("{0}",compute.add());
sp.SpeakAsync(answer.Text);
} private void Subtract_Click(object sender, EventArgs e)
{
Compute compute = new Compute();
compute.set(number1, number2);
answer.Text = string.Format("{0}",compute.subtract());
sp.SpeakAsync(answer.Text);
} private void Multiply_Click(object sender, EventArgs e)
{
Compute compute = new Compute();
compute.set(number1, number2);
answer.Text = string.Format("{0}", compute.multiply());
sp.SpeakAsync(answer.Text);
} private void Divide_Click(object sender, EventArgs e)
{
Compute compute = new Compute();
compute.set(number1, number2);
answer.Text = string.Format("{0}", compute.divide());
sp.SpeakAsync(answer.Text);
} private void Power_Click(object sender, EventArgs e)
{
Compute compute = new Compute();
compute.set(number1, number2);
answer.Text = string.Format("{0}", compute.power());
sp.SpeakAsync(answer.Text);
} private void number1_TextChanged(object sender, EventArgs e)
{
string str = number1.Text.Trim(); for (int i = ; i < str.Length; i++)
{
if (!Char.IsNumber(str[i]))
{
number1.Text = string.Empty;
number1.BackColor = Color.Red;
}
else
{
number1.BackColor = Color.Empty;
}
}
} private void number2_TextChanged(object sender, EventArgs e)
{
string str = number2.Text.Trim();
for (int i = ; i < str.Length; i++)
{
if (!Char.IsNumber(str[i]))
{
number2.Text = string.Empty;
number2.BackColor = Color.Red;
}
else
{
number2.BackColor = Color.Empty;
}
}
} } class Compute {
private double a;
private double b;
private double x; public void set(object a, object b)
{
TextBox tempa = (TextBox)a;
TextBox tempb = (TextBox)b;
this.a = double.Parse(tempa.Text);
this.b = double.Parse(tempb.Text);
} public double add()
{
this.x = this.a + this.b;
return this.x;
} public double subtract()
{
this.x = this.a - this.b;
return this.x;
} public double multiply()
{
this.x = this.a * this.b;
return this.x;
} public double divide()
{
this.x = this.a / this.b;
return this.x;
} public double power()
{
this.x = Math.Pow(this.a, this.b);
return this.x;
}
}
}
看到这里您辛苦了,谢谢 : )
—————————————————————————————————————————————————————————————————————————————
声明:
本文为 大Yi巴狼 对自己所学的知识整理和实现。
本文档欢迎自由转载,但请务必保持本文档完整或注明来之本文档。本文档未经 大Yi巴狼 同意,不得用于商业用途。最后,如果您能从这个简单文档里获得些许帮助,大Yi巴狼 将对自己的一点努力感到非常高兴;由于作者本人水平有限,如果本文档中包含的错误给您造成了不便,在此提前说声抱歉。
祝身体健康,工作顺利。
C# 学习之旅(3) --- 会说话的简易计算器的更多相关文章
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- Hadoop学习之旅二:HDFS
本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...
- WCF学习之旅—第三个示例之二(二十八)
上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1) 使用NuGet下载最新版的Entity Fram ...
- WCF学习之旅—第三个示例之三(二十九)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...
- WCF学习之旅—WCF服务部署到IIS7.5(九)
上接 WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以 ...
- WCF学习之旅—WCF服务部署到应用程序(十)
上接 WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下 ...
- WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)
上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...
- WCF学习之旅—WCF服务的WAS寄宿(十二)
上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...
- WCF学习之旅—WCF服务的批量寄宿(十三)
上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF ...
随机推荐
- 小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD
发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...
- C#面向对象(一) 封装
一.什么叫做面向对象封装? 封装的概念:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别. 二.面向对象封装有什么好处(为什么要封装)? 封装的目的:是增强安全性和简化 ...
- JavaScript 关于this的理解
this是一个挺神奇的东西,经常不知道它绑定到了那里 ,因此出来了各种绞尽脑汁的面试题. 例1 <script> var person={}; person.name='li'; pers ...
- CEF js调用C#封装类含注释
/* * CEF JS调用C#组装类 * * 使用方法(CefGlue为例): * public class BrowserRenderProcessHandler : CefRenderProces ...
- Ubuntu环境下配置Nginx
/etc/nginx目录文件下: drwxr-xr-x 5 root root 4096 Apr 27 12:47 ./ drwxr-xr-x 104 root root 4096 Apr 27 ...
- windows下安装swoole。
服务器是用了Linux环境,所以安装swoole的过程只要看看文档就好了. 由于编写代码环境是在windows上,需要在windows上安装swoole.以便测试. 好了废话不多说,我们看官网文档解决 ...
- hdu 2004 成绩转换
成绩转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 学习css简单内容
Css的class,ID和上下文选择符 Class选择符. Class选择符用来配置某一类css规则,将其应用到网页中一个或多个区域.配置一类样式时,要将选择符配置成类名.在类名前加(.).类名必须以 ...
- JMS - ConnectionMetaData
A Connection provides a ConnectionMetaData object. This object provides the latest version of JMS su ...
- Redis 命令 - Pub/Sub
PSUBSCRIBE pattern [pattern ...] Listen for messages published to channels matching the given patter ...