C语音计算器

我们要用c语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。我们需要检查输入,确保用户没有要求计算机完成不可能的任务。还必须允许用户一次输入一个计算式,例如: 32.4+32 或者 9*3.2

项目效果图

编写这个程序的步骤如下:

  • 获得用户要求计算机执行计算所需的输入。
  • 检查输入,确保输入可以理解。
  • 执行计算。
  • 显示结果。

解决方案

1.步骤1

获得用户输入是很简单的,可以使用printf()和scanf()。下面是读取用户输入的程序代码:

#include<stdio.h>
int main()
{
   double number1=0.0;     //定义第一个操作值
   double number2=0.0;     //定义第二个操作值
   char operation=0;       //operation必须是‘+‘‘-‘‘*‘‘/‘或‘%‘

   printf("\nEnter the calculation\n");
   scanf("%lf%c%lf",&number1,&operation,&number2);

   return 0;
}

2.步骤2

接着,检查输入是否正确。最明显的检查是要执行的操作是否有效。有效的操作有+、-、*、/和%,所以需要检查输入的操作是否是其中的一个。

还需要检查第二个数字,如果操作是/或者%,第二个数字就不能是0。如果右操作数是0,这些操作就是无效的。这些操作都可以用if语句来完成,switch语句则为此提供了一种更好的方式,因此它比一系列if语句更容易理解。

