Разработка прикладного обеспечения, реализующего функции составителя кроссворда

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.03.2015
Размер файла 403,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа

РАЗРАБОТКА ПРИКЛАДНОГО ОБЕСПЕЧЕНИЯ, РЕАЛИЗУЮЩЕГО ФУНКЦИИ СОСТАВИТЕЛЯ КРОССВОРДА

Содержание

Введение

1. Теоретическая часть

1.1 Анализ требований

1.2 Обоснование программирования

2. Практическая часть

2.1 Первичные требования

2.1.1 Требования к функциональным характеристикам

2.1.2 Требования к составу и параметрам технических средств

2.1.3 Требования к информационной и программной совместимости

2.2 Прототип

2.3 Модель функционирования

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

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

2.4.2 План тестирования

2.4.3 Отчёт о ходе тестирования

2.5 Программная документация

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

2.5.2 Описание программы

2.5.3 Текст программы

2.5.4 Отчёт о результатах тестирования

2.6 Эксплуатационная документация

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

2.6.2 Сертификация ПО

2.6.3 Лицензирование программ

Заключение

Список использованных источников

Приложения

Введение

Цель: Разработать программу, реализующую функции «Составителя кроссворда».

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

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

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

Игра со словами называется кроссвордом. Это самая распространенная интеллектуальная игра. Слово «кроссворд» - это транскрипция английского слова «crossword», состоящего из двух слов: «cross» - в переводе с английского означает крест, и «word», что означает слово. Получается: крест слов, или еще можно крестословица. В некоторых словарях понятие «кроссворд» толкуется другими словами, но смысл этого толкования остается неизменным - разгадывание, узнавание «спрятанных» - и порой весьма искусно - слов в вопросах о них, зачастую в хитроумной и необычной форме, например, в виде образов, «картинок».

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

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

Итак, кроссворд, это:

- игра в слова, значит, слова должны быть обязательно;

- слова должны пересекаться;

- буквы слов записываются каждая в сою клеточку.

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

Хорошим тоном (но не правилом) считается симметрия сетки кроссворда относительно вертикальной, горизонтальной или диагональных осей. Возможна также симметрия относительно центральной точки, при которой сетка не изменяется при повороте на 180°.

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

«Кроссвордами» в русскоязычных развлекательных газетах зачастую называются головоломки, в которых слова не пересекаются (а это основное правило кроссворда) или слов нет вовсе (как в так называемых «японских кроссвордах»). Очень часто «географическое» название не несёт никакой смысловой нагрузки: «американским кроссвордом» называют головоломку, сочетающую правила классического и «японского кроссворда», при этом в США и Японии действительно есть кроссворды, отличающиеся от европейских, но это все-таки кроссворды, хотя и с несколькими дополнительными правилами.

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

А еще чайнворды…

Процесс разгадывания кроссворда сложное и интересное занятие.

1. Теоретическая часть

1.1 Анализ требований

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

- конфигурация кроссворда;

- список слов, которые можно использовать для разгадывания.

Под конфигурацией кроссворда понимается некий набор пустых и заполненных квадратов.

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

Таблица 1 - Этапы сдачи задач

Недели

Начало

Длительность

Задачи

1

Планирование ПП

17.09.2014

21

2

Составление требований заказчика

24.09.2014

21

3

Проектирование ПП

07.10.2014

21

4

Разработка ПП

31.10.2014

21

5

Тестирование ПП

12.12.2014

21

6

Сопровождение ПП

19.12.2014

21

Этапы сдачи задач представлены в таблице 1. Временной график представлен на рисунке 1.А, диаграмма сдачи этапов на рисунке 2.А.

1.2 Обоснование программирования

Для реализации программного продукта «Составитель кроссворда» решено использовать среду быстрой разработки программ Delphi. Данная система является удачной комбинацией простого языка программирования Pascal, вернее его потомка Object Pascal, с самыми современными технологиями в мире программирования.

С помощью Delphi можно быстро и эффективно разрабатывать пользовательский интерфейс, отвечающим самым высоким требованиям.

2. Практическая часть

2.1 Первичные требования

2.1.1 Требования к функциональным характеристикам

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

- открытие схемы кроссворда;

