Рефетека.ру / Информатика и програм-ие

Курсовая работа: Информационно-аналитическая система Казанского вокзала

Министерство Образования Российской Федерации

Камский Государственный Политехнический Институт

Кафедра ММИТЭ


КУРСОВАЯ РАБОТА

по информатике на тему:

Информационно-аналитическая система

Казанского вокзала


Выполнил: студент

группы 5111

№ зачетной книжки 025115

Кочнев Денис Николаевич


Проверила: доцент

кафедры ММИТЭ

Каляшина А.В.


г. Набережные Челны

2003 г.


Задание к курсовой работе


Информационно-аналитическая система Казанского вокзала.

Исходная информация содержится в трёх таблицах:

«Рейс» (Номер поезда, дата отправления, станция назначения, время в пути, кол-во мест по категориям)

«Тарифы» (Номер поезда, цена билета по категориям)

«Билеты» (Номер поезда, ФИО пассажира, дата отправления, категория билета)

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

Содержание


Введение

Таблицы приложения

Таблица «Рейсы»

Ввод данных

Удаление данных

Корректировка данных

Сортировка данных

Таблица «Тарифы»

Таблица «Билеты»

Выполнение задания курсовой работы

Заключение

Список использованных источников

Введение


Программа MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области, содержит много улучшений и приятных неожиданностей.

Одним из важнейших функциональных расширений программы, предназначенных для профессионалов, является встроенная в Excel Среда программирования Visual Basic (VBA) для решения прикладных задач. Благодаря VBA фирме Microsoft удалось ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц.

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

Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word for Windows, Power Point и ряд других. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость.

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

Таблицы приложения

Приложение состоит из трех листов, на которых расположены таблицы:

Рейсы

Тарифы

Билеты

Таблица «Рейсы»

На листе «Акционер» расположена таблица с полями:

Номер поезда

Дата отправления

Время в пути

Количество мест по категориям


№ поезда Дата отправления станция назначения время пути A B C D
110608 12.10.03 Владимир 9 40 30 20 60
113186 05.10.03 Севастополь 14 20 60 20 40
113514 01.09.03 Москва 8 40 60 80 80
113819 01.09.03 Владивосток 12 60 40 20 80
117648 18.10.03 Киров 21 40 40 20 60

Для работы с таблицей предусмотрена пользовательская форма «Рейсы», которая вызывается с панели задач. В этой форме осуществляется ввод, удаление, корректировка, сортировка записей.


Информационно-аналитическая система Казанского вокзала


Ввод данных


После ввода необходимо нажать кнопку Добавить

Выполнится следующий код.

Dim i As Integer, j As Integer

i = 1

Do

i = i + 1

If Sheets(1).Cells(i, 1) = "" Then

j = i

Exit Do

End If

Loop

Cells(j, 1) = №.Text

Cells(j, 2) = Data.Value

Cells(j, 3) = pos.Text

Cells(j, 4) = time1.Value

Cells(j, 5) = time2.Value

Cells(j, 6) = AA.Value

Cells(j, 7) = bB.Value

Cells(j, 8) = cc.Value

Cells(j, 9) = dd.Value

Удаление данных

Процедура, реагирующая на событие Click кнопки Удалить, выглядит следующим образом:

Dim c As Object, d As Object

Set c = Range("A2")

Do While Not IsEmpty(c)

Set d = c.Offset(1, 0)

If c = №.Text Then

c.EntireRow.Delete

End If

Set c = d

Loop

End Sub


Корректировка данных

Для изиенения данных использовался следующий код.

Dim i As Integer, j As Integer

i = 1

Do

i = i + 1

If Sheets(1).Cells(i, 1) = "" Then

j = i - 1

Exit Do

End If

Loop

For i = 3 To j

If Cells(i, 1) = №.Text Then

Cells(i, 2) = Data.Value

Cells(i, 3) = pos.Text

Cells(i, 4) = time1.Value

Cells(i, 5) = time2.Value

Cells(i, 6) = AA.Value

Cells(i, 7) = bB.Value

Cells(i, 8) = cc.Value

Cells(i, 9) = dd.Value

End If

Next i

End Sub


Сортировка данных

Сортировка позволяет выстраивать данные в алфавитном или цифровом порядке по возрастанию.

Нажатие кнопки для сортировки таблицы по определенному полю вызывает процедуру DoSort. Например, сортировка по станции назначения. выглядит так:

Private Sub COPTuPOBKA(bn)

Range("A1").CurrentRegion.Sort Key1:=Range(bn), Order1:=xlAscending, Header:=xlYes, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Range("A1").Select

End Sub


Private Sub poPOS_Click()

COPTuPOBKA ("c1")

End Sub

Таблица «Тарифы»

На листе «Тарифы» расположена таблица с полями:

Номер поезда

Цена билетов по категориям


№ поезда A B C D
110608 1600 1300 1000 800
113186 1600 1300 1100 900
113514 1500 1200 900 500
113819 1700 1500 1200 1000
117648 1100 800 500 300

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


Информационно-аналитическая система Казанского вокзала


Посредством этой формы обеспечивается изменение, добавление и удаление цен.

Кнопки работают по тому же принципу.


Таблица «Билеты»

На листе «Билеты» расположена таблица с полями:

Номер поезда

ФИО пассажира

Дата отправления

категория билета


№ поезда ФИ пассажира дата отправления Категория билета
113819 Виле Вало 05.10.03 B
110608 Гари Гарфилд 01.09.03 D
113186 Гендольф Серый 05.10.03 C
113514 Девид Драииман 01.09.03 C
117648 Джабба Хат 23.12.03 A
113514 Джей Гордон 01.09.03 D
113514 Джон Бон Джови 01.09.03 B

