3.1. Пояснительная записка должна быть оформлена в редакторе Microsoft ® Word в соответствии с требованиями ГОСТ и СТП.
3.2.В пояснительной записке должны содержаться следующие разделы:
2 Постановка задачи
2.1 Условия задачи
2.2 Конечные цели решения задачи
2.3 Формы выдачи результатов,
2.4 Описание используемых данных
3 Анализ и исследование задачи:
3.1 Типы решения задачи
3.2 Технические и программные средства для ее решения
3.3 Математическая модель
4 Алгоритм решения задачи
4.1 Метод проектирования алгоритма
4.2 Блок-схема алгоритма
4.3 Метод тестирования
4.4 Тесты для проверки работоспособности алгоритма
5 Создание программы
5.1 Дерево функций программы
5.2 Последовательность создания программы
5.3 Сценарий диалога программы
5.4 Описание используемых подпрограмм
6 Результаты тестовых расчетов и их анализ
7 Системные требования
8 Инструкция пользователя
Как написать диплом с нуля. Структурные части
8.1 Вызов программы.
8.2 Экранные формы.
8.3 Описание возможных результатов выполнения программы.
Дата выдачи __________________. Дата окончания _________________
Постановка задачи. 6
Условия задачи. 6
Конечные цели решения задачи. 6
Формы выдачи результатов. 6
Описание используемых данных. 6
Анализ и исследование задачи. 8
Типы решения задачи. 8
Технические и программные средства для её решения. 8
Математическая модель. 8
Алгоритм решения задачи. 11
Метод проектирования алгоритма. 11
Блок-схемы функций. 12
Метод тестирования. 18
Создание программы.. 20
Дерево функций. 20
Последовательность создания программы.. 21
Сценарий диалога программы.. 21
Описание используемых подпрограмм. 22
Список используемой литературы. 24
Приложение 1. Описание разработанных функций. 25
Приложение 2. Листинг программы.. 26
Приложение 3. Тестирование программы.. 31
Аннотация
Данная курсовая работа посвящена разработке и реализации программы на языке С++ с использованием класса статических массивов структур и текстовой базы данных «WORKER».
Программа обеспечивает возможность работы над существующей базой данных, в которой хранится информация о фамилии и инициалах работников, занимаемой ими должности, годе поступления на работу, также выполнение требуемых функций по работе с этими данными. Курсовая работа содержит описание разработанных функций, листинг и тестирование программы, блок-схемы алгоритмов, дерево функции,программы всех используемых функций и тестирование программы.
Введение
В данной курсовой работе будет рассмотрена разработка программы по решению приведенной задачи средствами языка программирования C++. В нашей программе будут использоваться статические массивы и структуры данных, для хранения информации о рейсах «WORKER», а также предусмотрены возможности добавления, удаления, просмотра данных, а также их сортировка и поиск по нескольким критериям.
Как оформить дипломную работу по ГОСТУ 2020 за 3 минуты
Постановка задачи.
Условия задачи.
Разработать программу на С++ с использованием статических массивов структур. Обработка данных должна включать следующие функции:
1) Просмотр существующей базы данных (чтение данных осуществляется из файла);
2) Редактирование базы данных (с сохранением изменений в файле);
3) Дополнение базы данных новыми записями (с сохранением в файле);
4) Удаление записей из базы данных (с сохранением в файле);
5) Поиск в базе данных (по одному и двум поисковым признакам) с выводом на экране найденных записей или сообщения о неуспешном поиске;
6) Сортировку данных по заданному полю.
Программа должна обеспечивать режим доступа к функциям в виде меню в режиме консоли.
Конечные цели решения задачи.
Перед нами стоит задача разработки программы «WORKER», возможности которой приведены выше. Следовательно, нашей конечной целью является разработка программы, реализующей требуемые задачи, а также не содержащей ошибки и с понятным для пользователя интерфейсом.
Формы выдачи результатов.
Так как наша программа представляет собой окно в консоли, то результаты будут выдаваться в виде диалога в окне консоли. Также добавленные записи можно сохранить в текстовый файл, а затем просмотреть его любой программой, поддерживающей открытие документов формата «txt».
Описание используемых данных.
В программе используется структура «WORKER», содержащая в себе 3 поля, два из которых символьные и одно числовое целого типа:
structworker
char fam[l]
char dol[l]
intgod
-фамилия и инициалы сотрудника
Задание
Цель работы:
Описать структуру с именем WORKER, содержащую следующие поля:
Фамилия и инициалы сотрудника
Написать программу, выполняющую следующие действия:
Описать структуру с именем WORKER, содержащую следующие поля:
□ фамилия и инициалы работника;
□ название занимаемой должности;
□ год поступления на работу.
Написать программу, выполняющую следующие действия:
□ ввод с клавиатуры данных в файл, состоящий из десяти структур типа
□ Загрузка и печать на экране данных из файла
□ Вывод на экран данных и результатов их обработки:
— упорядоченные записи по алфавиту (по фамилиям);
— фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры; если таких работников нет, вывести на дисплей соответствующее сообщение.
— поиск сотрудников по фамилиям, начинающимся с определенной буквы.
— поиска сотрудников по должности.
Анализ и исследование задачи.
Типы решения задачи
Решение задач определяется выбором способа ее решения. Для реализации задачи мы построили модель проектирования структуры программы в виде блок – схем и последовательных шагов к конечному результату.
К каждой подпрограмме составлены блок – схемы, которые служат алгоритмом к написанию кода на языке программирования С++. Также построена модель «Дерева функций» — служит «меню» в структуре построения.
Итогом исследования являются конечные результаты работы программы
(ввод, вывод, сортировка, поиск по определенным полям в таблице структуры)
Для решения данной задачи была применена сортировка методом пузырька, последовательный поиск.
Технические и программные средства для её решения
Для реализации технической стороны нашей задачи используется ноутбук ASUSN53JqIntel® Core ® i7-740 QM 1.7Ghz, ОЗУ 8ГБ с операционной системой Windows 7 HomePremium
Также устройства ввода: клавиатура, мышь.
И устройства вывода: дисплей
В качестве программных средств используется язык программирования BorlandC++ Builder 6.
Математическая модель
Для решения поставленной задачи была использована сортировка методом пузырька.
Сортировка простыми обменами, сортиро́вкапузырько́м (англ. bubblesort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n²).
Алгоритм считается учебным и практически не применяется вне учебной литературы, вместо него на практике применяются более эффективные алгоритмы сортировки. В то же время метод сортировки обменами лежит в основе некоторых более совершенных алгоритмов, таких как шейкерная сортировка, пирамидальная сортировка и быстрая сортировка.
Алгоритм состоит из повторяющихся проходов по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются N-1 раз или до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При каждом проходе алгоритма по внутреннему циклу, очередной наибольший элемент массива ставится на своё место в конце массива рядом с предыдущим наибольшим элементом, а наименьший элемент перемещается на одну позицию к началу массива («всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма).
На входе: массив A[N], состоящий из N элементов, с нумерацией от A[1] до A[N]
ЦИКЛ ДЛЯ J=1 ДО N-1 ШАГ 1
ЕСЛИ A[I]>A[I+1]ТООБМЕН A[I],A[I+1]
FOR J=1TO N-1 STEP 1
FOR I=1TO N-J STEP 1
IF A[I]>A[I+1]THEN SWAP A[I],A[I+1] NEXT I
Блок-схема 1 — Блок схема алгоритма пузырька
Для поиска, из имеющихся методов, был выбран метод последовательного поиска.
Суть метода заключается в том, что последовательно просматривается массив, пока не будет найден нужный элемент массива. Последовательный поиск в среднем случае выполнит проверку 1/2n элементов. В наилучшем случае она выполнит проверку только одного элемента, а в наихудшем – n элементов. Если объем данных не велик, эта производительность будет приемлемой.
Алгоритм решения задачи.
Метод проектирования алгоритма.
Методы проектирования алгоритмов включают: нисходящее проектирование, модульность, структурное программирование.
Нисходящее проектирование предполагает последовательное разбиение исходной задачи на подзадачи до такой конкретизации, когда подзадача сможет быть реализована одним оператором выбранного для программирования языка. По ходу нисходящего проектирования та или иная подзадача может сформировать самостоятельный модуль. Тогда может быть применен принцип модульного программирования. Он обеспечивает легкость составления алгоритмов и отладки программ, легкость сопровождения и модификации, а также возможность одновременной разработки различных модулей разными специалистами с использованием разных языков программирования.
При работе над модулем можно применить принцип структурного программирования. Его цель – повышение читабельности и ясности алгоритма (и программы), более высокой производительности программистов и упрощение отладки. В соответствии с этим принципом для построения любого алгоритма (программы) требуются три типовых блока:
- 1.
Функциональный. Используется для представления линейных алгоритмов. Описывается языком графических символов следующим образом: - 2.
Циклический. Используется для представления циклических алгоритмов. Описывается языком графических символов одним из двух способов: - 3.
Конструкция принятия двоичного решения. Применяется для представления разветвляющихся алгоритмов. Описывается языком графических символов следующим образом:
При решении нашей курсовой работы мы будем придерживаться модульного метода проектирования. Вя наша программа будет состоять из нескольких модулей, у каждой из которых будет своя функция. Это позволит проще отслеживать ошибки, а также каждый модуль будет работать независимо от наличия ошибок в других частях программы (модулях). Далее приведеныблое-схемы модулей.
Блок-схемы функций
открытие потока fin
Ввод x[n].fam, x[n].dol, x[n].god
закрытие потока fin
Ввод БД из txt файла
открытие потока fout
Выводизпотокаout x[i].fam, x[i]dol, x[i].god
FAMILIA INICIALI | DOLJNOST | GOD POSTUPLENIJA
x[i].fam, x[i].dol, x[i].god
Ввод x[n].fam, x[n].dol, x[n].god
Номер удаленной строки
Нет такой строки
меняем местами записи
Вывод x[i].fam, x[i].dol, x[i].god
Нет таких сотрудников
Введите первую букву фамилии
Нет такой записи
Нет такой записи
Метод тестирования
Тестирование — очень важный и трудоемкий этап процесса разработки программногообеспечения, так как правильное тестирование позволяет выявить подавляющее большинствоошибок, допущенных при составлении программ.
Процесс разработки программного обеспечения предполагает три стадии тестирования:автономное, комплексное и системное, каждая из которых соответствует завершениюсоответствующей части Системы.
Различают два подхода к формированию тестов: структурный и функциональный. Каждый изуказанных подходов имеет свои особенности и области применения.
Структурное тестирование.
Структурное тестирование называют также тестированием по «маршрутам», так как в этомслучае тестовые наборы формируют путем анализа маршрутов, предусмотренных алгоритмом.
Под маршрутами при этом понимают последовательности операторов программы, которыевыполняются при конкретном варианте исходных данных.
В основе структурного тестирования лежит концепция максимально полного тестированиявсех маршрутов программы. Так, если алгоритм программы включает ветвление, то при одномнаборе исходных данных может быть выполнена последовательность операторов, реализующаядействия, которые предусматривает одна ветвь, а при втором — другая. Соответственно, дляпрограммы будут существовать маршруты, различающиеся выбранным при ветвлениивариантом.
Считают, что программа проверена полностью, если с помощью тестов удается осуществитьвыполнение программы по всем возможным маршрутам передач управления. Однако нетрудновидеть, что даже в программе среднего уровня сложности число неповторяющихся маршрутовможет быть очень велико, и, следовательно, полное или исчерпывающее тестированиемаршрутов, как правило, невозможно.
Структурный подход к тестированию имеет ряд недостатков. Так тестовые наборы,построенные по данной стратегии:
- не обнаруживают пропущенных маршрутов;
- не обнаруживают ошибок, зависящих от обрабатываемых данных, например, в операторе if (a — b)
- не дают гарантии, что программа правильна, например, если вместо сортировки по убыванию реализована сортировка по возрастанию.
Для формирования тестов программу представляют в виде графа, вершины которогосоответствуют операторам программы, а дуги представляют возможные варианты передачиуправления.
Функциональное тестирование.
Одним из способов проверки программ является тестирование с управлением по данным или попринципу «черного ящика». В этом случае программа рассматривается как «черный ящик», и цельютестирования является выяснение обстоятельств, в которых поведение программы не соответствуетспецификации.
Для обнаружения всех ошибок в программе, используя управление по данным, необходимовыполнить исчерпывающее тестирование, т. е. тестирование на всех возможных наборах данных. Длятех же программ, где исполнение команды зависит от предшествующих ей событий, необходимопроверить и все возможные последовательности. Очевидно, что проведение исчерпывающеготестирования для подавляющего большинства случаев невозможно. Поэтому обычно выполняют«разумное» или «приемлемое» тестирование, которое ограничивается прогонами программы нанебольшом подмножестве всех возможных входных данных. Этот вариант не дает гарантииотсутствия отклонений от спецификаций.
Правильно выбранный тест должен уменьшать, причем более чем на единицу, число другихтестов, которые должны быть разработаны для обеспечения требуемого качества программногообеспечения.
Курсовая работа / Документация / 7. Руководство пользователя
Документ содержит общие сведения о программе, её описании, структуре, вариантах использования, входных и выходных данных.
1.НАЗНАЧЕНИЕ ПРОГРАММЫ. 4
2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ. 5
3. ВЫПОЛНЕНИЕ ПРОГРАММЫ. 6
1.НАЗНАЧЕНИЕ ПРОГРАММЫ.
2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ.
3. ВЫПОЛНЕНИЕ ПРОГРАММЫ.
3.1 Запуск программы Для запуска программы необходимо запустить файл Kypca4.exe При запуске программа отображает главное меню автошколы «Драйвер», имеется возможность выполнять следующие действия (рис.1): -просмотреть рейтинг автошкол -посмотреть информацию об автошколе «Драйвер» -записаться в автошколу драйвер -закрытие программы(выход) -авторизация персонала Рис.1.
При нажатии на кнопку Рейтинг открывается форма с рейтингом автошкол города Кургана и кнопкой возвращения в главное меню (рис.2.):


