Разработка программы для анализа прямоугольной матрицы - Курсовая работа

бесплатно 0
4.5 103
Анализ технического задания. Разработка интерфейса программы и ее алгоритмов. Кодирование и тестирование разработанного программного обеспечения, оценка его практической эффективности и функциональности. Формирование, содержание руководства пользователя.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Согласно техническому заданию необходимо разработать программу для поиска в прямоугольной матрице всех квадратных подматриц, у которых общая сумма элементов главной и побочной диагонали равна нулю. Организация матрицы представлена на рисунке 2.1. Алгоритм функции «random» представлен на рисунке 3.1. 1) Ввод с клавиатуры: На рисунке 5.1 представлен ввод матрицы с клавиатуры. 2) Ввод случайными числами: На рисунке 5.5 представлен ввод матрицы случайными числамиВ курсовой работе была разработана программа для анализа прямоугольной матрицы и поиска в ней подматриц, у которых общая сумма элементов главной и побочной диагонали равна нулю. Разработанная программа удовлетворяет следующим требованиям: a) использование языке C/C ;} void vvod3 (int **a, const int nstr, const int nstb) {// вводизфайла ifstream input; if (! input) {cout<<»

Nevozmozhno otkrit file»; output.open («output.

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

Компьютер - это электронный прибор, предназначенный для автоматизации создания, хранения, обработки и транспортировки данных [6].

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

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

1. Анализ технического задания

Согласно техническому заданию необходимо разработать программу для поиска в прямоугольной матрице всех квадратных подматриц, у которых общая сумма элементов главной и побочной диагонали равна нулю. Для достижения данной цели программа должна отвечать следующим требованиям: - язык: a) использование языка C\C ;

b) использование динамических структур;

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

b) возможность вывода результата в текстовый файл или на дисплей;

c) обработка исключающих ситуаций (ошибка при чтении файла, ошибка при выделении динамической памяти под матрицу);

d) визуализация процесса;

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

2. Обоснование и проектирование структур данных

Для операции с прямоугольной матрицей используют динамический двумерный массив. При создании динамического двумерного массива в операции newуказывается его размерность. Следует отметить тот факт, что размерность матрицы вводится с клавиатуры. Организация матрицы представлена на рисунке 2.1.

Рисунок 2.1 - Структура матрицы

В операторе 1 объявляется переменная типа «указатель на указатель на int» и выделяется память под массив указателей на строки массива. В операторе 2 организуется цикл выделения памяти под каждую строку массива. В операторе 3 каждому элементу массива указателей на строки присваивается адрес начала участка память, выделенную под строку двумерного массива [3, c. 62].

Для работы с файлами использовались два класса: a) ifstream - класс входных файловых потоков;

b) ofstream - класс выходных файловых потоков.

Для организации циклов, некоторых подсчетов и констант используются переменные типа int. Int - целый тип, размер которого не определяется стандартом, а зависит от компьютера и компилятора.

3. Разработка алгоритма

Алгоритм - это точное предписание, определяющее вычислительный процесс, ведущий от исходных данных к искомому испытанию. Из определения следует, что каждый разработанный алгоритм должен обладать следующими свойствами: a) Детерминированность - каждая команда понятна исполнителю (в данном случае компьютеру) и исключает неоднозначность исполнения;

b) результативность - реализация вычислительного процесса, предусмотренного алгоритмом, должна через определенное число шагов привести к результату или сообщению о невозможности его получения;

c) массовость - если алгоритм разработан для решения определенной задачи, он должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных;

d) дискретность - пошаговый характер процесса получения результата, состоящий в последовательном выполнении конечного числа заданных алгоритмом действий.

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

Алгоритм функции «random» представлен на рисунке 3.1.

Рисунок 3.1 - Блок-схема функции «random»

Алгоритм функции «vvod1» представлен на рисунке 3.2.

Рисунок 3.2 - блок-схема функции «vvod1»

Алгоритм функции «vvod2» представлен на рисунке 3.3.

Рисунок 3.3 - блок-схема функции «vvod2»

Алгоритм функции «main» представлен на рисунке 3.4.

Рисунок 3.4 - Блок-схема функции «main»

4. Кодирование программы

Кодирование - это процесс написания программного кода, с целью реализации алгоритма на языке С/С .

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

Рассмотрим следующие функции: - int random (int N) - функция, которая выдает случайные числа с равномерным распределением в интервале [0, N-1]. Переменная N является целой константой;

- voidvvod1 (int **a, constintnstr, constintnstb) - функция, котораяпозволяет заполнить массив с клавиатуры. Константы nstrиnstb - размеры матрицы, которые вводятся с клавиатуры; int **a - указатель на указатель на int;

- voidvvod2 (int **a, constintnstr, constintnstb) - функция, котораяпозволяет заполнить массив случайными числами. Константы nstrиnstb - размеры матрицы, которые вводятся с клавиатуры; int **a - указатель на указатель на int;

