Разработка программной модели целесообразного поведения индивида в стационарных средах (автомат Крылова ("осторожный"))

Автор: Пользователь скрыл имя, 17 Января 2012 в 08:49, курсовая работа

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

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

Содержание

Введение………………………………………………………………….3
Выбор и обоснование средств информационной системы……………4
2.1. Требования к системе и ее контекст. Диаграмма использования UML…………………………………………………………………………5
2.2. Состав технических устройств (ЭВМ, устройства связи), система интерфейсов……………………………………………………………………….5
2.3. Способы взаимодействия пользователя с системой, организация вычислительных процессов………………………………………………………6
2.4. Состав информационного и программного обеспечения…………...8
2.4.1. Структура и форматы данных………………………………………8
2.4.2. Описание процедур………………………………………………...9
Указания по использованию программы…………………………15
Результаты эксперимента…………………………………………16
Взаимодействие процедур и данных……………………………...17
Ш. Заключение…………………………………………………………………...19
3.1.Достоинства и недостатки разработанной информационной системы…………………………………………………………………………...19
3.2. Пути совершенствования разработанного программного продукта…………………………………………………………………………..19
3.3. Рекомендации пользователю………………………………………...19
IV. Используемая литература…………………………………………………...20
Приложение……………………………………………………………………....21

Работа содержит 1 файл

курсач.doc

