开源,微信小程序-超级计算器T3000 简介

news2024/11/25 16:19:18

笔者于四年前自学微信小程序开发,这个超级计算器T3000就是当时的练习作品。超级计算器T3000的功能有很多,其中的核心技术是矩阵计算,使用的工具库是math.js,其次是复杂运算和分式运算。关于math.js的使用,可以参考另一篇博文:微信小程序使用math.js制作计算器。

写这篇博文的原因是,最近有同学向我询问该小程序的源码,其实该习作早在三年前就已在Github上开源:

Github 地址: https://github.com/luolaihua/CalculatorT3000

GitCode 地址: https://gitcode.net/luolaihua2018/CalculatorT3000

所以笔者想重新介绍一下这个尘封已久的微信小程序习作-超级计算器T3000 ,让它发挥点余热。虽然这个微信小程序是一个练习作品,但是它使用到的小程序组件和wx-api却很多,很适合作为那些正在学习小程序开发的同学的入门工程,希望超级计算器T3000能帮到同学们。

目录

一,功能演示

 普通运算功能演示:

分式运算功能演示: 

复杂运算功能演示: 

矩阵功能计算演示:

其他功能演示:

二,设计背景

三,功能简介

3.1 算式运算

3.2 矩阵运算

3.3 趣味计算

1.亲戚计算:

2.单位转换:

3.体测成绩计算:

4.BMI计算

5.色环电阻计算器

6.网名生成

7.小偏心大转盘

8.数学闯关

9.解方程

10.宠物年龄计算

四、程序实现

4.1 开发技术

4.2 功能展示

1. 算式运算功能

2. 矩阵相关计算

3. 更多计算

4. 亲戚关系计算

5. 单位转换

6. 体测成绩计算及BMI计算程序

7. 随机网名生成

8. 小偏心大转盘

9. 数学闯关

10. 解方程程序


一,功能演示

该小程序已在微信端上线,欢迎大家体验,微信小程序码: 

 普通运算功能演示:

分式运算功能演示: 

复杂运算功能演示: 

矩阵功能计算演示:

其他功能演示:

二,设计背景


普遍的计算器只能进行简单地加减乘除和其他简单的二次运算,而且只能单步运算,如果遇到较长的算式时就需要用户一步一步输入,较浪费时间,还可能遗漏数据内容,让用户多次输入算式验证。如今,用户已不满足基本运算,进制也会涉及多进制,传统计算器也不能带来较大的遍历。通过调查校内大学生对计算器辅助计算的改进建议,针对小型科学计算器进行研究,增加了很多方便快捷的计算及其他功能,给用户带来了很多方便,并且提高了体验者的运算效率。

较传统计算器相比,超级计算器T3000多了许多便捷功能:

  • 可以进行高等矩阵运算,除了进行矩阵加减乘除之外,还可以进行分式、转置、行列式、特征值等计算。
  • 对于进行算式运算时,可以切换为科学计算进行开方、正弦、余弦、等角度的计算,为用户方便还增加了普通计算窗口与科学计算窗口切换,普通计算窗口可以进行传统计算。
  • 此外还可以对输入的多项式化简及求导。进行分布运算时可以将中间数保存,下次用到可以直接调出进行运算,提高用户的效率。
  • 除了常规的数学计算,利用计算器的特点,设计出了亲戚计算、单位转换、体测成绩计算等多种生活中比较常见的运算。


三,功能简介


本程序主要功能可以分为以下模块:


3.1 算式运算


包括四则运算、乘方、分式等,用户可以将计算单个或多个算式,科学计算窗口可以进行开方、乘方、阶乘、对数、正余弦等角度计算,对复杂的多项式可以进行化简和求导;此外对于每一步运算或操作,会自动保存至历史记录,下次用到直接调出,对于科学计算器,帮助功能可以对每个操作键进行介绍解释。


3.2 矩阵运算


对单个或两个矩阵进行的矩阵相关变换及运算。自定义矩阵阶数,最低二阶,最高五阶。对于单个矩阵来说,可以进行转置、行列式、求逆、特征值、迹、特征向量、多种分解等运算。对于多个矩阵,可以进行矩阵间的加减乘除乘方运算,点乘、点除点乘方运算,同样可以对结果进行转置、行列式、求逆、迹、特征值、LU分解、QR分解等计算。除此之外,若开启分式模式,可以将结果以分式结果显示,若未开启则精确到六位有效数字。


