Вы могли использовать Google GeoCode API
, который Wich на самом деле дает результатам для обоих из Ваших примеров, просто попробовал его. Тем путем Вы получаете структурированные результаты, которые можно сохранить в базе данных. Если поиск перестал работать, попросите, чтобы пользователь записал адрес в другом отношении.
Готов поспорить, ваша компания зарабатывает более 1 миллиарда долларов в год, и все это на основе таблицы Excel. Вы не одиноки в этом.
Я бы начал с размышлений о проблеме, а не о таблице Excel. В чем проблема бизнеса? Можете ли вы смоделировать это с помощью предметов? Я вижу несколько объектов: Политика со всеми сопутствующими дочерними элементами Coverage и Class; Застрахованный, с такими характеристиками, как пол, курильщик и т. Д. - вы поняли.
Прогноз звучит так, как будто у вас будет несколько переменных типа «что, если», которые будут иметь некоторые статистические свойства, которые вы можете изменять. Ваша задача будет заключаться в запуске множества симуляций типа Монте-Карло, которые изменяют переменные путем извлечения из выборки и вычисления результата. Ваш результат будет прогнозируемым средним значением со стандартным отклонением и уровнем достоверности.
Может быть хорошим кандидатом для массовых параллельных вычислений.
На чем основаны расчеты? Какие-нибудь известные модели, которыми вы можете поделиться? Может быть, это даст намек.
Также не используйте числа с плавающей запятой или удвоения для расчетов, связанных с деньгами. Используйте десятичный формат.
Это действительно простой вопрос .. … со сложным ответом.
Вы спрашиваете: «Как я могу спланировать сложный программный проект?»
Знайте свою среду (как вы говорите):
Знать разработку программного обеспечения:
Знать свой язык / среда разработки:
Если вы нервничаете по поводу запуска, я бы создал простой функциональный прототип. Начните с визуализации проекта в виде чего-то вроде Balsamiq Mockups , чтобы вы могли увидеть, как каждая часть головоломки сложится вместе.
Если вы потратите несколько дней на изучение методов разработки программного обеспечения, вы сэкономите часов и часов головной боли.
Вот подход, который я выберу:
Вам придется разбивать вещи по частям и начинать с проектирования базы данных. Подумайте об основных таблицах. Вы можете просмотреть каждый лист в Excel и подумать, как бы он выглядел, если бы вы взяли связанную информацию и поместили ее в таблицу базы данных.
Представления базы данных отлично подходят для выполнения основных математических операций, поскольку они могут выполнять вычисления на основе на многих таблицах и представьте результаты в удобном формате.
Чтобы добавить некоторые особенности:
Значения ячеек становятся переменными или записями в базе данных. Например, вместо формулы для B1, равной A1 + 2 (где A1 содержит количество виджетов для данной политики), у вас есть:
var widgets = (из политики в db.Policies выберите новый {policy.widgets} ) .First (). Widgets;
var moreWidgets = widgets + 2;
Функции и макросы переносятся - например, Round (B1, 0) становится Math.Round (moreWidgets, 0, MidpointRounding.AwayFromZero)
Имя : [________________]
Фамилия: [________________]
SSN: [________________]
Преимущества выполнения всего этого (при условии, что все сделано хорошо):
Рассмотрим на мгновение эти электронные таблицы, поскольку многие вещи работают на более высоком уровне абстракции, чем код C #.
Итак, чтобы заново реализовать свои рабочие листы в .Net, у вас есть несколько широких подходов
SpreadsheetGear для .NET позволит вам использовать ваши модели Excel непосредственно в ваших .NET-приложениях без Excel и без необходимости тратить много времени на преобразование в C # или VB каждый раз, когда бизнес-люди хотят для обновления модели.
Вы можете загрузить бесплатную пробную версию здесь , если хотите попробовать ее сами.
Заявление об ограничении ответственности: Я владею SpreadsheetGear LLC