Pocket PC 房贷计算器
CodeProject 2004 年 4 月比赛的投稿。
图 1 - MortCalc 输入面板
图 2 - MortCalc 摘要面板
图 3 - 银行的贷款计算器结果
引言
本文介绍了一款方便的 Pocket PC 应用程序,它可以计算贷款支付计划并在 Pocket PC 上显示结果。它还允许将信息保存到文本文件中,以便导出或打印。
这是一种对房地产或金融行业的人非常有价值的应用程序,他们需要在外勤工作中进行此类计算,而无法使用台式系统或互联网连接。
对于个人来说,在协商新贷款或续签现有贷款时,快速运行几种不同的还款方案也可能非常有用。在这种情况下,很容易将期限延长到最长,并将付款额减至最低。此应用程序通过采取相反的方法——缩短摊销期,例如选择稍高的付款额或更频繁的还款计划——来演示在贷款寿命期间节省大量利息成本。
本项目的主要挑战在于能否简洁地显示此类计算产生的大量信息。这通过在主选项卡控件中创建单独的显示面板来解决。如图所示,输入面板用于接受所有输入值,计算初始还款额,并可以选择覆盖实际付款额。输入所有信息后,您可以单击摘要面板以查看计算结果。如果要查看还款进度,请单击详细信息面板以查看逐年的还款数据。最后,单击报告按钮可将所有信息保存到文本文件中。输出文件可用于多次计算。然后可以将其导出到桌面系统进行存储或打印成硬拷贝。最后,还有一个帮助面板,提供基本的操作说明。
另一个挑战是安排屏幕并编写输入控件的代码,以便可以使用软键盘或手写笔方便准确地输入输入值。
背景
此 Pocket PC 实现是我 35 年前编写的程序的最新版本。它最初是用 Fortran 语言编写的,面向 Honeywell H-200 大型机。当时我是一名现场工程师,负责维护这类大型计算机,并好奇它能处理浮点计算的程度和速度。它还允许我尝试称为计算机编程的新领域。
原程序多年来已被多次移植并用 Pascal、C、C++ 以及现在的 C# 重写,运行在从大型机、小型机、自制微型计算机到这个小巧的手持设备上的各种设备上。显然,每次实现都会有所改变,但计算算法和输出演示与原始 Fortran 版本非常相似。有些变量名已保留其原始的最多六个字符的长度。(仅出于怀旧原因)
这是我的 Hello World 版本。
使用代码
除了计算还款额的代码外,其他地方的复杂性并不高。DoInput()
方法确保所有必需的输入都可用,然后执行以下两个计算:
// Calculate payment amount int_factr = ( Math.Pow( (double) ( ( rate / 100.0M ) / com ) + 1.0, (double) ( 1.0M / ( pay_yr / com ) ) ) - 1.0 ); calc_pay = prin * (decimal) ( int_factr / ( 1.0 - ( 1.0 / Math.Pow ( (double) ( ( rate / 100.0M ) / com ) + 1.0, (double) ( amort * com ) ) ) ) );
"calc_pay
" 成为计算出的还款额,"int_factr
" 是一个利率因子。然后,这两个值只需通过简单的基本算术运算,在详细和摘要计算中进行迭代应用。
所有其余的代码都是标准的 C# 代码,用于处理用户界面和格式化输出以呈现给用户。
输入控件使用验证代码来防止输入非数字值,并限制输入的长度。这些控件特别针对软键盘和手写笔的易用性进行了优化。
关注点
这个项目让我第一次体验了为 Pocket PC 编程。我遇到的一个问题是我的开发系统性能不足,无法运行模拟器或远程调试,因此开发和测试的周转时间变得无法忍受。我通过注释掉定义 inputPanel
控件的行,然后使用独立的 .NET 调试器在本地台式机上运行编译后的可执行文件,轻松地解决了这个问题。一旦一切运行得足够好,我就会重新启用 inputPanel
控件,重新编译并部署到模拟器进行最终测试。(提示 - 移除任何紧凑型框架特定的控件,您就可以回到纯粹的桌面 Winforms 应用程序)
历史
这是 Pocket PC 2002 平台的最终版本。