3.3 趣味计算


除了常规算式、矩阵运算外,还设计了生活中极大便利生活的计算。

1.亲戚计算:

以我为中心内,每步以丈夫、妻子、父母兄弟、子女、兄弟姐妹直系范围内,计算我与各亲人直接的关系及称呼。

2.单位转换:

可以对长度、能量、时间、体积、大写、面积、质量、温度、速度、进制、功率、压强等不同计量单位下单位的换算

3.体测成绩计算:

根据在校大学生的性别、年级来生成不同的体测标准。对输入身高体重、肺活量、坐位体前屈、立定跳远、引体向上、50m、100m通过标准体系来计算体测成绩。

4.BMI计算

选择不同的标准,根据身高体重计算BMI值,并给出身体状况、健康体重范围以及相关疾病发病危险性。

5.色环电阻计算器

可以计算五色环电阻阻值,以及精度范围。

6.网名生成

随机生成制定姓氏的网名昵称。

7.小偏心大转盘

对于一些难以选择的事情,可以借助小决定帮用户选择。还可以保存编辑过的决定,也可以在热门小决定中使用热门的随机选择转盘。

8.数学闯关

简单的运算闯关类游戏

9.解方程

通过要求输入方程式,可以解出一元一次至一元四次方程以及多元一次方程组。

10.宠物年龄计算

该程序可以计算五种动物:狗、猫、仓鼠、龙猫、兔子实际年龄与人类年龄之间的换算。

四、程序实现

各功能的总体实现效果及使用说明

4.1 开发技术

(1)云平台:微信小程序云开发

(2)编程语言:JavaScript

(3)开发工具:微信开发者工具,原生开发

4.2 功能展示

1. 算式运算功能

算式运算效果如图所示,左上侧有三个功能键,分别为帮助键:对计算器功能介绍,以及使用举例;声音键:开启后会对输入、操作、结果进行语言播报;历史键:可以显示历史计算的算式,并读取历史结果。

2. 矩阵相关计算

矩阵计算功能如图所示,首先在右上侧,可以选择输入矩阵的行数列数,最大支持5行5列矩阵,可以对单个和多个矩阵进行运算,除四则运算外,还可以进行转置、行列式、求逆、迹、特征值、特征向量、QR、LU分解等矩阵操作。其中C为清除键,长按可复位AB两矩阵;爱心键为功能简介;目前可输入科学算式,如3+5*2/3;

3. 更多计算

该更多运算所有功能罗列了学生调查问卷里较热门的建议及需求,如图所示:

4. 亲戚关系计算

功能如图所示,模式可分为:自称模式和他称模式,可以通过互查切换。在自称模式下,通过多部计算称呼关系,每步以直系关系为单位;他称模式下,通过互查切换,可以查看对方对”我”的称呼。此外,可以看到,此程序还提供称呼查询。

5. 单位转换

单位转换主界面如图所示,可以对长度、能量等12种不同单位的多种计量关系进行转换。

6. 体测成绩计算及BMI计算程序

主界面如图所示,按要求输入基本信息,将测试的成绩输入后,可以根据不同的成绩体系生成体侧分数及BMI值

BMI计算根据体重身高和选择的标准模式,可以生成身体状况及疾病发病危险性,如图:

7. 色环电阻计算器

 色环电阻是电子电路中最常用的电子元件,色环电阻就是在普通的电阻封装上涂上不一样的颜色的色环,用来区分电阻的阻值。保证在安装电阻时不管从什么方向来安装,都可以清楚的读出它的阻值。色环电阻的基本单位有:欧姆(Ω)、千欧(KΩ)、兆欧(MΩ)。1兆欧(MΩ)=1000千欧(KΩ)=1000000欧(Ω)。

  平常使用的色环电阻可以分为四环和五环,通常用四环。其中四环电阻前二环为数字,第三环表示阻值倍乘的数,最后一环为误差;五环电阻前三环为数字,第四环表示阻值倍乘的数,最后一环为误差。误差通常也是金、银和棕三种颜色,金的误差为5%,银的误差为10%,棕色的误差为1%,无色的误差为20%,另外偶尔还有以绿色代表误差的,绿色的误差为0.5%。精密电阻通常用于军事,航天等方面。 色环电阻在最早期是为了帮助人们分辨阻值,因为色环电阻比较大,在当今高度集成的情况下,色环电阻已经用的比较少了。

