Алгоритмизация и программирование процессов обработки данных в среде Visual Basic 6

Автор работы: Пользователь скрыл имя, 18 Марта 2013 в 15:38, курсовая работа

Описание работы

В данной работе изложены 6 заданий.
Название работы: Задание 1.
Тема задания: “Разветвляющиеся вычислительные процессы”.
Цель задания: Освоение методов программирования решения задач, требующих выполнения разных участков алгоритма в зависимости от истинности или ложности некоторого условия. Ознакомление с логическим типом данных, операциями отношений, логическими функциями и формами условного оператора и оператора выбора.

Файлы: 1 файл

курсовой проект.doc

— 655.00 Кб (Скачать файл)

 

Добавляем к проекту  с помощью пункта “Проект” главного меню стандартный модуль. Его имя нужно установить отличающимся от имени модуля, созданного при выполнении Задания 5. В созданный модуль записываем процедуру, обеспечивающую подключение созданной БД к нашему проекту:

 

Public Sub Connect(db$, tb$, cn As Object, rs As Object)

  cn.ConnectionString = "Driver=Microsoft Access Driver (*.mdb)"

  cn.Open ("Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & _

  CurDir & "\" & db & ".mdb")

  rs.ActiveConnection = cn

  rs.CursorType = adOpenDynamic

  rs.LockType = adLockPessimistic

  rs.Open tb

End Sub

 

Эту процедуру можно рассматривать в качестве стандартной и ничего в ней изменять не следует.

         Теперь выполняем команду: “Проект \ Информация …”, в открывшемся окне находим строку “ Microsoft ActiveX Data Objects 2.0 Library” и щелкаем на значке квадратика в начале этой строки. Этим мы подключили к нашему проекту библиотеку, содержащую нужные нам объекты ActiveX. Для завершения операции щелкаем в окне кнопку Ok.

 

В разделе General формы объявляем общедоступные переменные:

 

 Public cn As New ADODB.Connection, rs As New ADODB.Recordset

Public st$, kolzap%

 

        Переходим к программированию пунктов созданного нами пользовательского меню. Каждый из этих пунктов аналогичен командной кнопке. Поэтому для каждого из них можно создать процедуру обработки его события Click. Для задачи образца Задания № 6 эти процедуры будут следующими:

 

                    Процедуры рабочей формы:

 

          Процедура  вывода на экран таблицы “Сессия”:

 

Private Sub mnuSessia_Click()

  Dim i%, cn1 As New ADODB.Connection, rs1 As New ADODB.Recordset

  Label1.Visible = False: Text1.Visible = False

           ' Подключаем объекты ADO к БД

  Call Connect("Institut", "Сессия", cn1, rs1)

 

          ' Определяем количество записей в таблице "Сессия"

  kolzap = 0

  Do While Not rs1.EOF

    rs1.MoveNext

    kolzap = kolzap + 1

  Loop

                 ' Задаем параметры элемента MSFlexGrid

 

  flg.Cols = rs1.Fields.Count: flg.Rows = kolzap + 1

  For i = 0 To rs1.Fields.Count - 1

    flg.ColWidth(i) = flg.Width / (rs1.Fields.Count + 1)

  Next i

             ' Задаем заголовки столбцов элемента MSFlexGrid

 

  flg.FormatString = "^ № п/п |^ Шифр |^ Курс |^ Группа " & _

  "|<    ФИО     |^ Оц 1 |^ Оц 2 |^ Оц 3 |^ Оц 4 "

 

          ' Заносим в MSFlexGrid данные из таблицы "Сессия"

  rs1.MoveFirst

  For i = 1 To kolzap

    flg.TextMatrix(i, 0) = i

    flg.TextMatrix(i, 1) = rs1.Fields(0)

    flg.TextMatrix(i, 2) = rs1.Fields(1)

    flg.TextMatrix(i, 3) = rs1.Fields(2)

    flg.TextMatrix(i, 4) = rs1.Fields(3)

    flg.TextMatrix(i, 5) = rs1.Fields(4)

    flg.TextMatrix(i, 6) = rs1.Fields(5)

    flg.TextMatrix(i, 7) = rs1.Fields(6)

    flg.TextMatrix(i, 8) = rs1.Fields(7)

    rs1.MoveNext

  Next i

             ' Закрываем подключение ADO к БД и освобождаем

             ' занимаемую объектами ADO память

  rs1.Close

  Set rs1 = Nothing

  cn1.Close

  Set cn1 = Nothing

End Sub

 

 

                  Вид формы с выводом данных  таблицы ”Сессия” БД.

 

          Процедура вывода на экран таблицы “Специальность”:

 

Private Sub mnuSpecialnost_Click()

  Dim i%, cn2 As New ADODB.Connection, rs2 As New ADODB.Recordset

 

  Label1.Visible = False

  Text1.Visible = False

 

                ' Подключаем объекты ADO к БД

  

  Call Connect("Institut", "Специальность", cn2, rs2)

 

          ' Определяем количество записей в таблице "Специальность"

         

  kolzap = 0

  Do While Not rs2.EOF

    rs2.MoveNext

    kolzap = kolzap + 1

  Loop

 

             ' Задаем параметры элемента MSFlexGrid

 

  flg.Cols = rs2.Fields.Count: flg.Rows = kolzap + 1

  For i = 0 To rs2.Fields.Count - 1

    flg.ColWidth(i) = flg.Width / (rs2.Fields.Count + 1)

  Next i

  

             ' Задаем заголовки столбцов элемента MSFlexGrid

 

  flg.FormatString = "^ № п/п |^ Шифр |< Название  |^Потребность"

 

            ' Заносим в MSFlexGrid данные из таблицы "Специальность"

 

  rs2.MoveFirst

  For i = 1 To kolzap

    flg.TextMatrix(i, 0) = i

    flg.TextMatrix(i, 1) = rs2.Fields(0)

    flg.TextMatrix(i, 2) = rs2.Fields(1)

    flg.TextMatrix(i, 3) = rs2.Fields(2)

    rs2.MoveNext

  Next i

    

             ' Закрываем подключение ADO к БД и освобождаем

             ' занимаемую объектами ADO память

 

  rs2.Close

  Set rs2 = Nothing

  cn2.Close

  Set cn2 = Nothing

End Sub

 

 

Вид формы с  выводом данных таблицы ”Специальность”  БД.

 

                         Процедуры решения задачи:

 

Private Sub mnuSpravka1_Click()

  Dim sr!(), i%, j%, k%, osr!, max%, sum

 

  Label1.Visible = True: Text1.Visible = True

 

         ' Создаем объекты Connection и RecordSet для таблицы "Сессия"

 

  Dim cn1 As New ADODB.Connection, rs1 As New ADODB.Recordset

 

          ' Создаем объекты Connection и RecordSet для таблицы "Специальность"

 

  Dim cn2 As New ADODB.Connection, rs2 As New ADODB.Recordset

    

                   ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Специальность", cn2, rs2)

    

             ' Подсчитываем кол-во записей в таблице

 

  max = 0

  kolzap = 0

  Do While Not rs2.EOF

    If max < rs2.Fields(2) Then max = rs2.Fields(2)

    rs2.MoveNext

    kolzap = kolzap + 1

  Loop

  ReDim sr(1 To kolzap)

 

             ' Задаем параметры элемента MSFlexGrid

 

  flg.Clear

  flg.Cols = rs2.Fields.Count: flg.Rows = kolzap + 1

  For i = 0 To rs2.Fields.Count - 1

    flg.ColWidth(i) = flg.Width / (rs2.Fields.Count + 1)

  Next i

  

             ' Задаем заголовки столбцов элемента MSFlexGrid

 

  flg.FormatString = "^ № п/п |^ Шифр  |< Название  |^Потребность |^ Кол-во  "

   

  rs2.MoveFirst

  k = 0

  For i = 1 To kolzap

    If max = rs2.Fields(2) Then

      k = k + 1

      flg.TextMatrix(k, 0) = i

      flg.TextMatrix(k, 1) = rs2.Fields(0)

      flg.TextMatrix(k, 2) = rs2.Fields(1)

      flg.TextMatrix(k, 3) = rs2.Fields(2)

    End If

    rs2.MoveNext

  Next i

 

           ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Сессия", cn1, rs1)

 

          ' Определяем количество записей в таблице "Сессия"

         

  kolzap = 0

  Do While Not rs1.EOF

    If rs1.Fields(1) = 1 And rs1.Fields(0) = flg.TextMatrix(k, 1) Then

       sum = sum + 1

    End If

    rs1.MoveNext

    kolzap = kolzap + 1

  Loop

  flg.TextMatrix(k, 4) = sum

 

 

 

'           ' Окончательно закрываем подключение  объектов ADO к БД.

'

  rs1.Close

  Set rs1 = Nothing

  cn1.Close

  Set cn1 = Nothing

  rs2.Close

  Set rs2 = Nothing

  cn2.Close

  Set cn2 = Nothing

End Sub

 

Вид формы с  выводом  ”Справка1”.

 

Private Sub mnuSpravka2_Click()

  Dim sr!(), i%, j%, k%, osr!, max%, sum, shifr

 

  Label1.Visible = True: Text1.Visible = True

 

         ' Создаем объекты Connection и RecordSet для таблицы "Сессия"

 

  Dim cn1 As New ADODB.Connection, rs1 As New ADODB.Recordset

 

          ' Создаем объекты Connection и RecordSet для таблицы "Специальность"

 

  Dim cn2 As New ADODB.Connection, rs2 As New ADODB.Recordset

    

                   ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Специальность", cn2, rs2)

    

             ' Подсчитываем кол-во записей в таблице

 

  sh = InputBox("Введите специальность")

  Do While Not rs2.EOF

    If sh = rs2.Fields(1) Then shifr = rs2.Fields(0)

    rs2.MoveNext

  Loop

'  ReDim sr(1 To kolzap)

 

   

           ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Сессия", cn1, rs1)

 

          ' Определяем количество записей в таблице "Сессия"

 

  kolzap = 0

  Do While Not rs1.EOF

    rs1.MoveNext

    kolzap = kolzap + 1

  Loop

            

             ' Задаем параметры элемента MSFlexGrid

 

  flg.Clear

  flg.Cols = rs1.Fields.Count: flg.Rows = kolzap + 1

  For i = 0 To rs1.Fields.Count - 1

    flg.ColWidth(i) = flg.Width / (rs1.Fields.Count + 1)

  Next i

  

             ' Задаем заголовки столбцов элемента MSFlexGrid

 

  flg.FormatString = "^ № п/п |^ Курс |^ Группа " & _

  "|<    ФИО     |^ Оц 1 |^ Оц 2 |^ Оц 3 |^ Оц 4 "

 

  k = 0

  rs1.MoveFirst

  For i = 1 To kolzap

    If rs1.Fields(0) = shifr Then

      k = k + 1

      flg.TextMatrix(k, 0) = k

      flg.TextMatrix(k, 1) = rs1.Fields(1)

      flg.TextMatrix(k, 2) = rs1.Fields(2)

      flg.TextMatrix(k, 3) = rs1.Fields(3)

      flg.TextMatrix(k, 4) = rs1.Fields(4)

      flg.TextMatrix(k, 5) = rs1.Fields(5)

      flg.TextMatrix(k, 6) = rs1.Fields(6)

      flg.TextMatrix(k, 7) = rs1.Fields(7)

    End If

    rs1.MoveNext

  Next i

  

 

   ' Окончательно закрываем подключение объектов ADO к БД.

 

  rs1.Close

  Set rs1 = Nothing

  cn1.Close

  Set cn1 = Nothing

  rs2.Close

  Set rs2 = Nothing

  cn2.Close

  Set cn2 = Nothing

End Sub

 

 

Вид формы с  выводом  ”Справка2”.

 

Private Sub mnuSpravka3_Click()

  Dim sr!(), i%, j%, k%, osr!, max%, sum%, shifr, mas%()

 

  Label1.Visible = True: Text1.Visible = True

 

         ' Создаем объекты Connection и RecordSet для таблицы "Сессия"

 

  Dim cn1 As New ADODB.Connection, rs1 As New ADODB.Recordset

 

          ' Создаем объекты Connection и RecordSet для таблицы "Специальность"

 

  Dim cn2 As New ADODB.Connection, rs2 As New ADODB.Recordset

    

                   ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Специальность", cn2, rs2)

    

             ' Подсчитываем кол-во записей в таблице

 

  kolzap = 0

  Do While Not rs2.EOF

    rs2.MoveNext

    kolzap = kolzap + 1

  Loop

  ReDim mas%(1 To kolzap, 4)

   

             ' Задаем параметры элемента MSFlexGrid

 

  flg.Clear

  flg.Cols = rs2.Fields.Count: flg.Rows = kolzap + 1

  For i = 0 To rs1.Fields.Count - 1

    flg.ColWidth(i) = flg.Width / (rs2.Fields.Count + 1)

  Next i

  

             ' Задаем заголовки столбцов элемента MSFlexGrid

 

  flg.FormatString = "^ № п/п |^ Шифр |<Специальность|^% двоек |" & _

  "^% троек |^% четверок|^% пятерок"

   

  rs2.MoveFirst

  For i = 1 To kolzap

    flg.TextMatrix(i, 0) = i

    flg.TextMatrix(i, 1) = rs2.Fields(0)

    flg.TextMatrix(i, 2) = rs2.Fields(1)

    rs2.MoveNext

  Next i

 

           ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Сессия", cn1, rs1)

 

          ' Определяем количество записей в таблице "Сессия"

 

  rs1.MoveFirst

  Do While Not rs1.EOF

    For i = 1 To kolzap

    If rs1.Fields(0) = flg.TextMatrix(i, 1) Then

      For j = 1 To 4

        Select Case rs1.Fields(3 + j)

        Case 2

          mas(i, 1) = mas(i, 1) + 1

          flg.TextMatrix(i, 3) = mas(i, 1)

        Case 3

          mas(i, 2) = mas(i, 2) + 1

          flg.TextMatrix(i, 4) = mas(i, 2)

        Case 4

          mas(i, 3) = mas(i, 3) + 1

          flg.TextMatrix(i, 5) = mas(i, 3)

        Case 5

          mas(i, 4) = mas(i, 4) + 1

          flg.TextMatrix(i, 6) = mas(i, 4)

        End Select

      Next j

    End If

    Next i

    rs1.MoveNext

  Loop

'

  For i = 1 To kolzap

    sum = 0

    For j = 1 To 4

      sum = sum + mas(i, j)

    Next j

    For j = 1 To 4

      flg.TextMatrix(i, 2 + j) = mas(i, j) / sum * 100

    Next j

  Next i

   ' Окончательно  закрываем подключение объектов ADO к БД.

 

  rs1.Close

  Set rs1 = Nothing

  cn1.Close

  Set cn1 = Nothing

  rs2.Close

  Set rs2 = Nothing

  cn2.Close

  Set cn2 = Nothing

End Sub

 

 

Вид формы с  выводом  ”Справка1”.

 

Private Sub mnuDokum_Click()

  Dim i%, cn1 As New ADODB.Connection, rs1 As New ADODB.Recordset

  Dim sr!, sum%

  Label1.Visible = False: Text1.Visible = False

      

           ' Подключаем объекты ADO к БД

 

  Call Connect("Institut", "Сессия", cn1, rs1)

 

          ' Определяем количество записей в таблице "Сессия"

         

  kolzap = 0

  Do While Not rs1.EOF

    rs1.MoveNext

    kolzap = kolzap + 1

  Loop

                 ' Задаем параметры элемента MSFlexGrid

 

  flg.Cols = rs1.Fields.Count: flg.Rows = kolzap + 1

  For i = 0 To rs1.Fields.Count - 1

    flg.ColWidth(i) = flg.Width / (rs1.Fields.Count + 1)

  Next i

             ' Задаем заголовки столбцов элемента MSFlexGrid

 

  flg.FormatString = "^ № п/п |^Спеыиальность|^ Курс |^ Группа " & _

  "|<   ФИО     |^ Ср.балл "

 

          ' Заносим в MSFlexGrid данные из  таблицы "Сессия"

 

  rs1.MoveFirst

  For i = 1 To kolzap

    flg.TextMatrix(i, 0) = i

    flg.TextMatrix(i, 1) = rs1.Fields(0)

    flg.TextMatrix(i, 2) = rs1.Fields(1)

    flg.TextMatrix(i, 3) = rs1.Fields(2)

    flg.TextMatrix(i, 4) = rs1.Fields(3)

    sum = 0

    For j = 1 To 4

      sum = sum + rs1.Fields(3 + j)

    Next j

    sr = sum / 4

    flg.TextMatrix(i, 5) = sr

    rs1.MoveNext

  Next i

    

             ' Закрываем подключение ADO к БД и освобождаем

             ' занимаемую объектами ADO память

 

  rs1.Close

  Set rs1 = Nothing

  cn1.Close

  Set cn1 = Nothing

 

End Sub

                    

 

Вид формы с  выводом  ”Документ”.

 

                 Процедура завершения работы  приложения:

 

Private Sub mnuExit_Click()

  End

End Sub

Как обычно добавляем  к проекту форму-заставку frmZ6z. Процедура для ее командной кнопки должна иметь вид:

 

      Private Sub Command1_Click()

          frmZ6z.Hide

          frmQuest.Show

      End Sub


Информация о работе Алгоритмизация и программирование процессов обработки данных в среде Visual Basic 6