Содержание
Содержание курсовой работы (перечень подлежащих разработке вопросов) и порядок защиты:
Работающая (EXE) программу и отчет, который должен содержать:
— задание на работу;
— структурную схему программы и ее описание (описание классов, переменных и функций);
— исходный текст программы;
— руководство пользователя готового продукта;
— дальнейшие предложения по совершенствованию программы (по желанию).
Выдержка из текста работы
Расширение масштабов продаж компьютерной техники, нарастание конкуренции на компьютерном рынке, необходимость координации деятельности магазинов существенно усложнили принципы ведения дел.
В различных областях целенаправленной человеческой деятельности, в сложных, зачастую противоречивых условиях приходится принимать решения, нередко связанные с внедрением, порой рискованных, технологических новаций и большими материальными затратами.
Как правило, одни и те же цели могут быть достигнуты различным образом, с различными затратами труда и материальных ресурсов. Выбрать наиболее экономичный и целесообразный путь, принять обоснованное, наиболее правильное решение — далеко не простая задача и для своего решения требует привлечения современных методов.
В условиях все более нарастающего внедрения интернет-технологий во все сферы деятельности человека одной из основополагающих и самых трудоемких задач организации ведения дел является продажа и доставка компьютерной техники, который бы обеспечил магазину высокую прибыль.
Разрабатываемый проект имеет все необходимые функциональные возможности, такие как добавление, удаление, редактирование, просмотр нужной информации, имеет удобный интерфейс и все необходимые пункты меню, отражающие деятельность магазина, для которой он предназначен.
В данной курсовой работе мы будем использовать такую систему программирования как Delphi.
Примеры систем программирования — QuickBasic, TurboBasic, VisualBasic, Pascal, C++, Delphiи др.
1. Анализ и постановка задач
.1 Описание предметной области
Объектно-ориентированное программирование- парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.
Основные понятия:
Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик.
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. При этом в некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
Объект — сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа (например, после запуска результатов компиляции и связывания исходного кода на выполнение).
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка.
Достоинства объектно-ориентированного программирования:
От любого метода программирования мы ждем, что он поможет нам в решении наших проблем. Но одной из самых значительных проблем в программировании является сложность. Чем больше и сложнее программа, тем важнее становится разбить ее на небольшие, четко очерченные части. Чтобы побороть сложность, мы должны абстрагироваться от мелких деталей. В этом смысле классы представляют собой весьма удобный инструмент.
Классы позволяют проводить конструирование из полезных компонент, обладающих простыми инструментами, что дает возможность абстрагироваться от деталей реализации.
Данные и операции вместе образуют определенную сущность и они не "размазываются" по всей программе, как это нередко бывает в случае процедурного программирования.
Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.
Инкапсуляция информации защищает наиболее критичные данные от несанкционированного доступа.
Объектно-ориентированное программирование дает возможность создавать расширяемые системы (extensible systems). Это одно из самых значительных достоинств объектно-ориентированного программирования и именно оно отличает данный подход от традиционных методов программирования. Расширяемость (extensibility) означает, что существующую систему можно заставить работать с новыми компонентами, причем без внесения в нее каких-либо изменений. Компоненты могут быть добавлены на этапе выполнения.
Расширение типа (typeextension) и вытекающий из него полиморфизм переменных оказываются полезными преимущественно в следующих ситуациях.
Обработка разнородных структур данных. Программы могут работать, не утруждая себя изучением вида объектов. Новые виды могут быть добавлены в любой момент.
Изменение поведения во время выполнения. На этапе выполнения один объект может быть заменен другим. Это может привести к изменению алгоритма, в котором используется данный объект.
Реализация родовых компонент. Алгоритмы можно обобщать до такой степени, что они уже смогут работать более, чем с одним видом объектов.
Доведение полуфабрикатов. Компоненты нет надобности подстраивать под определенное приложение. Их можно сохранять в библиотеке в виде полуфабрикатов (semifinished products) и расширять по мере необходимости до различных законченных продуктов.
Расширение каркаса. Независимые от приложения части предметной области могут быть реализованы в виде каркаса и в дальнейшем расширены за счет добавления частей, специфичных для конкретного приложения.
.2 Иерархия целей и задач
Целью данной курсовой работы является изучение и применение технологии разработки программного продукта, используемого магазином компьютерной техники, занимающегося продажей, заказом, комплектацией и доставкой. Разработан удобный интерфейс, реализованы функции пользовательского ввода наименования товара, просмотр каталогов товара, сохранение заказов, просмотра, доставка товара, а также подсчет общей суммы. Программа имеет как статические, так и динамические данные. Предусматривается возможность работы основного пользователя — продавца. Помимо обычных действий, таких как навигация по меню, ввод и просмотр наименования товаров существует возможность сохранять сформированный бланк заказа в текстовом документе.
Рисунок 1. Варианты использования.
Рисунок 2. Иерархия целей.
Рисунок 3. Иерархия задач.
2. Анализ данных
Данные в программе подразделяются на динамические и статические. К статическим относятся имя поля, фильтр доставки и установки операционной системы. Программа, созданная в среде BolandDelphi »Комплектация компьютерной техники» имеет динамические данные, представляющие собой поле для ввода текста, кнопки для обработки различных событий, таких как сохранить, итог, очистить и выход, использовать которые может сотрудник магазина.
Таблица 1. Общие сведения о полях.