Автор работы: Пользователь скрыл имя, 30 Марта 2013 в 09:53, курсовая работа
Целью работы является создание приложения в Visual Basic for Application, позволяющего осуществлять следующие операции: Определить сумму квадратов элементов k-го столбца массива.
Все элементы массива. Сумма индексов которых четна, заменить числом -1.
Преобразовать матрицу путем удаления из исходной матрицы строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное учреждение высшего профессионального образования
«Белорусско-Российский университет»
Кафедра «Автоматизированные системы управления»
Разработка специализированного
программного модуля
Курсовая работа
по дисциплине «Информатика»
051. 1-36 01 01.. 81-01
Допущен: «__»____________ Защитил: «__»_____________ Оценка__________ Комиссия: ___________/____________ ___________/____________ |
Выполнил: студент гр.
Проверил:
|
2012
Содержание
Целью работы является создание приложения в Visual Basic for Application, позволяющего осуществлять следующие операции:
Данная программа позволяет сделать вычисления более удобными. Программный модуль быстро производит вычисления, что позволяет сократить время расчётов.
В разделе 1 рассматривается логическая модель задачи, описываются входные и выходные данные, а также возможные ошибки и методы их обработки.
В разделе 2 приводится структурная диаграмма, которая отражает взаимосвязь модулей программного комплекса, разработка схемы программного модуля и ее описание, изображается схема алгоритма процедуры, также представлена пользовательская форма.
Раздел 3 включает в себя код программы и описание использованных операторов и функций.
В разделе 4 проводится тестирование программного модуля и сравнение его c полученными результатами.
Для того что бы определить сумму квадратов элементов k-го столбца массива, нужно возвести в квадрат каждый элемент этого столбца, а затем просуммировать их .
Чтобы все элементы массива, сумма индексов которых четна, заменить числом -1, нужно определить положение элементов, затем сложить их индексы, если в сумме четное число, заменяем элемент массива на -1, если не четное переходим к следующему элементу.
Чтобы преобразовать матрицу путем удаления из исходный матрицы строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением ,нужно взять модуль от каждого элемента, затем сравнить модули между собой и выяснить местоположение элемента с максимальным, по модулю значением, затем удалить строку и столбец содержащие этот элемент.
Входными данными для решения поставленной задачи является количество строк и столбцов матрицы, элементы матрицы а(i, j), выбор варианта ввода вывода.
Входные данные в курсовом проекте приведены в таблице 1.
Таблица 1 – Входные данные
Название |
Диапазон возможных значений |
Количество строк матрицы |
>1, числовое, целое |
Количество столбцов матрицы |
>1, числовое, целое |
Элементы матрицы a(i, j) |
[-10;10] |
k |
>1,числовое, целое |
Результатом работы программы является вычисления, поставленные в целях задания. Выходные данные представлены в таблице 2.
Таблица 2 – Выходные данные
Название |
Вид представления |
Вывод |
Сумма квадратов элементов массива |
Целое число |
На форму пользователя, на лист EXCEL |
Элементы полученного массива |
Целые числа |
На форму пользователя, на лист EXCEL |
При выполнении программного модуля
была предусмотрена обработка
Ввод исходных данных ,количества строк, не соответствующих требованиям программы;
Рисунок 1 – Сообщение об ошибке
Ввод исходных данных ,количества столбцов, не соответствующих требованиям программы;
Рисунок 2 – Сообщение об ошибке
Попытка выполнить программу
без заданного исходного
Рисунок 3 – Сообщение об ошибке
Неверно задан k-ый столбец.
Рисунок 4 – Сообщение об ошибке
2 Проектирование программного модуля
Рисунок 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 – вывод данных
Структурная диаграмма включает три уровня. Первый уровень –UserForm1
-пользовательская форма с
Рисунок 6 - Структурная диаграмма программного модуля
UserForm_Initialize – Обработка программы перед её запуском.
CommandButton1 – Заполнение исходного массива в соответствии с выбором пользователя.
CommandButton2 – Выполнение программы, основная процедура содержащее все решение программы.
CommandButton3 – Очистка формы.
CommandButton4 – Процедура для перехода на лист EXCEL.
CommandButton5 – Просмотр условия задачи.
UserForm_QueryClose – Процедура для выхода из программы с последующим её сохранением по желанию пользователя.
2.3 Разработка пользовательского интерфейса
Цель создания эргономичного интерфейса состоит в том, чтобы отобразить информацию наиболее эффективно для человеческого восприятия и структурировать отображение на дисплее наиболее важную информацию и минимизировать общую информацию на экране и представить только то, что является необходимым для пользователя.
Рисунок 7- Интерфейс программного модуля.
Интерфейс программного модуля содержит поясняющие подписи к окнам ввода и вывода данных, удобные и понятные па названию кнопки для запуска операций.
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 = ""
Информация о работе Разработка специализированного программного модуля