Выполнение задания курсовой работы


Постановка задач

Составить ведомость наличия билетов на заданный пункт назначения с указанием цен

Составить ведомость выручек на каждый рейс.


Алгоритм решения

Составить ведомость наличия билетов на заданный пункт назначения с указанием цен

Dim e As Object, f As Object

Sheets(1).Select

ListBox1.Clear

TextBox1 = ""

TextBox2 = ""

TextBox3 = ""

TextBox4 = ""

TextBox5 = ""

TextBox6 = ""

TextBox7 = ""

TextBox8 = ""

TextBox9 = ""

Set e = Range("C2")

Do While Not IsEmpty(e)

Set f = e.Offset(1, 0)

If e.Text = ComboBox1.Text Then

ListBox1.AddItem (e.Offset(0, -1).Text)

End If

Set e = f

Loop

End Sub

Private Sub ListBox1_Click()

Dim e As Object, f As Object, k As Object, l As Object, _

a As Integer, b As Integer, c As Integer, d As Integer, _

v As Object, w As Object

Sheets(1).Select

Set e = Sheets(1).Cells(2, 2)

Set w = Sheets(2).Cells(2, 1)

Set k = Sheets(3).Cells(2, 3)

Do While Not IsEmpty(e)

Set f = e.Offset(1, 0)

If e.Text = ListBox1.Text And e.Offset(0, 1).Text = ComboBox1 Then

TextBox9.Text = e.Offset(0, -1).Text

a = e.Offset(0, 4)

b = e.Offset(0, 5)

c = e.Offset(0, 6)

d = e.Offset(0, 7)

End If

Set e = f

Loop

Do While Not IsEmpty(k)

Set l = k.Offset(1, 0)

If k.Text = ListBox1.Text And k.Offset(0, -2).Text = TextBox9.Text Then

If k.Offset(0, 1).Text = "A" Then

a = a - 1

ElseIf k.Offset(0, 1).Text = "B" Then

b = b - 1

ElseIf k.Offset(0, 1).Text = "C" Then

c = c - 1

Else

d = d - 1

End If

End If

Set k = l

Loop

TextBox1.Text = a

TextBox2.Text = b

TextBox3.Text = c

TextBox4.Text = d

Do While Not IsEmpty(w)

Set v = w.Offset(1, 0)

If w.Text = TextBox9.Text Then

TextBox5.Text = w.Offset(0, 1)

TextBox6.Text = w.Offset(0, 2)

TextBox7.Text = w.Offset(0, 3)

TextBox8.Text = w.Offset(0, 4)

End If

Set w = v

Loop

End Sub

Private Sub UserForm_Activate()

Dim c As Object, d As Object

Sheets(1).Select

Set c = Range("C2")

Do While Not IsEmpty(c)

Set d = c.Offset(1, 0)

ComboBox1.AddItem c

Set c = d

Loop

End Sub

Составить ведомость выручек на каждый рейс.

ListBox1.Clear

Dim i As Integer, j As Integer, l As Integer, r As Integer, z As Integer, x As Integer, a As Integer, _

b As Integer, c As Integer, d As Integer, y As Long, t As Integer, k As Integer

Do

i = i + 1

If Sheets(1).Cells(i, 1) = "" Then

j = i - 1

Exit Do

End If

Loop

i = 1

Do

i = i + 1

If Sheets(2).Cells(i, 1) = "" Then

l = i - 1

Exit Do

End If

Loop

i = 1

Do

i = i + 1

If Sheets(3).Cells(i, 1) = "" Then

r = i - 1

Exit Do

End If

Loop

For z = 2 To j

For x = 2 To r

If Sheets(3).Cells(x, 1).Text = Sheets(1).Cells(z, 1).Text And _

Sheets(3).Cells(x, 3).Text = Sheets(1).Cells(z, 2).Text Then

If Sheets(3).Cells(x, 4).Text = "A" Then

a = a + 1

ElseIf Sheets(3).Cells(x, 4).Text = "B" Then

b = b + 1

ElseIf Sheets(3).Cells(x, 4).Text = "C" Then

c = c + 1

Else

d = d + 1

End If

End If

Next x

For t = 2 To l

If Sheets(2).Cells(t, 1).Text = Sheets(1).Cells(z, 1).Text Then

y = a * Sheets(2).Cells(t, 2).Value + b * Sheets(2).Cells(t, 3).Value + _

c * Sheets(2).Cells(t, 4).Value + d * Sheets(2).Cells(t, 5).Value

End If

Next t

ListBox1.AddItem (Sheets(1).Cells(z, 1).Text)

ListBox1.List(k, 1) = Sheets(1).Cells(z, 2).Text

ListBox1.List(k, 2) = Sheets(1).Cells(z, 3).Text

ListBox1.List(k, 3) = y

k = k + 1

Next z

End Sub

Заключение


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

Процесс создания был облегчен мощными интеллектуальными средствами, которые позволяют даже начинающему пользователю самостоятельно разрабатывать профессиональные приложения. Так при написании кода программы редактор VBA сам предлагает возможные продолжения кода. Макрорекодер, который переводит вручную выполненные действия пользователя, позволяет пользователю понять алгоритмы VBA, а также поручать компьютеру самому создавать большие куски кода приложения.

Список использованных источников


Гарнаев А.Ю. Microsoft Excel 2002: разработка приложений. – Санкт-Петербург, 2003.

Информатика (Методические указания к выполнению курсовой работы) И.В.Макарова, Ю.Н.Смирнов

Информатика (Использование возможностей VBA для создания приложений) И.В.Макарова, Ю.Н.Смирнов

Рефетека ру refoteka@gmail.com