Современные виды кредита (на примере ОАО "Сбербанк России")

 















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

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


Содержание


Введение

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

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

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

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

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

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

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

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

.2 Прототип

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Приложения


Введение


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

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

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

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

Игра со словами называется кроссвордом. Это самая распространенная интеллектуальная игра. Слово «кроссворд <#"justify">Поэтому еще одним основным отличительным свойством кроссворда является пересечение слов. Каждая буква слова записываются отдельно от других: каждая в своей клеточке - это одно из главных правил кроссворда.

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

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

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

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

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

Поэтому, когда в газетах и журналах легкого развлекательного характера кроссвордами называются другие головоломки <#"justify">Процесс разгадывания кроссворда сложное и интересное занятие.


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


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


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

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

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

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


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

НеделиНачалоДлительность№ Задачи1Планирование ПП17.09.2014212Составление требований заказчика24.09.2014213Проектирование ПП07.10.2014214Разработка ПП31.10.2014215Тестирование ПП12.12.2014216Сопровождение ПП19.12.201421

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


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


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

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


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


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


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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

2.2 Прототип


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


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


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


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


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


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


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


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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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


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


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


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

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

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

Введение.

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

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

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

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

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

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

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

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

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

Введение

Настоящее техническое задание, оформленное в соответствии с ГОСТ 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

СекцияКлючПримерОписание[main] width6Ширина кроссвордаheight6высотаwords4количество слов[matrix]1,2…N010100шаблон кроссворда 0 - нет буквы 1 - там должна быть буква[words]12,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);i:integer; endOfFind then exit; //выход если юзер не хочет больше

if CurWord=MaxWords+1 then //все слова вставлены(FindCount);(used); //можно выводить; // да и нечего больше вставлять

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" представляют собой пользовательские словари. Файлы представляют собой текстовые файлы, в которых в каждой строке находится одно слово в именительном падеже. На расположение этих файлов ограничений не накладывается.


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

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


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

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

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

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


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


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

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


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

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

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


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


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


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


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


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


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

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

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


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

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

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

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

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

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

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

ГОСТ 19.001-77 Общие положения <#"justify">ГОСТ 19.503-79 Руководство системного программиста. Требования к содержанию и оформлению

ГОСТ 19.404-79 Пояснительная записка. Требования к содержанию и оформлению <#"justify">.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 с.

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

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

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


Приложение А


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


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


Приложение Б


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


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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение В


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

Наименование организации, предприятияДолжность исполнителяФамилия, имя отчествоПодписьДатаМегионский политехнический колледжСтудентМухаметьяров Дмитрий АкрамовичМухаметьяров21.11.2014

Приложение Г


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

main;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, Menus, Buttons, Grids, ComCtrls, ExtCtrls, StdCtrls;= class(TForm): TPanel;: TStatusBar;: TStringGrid;: TMainMenu;: TSpeedButton;: TSpeedButton;: TSpeedButton;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TBitBtn;: TOpenDialog;FormCreate(Sender: TObject);FormResize(Sender: TObject);sgDrawCell(Sender: TObject; Col, Row: Integer; Rect: TRect;: TGridDrawState);Start(Sender: TObject);ChShem(Sender: TObject);ChWords(Sender: TObject);N5Click(Sender: TObject);

{ Private declarations }ShowShem;LoadMatrix;OutKrossw(used:tStringList);valid(l:tStringList):boolean;interior(used:tStringList;CurWord:integer);

{ Public declarations };MaxRasmer = 20; //максимальная размерность N*N : TFrmMain;:tinifile; //ини-шник схемы,matrix:tStringList; //словарь и матрица схемы,_H,maxwords:integer; //ширина, высота, всего слов:boolean=false; //хватит искать:string='1.scm'; //схема по умолчанию:string='main.wds'; //словарь по умолчанию:integer; //найдено вариантовendf;

{$R *.DFM}

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

function Split(var s: String; c: Char): String;i:Integer;:=pos(c,s);i=0 then:=s;:='';begin:=copy(s,1,i-1);(s,1,i);;;

//инициализация всегоTFrmMain.FormCreate(Sender: TObject);:=tinifile.create(extractFilePath(ParamStr(0))+'1.scm');:=tStringList.create;:=tStringList.create;FileExists(extractFilePath(ParamStr(0))+'main.wds') then.LoadFromFile(extractFilePath(ParamStr(0))+'main.wds');;

ShowShem;

end;

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

procedure TFrmMain.ShowShem;i,j:integer;:string[1];:=ini.ReadInteger('main','width',6);.ColCount:= i;.DefaultColWidth:= (sg.Width div i)-2;:=ini.ReadInteger('main','height',6);.RowCount:= i;.DefaultRowHeight:= (sg.height div i)-2;:=ini.ReadInteger('main','words',6);i:=0 to matrix.Count-1 doj:=1 to length(matrix[i]) do:=matrix[i][j];s='1' then s:='';.Cells[j-1,i]:=s;

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

procedure TFrmMain.LoadMatrix;i:integer;.clear;i:=1 to ini.ReadInteger('main','height',6) do.Add(ini.ReadString('matrix',IntToStr(i),'111111'));;:=length(matrix[0]);:=matrix.Count;;

//изменение размера формыTFrmMain.FormResize(Sender: TObject);;

