Федеральное агентство связи Федеральное государственное бюджетное учреждение высшего профессионального образования Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича
Кафедра безопасности информационных систем
Курсовая работа по дисциплине «Алгоритмизация и программирование»
Выполнил:
студент 1 курса группы
ИСТ-122
/__________/И.Х. Шарофидинов
«__»_____________2018 г
Принял
___________
(Оценка)
____________/С.В.Хорошенко
«__»_____________2018 г
Санкт-Петербург 2018 аннотация
Курсовая работа имеет цель научить применять полученные знания для самостоятельного решения определённых учебных задач. Она направлена на закрепление и углубление теоретических и практических навыков в программировании и вычислении задач на компьютере.
В задачи, которые мне необходимо выполнить, входит: разработать программу, в которой пользователь либо вводит двумерный массив, размерностью 4x7, либо же считывает этот массив из заданного программистом файла. Программа выводит этот массив на экран в виде матрицы; по запросу (возможно многократному) пользователя происходит подсчёт суммы элементов выбранной пользователем строки; по окончанию работы программы массив записывается в файл номер один, а результат подсчета суммы строки (или строк, при многократном подсчете) в файл номер два. Для этого мне нужно создать 3 отдельные функции, в которых будут описываться математические и логические операции, 1 – на ввод массива, 2- запись массива матрицей в файл, 3 – запись результатов вычисления во второй файл.
Содержание: Оглавление:
АННОТАЦИЯ 2
1.ОСНОВНАЯ ЧАСТЬ 4
1.1 Условие задачи: 4
1.2 Формализация задачи: 4
1.3 Схема алгоритма: 6
6
1.4 Текст программы: 10
ЗАКЛЮЧЕНИЕ 16
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 17
Приложение А.РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ 18
1.Основная часть
1.1 Условие задачи:
А) ввод с клавиатуры или чтение из файла, имя которого задаёт программист, двумерного массива целых чисел, размерностью [4x7] элементов и вывод его на экран;
Б) многократный, в зависимости от запроса, подсчёт суммы элементов указанной строки и вывод результата на экран;
В) по окончании работы сохранение массива в первом файле. Данные этого массива сохраняются в виде матрицы, размерностью [4x7] элементов. Номера указанных строк, значение всех их элементов и сумма элементов каждой строки последовательно записываются во второй файл.
Заданные операции в программе разработать в рамках отдельных функций.
1.2 Формализация задачи:
Для решения данной задачи сначала используется функция firstAnswer, которая использует оператор switch() для того, чтобы захватить введённую пользователем переменную answer, для последующей её обработки. В зависимости от введённой информации программа либо заполняет массив из файла data.txt, либо позволяет пользователю ввести массив самостоятельно, либо, если пользователь ввёл некорректные данные, программа выведет сообщение об ошибке и запросит ответ снова. Для ввода массива прописывается цикл for(). Затем консоль очищается посредством функции system(“cls”) библиотеки <cstdlib>, после чего, с помощью цикла for() выводится матрица, а за ней – меню, в котором предлагается либо посчитать сумму любой строки, либо выйти из программы. При выборе пункта 1 программа запрашивает номер строки, в которой нужно посчитать сумму элементов, если строки не существует, пользователь оповещается соответствующим сообщением. После того, как сумма посчитана, с помощью функции returnSum(), она выводится на экран, и записывается в файл output_result.txt посредством функции writeTheResultDown(). Вместе с этим программа запрашивает – вернуться ли в меню, или выйти из программы. В случае, если выбран первый пункт, то программа возвращает пользователя в меню посредством функции goto. По завершению программы и выборе пункта 2 в меню, программа записывает массив в файл output_array.txt посредством функции writeTheArrayDown(). Все описанные функции я вызываю в главной функции main().
Необходимые переменные для решения задачи: i,j – переменные целочисленного типа int, отвечающие за номера элементов в массиве и используются в цикле for(). Переменная answer для записи ответа пользователя в меню. result – для записи суммы определенной строки. Сам массив arr[4][7]. А также переменные readFrom для чтения из файла и postIn – для записи в файл.