Рис.4. Рис.5. Рис.6.
Рис.7.
Рис.8. Рис.9.
При нажатии на кнопку Запись откроется форма(рис.10.), в которой есть поля: Имя, Фамилия, Категория, Месяц; кнопка Принять, которая считывая значения полей, переносит их в таблицу Студенты: Рис.10. При вводе логина, пароля и нажатием кнопки принять мы переносимся в кабинет(рис.11.), откуда можем воспользоваться поиском персонала по базе данных или перейти на следующие формы: Студенты, Доходы, и редакторы расписания, персонала и расценок; Рис.11.
Источник: studfile.net
Пример дипломной работы по информатике: Разработка программы
Криптография (от др.-греч. ксхрфьт — скрытый и гсЬцщ — пишу) — наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.
Изначально криптография изучала методы шифрования информации — обратимого преобразования открытого (исходного) текста на основе секретного алгоритма и/или ключа в шифрованный текст (шифротекст). Традиционная криптография образует раздел симметричных криптосистем, в которых зашифрование и расшифрование проводится с использованием одного и того же секретного ключа. Помимо этого раздела современная криптография включает в себя асимметричные криптосистемы, системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию.
Криптография — одна из старейших наук. История криптографии насчитывает около 4 тысяч лет. В качестве основного критерия периодизации криптографии возможно использовать технологические характеристики используемых методов шифрования.
Первый период (приблизительно с 3-го тысячелетия до н. э.) характеризуется господством моноалфавитных шифров (основной принцип — замена алфавита исходного текста другим алфавитом через замену букв другими буквами или символами).
Второй период (хронологические рамки — с IX века на Ближнем Востоке (Ал-Кинди) и с XV века в Европе (Леон Баттиста Альберти) — до начала XX века) ознаменовался введением в обиход полиалфавитных шифров.
Третий период (с начала и до середины XX века) характеризуется внедрением электромеханических устройств в работу шифровальщиков. При этом продолжалось использование полиалфавитных шифров.
Четвертый период — с середины до 70-х годов XX века — период перехода к математической криптографии. В работе Шеннона появляются строгие математические определения количества информации, передачи данных, энтропии, функций шифрования. Обязательным этапом создания шифра считается изучение его уязвимости к различным известным атакам — линейному и дифференциальному криптоанализам. Однако, до 1975 года криптография оставалась «классической», или же, более корректно, криптографией с секретным ключом.
Современный период развития криптографии (с конца 1970-х годов по настоящее время) отличается зарождением и развитием нового направления — криптография с открытым ключом. Её появление знаменуется не только новыми техническими возможностями, но и сравнительно широким распространением криптографии для использования частными лицами (в предыдущие эпохи использование криптографии было исключительной прерогативой государства). Правовое регулирование использования криптографии частными лицами в разных странах сильно различается — от разрешения до полного запрета.
Современная криптография образует отдельное научное направление на стыке математики и информатики — работы в этой области публикуются в научных журналах, организуются регулярные конференции. Практическое применение криптографии стало неотъемлемой частью жизни современного общества — её используют в таких отраслях как электронная коммерция, электронный документооборот (включая цифровые подписи), телекоммуникации и других.
В рамках данной курсовой работы поставлена задача написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу. Из описания, приведенного выше, видно что такой шифр относится к традиционным, симметричным криптосистемам.
Для решения задачи использована среда разработки Delphi.
Основная часть
1. Г лава основной части
Разработка эскизного и технического проектов программы
Тема: Разработка приложения для Windows, представляющего собой программу шифрования и дешифрования текстовых файлов.
Условие задачи: Написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу.
1.2 Назначение и область применения
Необходимо разработать программу, которая будет зашифровывать и расшифровывать текстовые файлы. Область применения: досуг пользователя. Поскольку ставится задача разработать приложение для Windows, то использоваться программа может только на компьютерах под управлением ОС Windows.
1.3 Технические характеристики
Программа предназначена для работы в операционной системе Windows. Для удобства пользователя необходим графический интерфейс. В программе должна быть реализована возможность выбора (открытия) файла для шифрования (дешифрования). Зашифрованный (расшифрованный) файл должен создаваться в том же каталоге что и исходный, с новым именем.
1.4 Описание алгоритма
В программе определена строковая константа, состоящая из заглавных и строчных букв русского алфавита. Для шифрования и дешифрования открытого файла используется вызов процедуры с параметром. От параметра зависит выполняемое над файлом действие.
В процедуре осуществляется последовательное чтение исходного файла по одному символу, затем поиск этого символа в строке алфавита. Если символ найден, то он заменяется на третий после него и записывается в файл назначения. Если не найден, то символ записывается в файл назначения как есть, без изменений.
Рисунок 1 — Обобщенная схема алгоритма
Входные данные: исходный текстовый файл на русском языке, открываемый пользователем.
Выходные данные: переименованный текстовый файл, сохраненный автоматически в папку исходного файла.
Таблица 1 — Переменные, используемые в программе:
Источник: nadfl.ru