//прорисовка ячейки кроссвордаTFrmMain.sgDrawCell(Sender: TObject; Col, Row: Integer;: TRect; State: TGridDrawState);s:string;:integer;sg.Cells[col,row]='0' then.Canvas.brush.Color:=clGray;.Canvas.FillRect(Rect);;;.Canvas.brush.Color:=clWhite;.Canvas.FillRect(Rect);sg.Cells[col,row]='1' then exit;:=sg.Cells[col,row];.Canvas.Font.size:=100;.Canvas.Font.size:= sg.Canvas.Font.size-1;(sg.Canvas.TextHeight(S)<SG.DefaultRowHeight)(sg.Canvas.TextWidth(S)<SG.DefaultColWidth);.Canvas.TextOut(rect.left,rect.top,sg.Cells[col,row])

end;

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

//в выбранные позицииTFrmMain.valid(l:tStringList):boolean;a:array[1..MaxRasmer,1..MaxRasmer] of char; //матрица в виде массива,j:integer;,s2:string;t,fi,fj,di,dj:integer;insWord(s:string;words:integer); //вставка слова в массивt:integer;:=ini.readstring('words',IntToStr(words),'1,1,v'); //загрузка описания слова

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

fj:=StrToInt(Split(str,','));:=0;dj:=0;str='v' then dj:=1 else di:=1;t:=0 to length(s)-1 do[fi+di*t,fj+dj*t]:=s[t+1];;; i:=0 to matrix.Count-1 do //копирование из списка в массив

for j:=1 to length(matrix[i]) do[i+1,j]:= matrix[i][j];i:=l.Count-1 downto 1 do

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

end;:=false; str:=ini.readstring('words',IntToStr(integer(l.objects[0])),'1,1,v'); //теперь с проверкой:=StrToInt(Split(str,','));:=StrToInt(Split(str,','));:=0;dj:=0;str='v' then dj:=1 else di:=1;t:=0 to length(l[0])-1 dofi+di*t>_H then exit; //выход за границы кроссворда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; //еще не занятоa[fi+di*t,fj+dj*t]<>l[0][t+1] then exit; //занято, но совпадает

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

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

procedure TFrmMain.OutKrossw(used:tStringList);i,j,t,fi,fj,di,dj:integer;:string;:array[1..6,1..6] of char;insWord(s:string;words:integer);t:integer;:=ini.readstring('words',IntToStr(words),'1,1,v');:=StrToInt(Split(str,','));:=StrToInt(Split(str,','));:=0;dj:=0;str='v' then dj:=1 else di:=1;t:=0 to length(s)-1 do[fi+di*t,fj+dj*t]:=s[t+1];;;i:=0 to matrix.Count-1 do //копирование в матрицуj:=1 to length(matrix[i]) do[i+1,j]:= matrix[i][j];t:=0 to used.Count-1 do(used[t],integer(used.objects[t])); //вставка ВСЕХ слов без проверки;i:=0 to matrix.Count-1 doj:=1 to length(matrix[i]) do

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

sg.refresh;not assigned(FrmOk) then Application.CreateForm(TFrmOk, FrmOk);FrmOk.ShowModal=MrOk then //хочет ли юзер еще варианты

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

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

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

//и номер вставляемого словаTFrmMain.interior(used:tStringList;CurWord:integer);i:integer; endOfFind then exit; //выход если юзер не хочет больше

if CurWord=MaxWords+1 then //все слова вставлены(FindCount);(used); //можно выводить

exit; // да и нечего больше вставлять;i:=0 to words.Count-1 do //по всем словам из словаря словused.IndexOf(words[i])<>-1 then continue; //в одном кросворде одно слово дважды не встречается.InsertObject(0,words[i],pointer(CurWord)); //всавим в начало списка используемых словvalid(used) then //проверка на правильность(used,CurWord+1); //прошло-ищем следующее словоendOfFind then exit; //выход, если не надо больше.delete(0); //теперь удалим последнее слово, тк на его место в следующем обороте; //цикла вставим новое

end;

procedure TFrmMain.Start(Sender: TObject); //запуск подбора l:tStringList;:= 0; //количество найденных вариантов

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

interior(l,1); //поехали:=false; FindCount=0 then showMessage('Нет вариантов'#13'Смените схему или увеличьте словарь слов');.Free; //память надо освобождать

end;

//смена схемыTFrmMain.ChShem(Sender: TObject);.Filter:= 'Файлы схем (*.scm)|*.scm';.Title:='Выберите схему';.fileName:='';not OpenDialog.Execute then exit;:= OpenDialog.fileName;.free;:=tinifile.create(shName);;;;

//смена словаряTFrmMain.ChWords(Sender: TObject);.Filter:= 'Файлы словарей (*.wds)|*.wds';.Title:='Выберите словарь';.fileName:='';not OpenDialog.Execute then exit;:= OpenDialog.FileName;.LoadFromFile(wdName);;;

//выходTFrmMain.N5Click(Sender: TObject);;;.

Приложение Д


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


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


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


Курсовая работа РАЗРАБОТКА ПРИКЛАДНОГО ОБЕСПЕЧЕНИЯ, РЕАЛИЗУЮЩЕГО ФУНКЦИИ СОСТАВИТЕЛЯ КРОССВОРДА

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

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

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

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

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