Министерство Образования Российской Федерации
Камский Государственный Политехнический Институт
Кафедра ММИТЭ
КУРСОВАЯ РАБОТА
по информатике на тему:
Информационно-аналитическая система
Казанского вокзала
Выполнил: студент
группы 5111
№ зачетной книжки 025115
Кочнев Денис Николаевич
Проверила: доцент
кафедры ММИТЭ
Каляшина А.В.
г. Набережные Челны
2003 г.
Задание к курсовой работе
Информационно-аналитическая система Казанского вокзала.
Исходная информация содержится в трёх таблицах:
- «Рейс» (Номер поезда, дата отправления, станция назначения, время в пути, кол-во мест по категориям)
- «Тарифы» (Номер поезда, цена билета по категориям)
- «Билеты» (Номер поезда, ФИО пассажира, дата отправления, категория билета)
Составить ведомость наличия билетов на заданный пункт назначения с указанием цен, а так же ведомость выручек на каждый рейс.
Содержание
Выполнение задания курсовой работы.. 11
Список использованных источников. 15
Программа MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области, содержит много улучшений и приятных неожиданностей.
Одним из важнейших функциональных расширений программы, предназначенных для профессионалов, является встроенная в Excel Среда программирования Visual Basic (VBA) для решения прикладных задач. Благодаря VBA фирме Microsoft удалось ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц.
Введение достаточно мощного языка программирования в Excel делает эту программную платформу весьма привлекательной для профессионалов, которые занимаются разработкой специализированных прикладных систем.
Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word for Windows, Power Point и ряд других. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость.
Данный курсовой проект заключается в создании информационно-аналитической системы акционерного общества на базе MSExcel, с использованием языка программирования VBA. В ней реализованы возможности ввода информации и получения итоговых результатов, для чего предусмотрены пользовательские формы, панели инструментов, меню.
Приложение состоит из трех листов, на которых расположены таблицы:
1. Рейсы
2. Тарифы
3. Билеты
На листе «Акционер» расположена таблица с полями:
· Номер поезда
· Дата отправления
· Время в пути
· Количество мест по категориям
№ поезда | Дата отправления | станция назначения | время пути | 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
EndSub
Для изиенения данных использовался следующий код.
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. Например, сортировка по станции назначения. выглядит так:
PrivateSubCOPTuPOBKA(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 |
1. Составить ведомость наличия билетов на заданный пункт назначения с указанием цен
2. Составить ведомость выручек на каждый рейс.
1. Составить ведомость наличия билетов на заданный пункт назначения с указанием цен
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
2. Составить ведомость выручек на каждый рейс.
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