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 ...
随机推荐
- Linux 引导过程内幕
转载:http://www.ibm.com/developerworks/cn/linux/l-linuxboot/index.html 从主引导记录到第一个用户空间应用程序的指导 引导 Linu ...
- Linux下使用mke2fsk格式化虚拟磁盘分区的方法
原文地址:http://www.2cto.com/os/201202/119963.html 我们用dd命令就可以创建一个raw格式的虚拟磁盘,通常Xen就是使用这种格式的虚拟磁盘,今天就来讨论下怎样 ...
- vim一个快速切换主题的插件(change-colorscheme,原创)
概述 有时候我们想快速浏览主题并找到一款合适的主题,change-colorscheme将会满足我们的要求. 安装 git https://github.com/chxuan/change-color ...
- Miaomiao's Geometry
HDU 4932 Bestcoder Problem Description There are N point on X-axis . Miaomiao would like to cover t ...
- Google镜像站更新地址
越来越觉得某度的行为无耻无下限,Google镜像站地址,不方便访问Google的可以参考,后面会尽量保持更新可用的镜像库. (收藏地址即可,免得镜像站被封) https://g.jikewenku.c ...
- SqlServer高版本数据本分还原到低版本方法
最近遇见一个问题: 想要将Sqlserver高版本备份的数据还原到低版本SqlServer上去,但是这在SqlServer中是没法直接还原数据库的,所以经过一系列的请教总结出来一下可用方法. 首先.你 ...
- [未完成]关于Maven的使用总结
什么是maven 翻译为“专家”,“内行” Maven是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 什么是理想的项目构建? 高度自动化,跨平台,可重用的组件, ...
- 【解决】应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。
换了SSD硬盘,装了Windows 7 SP1 x64的系统.用了一段时间,突然一天有些软件打不开了.弹出下面的提示 应用程序无法正常启动(0xc000007b).请单击“确定”关闭应用程序.第一时间 ...
- ASP.NET(C#) 读取EXCEL ——另加解决日期问题
转载:http://www.cnblogs.com/diony/archive/2011/09/08/2171133.html 使用OLEDB可以对excel文件进行读取,我们只要把该excel文件作 ...
- jQuery之锚点带动画跳转特效
背景图片为金木研,这是我最爱的一张图. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...