Разработка объектно-ориентированного приложения "Зоопарк"

 

Введение


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

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку». В основе систем быстрой разработки, или RAD-систем лежит технология визуального проектирования и событийного проектирования, суть которой в том, что среда разработки берет на себя большую часть рутины, оставляя программисту работу по проектированию окон и созданию функций обработки событий.

Одной из широко используемых RAD-систем является Visual Studio 2010, которая позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределенными базами данных. В качестве языка программирования в Visual Studio 2010 используется СSharp.

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

Язык СSharp стал популярным благодаря тому, что он полностью унаследовал и расширил возможности языка Си и C++, который до сих пор часто используется в задачах системного программирования.

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

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

Сегодня язык СSharp очень распространен во всем мире. Большинство программ как в России, так и за рубежом создают именно на этом языке.


1. Анализ исходных данных


1.1Характеристика требований на разработку


В данном курсовом проекте необходимо разработать базу данных на тему «Зоопарк». Программа должна иметь графический интерфейс для просмотра, создания и редактирования объектов, осуществлять загрузку и сохранение данных на диске, использовать не менее восьми сущностей, использовать механизм наследования осуществлять поиск объектов по различным признакам.


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

интерфейс программный обеспечение пользовательский

Поскольку нам необходимо разработать базу данных, используя принципы ООП, то удобно будет использовать объекты для хранения данных. Для определения конечных объектов воспользуемся механизмом наследования. Поскольку тема данного курсового проекта «Зоопарк», то за базовый класс примем некоторое устройство (класс zoopark.cs). В него будут передаваться параметры из классов-наследников, такие как: животные, уборщики, смотрители, повара, ветеринары и другие. Далее, создадим 5 новых классов, которые наследуют класс зоопарка: это будут класс животных (animals.cs), класс уборщиков (uborshiki.cs), класс поваров (povara.cs), класс смотрителей (smotriteli.cs) и класс ветеринаров (veterinary.cs). Эти классы содержат определенные данные, которые соответствуют требуемому типу. Эти классы являются конечными, каждый объект которых будет хранить одну запись нашей базы данных. Сами объекты будем создавать динамически, а для доступа к ним будет использоваться массив указателей.


1.3Специальное и общесистемное программное обеспечение


При написании данного курсового проекта использовалось следующее стороннее программное обеспечение и инструментарий:

·Microsoft Visual Studio 2012 Ultimate - написание программы;

·Microsoft Office Word 2010 - написание пояснительной записки, описания программы, руководства пользователя;

·Enterprise Architect 7.5 - проектирование и подготовка диаграмм.


2. Программное проектирование


2.1Разработка диаграмм прецедентов


Диаграммы прецедентов (или вариантов использования - от англ. «use case diagram») составляют модель прецедентов. Прецедент - это функциональность системы, позволяющая пользователю получить некий значимый для него, ощутимый и заранее определенный разработчиком результат.

В приложении А представлена модель прецедентов разрабатываемой программы. На диаграмме представляются актеры, прецеденты и отношения между ними. Отношения выражаются взаимодействием актеров с системой при помощи прецедентов (вариантов использования). Актером является любая сущность, взаимодействующая с программой извне. В качестве вариантов использования или прецедентов выступают сервисы и функционал, который система предоставляет актерам.

В данной курсовой работе в качестве актеров выступает Администратор. К его прецедентам относятся:

Добавление данных:

oДобавление животных;

oДобавление графика работы;

oДобавление местонахождения;

oДобавление работников зоопарка;

Поиск работника по любому признаку;

Редактирование ранее введенных данных;

Просмотр информации в виде таблицы и в окнах:

oПросмотр информации о животных;

oПросмотр информации о работниках;

oПросмотр информации о графике работы;

oПросмотр информации о местонахождении;

Работа с файлами:

oЗагрузка данных из файла БД и их сохранение;


2.2Разработка диаграмм классов


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

Краткая характеристика классов, используемых в данной курсовой работе, представлена в таблице 2.2.1. Подробнее методы и свойства классов представлены в диаграмме классов (приложение Б).


Классы и их методы и свойства

