简易计算器

news2024/9/20 20:22:41

前言

简易计算器,旨在实现一个简单的计算器功能。

  1. 整形,浮点型数据的加减乘除运算;
  2. 数据的统计(如文件中某字符的出现频数);
  3. 期望,方程运算;
  4. 平均数,最小值,最大值,中位数,众数的计算;
  5. 排序,查询运算。
  6. 使用图形库实现交互功能。

系统结构

 技术选型

开发语言选择C语言,使用到C语言的math库。

可视化选择Easy X图形库。

模块设计

预处理模块

输入模块

1.while循环保持窗口的停留,接收输入的字符串;

2.可以输入命令,读取相应目录下的文件,计算文件中的数据,同时把数据保存到文件中。

字符串解析模块

  1. 检查字符串是否是quit等停止推出符号,如果是推出程序;
  2. 检查字符串是否是合法字符串,如果包含了出数字和操作符之外的字符,则认为字符串不合法,请用户重新输入表达式。

计算模块

1.整形,浮点型数据的加减乘除运算;

2.数据的统计(如文件中某字符的出现频数);

3.期望,方程运算;

4.平均数,最小值,最大值,中位数,众数的计算;

5.排序,查询运算。

6.使用图形库实现交互功能。

输出模块

按照特定的格式输出到屏幕中。

存储模块

将计算结果按照规定格式输出到文件中保存。

数据设计

数据栈:保存数据的数据结构;

操作符栈:保存操作符的数据结构;

文件:保存计算结果的数据类型;

测试策略

命名一个test.c统一建立测试用例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1704115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++之“流”-第2课-C++和C标准输入输出同步

为什么C和C的标准输入输出不同步时,数据会混乱?同步会带来多大性能损失?为什么说这个损失通常不用太在乎? 0. 课堂视频 C之“流”-第2课:和C输入输出的同步 1. 理解cin和cout的类型与创建过程 std::cout 是std::ostre…

Css 提高 - 获取DOM元素

目录 1、根据选择器来获取DOM元素 2.、根据选择器来获取DOM元素伪数组 3、根据id获取一个元素 4、通过标签类型名获取所有该标签的元素 5、通过类名获取元素 目标:能查找/获取DOM对象 1、根据选择器来获取DOM元素 语法: document.querySelector(css选择…

C/C++运行时库和UCRT系统通用运行时库总结及问题实例分享

目录 1、概述 2、不同版本的Visual Studio对应的运行时库说明 3、在Windbg10.0安装目录中获取UCRT通用运行时库 4、微软官网对UCRT通用运行时库的相关说明 5、使用Visual Studio 2017开发软件初期遇到的UCRT通用运行时库问题 6、如何查看软件依赖了哪些C/C运行时库&#…

vueRouter路由总结

https://blog.csdn.net/qq_24767091/article/details/119326884

奇门遁甲古籍《烟奇要览》

《烟奇要览》 全书共178页 时间有限,仅上传部分图片!

js深入理解对象的 属性(properties)的特殊 特性(attributes)

对象 js对象 // 构造一个对象 let obj {}; let obj new Object(); 我们知道js中一切皆对象,对象是一个键值对集合(key: value),一个键(key)对应一个值(value),而每个键都是这个对象的属性,我们可以通过对象的属性来…

在CentOS 8上卸载与安装MySQL 8的详细步骤

关键词:MySQL 8安装、CentOS 8、YUM源配置、卸载MySQL、MySQL残留文件删除、首次登录MySQL临时密码、服务状态检查、MySQL社区服务器 阅读建议:本文适合需要在CentOS 8操作系统上部署最新MySQL 8数据库的系统管理员或开发者阅读。文中步骤简洁清晰&#…

ResizeObserver loop completed with undelivered notifications.

报错信息 ResizeObserver loop completed with undelivered notifications. 来源 在用vue3 element-plus写项目的时候报的错,经过排查法,发现是element-plus的el-table组件引起的错误。 经过初步排查,这个错误并不是vue以及element-plus…

springboot投票统计管理系统的设计与实现-计算机毕业设计源码73598

摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设投票统计管理系统。 …

最新扣子(Coze)实战教程:扣子​使用基础,完全免费,快来学习吧~

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

电脑由于ntdll.dlI丢失导致exe崩溃有什么解决办法?解决ntdll.dll丢失问题

相信有一些用户正在面临一个叫做“ntdll.dll丢失”的问题,这种情况多半发生在试图运行某个程序时,系统会提示一条错误消息:“程序无法启动,因为计算机中丢失了ntdll.dll”。那么,为何ntdll.dll文件会丢失,又…

OrangePi Kunpeng Pro 开箱测评之一步到喂

前情提要:大家好,我是Samle。有幸接到 CSDN 发来的测评邀请,下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作,让大家能更好的上手这块板子。 以下内容来自 官方说明 OrangePi Kunpeng Pro采用4核64位处理器AI处理器&#…

JavaScript数组重构数据,数组转换成对象

在后端返回的数据中,可能不太满意,所以需要自己重构数据。 原始数据 let arr [ {title:"光头强",age:18,id:"0"}, {title:"孙悟空",age:18,id:"9"}, {title:"熊大",age:18,id:"0"}, {ti…

RAG-GPT实践过程中遇到的挑战

引言 前面介绍了使用RAG-GPT和OpenAI快速搭建LangChain官网智能客服。有些场景,用户可能无法通过往外网访问OpenAI等云端LLM服务,或者由于数据隐私等安全问题,需要本地部署大模型。本文将介绍通过RAG-GPT和Ollama搭建智能客服。 RAG技术原理…

第2章 物理层

王道学习 考纲内容 (一)通信基础 信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念; 奈奎斯特定理与香农定理;编码与调制; 电路交换、报文交换与分组交换;数…

【Redis】Widows 和 Linux 下使用 Redis

Redis 简述 1.缓存 缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代 CPU 越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。 2.Redis Redis …

Java8Stream

目录 什么是Stream? IO流: Java8Stream: 什么是流? stream图解 获取流 集合类,使用 Collection 接口下的 stream() 代码 数组类,使用 Arrays 中的 stream() 方法 代码 stream,使用 Stream 中的…

智慧水坝:科技变革的里程碑

在曾经的水利工程领域,水坝只是为了水资源的调配和控制,提供一定的安全储备。然而,随着现代科技的不断发展,传统的水坝已经不再是单一的水源控制工程,而是变成了一个充满智慧与创新的生态系统。智慧水坝的概念已经超越…

【机器学习】SUTRA引领多语言处理

在人工智能的浪潮中,自然语言处理(NLP)技术一直是备受瞩目的焦点。随着全球化和信息时代的到来,多语言处理能力成为了评估NLP技术优劣的重要标准。近期,一款名为SUTRA的多语言大型语言模型架构引起了业界的广泛关注。它…

CRLF注入漏洞

1.CRLF注入漏洞原理 Nginx会将 $uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。 执行xss语句 2.漏洞扩展 CRLF 指的是回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n&am…