- открытие пользовательского словаря слов;

- разгадывания кроссворда;

- выдача промежуточных вариантов заполнения.

Исходные данные:

- схема расположения слов в кроссворде;

- список слов в пользовательском словаре;

2.1.2 Требования к составу и параметрам технических средств

Система должна работать на IBM совместимых персональных компьютерах.

Минимальная конфигурация:

- тип процессора Pentium 100 и выше;

- объем оперативного запоминающего устройства 64 Мб и более.

2.1.3 Требования к информационной и программной совместимости

Система должна работать под управлением семейства операционных систем Win 32 (Windows 95, Windows 98, Windows 2000, Windows NT и т. п.).

2.2 Прототип

Прототип - это нефункциональная демонстрационная версия продукта. Прототип позволяет обнаружить ошибки и упущения в ранее принятых требованиях. На рисунках 1, 2 представлены главное окно программы и запрос продолжения поиска соответственно.

Рисунок 1 - Главное окно программы

Рисунок 2 - Запрос продолжения поиска

2.3 Модель функционирования

Модель функционирования представлена на рис. 3.

Рисунок 3 - Модель функционирования

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

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

Тестирование ПО - это процесс выполнения ПО в контролируемых условиях с целью получения ответа на вопрос "Ведет ли ПО себя так, как специфицировано?".

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

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

Элементами модульного тестирование являются: синтаксическая проверка - проверка с использованием некоторого инструментального средства для выявления синтаксических ошибок в программном коде; проверка соответствия стандартам кодирования - проверка кода на соответствие стандартам кодирования компании; технический обзор программного кода.

После успешного завершения модульного тестирования все измененные модули и наборы тестов сохраняются в базе данных проекта.

2.4.2 План тестирования

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

Объект испытаний: «Составитель кроссворда»

Цель испытаний: Проверка полного соответствия программного продукта требованиям заказчика.

Требования к программе: Работоспособность программы в операционных системах WindowsХР/Windows7.

Требования к программной документации: Лист утверждения, титульный лист, аннотация, содержание.

Средства и порядок испытаний: Проектирование тестов, выполнение тестирования, анализ полученных результатов.

Структура и оформление документа устанавливается в соответствии с ГОСТ 19.105-78.

2.4.3 Отчёт о ходе тестирования

На каждом проходе цикла тестирования создаются: базовая версия ПП, подлежащего тестированию; отчет о ходе тестирования. Цикл тестирования представлен на рисунке 4.

Рисунок 4 - Цикл тестирования

2.5 Программная документация

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

Техническое задание - исходный документ на проектирование технического объекта (изделия) (Приложение Б). ТЗ устанавливает основное назначение разрабатываемого объекта, его технические характеристики, показатели качества и технико-экономические требования, предписание по выполнению необходимых стадий создания документации (конструкторской, технологической, программной и т.д.) и её состав, а также специальные требования. Форма титульного листа ТЗ на АС представлена в Приложении В. Форма последнего листа ТЗ на АС в Приложении Г.

В соответствии с ГОСТ 19.201--78 программный документ «Техническое задание» содержит следующие разделы.

Введение.

1. Основание для разработки.

2. Назначение разработки.

3. Требования к программе или программному изделию.

4. Требования к программной документации.

5. Технико-экономическое обоснование.

6. Стадии и этапы разработки.

7. Порядок контроля и приемки.

8. Приложения.

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

Введение

Настоящее техническое задание, оформленное в соответствии с ГОСТ 19.201-78, содержит требования к редактору, предназначенного для просмотра и редактирования информации о «тренировке логического мышления и памяти» на ПЭВМ.

Основание для разработки

- Основание для разработки

- Основанием для разработки текстового редактора является задание на курсовой проект по дисциплине “Технология разработки программного обеспечения”.

- Исполнитель и заказчик

- Заказчиком разработки, выполняемой по-настоящему ТЗ, является Мегионский политехнический колледж.

- Исполнителем разработки, выполняемой по-настоящему ТЗ, является студент группы П-43 Мухаметьяров Д.А.

- Наименование

- Программе, разрабатываемой по-настоящему ТЗ, присваивается наименование: "Составитель кроссворда", в дальнейшем по тексту именуемая ТП.