switch(operation)
   {
      case ‘+‘:
           printf("=%lf\n",number1+number2);
          break;

      case ‘-‘:
           printf("=%lf\n",number1-number2);
           break;

      case ‘*‘:
           printf("=%lf\n",number1*number2);
           break;

      case ‘/‘:
           if(number2==0)
             printf("\n\n\aDavision by zero error!\n");
           else
             printf("=%lf\n",number1/number2);
           break;

      case ‘%‘:
           if((long)number2==0)
             printf("\n\n\aDavision by zero error!\n");
           else
             printf("=%ld\n",(long)number1%(long)number2);
           break;

      default:
          printf("\n\n\aDavision by zero error!\n");
          break;

取余运算符对float或double类型是没有意义的,因为他们可以表示精确的结果。只有把%运算符应用于整数类型才有意义。因此在应用这个运算符前,把操作数转换为整数。当运算符是%时,将第二个操作数转换为一个整数,所以仅仅检查第二个操作数是否为0是不够的,还必须检查number2在转换为long时,值是否为0.例如0.5不是0,但是转换为整数时就是0。

程序的完整代码

#include<stdio.h>
int main()
{
   double number1=0.0;
   double number2=0.0;
   char operation=0;

   printf("\nEnter the calculation\n");
   scanf("%lf%c%lf",&number1,&operation,&number2);

   switch(operation)
   {
      case ‘+‘:
           printf("=%lf\n",number1+number2);
          break;

      case ‘-‘:
           printf("=%lf\n",number1-number2);
           break;

      case ‘*‘:
           printf("=%lf\n",number1*number2);
           break;

      case ‘/‘:
           if(number2==0)
             printf("\n\n\aDavision by zero error!\n");
           else
             printf("=%lf\n",number1/number2);
           break;

      case ‘%‘:
           if((long)number2==0)
             printf("\n\n\aDavision by zero error!\n");
           else
             printf("=%ld\n",(long)number1%(long)number2);
           break;

      default:
          printf("\n\n\aDavision by zero error!\n");
          break;          

    }
    return 0;
}
时间: 2024-11-03 22:05:43

C语音计算器的相关文章

智能语音计算器(三)

这边来说界面的实现,个人觉得该模块实现有点乱,因为其中包括了录音功能,还需要改进. #ifndef CALCULATORUI_H #define CALCULATORUI_H #include <qt5/QtWidgets/QWidget> #include <qt5/QtWidgets/QLineEdit> #include <qt5/QtWidgets/QPushButton> #include <qt5/QtCore/QFile> #include &

利用Olami SDK 实现语音控制计算器(iOS)

博客链接:http://blog.csdn.net/scarlettzhao0602/article/details/76576836 一.简介: Olami Calculator是一款在键盘输入算式的普通计算器的基础上,增加了支持语音控制输入算式输出结果的人工智能计算器.此外还增加了多种动画效果,计算结果提示音功能,多元化主题换肤功能,以及保存计算公式,侧滑栏查看收藏记录等功能.网上也有许多语音计算器,但是打开看,只是添加了按钮提示音等,并不能识别我们对着计算器说的内容,而Olami Calc

晓亮的思想言行规范_置顶博客_永不删除.txt

2017-03-21 18:35/*晓亮的博客http://dwz.cn/5A1Kk8http://dwz.cn/5AsOgOhttp://dwz.cn/5AsPJOhttp://www.cnblogs.com/delphixx/http://blog.sina.com.cn/ahkblog/http://clay3.blog.163.com/*/ ////////////////////////////////////////////////////////////目录 1,大于伍佰元的收入支

powershell入门教程-v0.3版

powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia/ https://www.pstips.net/powershell-online-tutorials http://www.cnblogs.com/volcanol/tag/PowerShell/ 问:如何开启powershell脚本运行权限?答:echo 下面代码,在管理员权限cmd中运行,在

python 计算器语音播报模拟

计算器语音播报模拟 python 要点 1.闭包 2.链式计算 3.语音播报 4.类与实例 import pyttsx3 class Caculator: def __say(self,word): speaker = pyttsx3.init() speaker.say(word) speaker.runAndWait() def __create_say(word=""): def __say_word(func): def inner(self,n): self.__say(wo

C#基础视频教程4.3 如何编写简单的计算器

我们接着往下改,为了让这个计算器更加实用,我们要像官方的计算器一样可以接着计算(你算出来一笔数据之后,可以接着累加累减,我们暂时不考虑加括号,优先级之类的,因为绝大部分情况下我们打开计算器就是为了进行简单的四则运算),当然我们这个需要每次算完之后点击一下接着计算(微软官方的是计算之后,再次按数字键默认就重头开始计算,类似于点击了清除,再次按加减乘除键就接着计算,类似于点击了接着计算),读者可以自己思考如何做到更智能,更自动 ? 再添加撤销按钮(退格键),要做一些处理,因为如果已经没有东西了你就不

Win8系统语音识别使用方法和xp内置语音输入软件安装

下面介绍两款现在主流系统的一些特殊功能,语音输入,也许你还没有正式使用这些功能,但是系统中既然有这项功能就有着它存在的意义,这节就讲下Win8与XP的语音识别功能的使用方法. 之一<Win8>启动语音识别功能 首先,用户需要准备一部笔记本电脑和一个麦克风.Win8语音识别程序能够支持任何类型的麦克风,甚至包括内置在用户笔记本中的扩音器.不过,微软表示,价格在20美元左右的麦克风效果最佳. 激活语音识别功能最简单方法就是打开"开始"(Start)界面,输入"语音&q

【语音从零之五】用科大讯飞语音包实现语音打开已安装应用程序

[更新]有人说不会使用科大讯飞的语音包.这里是传送门,能够參考从零系列的前四篇文章 (一)利用科大讯飞语音包实现Android语音识别Demo (二)科大讯飞语音包Mscdemo的使用 (三)自己定义类中调用讯飞语音包错误解决的方法 (四)运用Handler另起线程执行科大讯飞语音识别 本文主要介绍怎样利用语音包实现口语控制打开应用程序,比如:说"打开计算器",计算器就彭地打开了. 要完毕这个功能,首先要识别出指令是"打开",然后识别出应用程序名称是"计算

【自动化__GUI自动化】__java__Windows应用程序识别__计算器

一.代码如下 package www.woniu.gui.one; import java.awt.AWTException; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.aw