Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Критерии выбора языка программирования




Введение

Данная работа посвящена созданию программы, которая выполняет заданные операции над данными, а именно: добавление данных об объектах недвижимости (эти данные хранятся в текстовом документе.txt), осуществляет просмотр объектов недвижимости, а также поиск недвижимости по конкретному району.

Преимущество программы состоит в том, что выполняемые действия производятся с высокой точностью, отнимая у вас при этом минимальное время. К тому же, благодаря простейшему интерфейсу, понять, как работает данная программа, сумеет пользователь абсолютно любого уровня подготовки.

Программа легка и удобна.

 

Теоретические основы ООП

 

Концепция объектно-ориентированного программирования подразумевает, что основой управления процессом реализации программы является передача сообщений объектам. Поэтому объекты должны определяться совместно с сообщениями, на которые они должны реагировать при выполнении программы. В этом состоит главное отличие ООП от процедурного программирования, где отдельно определённые структуры данных передаются в процедуры (функции) в качестве параметров. Таким образом, объектно-ориентированная программа состоит из объектов – отдельных фрагментов кода, обрабатывающего данные, которые взаимодействуют друг с другом через определённые интерфейсы.

Объектно-ориентированный язык программирования должен обладать следующими свойствами:

- абстракции;

- инкапсуляции;

- наследования;

- полиморфизма.

Базовым в объектно-ориентированном программировании является понятие объекта.

Объект – программное представление физических и (или) логических сущностей реального мира. Реальные объекты имеют две характеристики: состояние, которое определяется набором свойств (например, имя, цвет, размер) и поведение (действия, которые может производить объект).

Класс – некий проект, из которого создаётся объект.

Класс – абстрактный тип данных, определяемый пользователем, и представляющий собой модель реального объекта в виде данных и функций для работы с ним. Данные класса называются полями, а функции – методами.

Объявление объекта типа класс иногда называют созданием экземпляра класса. Экземпляры класса известны как объекты.

Класс объединяет в себе данные и методы их обработки.

Объявление класса начинается с ключевого слова class. Переменные, константы, функции, включенные в класс, называются членами класса. Члены класса объявляются в одном из трех разделов:

- Public - открытый, свойства доступны для всех

- Private - только для собственных свойств объекта

- Protected – защищенный раздел, свойства доступны для классов-потомков

Таким образом, включение члена класса в тот или иной раздел влияет на доступность этого члена для объектов других классов.

Раздел public обеспечивает доступность помещенных в него свойств и методов для любых объектов. Это внешняя часть класса, или интерфейс его взаимодействия с другими классами.

Раздел private обеспечивает сокрытие помещенных в него свойств и методов от других объектов, делая их недоступными объектам других классов. Таким образом, класс защищает свои данные (свое состояние) от внешнего воздействия. Посторонний объект может воздействовать на объект данного класса только через интерфейс этого класса.

Раздел protected позволяет, используя механизм наследования, передавать включенные в него члены класса по наследству.

Инкапсуляция является важнейшим свойством объектов, на котором строится объектно-ориентированное программирование. Инкапсуляция заключается в том, что объект скрывает в себе детали, которые несущественны для использования объекта.

Инкапсуляция означает сокрытие данных. Каждый класс инкапсулирован, т.е. все свойства объектов и поведения заключены в нем и сокрыты от других классов, и передаются только через специально организованный интерфейс.

Наследование – это ещё одно базовое понятие объектно-ориентированного программирования. Наследование позволяет определять новые объекты, используя свойства прежних, дополняя или изменяя их. Объект-наследник получает все поля и методы «родителя», к которым он может добавить свои собственные поля и методы или заменить их своими методами.

Полиморфизм заключается в том, что одно и то же имя может соответствовать различным действиям в зависимости от типа объекта. Полиморфизм напрямую связан с механизмом позднего связывания. Решение о том, какая операция должна быть выполнена в конкретной ситуации, принимается во время выполнения программы.

