好吧,我希望这不是一个问题,但我的好奇心让我变得更好。我在一家大型保险公司工作。我们正在建立excel电子表格,处理人寿保险单未来现金价值的预测。这些是相当大的工作簿(40-50mb),有大量的工作表和列,必须考虑到大量的变量才能准确地预测现金价值。
如何将其构建为桌面或业务应用程序?我知道.net对初学者来说相当不错,但是我在电子表格思维之外思考问题以及如何将.net应用于这样的事情。如何在代码中跟踪计算,在电子表格中需要3个或4个页面,每行有600列,每行1300行?以及根据年龄,性别,吸烟者/非吸烟者等投入动态改变影响政策的利率,费用和其他因素......
答案 0 :(得分:4)
我敢打赌你的公司正在做>每年10亿美元,全部基于Excel电子表格。你并不孤单。
我首先考虑问题而不是Excel电子表格。什么是业务问题?你能用物体建模吗?我看到一些对象:政策,所有随之而来的Coverage和Class children;被保险人,有性别,吸烟者等特征 - 你明白了。
投影听起来像你将会有一些“假设”变量具有一些你会改变的统计特性。你的工作是运行大量的蒙特卡罗模拟,通过从样本中抽取并计算输出来改变变量。您的结果将是具有标准偏差和置信度的预测平均值。
可能是大规模并行计算的理想选择。
计算的基础是什么?你可以分享哪些知名模特?也许那会暗示一下。
答案 1 :(得分:3)
另外,请确保不要使用浮动或双打进行涉及金钱的计算。使用十进制。
答案 2 :(得分:2)
这真是一个简单的问题......答案很复杂。
您在问:我如何规划复杂的软件项目?
了解您的环境(您听起来像这样):
了解软件工程:
了解您的语言/发展环境:
如果你对开始感到紧张,那么我会创建一个简单的功能原型。首先以Balsamiq Mockups之类的方式可视化项目,以便您可以看到每个拼图如何组合在一起。
如果您花几天时间研究软件工程方法,您将节省数小时的头痛。从那些已经完成了你想要做的事情的那些阿尔法极客们那里获得的优秀实践开始。
答案 3 :(得分:1)
SpreadsheetGear for .NET将允许您在没有Excel的.NET应用程序中直接使用Excel模型,并且每次业务人员想要更新模型时都不会花费大量时间转换为C#或VB。
如果您想亲自试用,可以下载免费试用here。
免责声明:我拥有SpreadsheetGear LLC
答案 4 :(得分:0)
你必须一次分解一件事,然后从数据库设计开始。想想基础表。您可以浏览excel中的每个工作表,并考虑如果您获取相关信息并将其放入数据库表中,它会是什么样子。
数据库视图非常适合进行基本数学运算,因为它可以根据许多表进行计算,并以漂亮的格式显示结果。
答案 5 :(得分:0)
这是我采取的方法:
答案 6 :(得分:0)
考虑一下speadsheets,因为很多事情都在比C#代码更高的抽象层次上工作。
因此,要重新实现.Net中的工作表,您可以采用一些广泛的方法
答案 7 :(得分:0)
添加一些细节:
单元格值成为数据库中的变量或条目。例如,代替B1的公式= A1 + 2(其中A1包含给定策略的小部件数),您有:
var widgets = (from policy in db.Policies select new {policy.widgets}).First().widgets;
var moreWidgets = widgets + 2;
函数和宏被移植 - 例如,Round(B1,0)变为Math.Round(moreWidgets,0,MidpointRounding.AwayFromZero)
名字:[________________]
姓氏:[________________]
SSN:[________________]
做这一切的好处(假设做得好)是: