Структура приложения.
Приложение для решения задачи сетевого планирования
Rem: Процедура ввода элементов матрицы с клавиатуры. Rem: Процедура ввода элементов матрицы с клавиатеры. Rem: процедура загрузки формы, подготовка к работе. Public Sub fgrid (arr () As Single, km As Integer, kn As Integer, g As MSFlexGrid). Dim i As Byte, j As Byte, ii As Byte, jj As Byte, d As Integer, az As Integer. Rem: Процедура ввода элементов случайным образом. Rem: Процедура ввода… Читать ещё >
Структура приложения. Приложение для решения задачи сетевого планирования (реферат, курсовая, диплом, контрольная)
РАСПЕЧАТКА ФОРМ И ТАБЛИЦ ЗНАЧЕНИЙ СВОЙСТВ
Список объектов и их свойств.
Объект. | Name. | Caption. |
Command 1. | BtnExit. | Exit. |
Label1. | Lblm. | Введите количество строк. |
Label2. | Lbln. | Введите количество столбцов. |
Label3. | lblIM. | Исходный массив. |
Label4. | lblRM. | Результирующий массив. |
Label5. | lblInfo. | |
Label6. | lblInfo1. | |
Text1. | txtm. | |
Text2. | txtn. | |
MSFlexGrid1. | Gr1. | |
MSFlexGrid1. | Gr2. | |
Меню. | mnuPrg. | Программа. |
mnuStart. | Запуск. | |
mnuPStart. | Повторный запуск. | |
mnuExit. | Выход. | |
mnuFile. | Файл. | |
mnuZfile. | Запись массива в файл. | |
mnuRfil. | Редактирование данных в файле. | |
mnuVvod. | Ввод массива. | |
mnuOfil. | Из файла. | |
mnuKlav. | С клавиатуры. | |
mnuRand. | Автоввод. | |
mnuRech. | Решение. | |
CommonDialog1. | Cdlg. |
Таблица переменных.
Переменная. | Идентификатор | Тип. |
Исходный массив. | a (). | Integer. |
Результирующий массив. | b (). | Integer. |
Количество строк. | m. | Integer. |
Количество столбцов. | n. | Integer. |
Размер матрицы, записанной в файл. | cf, rf. | Integer. |
Переменные цикла. | i, j, ii, jj. | Byte. |
Вспомогательные переменные. | az, t, k. | Integer. |
Счетчик. | d. | Integer. |
Сообщения. | massage. | String. |
Верхняя и нижняя граница случайных чисел. | mm, nn. | Integer. |
· Программные коды frmMatrix
Option Explicit.
Private a () As Single, b () As Single, fname As String.
Private m As Integer, n As Integer.
Rem: процедура загрузки формы, подготовка к работе.
Private Sub Form_Load ().
mnuFile.Visible = False.
mnuVvod.Visible = False.
mnuTask.Visible = False.
mnuPStart.Visible = False.
Label1.Visible = False.
Label2.Visible = False.
End Sub.
Rem: процедура вывода формы About.
Private Sub mnuInfo_Click ().
frmAbout.Show.
End Sub.
Rem: Запуск приложения выбором меню «Запуск» .
Private Sub mnuStart_Click ().
Label1.Visible = True.
Label1.Caption = «Введите количество строк» .
Label2.Visible = True.
Label2.Caption = «Введите количество столбцов» .
txtm.Text = «» .
txtn.Text = «» .
txtm.SetFocus.
mnuVvod.Visible = False.
mnuTask.Visible = False.
mnuPStart.Visible = True.
mnuStart.Visible = False.
End Sub.
Rem: Процедура ввода количества строк матрицы.
Private Sub txtm_KeyPress (KeyAscii As Integer).
m = Val (txtm.Text).
If KeyAscii = 13 Then txtn.SetFocus.
End Sub.
Rem: Процедура ввода количества столбцов матрицы.
Private Sub txtn_KeyPress (KeyAscii As Integer).
n = Val (txtn.Text).
If KeyAscii = 13 Then.
If m 0 And n 0 And m 1 And n 1 Then.
ReDim a (1 To m, 1 To n).
mnuVvod.Visible = True.
Label1.Caption = «Количество строк» .
Label2.Caption = «Количество столбцов» .
Else.
MsgBox («Повторите ввод размера массива»).
txtm.Text = «» .
txtn.Text = «» .
txtm.SetFocus.
Exit Sub.
End If.
End If.
End Sub.
Rem: Процедура ввода элементов матрицы с клавиатуры.
Private Sub mnuKlav_Click ().
mnuKlav.Checked = True.
mnuRand.Checked = False.
mnuOfile.Checked = False.
Call Klav (a (), m, n).
mnuFile.Visible = True.
mnuRech.Visible = True.
Call fgrid (a (), m, n, Gr1).
End Sub.
Rem: Процедура ввода элементов матрицы случайным образом.
Public Sub mnuRand_Click ().
Dim nn As Integer, mm As Integer.
mnuRand.Checked = True.
mnuKlav.Checked = False.
mnuOfile.Checked = False.
nn = Val (InputBox («Введите нижнюю границу»)).
mm = Val (InputBox («Введите верхнюю границу»)).
Call Rand (a (), m, n, nn, mm).
mnuFile.Visible = True.
mnuTask.Visible = True.
Call fgrid (a (), m, n, Gr1).
End Sub.
Rem: Процедура редактирования элементов матрицы в файле.
Private Sub mnuRfile_Click ().
Dim i As Byte, j As Byte.
Open fname For Input As #1.
For i = 1 To m.
For j = 1 To n.
Input #1, a (i, j).
a (i, j) = Val (InputBox («Элемент» & Str (i) & «-й строки» & Str (j) & «-го столбца», «Редактирование элементов», Str (a (i, j)))).
Next j.
Next i.
Close #1.
Call fgrid (a (), m, n, Gr1).
End Sub.
Rem: Процедура повторного запуска программы на выполнение.
Private Sub mnuPstart_Click ().
Call mnuStart_Click.
Gr1.Clear.
Gr2.Clear.
End Sub.
Rem: Процедура выхда из приложения.
Private Sub mnuExit_Click ().
End.
End Sub.
Private Sub btnExit_Click ().
End.
End Sub.
Rem: Процедуры решения Задачи.
Private Sub mnuTask_Click ().
ReDim b (1 To m, 1 To n).
Call Inic (b (), m, n, a ()).
Call Task (b ()).
Call fgrid (b (), m, n, Gr2).
End Sub.
Public Sub Task (arr () As Single).
Dim i As Byte, j As Byte, ii As Byte, jj As Byte, d As Integer, az As Integer.
Dim nn, mm As Integer.
az = Val (InputBox («Введите любое число в пределах от «& Str (nn) & «до «& Str (mm), «Ввод Числа»)).
For i = 1 To m.
For j = 1 To n.
d = 0.
For ii = i — 1 To i + 1.
For jj = j — 1 To j + 1.
If i = ii And j = jj Then GoTo 1.
If ii m Or jj n Then GoTo 1.
If az = a (ii, jj) Then d = d + 1.
1 Next jj.
Next ii.
If d >= 2 Then.
arr (i, j) = 1.
Else.
arr (i, j) = 0.
End If.
Next j.
Next i.
massage = «Заданное число «& az.
lblInfo1.Caption = massage.
End Sub.
Rem: Процедура ввода элементов матрицы из файла.
Private Sub mnuOfile_Click ().
Dim i As Byte, j As Byte.
mnuOfile.Checked = True.
mnuKlav.Checked = False.
mnuRand.Checked = False.
Call NameFile (fname, CDlg, False).
Open fname For Input As #1.
For i = 1 To m.
For j = 1 To n.
Input #1, a (i, j).
Next j.
Next i.
Close #1.
mnuFile.Visible = True.
mnuTask.Visible = True.
Call fgrid (a (), m, n, Gr1).
End Sub.
Rem: Процедура записи элементов матрицы в файл.
Private Sub mnuZfile_Click ().
Dim i As Byte, j As Byte.
Call NameFile (fname, CDlg, True).
Open fname For Output As #1.
For i = 1 To m.
For j = 1 To n.
Print #1, Tab ((j — 1) * 6); a (i, j).
Next j.
Next i.
Close #1.
End Sub.
Rem: Процедура выхода из приложения.
Private Sub Form_Unload (Cancel As Integer).
If MsgBox («Уверены?», vbYesNo, «Выход?») = vbYes Then.
Unload Me.
Set frmMatrix = Nothing.
Else.
Cancel = 1.
End If.
End Sub.
· Программные коды Module 1
Rem: Процедура ввода элементов случайным образом.
Public Sub Rand (arr () As Single, km As Integer, kn As Integer, nn As Integer, mm As Integer).
Dim massage As String.
Dim i As Byte, j As Byte.
Randomize.
For i = 1 To km.
For j = 1 To kn.
arr (i, j) = Int ((mm — nn) * Rnd + nn).
Next j.
Next i.
massage = «Введена матрица с диапазоном чисел от «& nn & «до «& mm.
frmMatrix.lblInfo.Caption = massage.
End Sub.
Rem: Процедура ввода элементов матрицы с клавиатеры.
Public Sub Klav (arr () As Single, km As Integer, kn As Integer).
Dim i As Byte, j As Byte.
For i = 1 To km.
For j = 1 To kn.
arr (i, j) = Val (InputBox («Введите элемент» & Str (i) & «-й строки» & Str (j) & «-ого столбца», «Ввод элементов исходного массива»)).
Next j.
Next i.
End Sub.
Rem: Процедура вывода элементов матрицы в MSFlexGrid.
Public Sub fgrid (arr () As Single, km As Integer, kn As Integer, g As MSFlexGrid).
Dim i As Byte, j As Byte.
frmMatrix.Gr1.Width = g. ColWidth (i) * kn.
frmMatrix.Gr1.Height = g. RowHeight (i) * km + 100.
frmMatrix.Gr2.Width = g. ColWidth (i) * kn.
frmMatrix.Gr2.Height = g. RowHeight (i) * km + 100.
g.Cols = kn.
g.Rows = km.
For j = 0 To kn — 1.
g.ColWidth (j) = 300.
g.ColAlignment (j) = 1.
Next j.
For i = 0 To km — 1.
g.Row = i.
For j = 0 To kn — 1.
g.Col = j.
g.Text = Format (arr (i + 1, j + 1), «0.#»).
Next j.
Next i.
End Sub.
Rem: Процедура инициализации элементов результирующей матрицы.
Public Sub Inic (arr () As Single, km As Integer, kn As Integer, a () As Single).
Dim i As Byte, j As Byte.
For i = 1 To km.
For j = 1 To kn.
arr (i, j) = a (i, j).
Next j.
Next i.
End Sub.
Public Sub NameFile (f As String, a As CommonDialog, k As Boolean).
On Error GoTo Line1.
a.FileName = f.
a.Filter = «Все файлы (*.*)|*.*|Текстовые (*.txt)|*.txt|» «(*.dat)|*.dat» .
a.FilterIndex = 3.
If k = True Then.
a.ShowSave.
Else.
a.ShowOpen.
End If.
f = a.FileName.
Exit Sub.
Line1:
End Sub.
Программные коды frmAbout.
Private Sub cmdOK_Click ().
Unload Me.
End Sub.