该计算可以自定义五环四环电阻,根据选择的颜色,计算出阻值及精度范围,如图所示。

7. 随机网名生成

可以通过输入的姓氏,随机生成符合逻辑的三字网名,使用如下图所示,若选中该网名,系统会对其进行安全检测后,辅助粘贴,方便使用。

8. 小偏心大转盘

   转盘设计的初衷是帮助同学更快确定点餐种类。可以看到,如图所示,点击中心转盘开始键,可以帮助选择奶茶种类。

  • 新决定添加及编辑

本软件支持编辑新决定转盘,可以看到我的所有小决定, “+”号可以添加新的决定转盘及选择项,对于已经存在的决定转盘,除了直接使用还可以选择修改或者删除操作。

程序提供了网络热门的决定转盘,可以直接使用。

  • 偏好设置

用户可以自行选择是否开启偏心指数,开启后可以在编辑中设置每个选项的偏心指数,即权重越大被选中概率越大;对于每个转盘可以设置不重复抽取和转动速度。

9. 数学闯关

可以进行简单的四则运算闯关,可以自动更新正确率,程序示意图如图所示。右上角为个人主页键,可以设置BGM、音效、和答题时间,可以查看当前排行榜的所有用户闯关数。

10. 解方程程序

用户可以设置方程格式,该程序可解方程范围为最高四元,次数最高为四次,下图为解方程示意图。

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

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

相关文章

【SpringBoot】【经典面试题】每天10个Java面试题-面试大厂起飞系列-day02

嗨,各位小伙伴! 🐱‍💻 我是【行走的程序喵】!一个兼具Web前端和Java后端技能的技术宅! 🌟 我的博客上分享最新的Web前端和Java后端技术文章,从基础入门到进阶应用,应有…

基于Axios封装请求---防止接口重复请求解决方案

一、引言 前端接口防止重复请求的实现方案主要基于以下几个原因: 用户体验:重复发送请求可能导致页面长时间无响应或加载缓慢,从而影响用户的体验。特别是在网络不稳定或请求处理时间较长的情况下,这个问题尤为突出。 服务器压力…

memcached缓存数据库简介

memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。 memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。 …

nginx详解(持续更新)

nginx定义 nginx安装 nginx目录 程序相关命令 服务相关命令 虚拟主机(server) 路由匹配(location) 代理(proxy_pass) 正向代理 反向代理 负载均衡(upstream) 负载均衡策略 动静分…

电动汽车充放电V2G模型(Matlab代码)

目录 1 主要内容 1.1 模型背景 1.2 目标函数 1.3 约束条件 2 部分代码 3 效果图 4 下载链接 1 主要内容 本程序主要建立电动汽车充放电V2G模型,采用粒子群算法,在保证电动汽车用户出行需求的前提下,为了使工作区域电动汽车尽可能多的…

<QT基础(3)>QLineEdit使用笔记

LineEdit 这次要用的是两个功能:初始化展示参数值,修改参数值。 初始化 将l_num的默认值显示 ui.lineEdit->setText(QString::number(l_num));信号 textChanged() 文本发生改变textEdited() 文本编辑信号cursorPositionChanged()光标发…

java子集(力扣Leetcode78)

子集 力扣原题链接 问题描述 给定一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。可以按任意顺序返回解集。 示例 示例 1: 输入:nums [1,2,3] 输出&#x…

C++11入门手册第一节,学完直接上手Qt(共两节)

入门 hello.cpp #include <iostream>int main() { std::cout << "Hello Quick Reference\n"<<endl; return 0;} 编译运行 $ g hello.cpp -o hello$ ./hello​Hello Quick Reference 变量 int number 5; // 整数float f 0.95; //…

32-1 命令执行漏洞 - RCE挖掘与防范

一、漏洞绕过 1、编码绕过 利用base64编码绕过:Base64 在线编码解码 | Base64 加密解密 - Base64.us 如将 whoami 命令进行编码 利用hex编码(十六进制)绕过:Hex编码/Hex解码 - 站长工具 (chinaz.com) 利用oct编码(八进制)绕过: 这个我没找到编码工具 利用16进制编码…