Назначение разработки

ТП предназначена для выполнения следующих действий на ПЭВМ:

создать программу;

Требования к программе и программному изделию

Требования к составу

Требования к функциональным характеристикам

Требования к надежности

Условия эксплуатации

Требования к составу и параметрам технических средств

ИБ должна функционировать на ПЭВМ со следующими характеристиками

- процессора Pentium 100 и выше;

- ОЗУ 64 Мб и более;

- НЖМД не менее 10 Мб;

- графический адаптер EGA (VGA);

- манипулятор типа “мышь”;

Требования к информационной и программной совместимости

- В качестве языков программирования ТП должен быть использован язык программирования Delphi 7.0.

- ТП должна функционировать на ПЭВМ с одной из операционных систем WindowsXP/7.

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

Требования к маркировке и упаковке

Требования к транспортировке и хранению

Специальные требования

Требования не предъявляются.

Требования к программному средству

Требования к функциональным характеристикам.

Программа должна позволить пользователю пользоваться схемой кроссворда и словарем слов.

Требования к надежности

Предусмотреть некорректные действия пользователя.

Требования к условиям эксплуатации

Носитель с программой должен эксплуатироваться в условиях с температурой от -5 до 50С и влажностью воздуха 10-80%.

Требования к составу и параметрам технических средств

Наличие ПК с графическим адаптером EGA (VGA), клавиатура. Необходимое пространство на жестком диске - не менее 1 Мб.

Требования к информационно-программной совместимости

Программа рассчитана на работу в операционных системах: Windows XP/7.

Требования к программной документации

Требования к составу документации

Состав документации определяется Исполнителем на этапе разработки перечнем разрабатываемых документов и согласовывается с Заказчиком.

В комплект документации в обязательном порядке должны входить:

- спецификация;

- текст программы;

- руководство оператора;

- загрузочные модули;

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

Требования к оформлению документации

Программная документация должна быть разработана и оформлена в соответствии с ЕСПД.

Технико-экономические требования

Трудоемкость разработки, отладки и испытаний АИСК должна быть согласована Исполнителем и Заказчиком на этапе заключения договора на выполнение работ.

Стадии и этапы разработки

Создание и отработка АИСК должно производиться по следующим основным этапам:

1-й этап. Разработка программы и программной документации.

2-й этап. Испытание программы.

3-й этап. Подготовка и передача программы.

Порядок контроля и приемки

Приемка разработанного АИСК осуществляется на средствах вычислительной техники Заказчика в объеме, определяемом программой и методикой испытаний АИСК, и в сроки, определенные ведомостью исполнения (календарным планом) работ к соответствующему договору. Результаты приемки АИСК должны быть отражены в техническом акте.

Программа и методика испытаний АИСК выпускается исполнителем в соответствии с ГОСТ 19.301-79 («программа и методика испытаний») и должна быть согласована с Заказчиком.

Порядок внесения изменений в техническое задание

Настоящее техническое задание может уточняться и дополняться в процессе создания ТР совместными решениями сторон, подписавших техническое задание, оформленными в виде дополнения к ТЗ в соответствии с требованиями ГОСТ 19.201-78.

2.5.2 Описание программы

Проектирование системы необходимо начать с разработки метода организации данных.

Для хранения конфигурации кроссворда целесообразно использовать внешний файл. В качестве базового типа файла будем использовать ini-файл. Формат ini-файлов очень прост. Ini-файл представляет собой текстовый файл. Секциями называется группа параметров. В тексте название секции выделяется квадратными скобками. Данные хранятся в виде строки: «<Имя ключа>=<Значение>». Для доступа к значению ключа вызывается функция, параметрами которой передаются имя секции и имя ключа.

В файле, хранящем информацию о конфигурации кроссворда необходима следующая информация:

- ширина кроссворда в буквах;

- высота кроссворда в буквах;

- количество слов

- матрица шаблона (схемы)

- информация о координатах каждого слова

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

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

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

Файлы с конфигурацией кроссворда будем называть файлом схемы (*.scm). Секции и ключи этого файла представлены в таблице 2.

Таблица 2 - Секции и ключи файла схемы.

Секция

Ключ

Пример

Описание

[main]

width

6

Ширина кроссворда

height

6

высота

words

4

количество слов

[matrix]

1,2…N

010100

шаблон кроссворда

0 - нет буквы

1 - там должна быть буква

[words]

1

2,1,v

слова

I=X,Y,N

I- номер от 1 до words

X,Y - координаты первого символа слова

N - направление v-вертикальное h-горизонтальное

Класс tStringList представляет собой список строк и ассоциированных с каждой строкой указателя на объект. В данном случае вместо указателя хранится совместимое по типу с указателем 4-х байтного целочисленного числа Integer, значением которого в программе является количество встречаемых слов в тексте. Этот класс прост в работе. Особым его достоинством является быстрый поиск по содержимому. Поиск может осуществляться как по строкам, так и по указателю. Методы SaveToFlile и LoadFomFile позволяют соответственно сохранить и загрузить содержимое в файл.

Будем использовать этот файл для работы со словарем.

Для реализации основной функции подбора вариантов заполнения кроссворда разработана процедура interior.

//основная процедура рекурсивного перебора вариантов

//на входе список уже вставленных слов

//и номер вставляемого слова

procedure TFrmMain.interior(used:tStringList;CurWord:integer);

var i:integer;

begin

if endOfFind then exit; //выход если юзер не хочет больше

if CurWord=MaxWords+1 then //все слова вставлены

begin

inc(FindCount);

OutKrossw(used); //можно выводить

exit; // да и нечего больше вставлять

end;

for i:=0 to words.Count-1 do //по всем словам из словаря слов

begin

if used.IndexOf(words[i])<>-1 then continue; //в одном кроссворде одно слово дважды не встречается

used.InsertObject(0,words[i],pointer(CurWord)); //вставим в начало списка используемых слов

if valid(used) then //проверка на правильность

interior(used,CurWord+1); //прошло-ищем следующее слово

if endOfFind then exit; //выход если не надо больше

used.delete(0); //теперь удалим последнее слово, т.к. на его место в следующем обороте

end; //цикла вставим новое

end;

Файлы проекта представлены в таблице 3.

Таблица 3 - Файлы проекта

Имя файла

Тип файла

Описание

endf.dfm

Файл формы

Форма запроса продолжения поиска вариантов

endf.pas

Файл программного модуля

Модуль запроса продолжения поиска вариантов

KrwCrt.dof

Файл параметров проекта

KrwCrt.dpr

Файл проекта

KrwCrt.dsk

Файл конфигурации проекта

KrwCrt.exe

Исполняемый файл

KrwCrt.res

Файл ресурсов

main.dfm

Файл формы

Главная форма

main.pas

Файл программного модуля

Главный модуль

main.wds

Файл пользовательского словаря

Тестовый словарь

1.scm

Файл схемы кроссворда

Тестовая схема

Блок схема алгоритма этой процедуры представлена на рисунке 7.

Рисунок 5 Блок схема алгоритма

Система состоит из исполняемого файла "KrwCrt.exe" и набора конфигурационных файлов.

Для установки не требуется изменять установки ОС. Рекомендуется поместить ярлык на рабочий стол (Desktop)

Файлы ".scm" представляют собой конфигурационные файлы кроссвордов, в них хранится информация о расположении слов в кроссворде. На расположение этих файлов ограничений не накладывается.

Файлы ".wds" представляют собой пользовательские словари. Файлы представляют собой текстовые файлы, в которых в каждой строке находится одно слово в именительном падеже. На расположение этих файлов ограничений не накладывается.

2.5.3 Текст программы

Листинг программы представлен в Приложении Д.

2.5.4 Отчёт о результатах тестирования

Тестирование программы производилось методом покрытия переходов.

Метод покрытия решений (покрытия переходов)

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

2.6 Эксплуатационная документация

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

Для запуска программы необходимо активизировать исполняемый файл "KrwCrt.exe" или ассоциированный с ним ярлык. Ярлык программы представлен на рисунке 5.

Рисунок 6 - Ярлык программы

Главное окно программы состоит из следующих частей:

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

Рисунок 7 - Верхнее меню

Панель инструментов содержит кнопки дублирующие пункты главные меню. Панель инструментов представлена на рисунке 7.

Рисунок 7 - Панель инструментов

Таблица данных представляет собой таблицу, содержащую кроссворд, представлена на рисунке 8.

Рисунок 8 - Таблица данных

Для выбора файла кроссворда необходимо нажать кнопку "Схема" или пункт меню "Открыть схему". В открывшемся диалоговом окне выбрать нужный файл схемы.

Для выбора пользовательского словаря необходимо нажать кнопку "Словарь" или пункт меню "Открыть Словарь". В открывшемся диалоговом окне выбрать нужный файл словаря.

Для запуска процедуры поиска вариантов заполнения необходимо нажать кнопку "Запуск" или пункт меню "Составить". Если программой не было обнаружено ни одного варианта заполнения, будет выдано сообщение " Нет вариантов. Смените схему или увеличьте словарь слов". Если есть хотя бы один вариант заполнения, то он будет выведен. Послы вывода пользователю предлагается закончить процедуру поиска или попытаться найти еще один вариант заполнения. Главное окно программы представлено на рисунке Е.9. Запрос продолжение поиска представлен на рисунке Е.10.

2.6.2 Сертификация ПО

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

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

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

Сертификация - подтверждение соответствия объекта сертификации предъявленным к нему требованиям. Как правило, сертификация проводится специализированными организациями (органами по сертификации).

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

При сертификации программного обеспечения в системе ГОСТ Р, могут быть подтверждены требования, установленные следующими государственными стандартами на программную продукцию:

ГОСТ 19.001-77 Общие положения

ГОСТ 19.003-80 Схемы алгоритмов и программ. Обозначения условные графические

ГОСТ 19.004-80 Термины и определения

ГОСТ 19.103-77 Обозначение программ и программных документов

ГОСТ 19.005-85 Р-схемы алгоритмов и программ. Обозначения условные графические и правила выполнения

ГОСТ 19.201-78 Техническое задание. Требования к содержанию и оформлению

ГОСТ 19.101-77 Виды программ и программных документов

ГОСТ 19.202-78 Спецификация. Требования к содержанию и оформлению

ГОСТ 19.102-77 Стадии разработки

ГОСТ 19.002-80 Схемы алгоритмов и программ. Правила выполнения

ГОСТ 19.104-78 Основные надписи

ГОСТ 19.106-78 Требования к программным документам, выполненным печатным способом.

ГОСТ 19.604-78 Правила внесения изменений в программные документы, выполненные печатным способом

ГОСТ 19.301-79 Программа и методика испытаний. Требования к содержанию и оформлению

ГОСТ 19 105-78 Общие требования к программным документам

ГОСТ 19.402-78 Описание программы. Требования к содержанию и оформлению

ГОСТ 19.403-79 Ведомость держателей подлинников

ГОСТ 19.401-78 Текст программы. Требования к содержанию и оформлению

ГОСТ 19.501-78 Формуляр. Требования к содержанию и оформлению

ГОСТ 19.506-79 Описание языка. Требования к содержанию и оформлению

ГОСТ 19.502-78 Описание применения. Требования к содержанию и оформлению

ГОСТ 19.503-79 Руководство системного программиста. Требования к содержанию и оформлению

ГОСТ 19.404-79 Пояснительная записка. Требования к содержанию и оформлению

ГОСТ 19.505-79 Руководство оператора. Требования к содержанию и оформлению

ГОСТ 19.504-79 Руководство программиста. Требования к содержанию и оформлению

ГОСТ 19.601-78 Общие правила дублирования, учета и хранения

ГОСТ 19.507-79 Ведомость эксплуатационных документов

ГОСТ 19.603-78 Общие правила внесения изменений

ГОСТ 19.508-79 Руководство по техническому обслуживанию. Требования к содержанию и оформлению

ГОСТ 19.602-78 Правила дублирования, учета и хранения программных документов, выполненных печатным способом

ГОСТ 19.701-90 Схемы алгоритмов, программ, данных и систем. Условные Обозначения и правила выполнения

2.6.3 Лицензирование программ

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

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

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

Заключение

программа кроссворд игровой

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

Список использованных источников

1. Архангельский А.Я. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi (+ CD-ROM); Бином-Пресс - Москва, 2010. -716c.

