c语言计算器实验

编译原理计算器calculator+文法分析 我们的编译原理作业 老师让写一个calculator,第一次写编译程序可能里面有不少冗余和低级处理,但是也push出来和大家共勉。 环境 我使用的是VS2019,用的c语言来做的。 目标 计算器接受四则运算表达式为输入(如下所示)。如果表达式语法正确,则输出计算结果,否则报错,指出错误位置及原因。 Input 1: float a; int b; a = (10.44*356+1.28) / ... 阅读详情

计算器(Calculator)实验指南

  1. 前置知识
    如果你不了解 C 语⾔中的 struct, enum, union, typedef 的⽤法,请你⾸先查阅课本或其他资料再来阅读本实
    验指南。
    如果你的⽬标为 100 分,建议不要急于开始,⾸先阅读实验指南的全⽂以进⾏合理的顶层设计,这可能⽐在原来的基础
    上加东⻄更加节省时间。
  2. 总览
    在读⼊了每⼀⾏语句之后,我们可能需要依次进⾏以下步骤。
  3. 词法分析
  4. 语法分析 & 表达式求值
  5. 变量赋值
    ⼤家会在《编译原理》课程中学会真正的词法分析和语法分析。这⾥,我们⼤致描述⼀下这些步骤分别都是在做什么
    在这里插入图片描述
    在这里插入图片描述
    最终完成全部加分项, 得分97

部分代码如下:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

#define INT 73
#define FLOAT 70
#define VARIABLE 86
#define ERROR 1

typedef struct value {
    int type;
    union {
        int iVal;
        double fVal;
    } val;
} Value;
typedef struct assignment {
    char name[32];
    Value val;
} Assignment;
Assignment assignment[300];
int assign_id = 0;
typedef struct token {
    int type;
    char str[32];
} Token;
Token tokens[200];
int token_id = 0;

int l, r;
void error(); // 输出错误
Value eval(int l, int r); // 求值函数
int check_parentheses(int l, int r); // 表达式是否被?对匹配的括号包围着||表达式的左右括号是否匹配
void print_token();
int check_minus(int l, int r);
int main_token(int l, int r);
Value meetValue(Value v1, Value v2, int op);
Value evalAssign(int l, int r);
void print_token(){
    for(int i = 0; i < token_id; i++)
    {
        printf("token_id: %d type: %d %c  str: %s\n", i, tokens[i].type, tokens[i].type, tokens[i].str);
    }
}
void error(){
    printf("Error\n");
}

C++实现带括号正整数加减乘除的计算器(代码中提供了测试用例) 描述 编写一个程序可以完成基本的带括号的四则运算。其中除法(/)是整除,并且在负数除法时向0取整。(C/C++/Java默认的除法就是向0取整,python默认的是向负无穷取整。) 例如计算 100 * ( 2 + 12 ) - (20 / 3) * 2, 结果是1388。 输入 一个长度不超过100的字符串,代表要计算的算式。包含数字0-9以及+-*/()。 输入保证计算过程不会超过32位有符号整数,并且其中的'-'都是减号没有负号。 立即下载

相关推荐

MagicDraw-需求图

MagicDraw学习笔记

木头征的博客 4135

C语言测试用例(黑盒测试:功能测试、功能驱动测试;白盒测试:结构测试[结构化方法]、透明盒测试、逻辑驱动测试[逻辑覆盖法]逻辑覆盖测试、基于代码的测试)(集成测试、系统测试和回归测试)(BUG文档)

文章目录测试用例简介作用1. 指导测试的实施2. 规划测试数据的准备3. 编写测试脚本的"设计规格说明书"4. 评估测试结果的度量基准5. 分析缺陷的标准重要性编制测试用例测试用例文档测试用例的设置(按功能设置用例;按路径设置用例;按功能、路径混合模式设置用例)设计测试用例测试用例设计设计原则设计方法1、白盒法测试覆盖率3、黑盒法相关问题1 测试用例的评审2 测试用例的修改更新3 测试用例的管理软件 测试用例 测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术

Dontla的博客 4012

nRF52382低功耗蓝牙应用开发之入门教程-软件烧录

准备工作在上一篇文章讲过了,这里就讲讲nRFgo studio的使用 硬件准备: J-link:2线 供电:3.3V 如下图打开nRFgo studio界面介绍, 2、如果J-link正常,如下图 3、如果蓝牙芯片正常 4、烧录过程,如果蓝牙芯片之前有烧录过程序,需先点擦除,再点烧录 5、烧录代码路劲,例如 F:\nRF\SDK\nRF5_SDK_15.2.0_...

