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) --- 会说话的简易计算器的更多相关文章

  1. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  2. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  3. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  4. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

  5. WCF学习之旅—WCF服务部署到IIS7.5(九)

    上接   WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以 ...

  6. WCF学习之旅—WCF服务部署到应用程序(十)

    上接  WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下 ...

  7. WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...

  8. WCF学习之旅—WCF服务的WAS寄宿(十二)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...

  9. WCF学习之旅—WCF服务的批量寄宿(十三)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF ...

随机推荐

  1. Linux shell 脚本攻略之根据扩展名切分文件名

    摘自:<Linux shell 脚本攻略>Page61-62  

  2. ASP.NET MVC and jqGrid 学习笔记 4-排序

    排序(Sorting)分为两种:客户端排序和服务端排序 客户端排序的意思是把数据从数据库里一次性全部提取出来,然后在客户端进行排序,以后每次点击标题进行排序时,就不会给服务端传递请求了.这个“一次性” ...

  3. 实验教学管理系统 c语言程序代写源码下载

    问题描述:实验室基本业务活动包括:实验室.班级信息录入.查询与删除:实验室预定等.试设计一个实验教学管理系统,将上述业务活动借助计算机系统完成. 基本要求: 1.必须存储的信息 (1)实验室信息:编号 ...

  4. 深入理解计算机系统第二版习题解答CSAPP 2.20

    T2Uw(w)=x, x≥0时 T2Uw(w)=x+2w, x<0时 利用上面的公式,重新计算2.19的问题.

  5. CENTOS WDCP 安装及安全设置教程

    1.WDCP 安装 源码安装 (ssh登录服务器,执行如下操作即可,需root用户身份安装) wget  http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz t ...

  6. 修改Linux网卡由eth1变成eth0

    正常来说,Linux在识别网卡时第一张会是eth0,第二张才是eth1.有时候我们使用虚拟机克隆技术后网卡的信息就会改变,新克隆出来的虚拟主机网卡名字可能变为eth1.无论我们怎么修改都无法改变,这就 ...

  7. [未完成]关于xml文件的解析

    附录一个比较特别的xml文件. MultiNamespaceInlineRequest.xml <?xml version="1.0" encoding="ISO- ...

  8. [未完成]关于Eclipse4RCP书中内容总结

    原文地址http://www.vogella.com/tutorials/EclipseRCP/article.html Table of Contents 1. Eclipse 4 1.1. Wha ...

  9. poj 1848 树形dp

    思路:表示我很弱,这个想不出dp方程,参考网上代码 #include<iostream> #include<algorithm> #include<cstring> ...

  10. hdu 3440 差分约束

    看完题目第一遍,感觉很简单.当写完程序跑测试用例的时候,发现第二个总是过不了,然后好好研究了一下测试用例,才知道原来不是程序有问题,而是我的建图方式错了.对于这些无序的点,如果高的在右边,不等式是di ...