Существенным понятием объектно-ориентированного программирования является абстракция. Ее смысл состоит в том, что абстракция позволяет смотреть на объект, не заставляя себя разобраться в той совокупности сложных частей из которых состоит данный объект. Через абстракцию человек управляет сложностью.

 

Среда программирования

 

Средой программирования для создания проекта является Visual Studio 2013. Она включает в себя полный набор новых и улучшенных функций, упрощающих все этапы процесса разработки от проектирования до развертывания.

Microsoft Visual Studio - мощная среда разработки, обеспечивающая высокое качество кода на протяжении всего цикла разработки ПО, от проектирования до внедрения. Какие бы приложения не разрабатывались, для SharePoint, Интернет, Windows, Windows Phone, и других платформ, Visual Studio это универсальное всеобъемлющее решение.

Microsoft Visual Studio 2013 Ultimate - обширный набор средств управления циклом жизни приложения для обеспечения качества результатов от этапа проектирования до развертывания. При создании новых решений или совершенствовании существующих приложений Visual Studio 2013 Ultimate позволит воплотить ваши идеи в жизнь благодаря поддержке различных платформ и технологий, включая облачные и параллельные вычисления.

 

Модульность программ

 

Модульной называют программу, составляемую из таких частей - модулей, что их можно независимо друг от друга программировать, транслировать, отлаживать (проверять, исправлять). Предполагается, что модули имеют небольшие размеры, четко определенные функции и, кроме того, их связи между собой максимально упрощены, в частности, предполагается, что модули имеют лишь одну точку входа (в начале модуля). Разбиение программы на модули при ее написании, хотя и является весьма непростым делом, позволяет существенно облегчить в дальнейшем работу над программой на других этапах.

После того как в алгоритме выявлены мало зависимые друг от друга части, составление программы упрощается, так как при программировании каждой из этих частей почти не приходится заботиться об их взаимодействии с другими частями, что, в свою очередь, способствует уменьшению количества вносимых ошибок. Кроме того, малая зависимость модулей позволяет при необходимости существенно распараллелить составление программы, поручив программирование программистам разного класса, причем всегда можно найти подходящую работу и для начинающих, и для опытных программистов.

На этапе отладки независимость модулей позволяет отлаживать их в любом порядке, в частности и одновременно. Считается, что усилия, затрачиваемые на отладку модуля, обычно пропорциональны квадрату его длины, и поэтому при тестировании небольшие размеры модулей дают возможность поставить задачу о проверке всех ветвей таких модулей, что ведет к увеличению достоверности тестирования. Решение такой задачи является обычно недостижимым по отношению ко всей программе или крупным ее блокам, когда приходится ограничиваться лишь проверкой работы всех линейных участков блока и условий. Разумеется, и наиболее трудная часть отладки - локализация ошибок, проводимая для модулей, при этом значительно упрощается и ускоряется.

 

Критерии выбора языка программирования

С++ является языком программирования общего назначения. Естественная для него область применения - системное программирование, понимаемое в широком смысле этого слова.

C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности:

- Поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование (шаблоны, макросы).

- Предсказуемое выполнение программ является важным достоинством для построения систем реального времени. Весь код, неявно генерируемый компилятором для реализации языковых возможностей (например, при преобразовании переменной к другому типу), определён в стандарте. Также строго определены места программы, в которых этот код выполняется. Это даёт возможность замерять или рассчитывать время реакции программы на внешнее событие.

- Автоматический вызов деструкторов объектов при их уничтожении, причём в порядке, обратном вызову конструкторов. Это упрощает (достаточно объявить переменную) и делает более надёжным освобождение ресурсов (память, файлы, семафоры и т. п.), а также позволяет гарантированно выполнять переходы состояний программы, не обязательно связанные с освобождением ресурсов (например, запись в журнал).

- Пользовательские функции-операторы позволяют кратко и ёмко записывать выражения над пользовательскими типами в естественной алгебраической форме.

- Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова метода (константный для чтения, неконстантный для изменения). Объявление mutable позволяет сохранять логическую константность при использовании кэшей и ленивых вычислений.

- Используя шаблоны, возможно создавать обобщённые контейнеры и алгоритмы для разных типов данных, а также специализировать и вычислять на этапе компиляции.

