成都电气开发:一个利用4个按键快速进行参数设置的方法

在设计人机交互界面的时候,假设我们要对一个多位数进行设置,最简单的办法就是准备一个含有0-9十个按键数字的键盘,根据需要将对应的键按几下,如要设置参数为1234,那就依次按下1、2、3、4这几个键就可以快速地设置参数。

但是呢?有时处理器的IO口不够了,操作界面只有那么大放不下那么多按键,而且我们又想节约成本少一些按键的开支,这个该怎么办呢?本文就介绍一种利用更少的四个按键快速调整多位数的方法。开发定制,业务Q:2531-2637-26

这个方法在设置界面安排了 “左”“右”“加”“减”四个按键,其中的“左”“右”键用于数字的位选择,“加”“减”按键对正在设置的这位上数字进行加减设置。假设我们要对一个四位数进行设置,设计的思路就是先选中某一位,再分别地对每一位进行加减设置:例如可以先选择个位,进行加减操作,个位设置好后,然后再十位,百位,最后千位依次地每位进行设置。就像电脑的光标一样,在这里按一下“左”键,就左移一下选中的待设置的位,按一下“右”键,选中的待设置的位右移一位。如图 1中显示的待设置数值1234,假设我们正在设置个位数4,我们按一下“左”键,那么选中的设置位变成十位数3。假如我们正在设置十位数3,按一下“加”键,3加1变成4,按一下“减”键,由4减1变成3,每位数字的变化范围为0到9,以此类推。

在程序设计的时候,对一个四位数的调整的结果可以这样计算:设待设置的数值为x,正在设置的位为wei,那么有:

当wei=个位的时候,按加键时,x=x+1,按减键时,x=x-1;

当wei=十位的时候,按加键时,x=x+10,按减键时,x=x-10;

当wei=百位的时候,按加键时,x=x+100,按减键时,x=x-100;

当wei=千位的时候,按加键时,x=x+1000,按减键时,x=x-1000;

其余位数的计算方法类似,另外在设计的时候注意不要让x超出限制范围,实现这个功能的一段参考C语言例程如下:

Include <math.h>

unsigned char wei=0;  //全局变量,用于位的控制: wei=0表示正在设置个位,wei=1表示正在设置十位,wei=2表示正在设置百位,wei=3表示正在设置千位。在进行新的数值设置前建议清零,从个位开始设置。

unsigned int add_dec_fun(unsigned int x)   //加减设置函数,设置x中的wei位上的数字,参数x为输入的待设置的数值

{if (x>9999) x=9999;            //防止x超出范围

if (按了加键)

{x=x+pow(10,wei);         //对应的位加运算。pow是幂函数,pow(10,wei)的功能是求解10的wei次方

}

else

{if (按了减键)

{x=x-pow(10,wei);     //对应的位减运算。

}

}

return x;                    //返回设置后的结果

}

在使用这段程序进行快速设置参数的时候,用“左”“右”键改变wei的值来选择控制待设置的位,在“加”“减”键的按键操作程序段里调用add_dec_fun函数来改变待设置的数值即可。

谢谢阅读,更多精彩,欢迎关注微-信-公-众-号:yonkotech

沙鸥-成都

原文地址:https://www.cnblogs.com/yonkotech/p/11702763.html

时间: 2024-10-18 04:43:51

成都电气开发:一个利用4个按键快速进行参数设置的方法的相关文章

敏捷开发的目的不是为了快速交付!

它是一种用来应付需求快速变化的软件开发方法.–          Wiki >许多IT主管或是工程师,都把敏捷开发误以为是一种快速交付的方法,就因为它比传统开发方法快一些,当然:还有它叫做「敏捷」的缘故.因此我们常常听到主管们在会议上抱怨:「不是已经在RUN敏捷开发法了吗,为什么开发速度还是那么慢呢?」. 「敏捷」二字的误导 这一篇文章的目的不在回答上面那个说来话长,必须用听诊器仔细推敲才能回答的问题,而只是想修正一下大家对「敏捷」这二个字的误解.敏捷二字其实是针对需求变化的快速反应而来,而不是

利用VS2010开发一个跳转页面aspx

