Разработка специализированного программного модуля

Автор работы: Пользователь скрыл имя, 30 Марта 2013 в 09:53, курсовая работа

Краткое описание

Целью работы является создание приложения в Visual Basic for Application, позволяющего осуществлять следующие операции: Определить сумму квадратов элементов k-го столбца массива.
Все элементы массива. Сумма индексов которых четна, заменить числом -1.
Преобразовать матрицу путем удаления из исходной матрицы строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.

Прикрепленные файлы: 1 файл

Записка .doc

— 771.50 Кб (Скачать документ)

 



 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  РЕСПУБЛИКИ БЕЛАРУСЬ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное учреждение высшего профессионального  образования

«Белорусско-Российский университет»

 

Кафедра «Автоматизированные  системы управления»

 

 

 

 

 

 

Разработка специализированного

программного модуля

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

по дисциплине «Информатика»

051. 1-36 01 01.. 81-01

 

 

 

 

Допущен: «__»____________

Защитил: «__»_____________

Оценка__________

Комиссия:             ___________/____________

___________/____________

Выполнил: студент гр.

 

 

Проверил:

 




 

 

 

 

2012 

Содержание

Введение

Целью работы является создание приложения в Visual Basic for Application, позволяющего осуществлять следующие операции:

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

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

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

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

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

В разделе 4 проводится тестирование программного модуля и сравнение  его c полученными результатами.

1 Постановка  задачи

    1. Логическая модель задачи.

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

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

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

1.2 Входные  данные

Входными данными для  решения поставленной задачи является количество строк и столбцов матрицы, элементы матрицы а(i, j), выбор варианта ввода вывода.

Входные данные в курсовом проекте приведены в таблице 1.

Таблица 1 – Входные данные

Название

Диапазон возможных  значений

Количество строк матрицы

>1, числовое, целое

Количество столбцов матрицы

>1, числовое, целое

Элементы матрицы a(i, j)

[-10;10]

k

>1,числовое, целое


 

 1.3 Выходные данные

Результатом работы программы  является вычисления, поставленные в целях задания. Выходные данные представлены в таблице 2.

 

Таблица 2 – Выходные данные

 

Название

Вид представления

Вывод

Сумма квадратов элементов массива

Целое число

На форму пользователя,

на лист EXCEL

Элементы полученного массива

Целые числа

На форму пользователя, на лист EXCEL


 

1.4 Обработка ошибок

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

Ввод исходных данных ,количества строк, не соответствующих требованиям программы;

 

 

Рисунок 1 – Сообщение об ошибке

 

 

 

 

 

 

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

 

 

Рисунок 2 – Сообщение об ошибке

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

 

 

Рисунок 3 – Сообщение об ошибке

Неверно задан k-ый столбец.

 

 

 

Рисунок 4 – Сообщение об ошибке

 

 

 

2 Проектирование программного  модуля

2.1 Разработка  алгоритма программного модуля и его описание

 



 







 

 


 






 



 

 

 

 


 

 
                



 







 

 

 



 

 

 

 

 





 



 




 


 



 


 

 

 

 


 

 

 





 


 


 

 

 




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 5 - Схема программного модуля

Описание блок-схемы 

Блок 1 – задание начального значения

Блок 2 – запуск цикла For

Блок 3 – присвоение значения переменной

Блок 4 – запуск цикла For.

Блок 5 –запуск цикла For.

Блок 6 – условный оператор If

Блок 7 – присвоение новых значения переменной

Блок 8 – присвоение новых значения переменной

Блок 9 – задание максимальных значений переменным

Блок 10 – запуск цикла For

Блок 11 – запуск цикла For

Блок 12 – условный оператор If

Блок 13 –задание значения переменных

Блок 14 – обнуление переменной

Блок 15 – запуск цикла For

Блок 16 – условный оператор If

Блок 17 –задание значения переменной

Блок 18 – запуск цикла For

Блок 19 – условный оператор If

Блок 20 – изменение значение переменной

Блок 21 – изменение значений переменных

Блок 22 –  обнуление переменной

Блок 23 – запуск цикла For

Блок 24 – запуск цикла For

Блок 25 – задание значений переменных

Блок 26 – вывод данных

 

 

2.2 Структурная диаграмма программного модуля

Структурная диаграмма включает три  уровня. Первый уровень –UserForm1

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

 






 

 

 

 

 

Рисунок 6 - Структурная диаграмма программного модуля

 

UserForm_Initialize – Обработка программы перед её запуском.

CommandButton1 – Заполнение исходного массива в соответствии с выбором пользователя.

CommandButton2 – Выполнение программы, основная процедура содержащее все решение программы.

CommandButton3 – Очистка формы.

CommandButton4 – Процедура для перехода на лист EXCEL.

CommandButton5 – Просмотр условия задачи.