2. Гусятников В.Н. Стандартизация и разработка программных систем: учебное пособие. / В.Н.Гусятников, А.И.Безруков - Издательство: Финансы и статистика, 2010 г. - 287 с.

3. Культин Н. Программирование в Delphi 2010. Самоучитель; БХВ-Петербург - Москва, 2010. - 448 c.

4. Рудаков А.В. Технология разработки программных продуктов: учебник для студ. сред.проф. образование / А.В. Рудаков. - 7-е изд., стер. - М.: Издательский центр «Академия», 2012. - 208 с.

5. Рудаков А.В. Технология разработки программных продуктов. Практикум: учеб. пособие для студ. учреждений сред. проф. образования / А.В. Рудаков, Г.Н. Федерова - 3-е изд., испр. - М.: Издательский центр "Академия"; 2012 год

6. Фленов М. Программирование в Delphi глазами хакера; БХВ-Петербург - Москва, 2012. - 480 c.

7. Хомоненко А. Delphi7 / А. Хомоненко, В. Гофман, Е. Мещеряков - БХВ-Петербург - Москва, 2010. - 938 c.

Приложение А

Рисунок 1.А - Временной график

Рисунок 2.А - Диаграмма сдачи этапов

Приложение Б

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

Предметная область:

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

Введение

Основание для разработки

Основание для разработки

Исполнитель и заказчик

Наименование

Назначение разработки

Требования к программе и программному изделию

Требования к составу

Требования к функциональным характеристикам

Требования к надежности

Условия эксплуатации

Требования к составу и параметрам технических средств

Требования к программному средству

Требования к функциональным характеристикам.

Требования к надежности

Требования к условиям эксплуатации

Требования к составу и параметрам технических средств

Требования к информационно-программной совместимости

Требования к программной документации

Технико-экономические требования

Стадии и этапы разработки

Порядок контроля и приемки

Порядок внесения изменений в техническое задание

Приложение В

Форма последнего листа ТЗ на АС

Наименование организации, предприятия

Должность исполнителя

Фамилия, имя отчество

Подпись

Дата

Мегионский политехнический колледж

Студент

Мухаметьяров

Дмитрий

Акрамович

Мухаметьяров

21.11.2014

Приложение Г

Листинг программы

unit main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

inifiles, Menus, Buttons, Grids, ComCtrls, ExtCtrls, StdCtrls;

type

TFrmMain = class(TForm)

Panel1: TPanel;

StatusBar1: TStatusBar;

sg: TStringGrid;

MainMenu1: TMainMenu;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

BitBtn1: TBitBtn;

OpenDialog: TOpenDialog;

procedure FormCreate(Sender: TObject);

procedure FormResize(Sender: TObject);

procedure sgDrawCell(Sender: TObject; Col, Row: Integer; Rect: TRect;

State: TGridDrawState);

procedure Start(Sender: TObject);

procedure ChShem(Sender: TObject);

procedure ChWords(Sender: TObject);

procedure N5Click(Sender: TObject);

private

{ Private declarations }

public

procedure ShowShem;

procedure LoadMatrix;

procedure OutKrossw(used:tStringList);

function valid(l:tStringList):boolean;

procedure interior(used:tStringList;CurWord:integer);

{ Public declarations }

end;

const MaxRasmer = 20; //максимальная размерность N*N

var

FrmMain: TFrmMain;

ini:tinifile; //ини-шник схемы

words,matrix:tStringList; //словарь и матрица схемы

W,_H,maxwords:integer; //ширина, высота, всего слов

endOfFind:boolean=false; //хватит искать

shName:string='1.scm'; //схема по умолчанию

wdName:string='main.wds'; //словарь по умолчанию

FindCount:integer; //найдено вариантов

implementation

uses endf;

{$R *.DFM}

//делит строку на две через разделитель

function Split(var s: String; c: Char): String;

var i:Integer;

begin

i:=pos(c,s);

if i=0 then

begin

result:=s;

s:='';

end

else begin

result:=copy(s,1,i-1);

delete(s,1,i);

end;

end;

//инициализация всего

procedure TFrmMain.FormCreate(Sender: TObject);

