Разработка прикладной программы
Автор: Михаил Поздняков • Март 9, 2022 • Курсовая работа • 2,793 Слов (12 Страниц) • 241 Просмотры
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
"ТЮМЕНСКИЙ ИНДУСТРИАЛЬНЫЙ УНИВЕРСИТЕТ"
Институт геологии и нефтегазодобычи
Кафедра кибернетических систем
КУРСОВОЙ ПРОЕКТ
по дисциплине
Программирование и основы алгоритмизации
на тему
РАЗРАБОТКА ПРИКЛАДНОЙ ПРОГРАММЫ
Выполнил студент гр. УТСбп 19-1
Поздняков Михаил Николаевич
Проверил:
к.т.н., доцент каф. КС
Ахмадулин Руслан Камильевич
Тюмень 2020
СОДЕРЖАНИЕ
Введение 3
Постановка задачи 4
Анализ предметной области 5
Описание входных данных 6
Описание результатов работы программы 7
Описание алгоритма работы 8
Результаты тестирования программы 10
Руководство пользователя 11
Выводы 12
Приложение A 13
Приложение Б 17
Введение
Целью курсовой работы является разработка прикладного программного обеспечения.
Задачами работы являются:
- постановка задачи;
- анализ предметной области;
- разработка основных алгоритмов;
- проектирование программного обеспечения;
- реализация программного обеспечения;
- тестирование и отладка программного обеспечения.
Для создания программы был использован язык программирования PascalABC.NET. Блок-схемы выполнены с помощью Microsoft Visio.
Постановка задачи
Необходимо написать программу перевода чисел из одной системы счисления в другую. Систему счисления (десятичная, двоичная, восьмеричная или шестнадцатеричная) для задания и перевода числа выбирает пользователь. Предусмотреть возможность перевода сразу нескольких чисел, загруженных из файла.
Анализ предметной области
Основной функцией программы является перевод числа из одной системы счисления в другую. Ввод чисел может быть осуществлен как с клавиатуры, так и из файла. При вводе данных с клавиатуры запрашивается строка, представляющая собой число. При вводе из файла осуществляется построчное считывание. Для выполнения перевода числа в любую систему счисления сначала используется алгоритм для перевода числа в десятичную систему счисления As=An*sn+An-1*sn-1…+A0*s0, где An целое число в позиции n, s - система счисления, As – переводимое число. При переводе в десятичную систему программа преобразует строку в число. Затем использует алгоритм для перевода числа из десятичной системы счисления в любую другую: последовательное деление данного числа на соответствующее основание и запись последнего частного и всех предыдущих остатков в обратном порядке. При переводе числа из десятичной системы в любую программа преобразует число в строку.
Были реализованы дополнительные функции:
- возможность использования систем счисления с основанием от 2 до 16;
- при обработке введенного числа программа игнорирует лишние нули в начале числа, в дальнейшем переводе они не участвуют. Например, 001 программа воспримет как 1;
- при считывании данных из файлов программа игнорирует лишние пробелы между числами, это сделано чтобы исключить влияние выравнивания чисел и ошибки при обработки программой строки;
- Вывод числа организован в более удобном для человека формате, разряды чисел разделяются пробелом. При выводе чисел в двоичной системе счисления старший разряд заполняется нулями;
- При считывании чисел из файла предусмотрена возможность сохранения переведенных чисел в другой файл.
Описание входных данных
Входными данными программы являются следующие переменные:
- sys – строка, представляющая собой целое число, которое задает систему счисления переводимого числа. Принимает значения от 2 до 16;
- ish – строка, представляющая собой целое положительное число, которое нужно перевести в другую систему счисления. Значение этого числа в десятичной системе счисления должно находиться в диапазоне от 0 до 2147483647. Число может содержать только цифры от 0 до 9 и заглавные буквы английского алфавита от A до F;
- t – текстовый файл, содержащий целые положительные числа, которые нужно перевести в другую систему счисления. Значение этих чисел в десятичной системе счисления должно находиться в диапазоне от 0 до 2147483647. Числа могут содержать только цифры от 0 до 9 и заглавные буквы английского алфавита от A до F. Файл не должен содержать посторонних символов, за исключением пробелов и переходов на новую строку;
- p – строка, содержащая команду пользователя. Представляет собой положительное целое число.
Описание результатов работы программы
Результатами работы программы являются следующие переменные:
- rez - строка, представляющая собой целое число, являющееся результатом перевода числа в другую систему счисления.
- f – текстовый файл, содержащий результаты перевода чисел в другие системы счисления. Компонентами файла являются строки, каждая строка – переведенное в другую систему счисления число.
Описание алгоритма работы
Блок-схемы подпрограмм и программы представлены в Приложении Б.
В программе описаны следующие подпрограммы:
- InTen(s,a):longtint – функция где на вход подаётся само число и систему счисления в которой это число зашифровано. С помощью цикла for начиная с конца числа она переводит в десятичную систему счисления, с помощью последовательного умножения каждого символа из изначальной системы счисления в систему счисления от нулевой до шестнадцатеричной. Это всё записывается в переменную x в результате работы функции. Самой функции присваиваются числа в десятичном виде по формуле As=An*sn+An-1*sn-1…+A0*s0.
- OutTen(x,y):string – функция на вход подаётся число и основание системы счисления в которую нужно перевести. С помощью цикла repeat с каждой итерацией берётся остаток от деления на основании системы счисления и прибавляются предыдущие значения, всё это записывается в строку. Второй операцией в цикле, x делится без остатка на основание системы счисления, то есть мы посчитали остаток на систему счисления , записали его и в конце функции присваиваются значения всей строки в которую было переведено число из десятеричной системы счисления в ту, которая нам требуется.
- ChekChislo(sys,s):Boolean – функция на вход которой подается значение предполагаемой системы счисления и строка содержащая само число. Проверяется не является ли срока пустой.
Если нет, то функция продолжает выполнение, иначе функция принимает значение False, тогда функция заканчивает свое выполнение. Далее с помощью цикла for каждый символ числа проверяется на условие (не больше или равен ли он основанию системы счисления в которой записано как предполагается число), если число проходит проверку, то удаляются лишние нули в начале и функции присваивается значение True. - ChekSS – функция целочисленного типа. С помощью цикла repeat запрашивает систему счисления у пользователя до тех пор, пока пользователь не введет значение от 2 до 16. Функции присваивается значение введенной корректной системы счисления.
- VidChisla(s,sys):string – функция, строчного типа. На вход подается число, система счисления первым делом с помощью условия и цикла while добавляет незначащие нули перед числом до тех пор, пока количество символов не станет кратным 4. После чего проверяется условие, если система счисления равна 2 или 16, то число будет форматироваться в группы по 4 символа в ином случае по 3 символа.
После проверки функция приступает к форматированию числа и переформатированное число присваивается функции.
В теле программы все запросы команд зациклены с помощью repeat, т.е. программа продолжит работу только при вводе корректной команды. Организовано ветвление для работы с файлом или одним числом, заданным с клавиатуры. Системы счисления задаются с помощью функции ChekSS. Ввод начального числа с клавиатуры зациклен с помощью repeat. Программа считывает файл построчно, в каждой строке считываются числа. Каждое число проверяется функцией ChekChislo, в случае несоответствия программа перестает читать файл и сообщает о том, что данные в файле некорректны. При корректных данных все числа будут переведены с помощью функций OutTen и InTen. Переведенные числа будут записаны в новый файл. По выбору пользователя на экран могут быть выведены данные из файла, файл может быть уделен. В конце работы программы выводится сообщение о ее завершении.
...