UserForm_QueryClose – Процедура для выхода из программы с последующим её сохранением по желанию пользователя.

 

2.3 Разработка пользовательского  интерфейса

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




 

Рисунок 7- Интерфейс программного модуля.

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

 

3 Реализация  программного модуля

3.1 Код  программы

Option Explicit

Dim a() As Integer      'исходный массив

Dim b2() As Integer     'массив для второго задания

Dim b3() As Integer     'массив для третьего задания

Dim i As Integer        'для циклов

Dim j As Integer        'для циклов

Dim n As Integer        'количество строк матрицы

Dim m As Integer        'количество столбцов матрицы

Dim k As Integer        'номер столбца для определения суммы квадратов элементов

Dim s As String         'для задания ColumnWidths

Dim tmp As Double       'буфер временного числа для  rnd

Dim tmpm() As Integer   'буфер временного массива для  преобразования

Dim ans As String       'для ДО

Dim P As Integer        'размер  одномерной матрицы

Dim ks As Integer       'сумма  квадратов элементов k-го столбца

Dim abs_max As Integer  'максимальный по  модулю элемент

Dim iabs_max As Integer 'номер строки максимального  по модулю элемента

Dim jabs_max As Integer 'номер столбца максимального  по модулю элемента

Dim g As String         'для  вывода информации

 

 

Private Sub Label1_Click()

 

End Sub

 

Private Sub Label5_Click()

 

End Sub

 

Private Sub ListBox1_Click()

 

End Sub

 

Private Sub ListBox2_Click()

 

End Sub

 

Private Sub ListBox3_Click()

 

End Sub

 

Private Sub OptionButton1_Click()

 

End Sub

 

Private Sub OptionButton2_Click()

 

End Sub

 

Private Sub OptionButton3_Click()

 

End Sub

 

Private Sub OptionButton4_Click()

 

End Sub

 

Private Sub TextBox1_Change()

 

End Sub

 

Private Sub TextBox3_Change()

 

End Sub

 

Private Sub UserForm_Initialize()

TextBox1.ControlTipText = "Введите количество строк матрицы"

TextBox2.ControlTipText = "Введите количество  столбцов матрицы"

TextBox3.ControlTipText = "Введите номер  столбца k"

Frame1.ControlTipText = "Выберите спосб  заполнения матрицы"

Frame2.ControlTipText = "Выберите спосб  вывода матрицы и информации"

CommandButton1.ControlTipText = "Заполнение матрицы"

CommandButton2.ControlTipText = "Выполнение задания"

ListBox1.ControlTipText = "Область исходной  матрицы"

ListBox2.ControlTipText = "Область преобразованной  матрицы"

CommandButton3.ControlTipText = "С помощью этой кнопки можно очистить все введенные данные"

CommandButton4.ControlTipText = "Переход на лист EXCEL"

CommandButton5.ControlTipText = "Посмотреть условие  задачи"

Label5.ControlTipText = "Область вывода  информации"

End Sub

 

Private Sub CommandButton1_Click()

 

    'проверка введенных данных

 

If Not IsNumeric(TextBox1.Text) Then

    MsgBox "Количество строк матрицы должно быть целым натуральным числом большим или раным 1", vbExclamation, "Внимание! Ошибка ввода!"

    TextBox1.Text = ""

    TextBox1.SetFocus

    Exit Sub

End If

If Not IsNumeric(TextBox2.Text) Then

  MsgBox "Количество столбцов матрицы должно быть целым натуральным числом большим или раным 1", vbExclamation, "Внимание! Ошибка ввода!"

  TextBox2.Text = ""

  TextBox2.SetFocus

  Exit Sub

End If

If CDbl(TextBox1.Text) < 1 Then

  MsgBox "Количество строк матрицы должно быть целым числом большим 1", vbExclamation, "Внимание! Ошибка ввода!"

  TextBox1.Text = ""

  TextBox1.SetFocus

  Exit Sub

End If

If CDbl(TextBox2.Text) < 1 Then

  MsgBox "Количество столбцов матрицы должно быть целым числом большим 1", vbExclamation, "Внимание! Ошибка ввода!"

  TextBox2.Text = ""

  TextBox2.SetFocus

  Exit Sub

End If

If Not Int(TextBox1.Text) = TextBox1.Text Then

    MsgBox "Количество строк матрицы должно быть целым числом большим или раным 1", vbExclamation, "Внимание!  Ошибка ввода!"

    TextBox1.Text = ""

    TextBox1.SetFocus

    Exit Sub

End If

If Not Int(TextBox2.Text) = TextBox2.Text Then

    MsgBox "Количество столбцов матрицы должно быть целым числом большим или раным 1", vbExclamation, "Внимание!  Ошибка ввода!"

    TextBox2.Text = ""

Информация о работе Разработка специализированного программного модуля