Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Добавление данных

Читайте также:
  1. A) работает со всеми перечисленными форматами данных
  2. A)можно изменить тип диаграммы, ряд данных, параметры диаграммы и т. д.
  3. ABC-анализ данных о поставщиках
  4. I. ПОЛОЖЕНИЕ О СИСТЕМЕ КАТАЛОГОВ, КАРТОТЕК И БАЗ ДАННЫХ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ ЮГРЫ
  5. I.5.3. Подготовка данных для задачи линейного программирования.
  6. I.5.7. Mодификация (изменение) данных задачи.
  7. PCX. Формат появился как формат хранения растровых данных программы PC PaintBrush фирмы Z-Soft и является одним из наиболее распространенных (расширение имени файла .PCX).

ОТЧЕТ

по дисциплине «Решение задач на ЭВМ»

(Вариант 13)

 

 

Выполнил студент группы 3АИСн-4

очного отделения

Поткин Олег Александрович

 

 

Преподаватель дисциплины:

_______________________________

 

 

Москва, 2012

Содержание

Постановка задачи…………………………………………………………...  
1. Создание информационного хранилища на базе MS Excel 2007………  
2. Структура программы ……………………………………………………  
3. Разработка программы……………………………………………………  
3.1. Добавление данных…...……………………………………...………  
3.1.1. Листинг…………………………………………………………  
3.2. Поиск…………………………………………………………………..  
3.2.1. Листинг…………………………………………………………  
3.3. Расписание (в определенном временном интервале)………….…...  
3.3.1. Листинг…………………………………………………………  
3.4. Сортировка……………………………………………………………  
3.4.1. Листинг…………………………………………………………  
3.5. Изменение данных (по параметру)………………………………….  
3.5.1. Листинг…………………………………………………………  
3.6. Удаление записей (по параметру)…………………………………...  
3.6.1. Листинг…………………………………………………………  
Список используемой литературы, интернет-ресурсы……………………  
   

 


 

Постановка задачи (Вариант 13)

1. Создать таблицу, которая содержит сведения об отправлении поездов.

Структура таблицы:

- номер поезда;

- станция назначения;

- дата отправления;

- время отправления;

- время прибытия;

- наличие (количество) билетов в вагоны каждого вида отдельно: купе и плацкарт.

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

3. Определить:

- количество свободных мест в купейные вагоны поезда с заданными номерами и датой;

- количество поездов, следующих до заданной станции назначения.

4. Создать на 2 листе книги таблицу, которая содержит информацию о поездах, которые отправляются до заданной станции в заданном интервале времени (временной интервал задать двумя значениями, например 13:00 и 18:30).

5. Сортировать данные в таблице по заданному столбцу.

6. Изменить сведения о наличии билетов на поезд с заданным номером.

7. Удалить запись о поездах, которые следуют до заданной станции.

Всю бизнес-логику программы реализовать в среде VBA for Excel 2007.


 

Создание информационного хранилища на базе MS Excel 2007

Структура данных:

1. номер поезда (тип - строка);

2. станция назначения (тип - строка);

3. дата отправления (тип - дата);

4. время отправления (тип - дата);

5. время прибытия (тип - дата);

6. наличие (количество) билетов в купе (тип – целое число);

7. наличие (количество) билетов в плацкарт (тип – целое число).

 

Пример данных:

 


 

Структура программы



Разработка программы

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

Добавление данных

Данная функция позволяет пользователю добавить новую строку с информацией о поезде.

1. Заполнение формы:

2. Диагностика:

3. Результат:

 

Листинг

' Запуск формы производится при открытии рабочей книги, а также при нажатии

' комбинации клавиш "Ctrl + s"

' Прототип структуры (фактически, это описание пользовательского типа данных)

Private Type Trip_inf

train_id As String ' Номер поезда

destination As String ' Станция назначения

start_date As Date ' Дата отправления

st_time As Date ' Время отправления в формате ЧЧ:ММ

fin_time As Date ' Время прибытия в формате ЧЧ:ММ

tic_coupe As Integer ' Количество билетов в купе

tic_reserve As Integer ' Количество билетов в плацкарт

End Type

 

'====================================================================================

