65.9K
CodeProject 正在变化。 阅读更多。
Home

Inflatimeter™ 通货膨胀计算器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (9投票s)

2013年8月14日

CPOL

13分钟阅读

viewsIcon

32299

Win8/平板电脑应用,可对单个产品和商品篮进行通货膨胀计算(AIC-2013)

公告

INFLATIMETER™-2014 已发布(参见下面的演示截图)

无边框窗口,带放大控件(适用于触摸屏);深色背景

浅色背景,带屏幕“虚拟”键盘

引言

Intel® 应用创新大赛 2013,第一轮获奖作品晋级第二轮(状态:已提交)

  • 目标平台:配备 Windows 8 桌面版的平板电脑
  • 比赛类别:金融

图 D1:Inflatimeter™ 应用在联想平板电脑 2 上运行的示例截图。 

 


应用程序概述和主要比赛指标

Inflatimeter™ Windows 版通货膨胀计算器(以下简称“应用程序”)允许计算年化通货膨胀指数(直线近似或复合),并对单个消费品/服务或其汇总值(“商品篮”)的价格动态进行统计分析。

问题的识别与机遇

价格动态和相应的通货膨胀指数是基本经济指标。该金融工具提供了独特的扩展“DIY 通货膨胀分析”,适用于个人或社会群体,比官方 CPI 和其他不包含食品、药品、能源和其他必需品价格的通货膨胀指标提供更具代表性(个性化和地域性)的统计数据。

应用程序的技术优势和更广泛的影响

该应用程序扩展了现有在线通货膨胀计算器 [3] 的功能,增加了一个功能丰富的 UI,该 UI 利用了与目标硬件平台/操作系统(特别是运行 Windows 8 的联想® ThinkPad 平板电脑)相关的最新技术突破,该平台已选定用于生产试点。 该应用程序也向后兼容 Windows 7/Vista,并在一定程度上兼容 Windows XP。 该应用程序可用于个人和机构层面,兼具实用和教学方面。

应用程序的预期用途 

拟议的通货膨胀计算器可供个人、社会群体、企业、教育和研究机构使用,如下所示的部分用例:

表 1:潜在用户和最常见的用例
用户 用法
个人 对选定的消费品商品篮进行通货膨胀计算
企业 对选定产品的价格动态和通货膨胀进行计算
研究 经济学研究通货膨胀对不同社会群体的影响
Edu 经济学基础教育平台
网络 生产协作金融内容的社交网络和在线社区
 

应用程序开发方法

从技术角度来看,开发方法遵循程序关注点分离的基石原则,即:所有布局和美学增强都通过 WPF/XAML 实现;数据内容存储在引用(只读)和用户数据库中;算法部分将作为托管代码实现,并编译为 .NET 程序集。拟议的应用程序实现了语音增强的多模态用户界面,允许标准 PC 键盘/鼠标和触摸屏操作,并支持数字化仪笔。从项目管理角度来看,开发应利用现有的计算引擎,用 C# 重写并集成到 Windows 8 应用程序中。平板电脑适应的 UI 和数据层将遵循标准的 FLCD 方法论“从头开始”开发。

编码语言和框架:.NET、WPF、C#

应用程序的托管代码库是使用 Microsoft .NET/WPF 和 C# 开发的,并以 SQL Server Compact Edition  (SQL CE) 为后盾。

关于作者

Dr. Alexander Bell 是一位经验丰富的 Microsoft 技术专家,开发经验涵盖从 DOS 到 Win 8。他积极参与在线开发社区的数字生活(在 Codeproject 上发表了 21 篇文章和 36 个技巧)。他本人完成了 10 多个企业级项目,为纽约主要的金融机构提供咨询服务,包括 JPMorgan Chase、Societe Generale 等。Bell 博士是语音增强 Windows 应用程序软件和新颖 MMUI 概念的先驱和爱好者。 

比赛指标(第一轮  & 第二轮)

创新和用户体验
  • 通过高效的多模态用户界面 (MMUI),利用平板电脑的触摸屏功能和 .NET 语音增强,提升用户体验 (UX)
  • 单窗口解决方案,可在功能区域之间实现直观导航
  • 通过新颖的无边框 WPF 窗口实现美学改进
  • 创新的应用窗口控制框,带有放大控件,适用于触摸屏操作
  • 单击或单点即可调整窗口和字体大小的功能
  • 完全自主的移动操作,使财务/税务专业人士能够更好地利用通勤时间(尤其是在没有互联网连接的公共交通上)