在开发项目的过程中,由于要集成Cognos的报表通过URL,但是Cognos报表的本身URL长度过程,那么此时就需要开发一个跳转的页面,下面我们就采用VS2010开发一个跳转的页面Default.aspx 1:打开VS2010新建网站 2:选择C#语言,ASP.NET空网站 3:项目JumpPage已经创建好,默认都有一个web.config配置文件 4:本例的web.config内容为,添加了appSettings节点,供下面的操作使用 <?xml version="1.0"?

【以太坊开发】利用Oraclize开发一个投注合约(一):原理介绍

智能合约的作用很多,但是很多数据还是要基于互联网,那么如何在合约中获取互联网中的数据?Oraclize就是为了这个目的而诞生的. 本篇介绍如何利用Oraclize开发一个投注智能合约,开始coding之前,这一节讲述一下理论. 工作原理: 智能合约通过对Oraclize发布一个合约之间的调用请求来获取数据,指定数据源和参数.Oraclize根据收到的请求获取数据,利用callBack函数返回结果. Oraclize的数据源列表如下: URL:互联网中的连接. WolframAlpha:Wolfr

利用MyEclipse开发一个调用webservice接口的程序

上一篇文章我们已经学习了如何使用Java 工具MyEclipse开发一个webservice接口,那么接口开发好了如何调用?接下来我们就来解决这个问题. 1:首先随便创建一个Java project选中--New  Webservice Client 2:选中JAX-WS,下一步 3:在WSDL URL里面写入接口的测试地址 ↓接下来WSDL VAlidation竟然报错了,如何解决请往下看 把localhost换位主机IP地址 下一步 ,OK 通过通过验证 客户端会默认给我们选中需要导入的包

【如何快速的开发一个完整的iOS直播app】(原理篇)

一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的. 直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程. 二.了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 直播效果图 直播效果.jpeg 1.一个完整直播ap

iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)

今天要实现一个功能, 通过iTunes导入文件到应用中, 并且在应用中对这个文件进行编辑. 类似我们平时经常使用的 PDF阅读器那样的东西, 我们可以自己导入我们的电子书. 源码下载:https://github.com/colin1994/iTunesTest.git 下面具体介绍下实现过程. 先看效果图. 图1. 未实现功能前, iTunes截图 图2. 实现功能后, iTunes截图 图3. 实现功能后, 运行截图. 好了, 通过图片, 我们可以看到实现的效果. 功能包括: 允许通过iTu

【微信公众平台开发】利用百度接口,制作一键导航功能

微信开发中,很多商家用户都要求点具体地址,能在百度或者soso地图上面显示自己的地址. 而这样的功能,利用百度api接口地图标点功能就可以很简单实现. 1.功能说明如下: 地图标点功能 调用该接口可调起PC或web地图,且在指定坐标点上显示点的名称和内容信息. 实例 http://api.map.baidu.com/marker?location=40.047669,116.313082&title=我的位置&content=百度奎科大厦 &output=html&src=

HBase概念学习(八)开发一个类twitter系统之表设计

这边文章先将可能的需求分析一下,设计出HBase表,下一步再开始编写客户端代码. TwiBase系统 1.背景 为了加深HBase基本概念的学习,参考HBase实战这本书实际动手做了这个例子. 2.需求 这是一个用户推特系统,用户登陆到系统,需要维护用户的基本信息,然后用户可以发帖和其他用户进行互动.用户之间可以相互关注,用户可以浏览关注用户的推文等等. 这是一个比较简单的推特系统,不考虑用户之间的私信,用户评论推特等功能. 3.概要设计 3.1表设计 首先需要设计三个表:用户表,推特表以及用户

为 Android 平台开发一个输入法

学习目标: 实现新的输入法 学习目的: 掌握Android输入法框架 学习收获: Android 1.5 新特色之一就是输入法框架(Input Method Framework,IMF),正是它的出现,才为诞生不带实体键盘的设备提供了可能.IMF设计用来支持不同的IME,包括了soft keyboard,hand-writing recognizes和hard keyboard translators.这里,我们把焦点锁定在soft keyboard上. 新特色对普通应用开发者而言,应该确保让应