LinQiPing233的博客 1945

实验反馈1——简易计算器calculator

本周老师带着我们学习了C#,之前在看到C#的设计界面后,我就放弃了其他的语言,这跟其他语言相比设计界面要简单一点,直接拖拽就可以使用按钮和其他控件,还有老师带领,而且我Java用的也不是很熟练,就当是认识一种新语言了。 但是在老师详细讲解之前我不知道为什么就选择了下载2013版本的,打开之后我就懵了,这一版本的和2019版本的不太一样,我都找不到工具箱里面的内容和设计窗口在哪里,出现了一系列的问题...

weixin_45871977的博客 456

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角

老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、

xiaoshixiu的专栏 1124

WPS Office 2019 For Linux二次开发全流程:从源码下载到Demo运行

本文详细介绍了在Linux环境下进行WPS Office 2019 C++二次开发的全流程,涵盖从开发环境准备、源码获取、核心依赖(Qt与WPS)安装配置,到最终编译运行官方Demo的完整步骤。文章重点解析了环境搭建中的常见问题与解决方案,旨在帮助开发者快速上手WPS二次开发。

weixin_29001423的博客 390

C语言四则运算计算器(带错误检测)

Java小作业,用C写了一遍 输入格式随意,程序自带去空格,欢迎检测bug。 #include &lt;iostream&gt; #include &lt;cctype&gt; #include &lt;stack&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;map&gt; using namespace ...

JZK-Keven 的博客 3808

鸿蒙【ArkTS】使用TS装饰器封装网络请求HTTP

在HarmonyOS应用开发中,通过HTTP访问网络,可以使用官方提供的@ohos.net.http模块。但是官方提供的直接使用不太好使用,需要封装下才好。这里采用TS的装饰器实现AOP效果 完成前后端接口风格的统一

weixin_60376559的博客 5610

数据库实验1: Calculator 简单计算器

…

qq_45265330的博客 708

UDS诊断服务基础详解之二19服务

本文主要介绍UDS统一诊断服务的19 01服务,包含状态位和故障码的解析以及19 01服务的具体说明

车载网络小D的博客 1万+

18年陕西省TI杯电赛无人机赛题视觉部分

更新: 相同任务另外两种不同的视觉方法: https://blog.youkuaiyun.com/qq_41895747/article/details/97613077 https://blog.youkuaiyun.com/qq_41895747/article/details/97614971 任务:识别前方的方框,无人机从方框中飞出去 视觉任务:识别特定方框,返回方框中心坐标 # -*- codin...

沉迷单车的追风少年 1506

大数计算器c语言实训报告,C语言计算器设计实验报告.doc

C语言计算器设计实验报告.doc下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。文档包含非法信息?点此举报后获取现金奖励!下载文档到电脑,查找使用更方便18积分还剩页未读,继续阅读关键...

weixin_35838394的博客 2496

22、常见加密哈希算法及安全机制解析

本文详细解析了多种常见加密哈希算法,包括SHA系列、RIPEMD、Tiger、HAVAL、Whirlpool等,涵盖其工作原理、安全性与性能对比。同时探讨了哈希攻击方式如预映像攻击和彩虹表,并介绍了盐、MAC、HMAC等防御机制。结合密码存储、消息完整性验证及区块链应用案例,分析了不同场景下的算法选择建议,并展望了哈希算法在创新、融合与标准化方面的未来发展趋势。

seed的博客 391

一元多项式计算器 (c语言数据结构实验)

一元多项式计算器 (c语言数据结构实验) 班级 : **** 学号 : 201907020633 姓名 : *** 实验机号: A3 实验日期 :2020.12.04 报告日期 :2020.12.07 实验题目:一元多项式计算器

零琴的Hope 8041

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...