使用平板电脑的关键技术赋能向量
  • 通用多模态用户界面 (MMUI),适用于 PC 键盘/鼠标、触摸屏操作,并支持各种 HID(可拆卸键盘/鼠标、触控笔或数字化仪笔)
  • 通过 TTS 进行情境敏感的错误、说明和通知语音消息
  • 利用平板电脑的高分辨率显示屏,在单个窗口中实现高数据密度和功能聚合
应用程序在金融类别中的可行性/重要性
  • 价格动态和相应的通货膨胀指数代表基本经济指标。拟议的应用程序允许对反映个人和社会群体消费者实际消费的“商品/服务篮”进行“实际”通货膨胀计算。它是经济估计、分析和规划的重要工具,适用于个人和机构层面。除了这一实际方面,拟议的应用程序软件还可以用作基本经济教育平台的教学用途。
描述性清晰度、范围和覆盖范围

拟议的应用程序基于多项创新提交想法和实践知识,包括作者已实现并在其近期出版物中讨论的内容,以及本文档后面讨论的新引入的想法和相应的程序任务/挑战/解决方案(参见“背景”和“兴趣点”部分)。

背景

通货膨胀:一点理论 

通货膨胀是指“货币购买力下降”。这个简单的定义虽然在学术上不够精确,但在定性层面反映了普通大众去市场购物时,看到相同产品/服务价格上涨时的实际感受。价格随时间下降的逆过程相应地称为通货紧缩。

通货膨胀指数,或年通货膨胀率,量化了这种直观的“市场感知”。更确切地说,它应该做到这一点。实际上,情况并非如此简单。例如,官方的通货膨胀计算模型和相关的消费者价格指数(CPI),在国家博客圈中因其可疑的代表性而受到合理批评,却排除了能源、住房、食品和其他一些消费品的价格,而这些商品对于大多数美国人来说无疑是重要的,因为他们普遍会吃、喝、旅行、洗澡、取暖或制冷、晚上开灯、看电视和上网,并且相应地支付各种账单。

价格动态在不同产品/服务类别之间分布不均,因此不同社会群体对通货膨胀的感觉截然不同。构建一个能够充分反映不同社会群体感知和消费习惯的“一刀切”商品篮在概念上很难,但很明显,这样的虚拟商品/服务篮应包含美国人口多数的必需品。因此,非常需要一种计算工具,能够计算任何指定时期内任意选定商品/服务的通货膨胀指数。

美国劳工统计局的 CPI 通货膨胀计算器

参考美国劳工统计局提供的 CPI [1] 和在线通货膨胀计算器 [2](引文):“...CPI 通货膨胀计算器使用给定日历年的平均消费者价格指数。这些数据代表城市家庭消费的所有商品和服务的价格变动。该指数值自 1913 年以来每年计算一次。对于当前年份,使用最新的月度指数值。”对 2000 年的 1 美元进行抽样计算,返回的结果(“具有相同的购买力”)在 2010 年为 1.27 美元。

作者开发的在线通货膨胀指数计算器 [3] 允许计算任何感兴趣的单个产品/服务在指定时间段内的年化通货膨胀率(复合或直线近似)。下面列出了 2000-2010 年十年期间(纽约市和全国)的通货膨胀样本数据。

现有 Web 应用程序 

拟议计算器的简化版本已作为 Web 应用程序 [3] 实现

图 1:在线通货膨胀计算器,示例截图

年化复合通货膨胀指数:ACII

下面是作者引入并在计算器中实现的年化复合通货膨胀指数的计算公式