КлассКраткая хакактеристикаForm1.csГлавная форма приложения. Дизайн программы.Proekt.csФорма выводит на экран сообщение о проекте.Succsess.csФорма выводит на экран сообщение о успешно выполненном задании.Zoopark.csБазовый класс, который содержит в себе свойства класса-наследника: животные.ZooparkR.csБазовый класс, который содержит в себе свойства классов-наследников: смотрители, повара, уборщики, ветеринары.Animals.csКласс, который хранит в себе свойства полей животныхSmotriteli.csКласс, который хранит в себе свойства полей смотрителейPovara.csКласс, который хранит в себе свойства полей поваровUborchiki.csКласс, который хранит в себе свойства полей уборщиковVeterinari.csКласс, который хранит в себе свойства полей ветеринаров

2.3Разработка диаграмм деятельности


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

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

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


2.4Разработка диаграмм состояний


Диаграмма состояний представляет собой граф работы цифрового автомата. На ней изображаются переходы между различными состояниями программы. Для данной курсовой работы диаграмма состояний представлена в приложении Г.

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

Под действием в языке UML понимают некоторую атомарную операцию, выполнение которой приводит к изменению состояния или возврату некоторого значения.

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



3. Программная реализация


3.1 Детальная реализация функциональных частей программного обеспечения


Реализация программного обеспечения

Разработка диаграммы деятельности.

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

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

Полученная диаграмма деятельности размещена в приложении Г.

Разработка диаграммы классов.

Рассмотрим подробнее описание классов. Первый «базовый» класс называется «Зоопарк» (Zoopark.cs):


public abstract class Zoopark