— 273.00 Кб (Скачать)

    End Sub 

    Private Sub socet2_ConnectionRequest(ByVal requestID As Long)

        If socet2.State <> sckClosed Then

            socet2.Close

            socet2.Accept (requestID)

        End If

        lblClient2.Caption = "Клиент2@50002"

        labelKlient2.Caption = "Соединение установлено"

    End Sub 

    Private Sub socet3_ConnectionRequest(ByVal requestID As Long)

        If socet3.State <> sckClosed Then

            socet3.Close

            socet3.Accept (requestID)

        End If

        lblClient3.Caption = "Клиент3@50003"

        labelKlient3.Caption = "Соединение установлено"

    End Sub

    Private Sub socet1_DataArrival(ByVal bytesTotal As Long)

        Dim strData As String

        Dim data() As String

        If (work = True) Then

           If (krug.deistvie = 0) Then

               socet1.GetData strData

               labelKlient1.Caption = strData

               labelClient.Caption = "Клиент1 data arrived: " + "total bytes are " + Str(bytesTotal)

               data = Split(strData, ";")

               ocenka1 = Val(data(0))

               porog1 = Val(data(1))

               generator1 = Val(data(2))

               krug.func1 ocenka1, porog1, generator1

           End If

        End If

    End Sub

    Private Sub socet2_DataArrival(ByVal bytesTotal As Long)

        Dim strData As String

        Dim data() As String

        If (work = True) Then

           If (krug.deistvie = 1) Then

               socet2.GetData strData

               labelKlient2.Caption = strData

               labelClient.Caption = "client2 data arrived: " + "total bytes are " + Str(bytesTotal)

               data = Split(strData, ";")

               ocenka2 = Val(data(0))

               porog2 = Val(data(1))

               generator2 = Val(data(2))

               krug.func2 ocenka2, porog2, generator2

           End If

         End If

    End Sub

    Private Sub socet3_DataArrival(ByVal bytesTotal As Long)

       Dim strData As String

        Dim data() As String

        If (work = True) Then

           If (krug.deistvie = 2) Then

               socet3.GetData strData

               labelKlient3.Caption = strData

               labelClient.Caption = "client3 data arrived: " + "total bytes are " + Str(bytesTotal)

               data = Split(strData, ";")

               ocenka3 = Val(data(0))

               porog3 = Val(data(1))

               generator3 = Val(data(2))

               krug.func3 ocenka3, porog3, generator3

           End If

         End If

    End Sub

    Private Sub socet1_close()

        work = False

        labelClient = "connection closed by client1"

        socet1.Close

    End Sub

    Private Sub socet2_close()

        work = False

        labelClient = "connection closed by client2"

        socet2.Close

    End Sub

    Private Sub socet3_close()

        work = False

        labelClient = "connection closed by client3"

        socet3.Close

    End Sub

    Private Sub btnLetOut_Click()

        Set krug = New Class1

        krug.deistvie = 0

        krug.sostoianie = 0

        krug.steps = Val(txtSteps.Text)

        work = True

    End Sub

    Private Sub krug_step()

        If krug.steps > 0 Then

            socet1.SendData Str(krug.deistvie) + ";" + Str(krug.sostoianie)

            socet2.SendData Str(krug.deistvie) + ";" + Str(krug.sostoianie)

            socet3.SendData Str(krug.deistvie) + ";" + Str(krug.sostoianie)

            btnLetOut.Caption = "Шаги: " + Str(krug.shag) + " : " + Str(krug.shag1) + " : " + Str(krug.shag2) + " : " + Str(krug.shag3)

            krug.steps = krug.steps - 1

        Else

            If ((porog1 + porog2 + porog3) / 3) > (krug.shag / Val(txtSteps.Text)) Then

                Server.txtReasonability = "Эффективно"

            Else

                Server.txtReasonability = "Не эффективно"

            End If

            socet1.Close

            socet2.Close

            socet3.Close

            labelClient.Caption = "Эксперимент закончен!!!"

        End If

    End Sub  

    Class1:

    Public Event step()

    Private varaction As Integer

    Private varsost As Integer

    Private mvarsteps As Integer

    Private mvarshag As Integer

    Private varshag1 As Integer

    Private varshag2 As Integer

    Private varshag3 As Integer 

    Public Property Let shag(ByVal vData As Integer)

        mvarshag = vData

    End Property

    Public Property Get shag() As Integer

        shag = mvarshag

    End Property 

    Public Property Let shag1(ByVal vData As Integer)

        varshag1 = vData

    End Property

    Public Property Get shag1() As Integer

        shag1 = varshag1

    End Property 

    Public Property Let shag2(ByVal vData As Integer)

        varshag2 = vData

    End Property

    Public Property Get shag2() As Integer

        shag2 = varshag2

    End Property 

    Public Property Let shag3(ByVal vData As Integer)

        varshag3 = vData

    End Property

    Public Property Get shag3() As Integer

       shag3 = varshag3

    End Property 

    Public Property Let steps(ByVal vData As Integer)

        mvarsteps = vData

    End Property

    Public Property Get steps() As Integer

        steps = mvarsteps

    End Property 

    Public Sub func1(ByVal ocenkasost As Double, ByVal ver As Double, ByVal iNum As Integer)

    If ocenkasost > ver Then

             If sostoianie < glubina Then

                sostoianie = sostoianie + 1

                shag = shag + 1

                shag1 = shag1 + 1

                Else

                shag = shag + 1

                shag1 = shag1 + 1

             End If

    Else

             If iNum = 0 Then

                 If sostoianie > 0 Then

                    sostoianie = sostoianie - 1

                    shag = shag + 1

                    shag1 = shag1 + 1

                 Else

                       If deistvie < 2 Then

                          deistvie = deistvie + 1

                       Else

                          deistvie = 0

                       End If

                    sostoianie = 0

                    shag = shag + 1

                    shag1 = shag1 + 1

                  End If

              Else

                   shag = shag + 1

                   shag1 = shag1 + 1

              End If

    End If

    RaiseEvent step

    End Sub 

    Public Sub func2(ByVal ocenkasost As Double, ByVal ver As Double, ByVal iNum As Integer)

    If ocenkasost > ver Then

          If sostoianie < glubina Then

             sostoianie = sostoianie + 1

             shag = shag + 1

             shag2 = shag2 + 1

           Else

             shag = shag + 1

             shag2 = shag2 + 1

           End If

    Else

          If iNum = 0 Then

              If sostoianie > 0 Then

                 sostoianie = sostoianie - 1

                 shag = shag + 1

                 shag2 = shag2 + 1

              Else

                       If deistvie < 2 Then

                          deistvie = deistvie + 1

                        Else

                           deistvie = 0

                        End If

                 sostoianie = 0

                 shag = shag + 1

                 shag2 = shag2 + 1

              End If

         Else

           shag = shag + 1

           shag2 = shag2 + 1

          End If

    End If

    RaiseEvent step

    End Sub 

    Public Sub func3(ByVal ocenkasost As Double, ByVal ver As Double, ByVal iNum As Integer)

    If ocenkasost > ver Then

         If sostoianie < glubina Then

            sostoianie = sostoianie + 1

            shag = shag + 1

            shag3 = shag3 + 1

         Else

            shag = shag + 1

            shag3 = shag3 + 1

         End If

    Else

         If iNum = 0 Then

             If sostoianie > 0 Then

                sostoianie = sostoianie - 1

                shag = shag + 1

                shag3 = shag3 + 1

             Else

                  If deistvie < 2 Then

                     deistvie = deistvie + 1

                  Else

                      deistvie = 0

                  End If

                sostoianie = 0

                shag = shag + 1

                shag3 = shag3 + 1

             End If

          Else

             shag = shag + 1

             shag3 = shag3 + 1

          End If

    End If

    RaiseEvent step

    End Sub 

    Public Property Let sostoianie(ByVal vData As Integer)

        varsost = vData

    End Property

    Public Property Get sostoianie() As Integer

Информация о работе Разработка программной модели целесообразного поведения индивида в стационарных средах (автомат Крылова ("осторожный"))