
- •Программное средство «Предсказатель»
- •1. Аналитический обзор литературы и аналогов
- •2. Постановка задач
- •2.1 Цель
- •2.2 Задачи
- •2.3 Область применения
- •2.4 Актуальность
- •2.5 Входные данные
- •2.6 Выходные данные
- •3. Разработка программного средства
- •3.1 Обоснование выбора языка программирования с#
- •3.2 Описание модулей
- •4. Руководство пользователя
- •5. Заключение
- •6. Список использованных источников
- •7. Приложение а. Листинг программы
- •8. Приложение б. Схемы алгоритмов.
Министерство образования Республики Беларусь
Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»
Факультет компьютерных систем и сетей
Кафедра программного обеспечения информационных технологий
Дисциплина: Языки программирования (ЯП)
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
на тему:
Программное средство «Предсказатель»
БГУИР КР 1-40 01 01 302 ПЗ
Студентка: гр. 051003 Демидович Н.А.
Руководитель: Марина И.M.
Минск 2012
СОДЕРЖАНИЕ
Введение………………………………………………………………………..…..
1. Аналитический обзор литературы и аналогов программных средств…...…6
2. Постановка задач……………..…………………………………………..…...10
3. Разработка программного средства………………………………………….12
3.1 Обоснование выбора языка программирования С#..........................12
3.2 Описание модулей…………………………………………………….15
4. Руководство пользователя……………………………………………………19
5. Заключение…………………………………………………………………….21
6. Список используемых источников...………………………………………...27
7. Приложение А. Листинг программы………………………………………...28
7.1 Модуль Pasiance.cs……………………………………………………28
7.2 Модуль Pas1.cs………………………………………………….……..28
7.3 Модуль Pas2.cs……………………………………………….………..36
7.4 Модуль Pas3.cs…………………………………………………….…..45
7.5 Модуль Domino.cs…………………………………………………….55
7.6 Модуль GadanieCards.cs………………………………………………58
7.7 Модуль Card.cs………………………………………………………..64
7.8 Модуль Form2.cs………………………………………………………64
7.9 Модуль Program.cs………………………………………………….…68
8. Приложение Б. Блок-схемы алгоритмов…………………………………….69
Ведомость документов…………………………………………………………..74
ВВЕДЕНИЕ
В наше время существует множество игровых приложений и других программных средств, которые используют в основе игральные и гадальные карты, а также домино и игральные кости. Известно, что приложения такого рода обладают огромной популярностью среди широких масс людей, независимо от пола, возраста, социального статуса индивида. Однако зачастую они не обладают универсальностью, или же не всегда радуют пользователя интересным и красочным графическим интерфейсом.
Данный курсовой проект представляет собой совокупность режимов, которая предоставляет пользователю богатый выбор работы с программой. Программа включает в себя гадания типа «пасьянс», гадание на картах, которое представляет собой генератор случайных сообщений, привязанных к определенной карте, а также гадание на домино, где каждое домино имеет собственное значение. Гаданий-пасьянсов в приложении три: пасьянс «Заветное желание», пасьянс «Демон», пасьянс «Трилистник».
Данный курсовой проект удобен в использовании и обладает привлекательным графическим интерфейсом.
В процессе разработки проекта был использован язык программирования С# и среда программирования .NET, которая подходит для создания подобных приложений, потому что имеет широкий спектр инструментов для создания удобной пользователю среды, а также предоставляет возможность легко разрабатывать графическую оболочку.
1. Аналитический обзор литературы и аналогов
программных средств
Одним из самых известных и популярных представителей данного семейства программных средств является пасьянс «Косынка». Данный пасьянс приобрел свою популярность благодаря тому, что входил в стандартную поставку Microsoft Windows начиная с версии 3.0. Игра была разработана в 1989 году сотрудником Microsoft Уэсом Черри. Первый дизайн карточной колоды был предложен графическим дизайнером фирмы Apple Macintosh . Разработчики позиционировали игру как «средство для успокоения напуганных новой системой пользователей-новичков». Например, изначально не все пользователи могли спокойно пользоваться компьютерной мышью и графическим пользовательским интерфейсом, а «Косынка» часто оказывалась полезной в овладении этих навыков, благодаря которым можно было перетаскивать карты. [6]
Цель игрового приложения - разложить по возрастанию все предложенные карты в четыре стопки (по количеству мастей), начиная от туза и заканчивая королём. Выбирать карты можно из колоды, находящейся слева от четырёх стопок, либо из семи рядов карт, в каждой из которых находится от одной до семи карт соответственно. Собравший все карты в четыре стопки игрок считается победителем. Чем меньше затрачено времени на прохождение кона и чем больше очков было набрано — тем лучше. По окончанию игры карты «разлетаются» по игровому столу.
У игрока есть дополнительные возможности: выбор цвета «рубашки» у карт, а также выбор способа подсчёта (на очки, виртуальные деньги или вовсе без него), способ сдачи карт из колоды (по одной или по трём) и включение или выключение отсчёта времени, строки состояния и перетаскивания контура.
Еще одним известным игровым приложением, которое представляет собой карточный пасьянс, является «Паук». Впервые появился в Microsoft Plus! для Windows 98.
Для пасьянса требуется 2 колоды карт. Изначально 54 карты равномерно раскладываются в 10 столбцов (то есть получается 4 столбца по 6 карт и 6 по 5), остальные 50 складываются в 5 кучек по 10. В каждом столбце все карты, кроме верхних, закрыты. Разрешается перемещать карты из столбца в столбец. Карты перемещают по следующим правилам: на пустое место можно переместить верхнюю карту любого столбца; верхнюю карту столбца можно переместить на следующую по старшинству карту, независимо от ее масти и цвета; стопку карт одной масти, лежащих по порядку, можно перемещать как одну карту.
Если освободилась верхняя закрытая карта какого-либо столбца, то она автоматически открывается. Как только появляется столбец из собранных по порядку карт одной масти, этот столбец убирается в дом. Разрешается в любой момент времени, когда нет пустых столбцов, взять одну из отложенных кучек по 10 карт и раскидать эти карты по одной в каждый столбец. Цель игры — собрать все карты в дом.[7]
Мы рассмотрели 2 пасьянса, которые представляют собой отдельное игровое приложение каждый. Однако, существуют и игровые программные средства, которые включают в себя набор карточных пасьянсов. Одним из таких приложений является Aisleriot (Айслериот). Набор пасьянсов Aisleriot ранее входил в состав пакета игр GNOME Games, но начиная с версии GNOME Games 3.1 (Aisleriot 3.1.0) был выделен в самостоятельное приложение. На данный момент Айслериот включает в себя 88 пасьянсов.[6]
Для успешного написания программного средства были проанализированы и использованы как источники по тематике курсового проекта, так и источники, описывающие язык программирования С# и платформы программирования .Net. Также рассматривалась литература по приемам проектирования, в частности по шаблонам проектирования.
Для написания проекта, как уже говорилось , был выбран язык программирования С#. C# - строго типизированный объектно-ориентированный язык. Исходный код C# компилируется в так называемый управляемый код. Управляемый код представляет собой код на промежуточном языке IL, который находится посредине между высокоуровневым языком (С#) и языком более низкого уровня (ассемблером/машинным кодом). Во время выполнения среда CLR (Common Languge Runtime – общеязыковая исполняющая среда) на ходу компилирует код IL в машинный код, применяя для этого оперативную компиляцию. Во время выполнения приложения компилируется лишь тот код, который необходим. Например, если приложение содержит код вывода на печать, который никогда не требуется, если пользователь не печатает документ, то компилятор никогда его не скомпилирует. CLR может оптимизировать выполнение программы на лету, может определить способ сокращения «непопаданий» на страницу памяти в диспетчере памяти, реорганизую скомпилированный код в памяти, и все это он делает во время выполнения.[1]
Одним из ключевых средств CLR является сборщик мусора. Он избавляет от забот об управлении выделением и освобождением памяти, которое является причиной многих ошибок в программном обеспечении. Однако сборщик мусора не избавляет от управления ресурсами.
В общем, С# позволяет быстро разрабатывать приложения, имея дело с малым количеством рутинных деталей.
Co времен начального выпуска в конце 2000 года язык программирования C# заметно эволюционировал. Эта эволюция стала возможной благодаря его широкому распространению. С появлением версии Visual Studio 2005 и .NET Framework 2.0 компилятор C# стал поддерживать расширения языка C# 2.0. [2]
Нужно подчеркнуть важное обстоятельство, что С# - это полноценный язык программирования. Хотя он и предназначен для генерации кода, выполняемого в среде .NET, сам по себе он не является частью .NET. Существуют ряд средств, которые поддерживаются .NET, но не поддерживаются C# и не поддерживаемые .NET.
Независимость .NET от языка имеет некоторые практические ограничения. IL неизбежно должен воплощать некоторую определенную методологию программирования, а это означает, что исходный язык также должен быть совместим с этой методологией. Принцип, которым руководствовались в Microsoft при создании IL: классическое объектно-ориентированное программирование с реализацией одиночного наследования классов.
В дополнение к классической объектной ориентации в языке IL также введено понятие интерфейсов, которые впервые были реализованы под Windows с появлением COM. Интерфейсы, построенные с использованием .NET – это не то же самое, что интерфейсы COM; им не требуется поддержка со стороны инфраструктуры COM. Однако они разделяют с интерфейсами COM идею предоставления контракта, и классы, реализующие заданный интерфейс, должны предлагать реализацию методов и свойств, специфицированных этим интерфейсом. Как и любой язык программирования, IL предлагает множество предопределенных примитивных типов данных. Одна из особенностей IL, однако, заключается в том, что он делает четкое различие значениями и ссылочными типами. Типы значений – это те, переменные которых непосредственно хранят их данные, в то время как ссылочные типы – это те, переменные которых просто хранят адрес, по которому соответствующие данные могут быть найдены.
Один из наиболее важных аспектов языка состоит в том, что он основан на исключительно строгой типизации данных. Это значит, что все переменные имеет четко определенный конкретный тип данных. Проблема с типами данных решается в .NET за счет применения общей системы типов. Система описывает предопределенные типы данных, поэтому все языки, ориентированные на эту среду, генерируют скомпилированный код, который в конечном итоге базируется на этих типах.
Темой курсового проекта является сборник гаданий, поэтому была рассмотрена история создания различных гаданий, способы их осуществления, применение и значения.
История гаданий обширна. Первое упоминание о появление гадания относится примерно к 3-5 векам до нашей эры. К сожалению, точный век указать очень сложно, так как для разных стран и источников эти даты расходятся.
Наиболее популярным гадание стало в Египте, Ассирии, Вавилоне, а также в Древней Греции и Древнем Риме. Для Рима гадания стали основой государственной жизни. Но все римские гадания проводили только специализированные коллегии жрецов и жриц, имеющих определённые навыки и знания. В Риме и Греции гадания обладали огромным влиянием на все сферы жизни. Жрецы, предсказатели и прорицатели пользовались большой властью, поэтому прикладывали все силы, чтобы сохранить традиции суеверной культуры. А после официального принятия христианства гадания, прорицания, а также и предсказания стали осуждаться государственной властью и подвергаться запретам церкви. Гадание перестало быть священным явлением и перешло в разряд грешных дел.
После окончательного вступления христианства в силу, люди, занимающиеся гаданием, стали подвергаться постоянным запретам со стороны политических деятелей и христианских священников. Но, иногда бывали случаи, когда допускалась возможность признать объективную правду за некоторыми языческими гаданиями, если удавалось истолковать их в желательном для христианства смысле.
В средние века наблюдается всё та же двойственность в отношениях церкви и литературы к гаданиям. Люди продолжают приравнивать гадания к греховным колдовским поступкам, но в тоже время начинает развиваться гадательная литература, иногда даже освящённая церковью.
В 14 веке, в Европе появилось первое упоминание о гадальных картах Таро. Считается, что их занесли в Европу цыгане. Существовала и версия о древних египтянах. По картам Таро также издавались книги, которые использовались в народе. Но, правда, достать такую книгу мог не каждый.
В более поздние века, 18-19, низшие слои населения пополняли знания и повышали свое образование из суеверных книг. Особой популярностью в 18 веке пользовался «Брюсов календарь», который был первый раз напечатан в 1907 году. В этом календаре наряду с календарными сведениями были таблицы и системы для предсказаний по звездам. В эти же века огромной популярностью стали пользоваться сонники - толкования сновидений.
В более образованном обществе гадания превращались в светскую забаву, в салонное развлечение. Но мнение о том, что люди постигали гадания только через специальную литературу не совсем верно. Различные гадания, как и знания, переходили от «поколения» к «поколению», из страны в страну. Также многие гадания упрощались со временем, становились более доступными для обычного человека, ведь изначально проводить гадание мог только специальный человек, чётко владеющий ситуацией и знаниями[5].
С развитием Интернета и компьютерных технологий гадания перешли на новый этап развития в истории – виртуальные гадания. Сейчас можно встретить огромное количество сайтов, содержащих в себе разнообразные Online-гадания, популярные у многих людей. Но нельзя считать эти гадания абсолютно точными и верными, ведь чтобы точно узнать свою судьбу, нужно проводить гадание не через сеть интернета, а лично. Наверно, в связи с этим, осталось ещё много людей, которые предпочитают проводить гадания вне виртуальной жизни.