{Type type;static Zoopark head;Zoopark next;

void add()

{(head == null)= this;

{tail = head;

(tail.next!= null)= tail.next;

.next = this;

}

}

Zoopark Next

{{return next;}set {next = value;}

}

Zoopark ()

{= null;();

}

static Zoopark Head

{{return head;}

}abstract string getStringData();

override string ToString()

{StringData;

}

abstract string StringData

{;

}

Type Type

{{return type;}


}


Данный базовый класс предназначен для получения данных из классов-наследников и упорядочивает их в списке (в данном случае имеется 1 наследник: «животные»), он характеризует управление зоопарком в целом.

Второй «базовый» класс называется «Зоопарк работники» (ZooparkR.cs):


public abstract class ZooparkR

{

TypeR type;

static ZooparkR head;ZooparkR next;

void add()

{

(head == null)= this;

{tail = head;

(tail.next!= null)= tail.next;

.next = this;

}

}

ZooparkR Next

{{return next;}set {next = value;}

}

ZooparkR()

{= null;();

}static ZooparkR Head

{{return head;}

}

abstract string getStringData();

override string ToString()

{StringData;

}

abstract string StringData

{;

}

TypeR Type

{{return type;}


}


Данный базовый класс аналогичен классу «зоопарк», только он предназначен для хранения в себе данных о персонале: «смотрители», «уборщики», «повара», «ветеринары» в данном случае имеется 4 наследника.

Следующий класс который мы рассмотрим называется «животные» (Animals.cs), это класс-наследник «зоопарка»:


class Animals: Zoopark

{vid;

string Vid

{{return vid;}{vid = value;}

}

nameanim;

string NameAnim

{{return nameanim;}{nameanim = value;}

}

ageanim;

string AgeAnim

{


get {return ageanim;}{ageanim = value;}

}

polanim;

string PolAnim

{{return polanim;}{polanim = value;}

}

override string StringData

{

{return «Вид:» + Vid + «Кличка:» + NameAnim + «Возраст:» + AgeAnim + «Пол:» + PolAnim;}


}

override string getStringData()

{StringData;

}

Animals()

: base()

{= Type. Animals;

}

}


Данный класс хранит в себе свойства:

Вид животного.

Кличка животного.

Возраст животного.

Пол животного.

Свойства этого класса, передаются в базовый класс «зоопарк».

Следующий класс называется «смотрители» (Smotriteli.cs), он относится к базовому классу «зоопарк работники»:


class Smotriteli: ZooparkR

{

fiosmotr;

string FIOSmotr

{{return fiosmotr;}{fiosmotr = value;}

}

agesmotr;

string AgeSmotr

{{return agesmotr;}{agesmotr = value;}

}

stazhsmotr;

string StazhSmotr

{


get {return stazhsmotr;}{stazhsmotr = value;}

}override string StringData

{

{return «Смотритель <Ф.И.О.:» + FIOSmotr + «Возраст:» + AgeSmotr + «Стаж работы:» + StazhSmotr +»>»;}


}

override string getStringData()

{StringData;

}

Smotriteli()

: base()

{= TypeR. Smotriteli;

}

}


Данный класс хранит в себе свойства:

Ф.И.О. смотрителя.

Возраст смотрителя.

Стаж работы смотрителя.

Свойства этого класса, передаются в базовый класс «зоопарк работники».

Следующий класс называется «уборщики» (Uborshiki.cs), он относится к базовому классу «зоопарк работники»:


class Uborshiki: ZooparkR

{

fioubor;

string FIOUbor

{{return fioubor;}{fioubor = value;}

}

ageubor;

string AgeUbor

{{return ageubor;}{ageubor = value;}

}

stazhubor;

string StazhUbor

{{return stazhubor;}{stazhubor = value;}

}

override string StringData

{{return «Уборщик <Ф.И.О.:» + FIOUbor + «Возраст:» + AgeUbor + «Стаж работы:» + StazhUbor + «>»;}

}

override string getStringData()

{StringData;

}

Uborshiki()

: base()

{= TypeR. Uborshiki;

}

}


Данный класс хранит в себе свойства:

Ф.И.О. уборщика.

Возраст уборщика.

Стаж работы уборщика.

Свойства этого класса, передаются в базовый класс «зоопарк работники».

Следующий класс называется «повара» (Povara.cs), он относится к базовому классу «зоопарк работники»:


class Povara: ZooparkR

{

fiopovar;

string FIOPovar

{{return fiopovar;}{fiopovar = value;}

}

agepovar;

string AgePovar

{{return agepovar;}{agepovar = value;}

}

stazhpovar;

string StazhPovar

{{return stazhpovar;}{stazhpovar = value;}

}

override string StringData

{

{return «Повар <Ф.И.О.:» + FIOPovar + «Возраст:» + AgePovar + «Стаж работы:» + StazhPovar + «>»;}


}override string getStringData()

{StringData;

}

Povara()

: base()

{= TypeR. Povara;

}

}


Данный класс хранит в себе свойства:

Ф.И.О. повара.

Возраст повара.

Стаж работы повара.

Свойства этого класса, передаются в базовый класс «зоопарк работники».

Последний класс называется «ветеринары» (Vetirinari.cs), он относится к базовому классу «зоопарк работники»:


class Veterinari: ZooparkR

{

fioveter;

string FIOVeter

{{return fioveter;}{fioveter = value;}

}

ageveter;string AgeVeter

{{return ageveter;}{ageveter = value;}

}

stazhveter;

string StazhVeter

{{return stazhveter;}{stazhveter = value;}

}

override string StringData

{

{return «Ветеринар <Ф.И.О.:» + FIOVeter + «Возраст:» + AgeVeter + «Стаж работы:» + StazhVeter + «>»;}


}

override string getStringData()

{

StringData;

}Veterinari()

: base()

{= TypeR. Veterinari;

}

}


Данный класс хранит в себе свойства:

Ф.И.О. ветеринара.

Возраст ветеринара.

Стаж работы ветеринара.

Свойства этого класса, передаются в базовый класс «зоопарк работники».


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

Разработка пользовательского интерфейса

Пользовательский интерфейс реализован с помощью нескольких форм:

Главной формы. Это основная форма программы, которая содержит панель навигации по разделам, а также таблицу, в которой отображаются данные выбранной категории. Пользователь выбирает нужную категорию данных, затем у пользователя имеется возможность выбрать нужное действие - добавить, изменить, удалить запись БД, а также осуществить поиск. Для загрузки и сохранения данных на диске используются стандартные диалоги открытия и сохранения файла соответственно.

Изображение главной формы показано на рис. 1


Рисунок 1. Главная форма


Поиск информации. В окне поиска пользователь вводит информацию для поиска в Базе Данных. Результаты поиска выделяются в таблице.



Рисунок 2. Поиск товаров в базе данных

- Поля ввода / редактирования каждого типа товара. Данные поля используются для добавления нового товара в базу данных или для редактирования уже имеющегося товара. Все формы имеют одинаковый внешний вид и отличаются только полями БД.


Рисунок 3. Форма ввода и редактирования товара


3.2 Детальная реализация функциональных частей программного обеспечения


Разработка описания программы

Программное средство «База данных «зоопарк»» предназначено для хранения, администрирования зоопарка и поиска информации касающейся работников и животных данного зоопарка.

Программа имеет 7 категорий товаров, а именно: местоположение, график работы, животные, смотрители, уборщики, повара и ветеринары. Программное средство позволяет добавлять, изменять, удалять информацию из базы данных, осуществлять поиск по нескольким полям записи, а также сохранять все данные в двоичный файл на жестком диске. Зоопарк имеет интуитивно понятный интерфейс, простую и понятную навигацию по разделам программы. Минимальные системные требования для запуска: компьютер на базе P-III, 128 Мб свободной оперативной памяти, операционная система Windows XP.

Разработка руководства пользователя

Для начала работы необходимо запустить файл It_shop.exe. На экране появится главная форма приложения, которая представлена на рисунке 1 и имеет следующие элементы управления: главное меню программы и панель доступа к товарам по категориям.

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

При работе программы на экране могут появляться следующие сообщения:

Файл успешно прочитан

Файл успешно сохранен

Ошибка открытия файла!

Удалить данную запись?

Первые два сообщения говорят об успешном чтении БД из файла и записи БД в файл соответственно.

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

Четвертое сообщение-запрос появляется при попытке удалить запись из базы данных. Пользователь должен ответить на вопрос «Да» или «нет». Данный диалог предусмотрен в программе для предотвращения случайного удаления записей.

Программа и методика испытаний

Тестирование программы непосредственно подразумевает в себе проверку корректности работы программы, а также выявление всевозможных ошибок.

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

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


3.3 Тестирование программного обеспечения


Результаты тестирования программы приведены в таблице 3.


Таблица 3 - Тестирование программы

Тестируемый блокОжидаемый результатПолученный результатВыводВвод данных о товареОтображение на экране введённой информацииВывод информации на экранВвод данных выполняется правильноУдаление данныхУдаление информации из базы данныхУдаление информацииУдаление данных выполняется правильноИзменение данныхИзменение информации в базе данныхИзменение данныхИзменение данных выполняется правильно

После выполнения тестирования получены результаты, приведенные в таблице 3. Сравниваем полученные и ожидаемые результаты и на основании этого делаем вывод о работе спроектированной системы. Оперативность и достоверность выводимой информации позволяет сделать вывод о правильности передачи данных, обработке и визуализации.

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

В Visual Studio 2010 предусмотрены следующие элементы отладки:

·контрольные точки;

·наблюдение за переменными;

·пошаговое исполнение кода.

На окончательном этапе тестирования серьёзных ошибок или сбоев в работе программы не обнаружено.



Заключение


В результате выполнения курсового проекта мною были получены знания и навыки объектно-ориентированного программирования.

Объектно-ориентированные технологии имеют следующие достоинства:

·уменьшение сложности программного обеспечения;

·повышение надежности программного обеспечения;

·возможность модификации отдельных компонентов программного обеспечения без изменения других компонентов;

·управляемость и функциональная расширяемость программного обеспечения;

В результате выполнения курсового проекта реализовано приложение, полностью удовлетворяющее поставленной задачи.



Литература


1.Дейтел Х.М., Дейтел П.Дж. Как программировать на С++ и CSharp: Москва, 2001

2.Культин Н. Самоучитель CSharp: Санкт-Петербург, 2004

.Скляров В.А. Язык СSharp и объектно-ориентированное программирование: Минск, 1997

.Шилдт Герберт С++ руководство для начинающих, второе издание - М.: издательский дом «Вильямс», 2005 - 672 с.


Введение В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационных и коммуникац

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