begin

ini:=tinifile.create(extractFilePath(ParamStr(0))+'1.scm');

words:=tStringList.create;

matrix:=tStringList.create;

if FileExists(extractFilePath(ParamStr(0))+'main.wds') then

words.LoadFromFile(extractFilePath(ParamStr(0))+'main.wds');

LoadMatrix;

ShowShem;

end;

//Отображение схемы на экране

procedure TFrmMain.ShowShem;

var i,j:integer;

s:string[1];

begin

i:=ini.ReadInteger('main','width',6);

sg.ColCount:= i;

sg.DefaultColWidth:= (sg.Width div i)-2;

i:=ini.ReadInteger('main','height',6);

sg.RowCount:= i;

sg.DefaultRowHeight:= (sg.height div i)-2;

MaxWords:=ini.ReadInteger('main','words',6);

for i:=0 to matrix.Count-1 do

begin

for j:=1 to length(matrix[i]) do

begin

s:=matrix[i][j];

if s='1' then s:='';

sg.Cells[j-1,i]:=s

end;

//загрузка матрицы из ини-шника

procedure TFrmMain.LoadMatrix;

var i:integer;

begin

matrix.clear;

for i:=1 to ini.ReadInteger('main','height',6) do

begin

matrix.Add(ini.ReadString('matrix',IntToStr(i),'111111'));

end;

W:=length(matrix[0]);

H:=matrix.Count;

end;

//изменение размера формы

procedure TFrmMain.FormResize(Sender: TObject);

begin

ShowShem

end;

//прорисовка ячейки кроссворда

procedure TFrmMain.sgDrawCell(Sender: TObject; Col, Row: Integer;

Rect: TRect; State: TGridDrawState);

var s:string;

i:integer;

begin

if sg.Cells[col,row]='0' then

begin

sg.Canvas.brush.Color:=clGray;

sg.Canvas.FillRect(Rect);

exit;

end;

sg.Canvas.brush.Color:=clWhite;

sg.Canvas.FillRect(Rect);

if sg.Cells[col,row]='1' then exit;

s:=sg.Cells[col,row];

sg.Canvas.Font.size:=100;

repeat

sg.Canvas.Font.size:= sg.Canvas.Font.size-1;

until (sg.Canvas.TextHeight(S)<SG.DefaultRowHeight)

and (sg.Canvas.TextWidth(S)<SG.DefaultColWidth);

sg.Canvas.TextOut(rect.left,rect.top,sg.Cells[col,row])

end;

//проверка списка используемых слов на то, что их можно вписать

//в выбранные позиции

function TFrmMain.valid(l:tStringList):boolean;

var a:array[1..MaxRasmer,1..MaxRasmer] of char; //матрица в виде массива

i,j:integer;

str,s2:string;

var t,fi,fj,di,dj:integer;

procedure insWord(s:string;words:integer); //вставка слова в массив

var t:integer;

begin

str:=ini.readstring('words',IntToStr(words),'1,1,v'); //загрузка описания слова

fi:=StrToInt(Split(str,',')); //х,у и направление

fj:=StrToInt(Split(str,','));

di:=0;dj:=0;

if str='v' then dj:=1 else di:=1;

for t:=0 to length(s)-1 do

begin

a[fi+di*t,fj+dj*t]:=s[t+1];

end;

end;

begin

for i:=0 to matrix.Count-1 do //копирование из списка в массив

for j:=1 to length(matrix[i]) do

a[i+1,j]:= matrix[i][j];

for i:=l.Count-1 downto 1 do

begin

InsWord(l[i],integer(l.objects[i])); //вставка кроме 0-го без проверки (ранее проверено)

end;

result:=false; str:=ini.readstring('words',IntToStr(integer(l.objects[0])),'1,1,v'); //теперь с проверкой

fi:=StrToInt(Split(str,','));

fj:=StrToInt(Split(str,','));

di:=0;dj:=0;

if str='v' then dj:=1 else di:=1;

for t:=0 to length(l[0])-1 do

begin

if fi+di*t>_H then exit; //выход за границы кроссворда

if fj+dj*t>_W then exit;

if a[fi+di*t,fj+dj*t]='0' then exit; //там вообще нельзя буквы ставить