数据结构——lesson11排序之快速排序

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

如何检查电脑的最近历史记录?这里提供详细步骤

如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。 如何检查我的计算机的最近历史记录 要检查计算机的最近历史记录,应该从web浏览器历史记录开始,然后移动到文件。但是,可以修改或删除浏览器历史记录,也可以隐藏Windows…

千川素材投放效果追踪与精准识别

一、投放效果深度追踪&#xff1a;从数据表面到策略内核在数字广告时代&#xff0c;单纯的曝光量已不再是评估广告效果的唯一标准。投放效果的深度追踪要求我们深入挖掘每一个数据背后的意义&#xff0c;洞察广告策略的实际效果。这不仅涉及到广告的点击率、转化率等显性指标&a…

Data-driven ADP schemes for non-zero-sum games of unknown DT nonlinear systems

Data-driven adaptive dynamic programming schemes for non-zero-sum games of unknown discrete-time nonlinear systems&#xff0c;2018&#xff0c; He Jiang, Huaguang Zhang∗, Kun Zhang, Xiaohong Cui 博弈论、最优控制和强化学习解决离散时间 multi-player 非零和博…

HarmonyOS 应用开发之UIAbility组件基本用法

UIAbility组件的基本用法包括&#xff1a;指定UIAbility的启动页面以及获取UIAbility的上下文 UIAbilityContext。 指定UIAbility的启动页面 应用中的UIAbility在启动过程中&#xff0c;需要指定启动页面&#xff0c;否则应用启动后会因为没有默认加载页面而导致白屏。可以在…

Doris实践——叮咚买菜基于OLAP引擎的应用实践

目录 前言 一、业务需求 二、选型与对比 三、架构体系 四、应用实践 4.1 实时数据分析 4.2 B端业务查询取数 4.3 标签系统 4.4 BI看板 4.5 OLAP多维分析 五、优化经验 六、总结 原文大佬介绍的这篇Doris数仓建设实践有借鉴意义的&#xff0c;这些摘抄下来用作沉淀学…

【1】网络协议基础概念

【1】网络协议基础知识 1、互联网2、为什么要学习网络协议3、学习中需要搭建的环境4、客户端-服务器5、Java 的跨平台原理6、C/C的跨平台原理7、一个简单的SpringBoot项目(1) pom.xml(2) application.yml(3) NetworkStudyApp.java(4) SwaggerConfig.java(5) HelloWorldControll…

若依ruoyi-vue实现excel导入导出

文章目录 Excel注解excel数据导入前端实现后端实现 下载模板前端实现后端实现 excel数据导出前端实现后端实现 自定义标题信息导出用户管理表格新增标题&#xff08;用户列表&#xff09;导入表格包含标题处理方式 自定义数据处理器自定义隐藏属性列导入对象的子对象导出对象的…

Unity 渲染

渲染的三个阶段 1&#xff1a;应用阶段 1.1 数据的准备 遮挡剔除&#xff0c;层级剔除。 渲染顺序&#xff0c;UI在Herachy窗口按照层级渲染&#xff0c;其余物体由大概按照先近后远。 打包渲染数据发送给显存&#xff0c;主要包括有模型信息&#xff0c;变换矩阵&#xff0c…

【每日一题】1997. 访问完所有房间的第一天-2024.3.28

题目&#xff1a; 1997. 访问完所有房间的第一天 你需要访问 n 个房间&#xff0c;房间从 0 到 n - 1 编号。同时&#xff0c;每一天都有一个日期编号&#xff0c;从 0 开始&#xff0c;依天数递增。你每天都会访问一个房间。 最开始的第 0 天&#xff0c;你访问 0 号房间。…

【C++】 vector 数组/向量

文章目录 【 1. vector 的声明与初始化 】1.1 vector 的声明1.2 vector 的初始化1.2.1 构造一个空的 vector1.2.2 指定数量初值的方式初始化 vector1.2.3 迭代器的方式初始化1.2.4 构造一个相同的 vector 【 2. vector 的相关操作 】2.1 插入元素2.1.1 在vector的末尾插入新元素…