时间:2019-05-15 12:55:15 作者:admin计算器实验报告班级: 07计本(1)班姓名: 王林学号: 20706031047指导老师: 韩静一、 需求分析(1)制作一个计算器界面工程,有数字运算符等键,输入表达式后,按等号键输入结束,并显示时间:2019-05-15 13:07:55 作者:adminC语言小程序之简单计算器实现简单四则运算/*时间:2013年7月7日功能:实现简...

weixin_33765959的博客 580

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C语言逆波兰计算器实验报告

逆波兰计算器(push()与pop()的使用) 一、实验目的 了解逆波兰计算器的算法思想、熟练掌握进栈与出栈的思想(push()函数与pop()函数),并且能够在日后的程序开发中进行应用。 二、实验内容 通过逆波兰计算器算法与进栈、出栈的思想编写一个简单的计算器程序。 三、实验环境 1.硬件环境:笔记本电脑。 安装内存:4G。 CPU配置:inter i5-3230。 2.软件环境:Windows7、64位操作系统。 3.编程软件:C-free。 四、操作方法和实验步骤 实验中用到的主要函数与定义有:ma

weixin_51370049的博客 737

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

c语言简易计算器大作业报告,c语言计算器的实验报告

c语言计算器的实验报告 1. 题目:简单计算器 2. 实验目的:模仿日常生活中所用的计算器,自行设计一个简单 的计算器程序,实现简单的计算功能。 3. 实验主要硬件软件环境:Window 7Visual C++ 6.0 4. 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、 减、乘、除等算术运算,能进行简单三角运算,运算结果 能正确显示,可以清楚数据等。 (2)设计...

weixin_36402765的博客 2476

c语言计算器带错误检测,大一c语言实验题简易计算器,执行错误,跪求纠错!...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼大一c语言实验题简易计算器程序,编译正确,执行总是不对,跪求纠错啊!#include#include#includeint fact(double x){int i,jc=1;for(i=1;i<=x;i++)jc=jc*i;return(jc);}int main(){p0:printf("---------------------计算器----...

weixin_40009099的博客 327

实验项目用c语言做计算器,C 语言制作简单计算器

前言C语言开发计算器可是每个开始学习C语言的人的必开发项目啊,实验楼就分享一个C语言开发计算器的教程,希望对你有所帮助哦~1、项目介绍我们要使用 C 语言做一个简单的计算器,能执行加、减、乘、除操作。程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。因为我们需要检查输入,确保用户没有要求计算机完成不可能的任务。还必须允许用户一次输入一个计算式,例如: 32.4 + 32或者9 * 3.22、...

weixin_42347925的博客 1247

c语言简易计算器大作业报告,c语言版计算器实验报告.doc

c语言版计算器实验报告计算器实验报告班级: 07计本(1)班姓名: 王林学号: 20706031047指导老师: 韩静需求分析制作一个计算器界面工程,有数字运算符等键,输入表达式后,按等号键输入结束,并显示出正确的结果。程序能根据运算符的高低进行运算可以输入括号设计思路用工程建立一个字符串的类结构,并用编辑框输入相应的数字和字符,并且输入的字符用字符串逐个接受,当输入为’=’的时候,用‘#‘做最后...

weixin_39881575的博客 1022

单片机实验用c语言编写计算器,单片机实验报告计算器.doc

word格式精心整理版PAGE范文范例 学习指导word格式精心整理版范文范例 学习指导单片机原理及其应用实验报告基于51单片机的简易计算器的设计班级:12电子1班姓名: 金 腾 达学号:12004011232015年1月6日范文范例 学习指导范文范例 学习指导摘 要一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更...

weixin_35952352的博客 639

树莓派计算器c语言,树莓派与Python实验9——Tkinter计算器实验

1.实验目的了解图形界面开发的基本要素;了解图形界面工作的基本特点;掌握Tkinter库的特点;理解Tkinter库的工作方式和原理;掌握Tkinter界面开发的基本要素;掌握完整Tkinter界面程序开发能力;2.原理本实验以Python基本的GUI库Tkinter为基础,实现一个简易计数程序,要求能实现基本的四则运算,具备0错误提示,实现归零等操作。Python提供了多个图形开发界面的库,几个...

weixin_28785509的博客 760

语法分析C语言程序实验报告,C语言程序实验报告III

C语言程序实验报告III 需要作业模板的点这 Markdown基本语法 想学更多Markdown语法点这实验项目:C语言程序设计教程实验姓名:陈 思杰????   实验地点:家????   实验时间:2020.03.25????———————————————————————————————————————————————————————————————————————————————————————————————...

weixin_28595749的博客 435

PTA 7-106 sdut-C语言实验——模拟计算器

PTA 7-106 sdut-C语言实验——模拟计算器

higgins_li的博客 776

sdut-C语言实验——模拟计算器

简单计算器模拟:输入两个整数和一个运算符,输出运算结果。

2301_77501988的博客 255

7-106 sdut-C语言实验——模拟计算器

简单计算器模拟:输入两个整数和一个运算符,输出运算结果。

- 1441
上一篇: 矩阵运算系统C++
下一篇: 链表二叉树图的基础C语言
todcode
博客等级 码龄7年 359粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值