Программирование Visual Basic

Автор: Пользователь скрыл имя, 20 Декабря 2011 в 19:33, лабораторная работа

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

Задание
Поместить на форму два текстовых поля и командную кнопку. Свойству Name первого поля задать значение Field1, второго — Field2. Свойству Text первого поля задать значение Иванов, другого — Петров.

Оглавление

1. Работа с текстовыми данными………………………………………………2
2. Работа с датами……………………………………………………………… 5
3. Построение треугольника из частей отрезка………………………………11
4. Изменение цвета текстового поля………………………………………….17
5. Список использованных источников информации………………………..22

Файлы: 1 файл

лаб basic.doc

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

    Содержание 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    1. Работа с текстовыми данными

    Задание

          Поместить на форму два текстовых поля и  командную кнопку. Свойству Name первого поля задать значение Field1, второго — Field2. Свойству Text первого поля задать значение Иванов, другого — Петров.

          В модуле кода формы написать следующее:

    Option Explicit

    Private Sub cmdGo_Click()

          Field1.Text = Field2.Text

          Field2.Text = Field1.Text

    End Sub

    Вопросы к заданию

    1. Разработать интерфейс пользователя и привести в отчёте изображение формы с описанием всех объектов интерфейса и их назначения.

    Ответ: Интерфейс пользователя представлен на рисунке 1

       

    1—поле  вывода; 2—поле вывода; 3—кнопка

    Рисунок 1− Интерфейс пользователя 
     
     
     

    1.  В отчёте объяснить результат работы программы.

    Ответ:

       При нажатии на кнопку «Задание 1» свойству Text элемента Field1 присваивается значение свойства Text элемента Field2. При этом происходит замена и старое значение удаляется. Результатом выполнения данных действий показан на рисунке 2.  

        

       Рисунок 2 − Результат задания

    1. Поменять местами строки с операторами присваивания. В отчёте объяснить результат.

    Ответ:

       При замене строк местами свойству Text элемента Field2 присваивается значение свойства Text элемента Field1. При этом старое значение свойства Text  элемента Field2 исчезает. Вместо него появляется новое значение. Результат выполнения данных действий показан на рисунке 3. 

       

    .

    Рисунок 3 − Результат  задания

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

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

       Переменной  х присваивается значение первого  поля, а у второго. Затем значению первого поля присваивается значение у, а значению второго поля значение х.  В итоге значения полей поменяются местами. Результат показан на рисунке 4.

       

       Рисунок 4 − Результат  задания 

    Листинг программы: 

    Private Sub cmdGo3_Click() ' меняем поля местами

        Dim x As String

        Dim y As String

        x = field1.Text ' заносим в буфер значение поля 1

        y = field2.Text ' заносим в буфер значение поля 2

        field1.Text = y

        field2.Text = x

    End Sub

       Листинг программы: 

       Option Explicit

       Private Sub cmdGo1_Click() ' присваиваем значение  поля 2 значению поля 1

           field1.Text = field2.Text

           field2.Text = field1.Text

       End Sub 

       Private Sub cmdGo2_Click() ' присваиваем значение  поля 1 значению поля 2

         

           field2.Text = field1.Text

           field1.Text = field2.Text

       End Sub 

       Private Sub cmdGo3_Click() ' меняем поля местами

           Dim x As String

           Dim y As String

           x = field1.Text ' заносим в буфер значение поля 1

           y = field2.Text ' заносим в буфер значение  поля 2

           field1.Text = y

           field2.Text = x

       End Sub 

       Private Sub cmdGo4_Click() 'возвращаем исходные  значения

           field1.Text = "Иванов "

           field2.Text = "Петров"

       End Sub 
     
     
     
     
     
     
     
     
     
     

  1. Работа  с датами

    Задание

          Разработать программу  для обработки вводимой пользователем  даты.

          Программа должна реализовывать следующие  функции.

  1. Показывать составные части введённой даты (число, месяц, год) по отдельности (функции DateSerial, Day, Month, Year, раздел справки Dates, подраздел Dates and Times Keyword Summary).
  2. Дублировать вывод номера месяца в году его текстовым названием (например: месяц апрель — выводится число 4 и название месяца — апрель).
  3. Показывать название дня недели для введённой даты (функция WeekDay).
  4. Показывать текущую дату и время.
  5. Вычислять разницу между указанной и текущей датой в целых годах.
  6. Определять день недели первого числа месяца указанной даты (DateSerial).

    Вопросы к заданию

  •  Разработать интерфейс пользователя. В отчёте привести список объектов интерфейса и их назначение.

    Ответ: Интерфейс пользователя приведен на рисунке 5. 
     
     
     
     
     
     
     
     
     

     

    1—поле ввода даты; 2 —метка «День»; 3 —метка «Месяц»; 4 — метка «Год»;

    5 — метка «День недели»; 6 — метка «день недели 1-го числа введенного месяца»;

    7 — метка «Разница между текущей и введенной датой в годах»; 8 — метка «текущее время»;

    9 — кнопка «Вычислить»

    Рисунок 5 – Интерфейс пользователя

  •  В отчёте привести алгоритм дублирования номера месяца в году его текстовым названием.

    Ответ:

          Для дублирования номера месяца в году его текстовым названием необходимо ввести дополнительную переменную, значению которой присвоить числовой номер  месяца. Функция Month(varDate) возвращает числовой номер месяца.

          Затем нужно выбрать исходя из значения числового номера месяца какое значение присвоить переменной mes. При значении числового номера месяца   1 – переменной mes присваивается значение «Январь», 2 –«Февраль» и т.д. после сравнения и присвоения текстового значения, полученное значение переменной mes выводится на экран. 
     
     
     

  •  Проверить правильность работы программы при вводе даты в различных форматах (через точку, через дробь, с ведущими нулями и без них) и сделать выводы. Результаты проверки отразить в отчёте.

       Ответ:

    При вводе даты в формате отличном от DD.MM.YYYY получаются следующие результаты:

  1. Если ввести дату с ведущими нулями, но через пробел, точку, запятую, дробь, то результат программы будет верным так как при выборке значений из текстового поля для дня берутся два символа слева, для месяца два символа 4-й и 5-й слева, для года четыре символа справа. При этом не важно какие стоят разделители не учитываются. Если введенные числа будут больше стандартных (например: 33.01.2000), программа автоматически добавит в следующий разряд даты то, количество единиц , на которое введенное число больше (например: 33.01.2000 будет распознано программой как 02.02.2000).
  2. Если же ввести дату без ведущих нулей, то результат вычислений будет не верным т.к. переменным будут присвоены некорректные значения. Программа выдаст неверные результаты. Пример введения даты без ведущих нулей показан на рисунке 6.
 

    Рисунок 6 − Пример ввода неправильного  формата даты 

       Листинг программы:

       Option Explicit 

       Private Sub cmdEXE_Click()

           Dim varDay As Integer

           Dim varMon As Integer

           Dim varGod As Integer

           Dim varDate As Date

           Dim varDate1 As Date

           Dim mes As String

           Dim varWeekDay As Integer

           Dim varStr As String

              

           varDay = Val(Left(tbDay.Text, 2)) 'два символа слева

           varMon = Val(Mid(tbDay.Text, 4, 2)) 'два символа из центра

           varGod = Val(Right(tbDay.Text, 4)) ' четыре символа справа

           varDate = DateSerial(varGod, varMon, varDay) ' перевели в формат фаты

           varDay = Day(varDate) ' выделили день из даты

           varMon = Month(varDate) ' выделили месяц из даты

           varGod = Year(varDate) ' выделили год из  даты

           Select Case varMon ' определяем какой месяц

               Case 1

                   mes = "январь"

               Case 2

                   mes = "февраль"

               Case 3

                   mes = "март"

               Case 4

                   mes = "апрель"

               Case 5

                   mes = "май"

               Case 6

                   mes = "июнь"

               Case 7

                   mes = "июль"

               Case 8

                   mes = "август"

               Case 9

                   mes = "сентябрь"

               Case 10

                   mes = "октябрь"

               Case 11

                   mes = "ноябрь"

               Case 12

                   mes = "декабрь"

Информация о работе Программирование Visual Basic