'Добавление новой записи в общий список (Лист 1)

'====================================================================================

 

Private Sub CommandButton1_Click ()

'--------ОПИСАНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ----------

Dim train_id As String ' Номер поезда

Dim destination As String ' Станция назначения

Dim start_date As Date ' Дата отправления

Dim st_hour As Integer ' Час отправления

Dim st_min As Integer ' Минута отправления

Dim st_time As String ' Время отправления в формате ЧЧ:ММ

Dim fin_hour As Integer ' Час прибытия

Dim fin_min As Integer ' Минута прибытия

Dim fin_time As String ' Время прибытия в формате ЧЧ:ММ

Dim tic_coupe As Integer ' Количество билетов в купе

Dim tic_reserve As Integer ' Количество билетов в плацкарт

 

Dim i As Integer

Dim work As String

 

'------------СБОР ДАННЫХ С ИНТЕРФЕЙСА------------

train_id = TextBox1.Value

destination = TextBox2.Value

' Формат даты отправления строго типизирован, поэтому необходимо отслеживать

' возможные ошибки при вводе этого параметра:

On Error GoTo m_error_1

start_date = TextBox3.Value

' Час отправления строго типизирован - отслеживаем ошибки:

On Error GoTo m_error_2

st_hour = TextBox4.Value

' Диапазон часов - от 0 до 23:

If ( st_hour < 0 Or st_hour > 23) Then GoTo m_error_2

' Минута отправления строго типизирована - отслеживаем ошибки:

On Error GoTo m_error_2

st_min = TextBox5.Value

' Диапазон минут - от 0 до 59:

If ( st_min < 0 Or st_min > 59) Then GoTo m_error_2

' Формируем строку с временем отправления поезда:

st_time = st_hour & ":" & st_min

' Час прибытия строго типизирован - отслеживаем ошибки:

On Error GoTo m_error_3

fin_hour = TextBox6.Value

' Диапазон часов - от 0 до 23:

If ( fin_hour < 0 Or fin_hour > 23) Then GoTo m_error_3

' Минута прибытия строго типизирована - отслеживаем ошибки:

On Error GoTo m_error_3

fin_min = TextBox7.Value

' Диапазон минут - от 0 до 59:

If ( fin_min < 0 Or fin_min > 59) Then GoTo m_error_3

' Формируем строку с временем прибытия поезда:

fin_time = fin_hour & ":" & fin_min

' Количество билетов купе - отслеживаем возможные ошибки при вводе:

On Error GoTo m_error_4

tic_coupe = TextBox8.Value

' Количество билетов плацкарт - отслеживаем возможные ошибки при вводе:

On Error GoTo m_error_5

tic_reserve = TextBox9.Value

 

'-----------ДОБАВЛЕНИЕ НОВОЙ ЗАПИСИ--------------

i = 0 ' Счетчик строк

work = "" ' Рабочая переменная

Do

i = i + 1 ' Считаем очередную строку

work = Лист1.Cells ( i, 1). Value ' Считываем строку

If ( work = "" ) Then ' Если она пустая, то в не можно

'записать

Лист1.Cells ( i, 1). Value = train_id

Лист1.Cells ( i, 2). Value = destination

Лист1.Cells ( i, 3). Value = start_date

Лист1.Cells ( i, 4). Value = st_time

Лист1.Cells ( i, 5). Value = fin_time

Лист1.Cells ( i, 6). Value = tic_coupe

Лист1.Cells ( i, 7). Value = tic_reserve

Exit Do

End If

Loop Until ( False )

 

GoTo m_success ' Все операции выполнены без ошибок

 

'------БЛОК ОБРАБОТКИ ВНЕШТАТНЫХ СИТУАЦИЙ--------

m_error_1:

MsgBox "Ошибка при вводе ДАТЫ ОТПРАВЛЕНИЯ!"

Exit Sub

m_error_2:

MsgBox "Ошибка при вводе ВРЕМЕНИ ОТПРАВЛЕНИЯ!"

Exit Sub

m_error_3:

MsgBox "Ошибка при вводе ВРЕМЕНИ ПРИБЫТИЯ!"

Exit Sub

m_error_4:

MsgBox "Ошибка при вводе КОЛИЧЕСТВА БИЛЕТОВ(КУПЕ)!"

Exit Sub

m_error_5:

MsgBox "Ошибка при вводе КОЛИЧЕСТВА БИЛЕТОВ(ПЛАЦКАРТ)!"

Exit Sub

 

'----ДИАГНОСТИКА УСПЕШНОГО ВЫПОЛНЕНИЯ ЗАДАЧИ-----

m_success:

MsgBox "Информация о поезде № " & train_id & " успешно добавлена (строка № " & i & ")"

End Sub


 

Поиск

Функция поиска решает две задачи:

1. Определение количества свободных мест в купейных вагонах по заданному номеру поезда и дате отправления.

2. Определение количества поездов, следующих до заданной станции.

Результат выполнения функции:

 

Листинг

'====================================================================================

'Определение количества свободных мест в купейных вагонах поезда с заданными номером

'и датой

'====================================================================================

 

Private Sub CommandButton2_Click ()

'--------ОПИСАНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ----------

Dim train_id As String ' Номер поезда

Dim start_date As Date ' Дата отправления

Dim tic_coupe As Integer ' Количество билетов в купе

 

Dim i As Integer ' Переменная-счетчик

 

'------------СБОР ДАННЫХ С ИНТЕРФЕЙСА------------

Label12.Caption = ""

train_id = TextBox10.Value

' Формат даты отправления строго типизирован, поэтому необходимо отслеживать

' возможные ошибки при вводе этого параметра:

On Error GoTo m_error_6

start_date = TextBox11.Value

 

'--------------ПОИСК ПО ПАРАМЕТРАМ---------------

i = 0 ' Счетчик строк

Do

i = i + 1 ' Считаем очередную строку

' Ищем совпадения:

If ( Лист1.Cells ( i, 1). Value = train_id And Лист1.Cells ( i, 3). Value = start_date ) Then

' Нашли нужную запись - выводим искомое значение на форму:

Label12.Caption = Лист1.Cells ( i, 6). Value

Exit Do

' Все ли записи проверили?

ElseIf ( Лист1.Cells ( i, 1). Value = "" ) Then

GoTo m_error_7 ' Нужная запись не найдена

End If

Loop Until ( False )

 

GoTo m_success ' Все операции выполнены без ошибок

 

'------БЛОК ОБРАБОТКИ ВНЕШТАТНЫХ СИТУАЦИЙ--------

m_error_6:

MsgBox "Ошибка при вводе ДАТЫ ОТПРАВЛЕНИЯ!"

Exit Sub

m_error_7:

MsgBox "Данные отсутствуют!"

Exit Sub

 

'----ДИАГНОСТИКА УСПЕШНОГО ВЫПОЛНЕНИЯ ЗАДАЧИ-----

m_success:

MsgBox "Информация о наличии свобобных мест в купе найдена!"

End Sub

 

'====================================================================================

'Определение количества поездов, следующих до заданной станции назначения

'====================================================================================

 

Private Sub CommandButton3_Click ()

'--------ОПИСАНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ----------

Dim destination As String ' Станция назначения

Dim num_of_trains As Integer ' Количество поездов

 

Dim i As Integer ' Счетчик для циклов

 

'------------СБОР ДАННЫХ С ИНТЕРФЕЙСА------------

destination = TextBox12.Value

 

'--------------ПОИСК ПО ПАРАМЕТРАМ---------------

i = 0 ' Счетчик строк

num_of_trains = 0

Do

i = i + 1 ' Считаем очередную строку

' Ищем совпадения:

If ( Лист1.Cells ( i, 2). Value = destination ) Then

' Нашли нужную запись - суммируем с остальными:

num_of_trains = num_of_trains + 1

' Все ли записи проверили?

ElseIf ( Лист1.Cells ( i, 2). Value = "" ) Then

GoTo m_over ' Список закончился

End If

Loop Until ( False )

' Визуализация результата:

m_over:

Label14.Caption = num_of_trains

End Sub

 


 


Дата добавления: 2015-10-29; просмотров: 206 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Распознавание (pattern recognition)| Расписание (в определенном временном интервале)

mybiblioteka.su - 2015-2024 год. (0.028 сек.)