- Возможность имитации расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую. Например, библиотека Boost.Bind позволяет связывать аргументы функций.

- Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.

- Используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPrt которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами.

- Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности (например, std::numeric_limits <T>). Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.

- Эффективность. Язык спроектирован так, чтобы дать программисту максимальный контроль над всеми аспектами структуры и порядка исполнения программы. Ни одна из языковых возможностей, приводящая к дополнительным накладным расходам, не является обязательной для использования — при необходимости язык позволяет обеспечить максимальную эффективность программы.

- Имеется возможность работы на низком уровне с памятью, адресами.

- Высокая совместимость с языком Си, позволяющая использовать весь существующий Си-код (код на Си может быть с минимальными переделками скомпилирован компилятором C++; библиотеки, написанные на Си.

 

Техническое задание

Анализ предметной области

Предметной областью данного курсового проекта является деятельность риэлтора. Еще несколько лет назад слово «риэлтор» у нас было мало кому знакомо. Напротив, в сфере недвижимости широко распространены термины агент, брокер, маклер, посредник.

Но это атрибуты многих сфер деятельности. Однако, в мире давно существует профессия — специалист в области операций с недвижимостью (от англ. realty -недвижимость), по-нашему — риэлтор. Риэлтор - это частное лицо или представитель агентства недвижимости, который занимается посредническими услугами при таких операциях, как аренда, купли или продажи недвижимости. В данной работе будет рассматриваться лишь аренда жилой недвижимости по городу Ростов-на-Дону. Сегодня практически ни одна сделка с недвижимостью не проходит без участия риэлтора. Риэлтор - это специалист преимущественно умственного труда, которая в большей степени связана с приемом и переработкой информации. Эта профессия очень популярна, тем более, стать агентом по недвижимости может, практически, каждый человек. Риэлтор выступает посредником между продавцом (арендодателем) и покупателем (арендатором), недвижимости, помогает грамотно оформить документы на объект, а также подобрать интересующий. Поэтому для успешной работы ему необходимо найти и продавца и покупателя. Для этого агент осуществляет поиск потенциального продавца квартиры с помощью компьютерной базы данных, находящейся на фирме, с помощью телефона (во время дежурства в офисе фирмы) и из рекламных объявлений в специализированных изданиях. Деятельность риэлтерской фирмы напрямую связана с оперативной обработкой большого объема информации об объектах недвижимости. Риэлтор получает информацию о сдаваемом в аренду имуществе и о требованиях потенциальных арендаторов. Он углубленно изучает спрос и предложения на рынке недвижимости и производит анализ. Практически каждый день риэлтор занимается регистрацией поступающих предложений по передаче объектов на их ознакомительный осмотр.

Также он содействует согласованности договорных условий и оформляет операции с недвижимостью, а после успешного окончания, получает вознаграждение в виде комиссионных.

Специалист ведет сведения об арендодателе и сдаваемом объекте, на основе которых реализует подбор жилья по индивидуальным требованиям заказчика (рис.1). Основным показателем профессионализма и надежности риэлтора всегда являлся тот факт, что клиент возвращался к тому агенту, который не просто помог ему в решении «квартирного вопроса», а внимательно и с пониманием относился к его условиям и в результате работы, с которым он совершил выгодную, юридически грамотно оформленную сделку в относительно короткие сроки.

Трудно не согласиться с тем, что в любой сфере профессионализм определяется соответствием ожиданий клиента в отношении желаемого результата, и тем, насколько в полном объеме ему была оказана помощь.

В данном курсовом проекте будет осуществляться добавление новых объектов недвижимости, просмотр все возможных вариантов недвижимости и поиск недвижимости по району. Все данные сохраняются в текстовом файле(.txt).

Цель курсового проекта состоит в создании программного комплекса для автоматизации деятельности риэлтерской фирмы. В нем производится глубокий анализ деятельности фирмы, разработка автоматизированной системы, отвечающей этим требованиям.

 

Рисунок 1.- Диаграмма вариантов использования

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...