- voidvvod3 (int **a, constintnstr, constintnstb) - функция, котораяпозволяет заполнить массив из файла. Константы nstrиnstb - размеры матрицы, которые вводятся с клавиатуры; int **a - указатель на указатель на int;

- int main() - обязательная функция, которая обеспечивает создание точки входа в откомпилированную программу.

5. Контрольный пример

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

Рассмотрим работоспособность программы при разных вариантах ввода и вывода.

1) Ввод с клавиатуры: На рисунке 5.1 представлен ввод матрицы с клавиатуры.

Рисунок 5.1 - Ввод с клавиатуры

На рисунке 5.2.1 представлен вывод результата на дисплей.

Рисунок 5.2.1 - Вывод на дисплей

На рисунке 5.2.2 представлен вывод результата на дисплей.

Рисунок 5.2.2 - Вывод на дисплей

На рисунке 5.3 представлен ввод матрицы с клавиатуры.

Рисунок 5.3 - Ввод с клавиатуры

На рисунке 5.4 представлен вывод результата в файл.

Рисунок 5.4 - Вывод в файл

2) Ввод случайными числами: На рисунке 5.5 представлен ввод матрицы случайными числами

Рисунок 5.5 - Ввод случайными числами

На рисунке 5.6 представлен вывод результата на дисплей.

Рисунок 5.6 - Вывод на дисплей

На рисунке 5.7 представлен ввод случайными числами.

Рисунок 5.7 - Ввод случайными числами

На рисунке 5.8 представлен ввод матрицы случайными числами.

Рисунок 5.8 - Вывод в файл

3)

Ввод из файла: На рисунке 5.9 представлен ввод матрицы из файла.

Рисунок 5.9 - Ввод из файла

На рисунке 5.10.1 представлен вывод результата на дисплей

Рисунок 5.10.1 - Вывод результата на дисплей

На рисунке 5.10.2 представлен вывод результата на дисплей.

Рисунок 5.10.2 - Вывод результата на дисплей

На рисунке 5.11 представлен вывод результата в файл.

Рисунок 5.11 - Вывод в файл

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

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

Данная программа была разработана в среде Dev-C 4.9.9.2. Для запуска Dev-C необходимо запустить проргамный файл devcpp.exe в папке с программой (папка была выбрана пользователем в процессе установки).

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

Рисунок 6.1 - Среда Dev-C

Для открытия файла с курсовым проектом необходимо перейти в меню «Файл» и выбрать «Открыть проект или файл», в появившемся диалоговом окне на диске «Курсовой проект» открыть папку «Курсовой проект» и выбрать файл «Myunit.cpp».На рисунке 6.2 представлено диалоговое окно с открытием файла.

Рисунок 6.2 - Диалоговое окно

Для того, чтобы скомпилировать программу нажмите Ctrl F9. После того как проект успешно скомпилирован, диалоговое окно будет иметь статус «Done». Это значит, что программа готова к работе. На рисунке 6.3 представлен процесс компиляции.

Рисунок 6.3 - Процесс компиляции

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

Рисунок 6.4 - Процесс ввода

После ввода матрицы программа начнет поиск подматриц, которые удовлетворяют условию задачи. При нахождении подматриц в диалоговом окне появится вырианты вывода результат: 1 - вывод на дисплей, 2 - вывод в файл. В зависимости от выбора пользователь увидит результат работы программы либо на дисплее, либо при открытии файла «output.txt» в папке «Курсовой проект».

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

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

Разработанная программа удовлетворяет следующим требованиям: a) использование языке C/C ;

b) использование динамических структур;

c) Возможность ввода и вывода матрицы различными способами;

d) Обработка исключающих ситуаций.

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

Список литературы
1. Шилдт Г. С / Г. Шилдт.: Пер. с англ. - M.: Издательский дом «Вильямс», 2008. - 624 с.

2. Лафоре Р. Объектно-ориентированное программирование в С / Р. Лафоре. - СПБ.: Питер, 2007.-928 с.

3. Павловская Т.А. С/С . Программирование на языке высокого уровня / Т.А. Павловская. - СПБ.: Питер, 2005. - 464 с.

4. Павловская Т.А., Щупак Ю.А. С/С . Структурное программирование: Практикум / Т.А. Павловская, Ю.А. Щупак. - СПБ.: Питер, 2005. - 240 с.: ил.

5. Шаров В.Г. Введение в программирование. Учебное пособие / В.Г. Шаров. - Рыбинск: РГАТА, 2004. - 64 с.

6. История развития средств вычислительной техники [Электронный ресурс]: URL: http://orags.narod.ru/manuals/inf_zo/texts/s_2.htm (дата обращения: 01.06.2012).

7. Информатика: Разработка алгоритма [Электронный ресурс]: URL: http://www.klgtu.ru/students/literature/inf_asu/650.html (дата обращения: 02.06.2012).

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?