ACII= (Px2 / Px1(1/(y2-y1) -1 

其中 Px1Px2  代表起始/结束价格,分别对应起始/结束年份 y1y2

此外,直线近似有时可作为简化的估计,补充更严谨的 AIdx 计算。下面列出了在 2000-2010 年期间针对各种消费品计算的 AIdx 样本值。

以 21 世纪第一个十年计算的可口可乐® 通货膨胀指数是一个很好的实际例子。假设 2000 年一瓶大瓶可口可乐的价格约为 0.99 美元,到 2010 年涨到 1.99 美元,则年化通货膨胀率(复合计算,见图 1)或通货膨胀指数为:7.23%

同一时期纽约市的汽油通货膨胀指数约为:6.94% (2000 年普通汽油平均每加仑 1.61 美元,2010 年底为 3.15 美元)

同一时期在纽约市计算的多力多滋(薯片)通货膨胀指数约为:7.18%(2000 年小包装玉米片多力多滋价格为 0.25 美元,到 2010 年涨至 0.50 美元)

纽约地铁票价通货膨胀指数。2000 年纽约地铁单程票价从 1.5 美元涨到 2010 年的 2.25 美元,对应的通货膨胀指数为:4.14%

基于美国邮政服务公司对 1 盎司以下一类邮件的费率计算的邮票通货膨胀指数,2000 年为 0.33 美元,2010 年为 0.44 美元,得出的数字约为:2.92%

石油(WTI)通货膨胀指数估计为 13.59%(2000 年为 25.56 美元,2010 年为 91.38 美元)。

PC RAM(内存)通货膨胀指数(针对高品质产品的最低价格 $/MB)计算结果为负值,约 -28.34%(2000 年精选类型为 0.85 美元/MB,2010 年为 0.03 美元/MB)。这实际上是通货紧缩。正如我们所见,内存芯片与薯片的价动态非常不同,对我们的“Intel Inside”赛博伙伴来说非常有利。

最重要的结论之一是,许多消费品的“实际”通货膨胀数字与“汇总”的官方计算大相径庭,表明 2000-2010 年的价格动态仅仅是从 1.00 美元上涨到 1.27 美元。

贵金属表现与道琼斯金比

市场指数与主要贵金属表现的比较分析可视化在下表(使用 jQuery 动态生成)和图表(使用基于 HTML5/Canvas 的专有图表技术)中。

图 2:道琼斯金比(2000-2010),示例截图

图 3:主要市场指数和贵金属表现(2000-2010),截图 

拟议解决方案(平板电脑版本)

拟议解决方案将作为独立的 Windows 8 应用程序运行,自主运行;其核心操作不需要互联网连接,并将用户数据本地存储,从而妥善解决隐私安全问题。拟议应用程序的高移动性,可以在平板电脑上自主运行,与其基于 Web 的对应产品相比具有显著的竞争优势。拟议解决方案的扩展功能部分列于下。

  • 自定义数据库,反映用户选定产品和服务的价格动态
  • 针对特定金融领域的独特计算和数据可视化引擎
新颖的用户界面

如上所述,为了改善用户体验,拟议的应用程序将实现新颖的多模态用户界面 (MMUI),利用平板电脑的新颖功能。MMUI 的核心设计原则列于下。

  • 兼容标准 Windows 桌面式 GUI 操作,通过鼠标/键盘
  • 针对平板电脑的多点触控 UI 扩展,利用最常见的手势:点击、长按、滑动、旋转和拖动,分别对应主要操作、学习/说明模式、屏幕和功能区域之间的导航。
  • 通过 TTS 提供给用户的语音反馈,实现错误、指导和通知消息
  • 通过 ASR 进行语音命令(可选,取决于麦克风输入可用性)
  • 方向传感器,可在纵向/横向之间切换
  • 数字化仪笔(可选)功能,对应标准手势,以及数据输入功能
  • 自动亮度/对比度调整(可选,取决于 ALS 可用性)

拟议的用户体验增强功能以及独特的功能集将打造一款高效的财务生产力工具,在同类应用中具有很强的竞争力。它具有良好的市场前景。 

外部 HID

拟议的平板电脑应用程序可以受益于外部输入设备,特别是:可拆卸键盘和数字笔。附加的条形码扫描仪可以极大地简化用户数据库中的数据输入。

商业智能层

通货膨胀指数计算引擎,目前在在线版本 [3] 中实现为 HTML5 应用程序,将在拟议的平板电脑/Win 8 应用程序中转换为 C# 托管代码。

数据层

数据层由参考数据库和用户数据库组成。第一个包含特定产品和服务的价格动态。用户数据库允许输入任意选定商品和服务的价格动态。

使用代码

注意:本节将随着项目的进展持续更新。

清单 1 中所示的代码片段用于自定义“数字”WPF TextBox,使其仅接受与内容相关的字符(在拟议应用程序的上下文中,为美元金额)。它通过用户每次击键时触发的预emptive 输入验证工作。结合触发 TextBox.LostFocus 事件的第二个验证代码块(未显示),它提供了一个可靠且用户友好的输入验证机制。

清单 1. WPF 数字 TextBox

#region Numeric TextBox (Dollar Amount field)
TextBoxNumeric.PreviewKeyDown += (s, e) =>
    {
        // cast e.Key to int
        int _key = (int)e.Key;

        // allow the following key
        if (e.Key == Key.Back ||
            e.Key == Key.Delete ||
            e.Key == Key.Enter ||
            e.Key == Key.Return ||
            e.Key == Key.Tab ||
            e.Key == Key.OemPeriod ||
            e.Key == Key.OemComma ||
            e.Key == Key.Decimal ||
            e.Key == Key.Left ||
            e.Key == Key.Right ||
            (_key <= 43 && _key >= 34) ||
            (_key <= 84 && _key >= 73)) return;
        else e.Handled = true;
    };
#endregion

 

兴趣点 

编程挑战

存在几个潜在的编程挑战,对应于部分列出的任务。

  • 无边框 WPF 窗口,带自定义控制框(见图 3 中的示例截图)
  • 直观/高效的语音消息(错误消息、通知/说明通过 TTS)[4-8]

无边框 WPF 窗口 

Inflatimeter 应用程序中实现的无边框 WPF 窗口的示例截图如下所示,图 3。无边框窗口具有更好的美学吸引力并提升了整体用户体验,尽管它们带来了编程上的挑战。“无边框效果”可以通过 XAML 轻松实现,但需要一些编码才能使窗口可移动/可调整大小:注意自定义窗口控制框有一个额外的调整大小按钮,增加了单点离散调整大小的功能。

 

图 3:Inflatimeter 演示示例截图 

语音增强

作者十多年来一直从事语音增强应用程序的开发,并发表了多篇涵盖两个基石技术(TTS 和 ASR)的文章 [4-8]。拟议应用程序计划通过一套全面的情境敏感的 TTS 语音消息(错误、说明和通知消息)来实现语音增强。

历史  

  • 2002 年:作者开发了一系列语音增强的 Windows 应用程序
  • 2009 年:复利计算器已开发为 HTML5/CSS3 Web 应用程序
  • 2010 年在线通货膨胀计算器已开发为 HTML5/CSS3 Web 应用程序
  • 2013 年 8 月 14 日:文章提交至 AIC-2013:平板电脑/金融
  • 2013 年 10 月 20 日:最终应用程序包提交至 AIC-2013 第二轮
  • INFLATIMETER™-2014 的完整生产版本已于 2014 年 9 月 14 日发布

参考文献 

  1. 消费者价格指数(BLS) 
  2. CPI 通货膨胀计算器 (BLS))
  3. Alexander Bell,在线通货膨胀计算器 (HTML5)
  4. INFLATIMETER™-2015 for Windows 免费下载

缩略语和简称

  • ALS 环境光传感器
  • ASR 自动语音识别
  • BI 商业智能
  • BLS 劳工统计局
  • CPA 注册会计师
  • COTS 现成软件
  • DIY 自己动手
  • DJIA 道琼斯工业平均指数(市场指数)
  • Dow 道琼斯指数(通常指 DJIA)
  • FLCD 全生命周期开发
  • I/O 输入/输出操作 
  • MMUI 多模态用户界面(多点触控,语音增强)
  • NASDAQ 美国全国证券交易商协会(市场指数)
  • NYS 纽约州
  • NYC 纽约市
  • PMO 项目管理办公室
  • SQL CE SQL Compact Edition
  • SPA 单页应用程序
  • SP500 标准普尔 500 指数(市场指数)
  • TTS 文本转语音  
  • UI 用户界面
  • UX 用户体验
  • VI 虚拟仪器
  • WPF Windows Presentation Foundation
  • XAML 可扩展应用程序标记语言
© . All rights reserved.