你的位置:首页 > 软件开发 > ASP.net > C# 控制台语音计算器

C# 控制台语音计算器

发布时间:2016-09-22 18:00:09
记得上高中时,给人当会计,帮忙结算月度工资;用的就是带语音功能的计算器! 当时用起来倍儿爽,于是速度加倍,效率加速;结果让老板赔了不少钱!就是因为这,我才对语音计算器有了深刻印象!可能是这货坑了我!哼~!好吧,闲言少叙,直入正题吧!最近在做一个项目,有个简单的功能,就是将文本转换 ...

C# 控制台语音计算器

记得上高中时,给人当会计,帮忙结算月度工资;用的就是带语音功能的计算器! 当时用起来倍儿爽,于是速度加倍,效率加速;结果让老板赔了不少钱!

就是因为这,我才对语音计算器有了深刻印象!可能是这货坑了我!哼~!

好吧,闲言少叙,直入正题吧!

最近在做一个项目,有个简单的功能,就是将文本转换成语音。

研究了这个功能后,抽空顺带做了个语音计算器!

“来银啊,上代码!”

“老大,木有银,上不了”

“哎呀我去,非逼我说粗话,来个货,把代码码上来!”

“好的,老大!”

哈哈哈,俺就是那个带点儿逗比的搬砖员儿!好吧,代码来了,小主,等急了吧?

using System;using System.Speech.Synthesis;using System.Collections.Generic;namespace ReadTxt{  class Program  {    static get='_blank'>string num1 = "", firchar = "", lastchar = "", tempRe = "";    static void Main(string[] args)    {            Console.Title = "语音计算器";      bool jump = true;      do      {        ConsoleKeyInfo info = Console.ReadKey();        switch (info.Key)        {          case ConsoleKey.Escape: Environment.Exit(0); jump = false; break;          case ConsoleKey.NumPad0:  GetKeyRead("0");   break;          case ConsoleKey.NumPad1:  GetKeyRead("1");   break;          case ConsoleKey.NumPad2:  GetKeyRead("2");   break;          case ConsoleKey.NumPad3:  GetKeyRead("3");   break;          case ConsoleKey.NumPad4:  GetKeyRead("4");   break;          case ConsoleKey.NumPad5:  GetKeyRead("5");   break;          case ConsoleKey.NumPad6:  GetKeyRead("6");   break;          case ConsoleKey.NumPad7:  GetKeyRead("7");   break;          case ConsoleKey.NumPad8:  GetKeyRead("8");   break;          case ConsoleKey.NumPad9:  GetKeyRead("9");   break;          case ConsoleKey.Add:    GetKeyRead("加");  break;          case ConsoleKey.Subtract:  GetKeyRead("减");  break;          case ConsoleKey.Multiply:  GetKeyRead("乘");  break;          case ConsoleKey.Divide:   GetKeyRead("除");  break;          case ConsoleKey.Enter:            if (!string.IsNullOrEmpty(num1) && GetSignIsTrue(num1))            {              SetValue(num1);              num1 = "";            }            else            {              num1 = "";              if (!string.IsNullOrEmpty(num1))              {                Console.Beep();                Console.WriteLine("Error.");              }            }            break;          default:            break;        }      } while (jump);      Console.Read();    }    //判断用户输入的内容是否合法    static void GetKeyRead(string str)    {      SpeechSynthesizer spvoice = new SpeechSynthesizer();      spvoice.Rate = 1;      spvoice.Volume = 100;      if (!string.IsNullOrEmpty(num1))      {        firchar = num1.Substring(0, 1);        lastchar = num1.Substring(num1.Length - 1, 1);      }      switch (str)      {        case "加":          if (firchar != "加" && lastchar != "加")          {            if (lastchar != "减" && lastchar != "乘" && lastchar != "除")            {              num1 += str;            }            else            {              num1 = num1.Remove(num1.Length - 1);              num1 += str;            }          }                    break;        case "减":          if (firchar != "减" && lastchar != "减")          {            if (lastchar != "加" && lastchar != "乘" && lastchar != "除")            {              num1 += str;            }            else             {              num1 = num1.Remove(num1.Length - 1);              num1 += str;            }          }                    break;        case "乘":          if (firchar != "乘" && lastchar != "乘")          {            if (lastchar != "加" && lastchar != "减" && lastchar != "除")            {              num1 += str;            }            else            {              num1 = num1.Remove(num1.Length - 1);              num1 += str;            }          }          break;        case "除":          if (firchar != "除" && lastchar != "除")          {            if (lastchar != "加" && lastchar != "减" && lastchar != "乘")            {              num1 += str;            }            else            {              num1 = num1.Remove(num1.Length - 1);              num1 += str;            }          }          break;        default:          num1 += str;          break;      }      spvoice.SpeakAsync(str);      Console.Clear();      Console.Write(tempRe + num1.Replace('加', '+').Replace('减', '-').Replace('乘', '*').Replace('除', '/').Replace("等于", "="));    }    static bool GetSignIsTrue(string num1)     {      if (!string.IsNullOrEmpty(num1))      {        firchar = num1.Substring(0, 1);        lastchar = num1.Substring(num1.Length - 1, 1);      }      return firchar != "加" && lastchar != "加" && firchar != "减" && lastchar != "减" && firchar != "乘" && lastchar != "乘" && firchar != "除" && lastchar != "除";    }    //计算    static void SetValue(string num1)    {      List<double> array = new List<double>();      List<string> sign = new List<string>();      num1 = num1.Replace('加', '+').Replace('减', '-').Replace('乘', '*').Replace('除', '/');      string tempCap = "";      char[] MyChar = num1.ToCharArray();      for (int i = 0; i < MyChar.Length; i++)      {        if (MyChar[i].ToString() == "+" || MyChar[i].ToString() == "-" || MyChar[i].ToString() == "*" || MyChar[i].ToString() == "/")        {          array.Add(Convert.ToDouble(tempCap));          tempCap = "";          sign.Add(MyChar[i].ToString());        }        else        {          if (i == MyChar.Length - 1)          {            tempCap += MyChar[i].ToString();            array.Add(Convert.ToDouble(tempCap));          }          else          {            tempCap += MyChar[i].ToString();          }        }      }      double resultTemp = 0;      for (int i = 0; i < sign.ToArray().Length; i++)      {        if (sign[i] == "*")        {          resultTemp = array[i] * array[i + 1];          array[i] = resultTemp;          array.Remove(array[i + 1]);          sign.Remove(sign[i]);          resultTemp = 0;          i--;        }        else if (sign[i] == "/")        {          resultTemp = array[i] / array[i + 1];          array[i] = resultTemp;          array.Remove(array[i + 1]);          sign.Remove(sign[i]);          resultTemp = 0;          i--;        }      }      for (int i = 0; i < sign.ToArray().Length; i++)      {        if (sign[i] == "+")        {          resultTemp = array[i] + array[i + 1];          array[i] = resultTemp;          array.Remove(array[i + 1]);          sign.Remove(sign[i]);          resultTemp = 0;          i--;        }        else if (sign[i] == "-")        {          resultTemp = array[i] - array[i + 1];          array[i] = resultTemp;          array.Remove(array[i + 1]);          sign.Remove(sign[i]);          resultTemp = 0;          i--;        }      }      double answ = array[0];      array.Clear();      sign.Clear();      tempRe += num1.Replace('加', '+').Replace('减', '-').Replace('乘', '*').Replace('除', '/') + "= " + answ + "\n";      GetKeyRead("等于" + answ);    }  }}

原标题:C# 控制台语音计算器

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录