if a[fi+di*t,fj+dj*t]='1' then continue; //еще не занято

if a[fi+di*t,fj+dj*t]<>l[0][t+1] then exit; //занято, но совпадает

end;

result:= true; //если мы здесь значит все Ок

end;

//Вывод составленного кроссворда (похоже на предыдущ.)

procedure TFrmMain.OutKrossw(used:tStringList);

var i,j,t,fi,fj,di,dj:integer;

str:string;

a:array[1..6,1..6] of char;

procedure insWord(s:string;words:integer);

var t:integer;

begin

str:=ini.readstring('words',IntToStr(words),'1,1,v');

fi:=StrToInt(Split(str,','));

fj:=StrToInt(Split(str,','));

di:=0;dj:=0;

if str='v' then dj:=1 else di:=1;

for t:=0 to length(s)-1 do

begin

a[fi+di*t,fj+dj*t]:=s[t+1];

end;

end;

begin

for i:=0 to matrix.Count-1 do //копирование в матрицу

for j:=1 to length(matrix[i]) do

a[i+1,j]:= matrix[i][j];

for t:=0 to used.Count-1 do

begin

InsWord(used[t],integer(used.objects[t])); //вставка ВСЕХ слов без проверки

end;

for i:=0 to matrix.Count-1 do

for j:=1 to length(matrix[i]) do

sg.cells[i,j-1]:=a[i+1,j]; //теперь все на экран

sg.refresh;

if not assigned(FrmOk) then Application.CreateForm(TFrmOk, FrmOk);

if FrmOk.ShowModal=MrOk then //хочет ли юзер еще варианты

endOfFind:=true; //если не хочет

end;

//основная процедура рекурсивного перебора вариантов

//на входе список уже всавленных слов

//и номер вставляемого слова

procedure TFrmMain.interior(used:tStringList;CurWord:integer);

var i:integer;

begin

if endOfFind then exit; //выход если юзер не хочет больше

if CurWord=MaxWords+1 then //все слова вставлены

begin

inc(FindCount);

OutKrossw(used); //можно выводить

exit; // да и нечего больше вставлять

end;

for i:=0 to words.Count-1 do //по всем словам из словаря слов

begin

if used.IndexOf(words[i])<>-1 then continue; //в одном кросворде одно слово дважды не встречается

used.InsertObject(0,words[i],pointer(CurWord)); //всавим в начало списка используемых слов

if valid(used) then //проверка на правильность

interior(used,CurWord+1); //прошло-ищем следующее слово

if endOfFind then exit; //выход, если не надо больше

used.delete(0); //теперь удалим последнее слово, тк на его место в следующем обороте

end; //цикла вставим новое

end;

procedure TFrmMain.Start(Sender: TObject); //запуск подбора

var l:tStringList;

begin

FindCount:= 0; //количество найденных вариантов

l:=tStringList.Create; //временный список

interior(l,1); //поехали

endOfFind:=false;

if FindCount=0 then showMessage('Нет вариантов'#13'Смените схему или увеличьте словарь слов');

l.Free; //память надо освобождать

end;

//смена схемы

procedure TFrmMain.ChShem(Sender: TObject);

begin

OpenDialog.Filter:= 'Файлы схем (*.scm)|*.scm';

OpenDialog.Title:='Выберите схему';

OpenDialog.fileName:='';

if not OpenDialog.Execute then exit;

shName:= OpenDialog.fileName;

ini.free;

ini:=tinifile.create(shName);

LoadMatrix;

ShowShem;

end;

//смена словаря

procedure TFrmMain.ChWords(Sender: TObject);

begin

OpenDialog.Filter:= 'Файлы словарей (*.wds)|*.wds';

OpenDialog.Title:='Выберите словарь';

OpenDialog.fileName:='';

if not OpenDialog.Execute then exit;

wdName:= OpenDialog.FileName;

words.LoadFromFile(wdName);

ShowShem;

end;

//выход

procedure TFrmMain.N5Click(Sender: TObject);

begin

close;

end;

end.

Приложение Д

Результат работы программы

Рисунок Б.6 - Главное окно программы.

Рисунок Б.7 - Запрос продолжение поиска.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.