Курсовая работа: Программирование в Бейсике

Курсовая работа: Программирование в Бейсике




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































2.3 Просмотр маршрутов и управление автобусами
Обычно Basic ассоциируется с каким-то очень простым в освоении и использовании средством программирования. Это действительно так. На заре компьютерных технологий язык Basic был создан для создания простых программ и использовался в качестве учебного языка для первых шагов при изучении основ программирования с последующим переходом на более сложные и универсальные языки. Это было заложено в название языка BASIC — Beginners All-purpose Symbolic Instructional Code, то есть многоцелевой код символьных инструкций для начинающих. С прогрессом компьютерных технологий развивался и Basic. В настоящее время версия Visual Basic 6 дает возможность решать любые современные задачи разработки приложений. При этом Visual Basic 6 остался достаточно простым в освоении, став в то же время одним из мощных современных языков программирования.
По сути дела последняя версия языка Visual Basic 6 представляет собой интегрированную среду разработки — IDE (Integrated Development Environment). Это означает, что в Visual Basic 6 интегрирован набор инструментов, облегчающих и значительно ускоряющих процесс разработки готового приложения. Такая реализация языка Visual Basic 6 с полным правом позволяет отнести его к средствам быстрой разработки приложений — RAD (Rapid Application Development) и ставит практически в один ряд с такими средствами разработки, как Visual C++, Delphi и другими.
С помощью Visual Basic 6 можно создавать приложения практически для любой области современных компьютерных технологий: бизнес-приложения, игры, мультимедиа, базы данных. При этом приложения могут быть как простыми, так и очень сложными, в зависимости от поставленной задачи.
Разработать программу, представляющую собой модель работы оператора по управлению автобусами определенной компании.
Обеспечить возможность управления движением автобусов по каждому из предложенных, созданных или уже существующих маршрутов.
Предоставить при необходимости возможность изменения данных по маршруту: непосредственно имени самого маршрута, возможность добавить или удалить автобус, а также изменить данные по автобусам: имена водителя и кондуктора; Удалить, добавить, переместить, переименовать остановки или вообще изменить направление движения по маршруту, поменять порядок прохождения остановок автобусами данного маршрута, плюс удаление самого маршрута при необходимости.
Обеспечить возможности создания своего маршрута, а также корректировки данных (бортовой номер) по свободным автобусам (которые могут быть задействованы, если это необходимо).
Плюс ко всему, смоделировать (визуализировать) наглядное движение автобусов с учетом зависимости скорости автобусов от времени суток.
В данной работе входные данные задаются пользователем самостоятельно, т.к. это зависит от конкретных условий применения программы.
Входные данные, если они есть, являются список, содержащий имена уже существующих маршрутов, и списки данных по каждому маршруту отдельно; сюда входят бортовые номера автобусов, которые состоят из номера маршрута плюс номер самого автобуса, имена водителя и кондуктора, названия остановок и их координаты на плоскости, где будет отображаться маршрут; при этом остановки записаны в порядке их прохождения первым автобусом.
Выходными данными будут считаться как можно более правильное моделирование движения автобусов, то, что будет воспринимать пользователь, который будет работать с данным приложением сама схема движения, а также возможность непосредственного изменения уже имеющихся данных и создание своих собственных.
Предметной областью будет являться сама модель приложения, которая будет наглядно представлять работу оператора по управлению маршрутами и автобусами на них.
В данной работе для хранения уже существующих или записи ново созданных используются текстовые файлы.
Для хранения всех существующих маршрутов используется файл " c:\ Курсовая моя \ Маршруты.txt" , где представлен список названий имеющихся маршрутов.
Для хранения данных по всем маршрутам используются файлы (отдельный для каждого маршрута):
"c:\ Курсовая моя \ < название маршрута > .txt"
В таких файлах информация представлена например в следующем виде:
остановка, , 6030, 1995 и так далее …
Для хранения свободных на данный момент автобусов тоже используется свой файл :
" c:\ Курсовая моя \ Свободные автобусы .txt"
В нем содержится список автобусов, каждый из которых можно в любой момент времени пустить по уже существующему маршруту или по созданному только что.
Программа при работе с этими файлами считывает из них информацию и записывает ее в соответствующие массивы для хранения всех данных в памяти во время выполнения приложения.
-- для записи названий всех маршрутов, 30 – максимальное число маршрутов
-- для запоминания количества маршрутов
arBusNumber(0 To 30, 0 To 25) AsString
-- для записи номеров всех автобусов, 25 – максимальное число автобусов на одном маршруте
-- для запоминания количества автобусов на определенном маршруте
-- для хранения числа всех задействованных на маршрутах автобусов
arDriveName(0 To 30, 0 To 25) AsString
-- для запоминания имени водителя автобуса на определенном маршруте
arConductorName(0 To 30, 0 To 25) AsString
-- для запоминания имени кондуктора автобуса на определенном маршруте
arStayName(0 To 30, 0 To 35) AsString
-- для хранения названий всех остановок определенного маршрута
arStayAbsciss(0 To 30, 0 To 35) As String
arStayOrdinata(0 To 30, 0 To 35) As String
-- для записи координат( по X и Y) для каждой остановки определенного маршрута
-- для хранения числа остановок на данном маршруте
Интерфейс пользователя, возможно, является самой важной частью приложения – это то, что видит пользователь. Для него интерфейс и есть само приложение. При разработке приложения необходимо ответить на множество вопросов. Сколько разных форм необходимо иметь в приложении? Какие команды войдут в меню? и т. д. До начала проектирования пользователю следует подумать о назначении приложения, чтобы как можно грамотнее правильнее подобрать стиль оформления и разработать подходящий и в тоже время удобный дизайн. Для реализации всех пунктов данного задания понадобилось две формы для работы в разных режимах : в режиме просмотра маршрутов и управления движением автобусов и в режиме редактирования маршрутов и данных по ним, а также создания своих собственных маршрутов. И конечно в качестве описания приложения, его свойств использовалась третья форма( About ).
Для перехода в режим редактирования маршрутов необходимо выбрать пункт меню главной формы. Редактор маршрутов. В этом случае на форме отобразится Frame1, который содержит все функции возможного редактирования выбранного из списка маршрута.
Для хранения названий маршрутов, номеров автобусов( как задействованных, так и свободных) и названий остановок используются элементы управления Combo_Box; для прорисовки маршрутов – Picture_Box; для обозначения остановок – Image_Box.
Для создания своего маршрута аналогично выбираем пункт – Создать новый маршрут
Для записи названия маршрута, имен водителя и кондуктора, а также названия остановки (если нужно задать ей свое имя) используются элементы управления Text_Box; для хранения номеров автобусов( как прикрепленных к создаваемому маршруту, так и еще свободных) – Combo_Box; для рисования своего произвольного маршрута – Picture_Box.
2.3 Просмотр маршрутов и управление автобусами
Для выбора режима просмотра маршрутов и управления движением автобусов нужно выбрать пункт меню: Маршруты
Здесь для хранения названий маршрутов используется элемент управления Combo_Box; для отображения данных по автобусам – Label и Text_Box; для отображения самого маршрута и движения по нему автобусов – Picture_Box; для самих автобусов, остановок.
Алгоритм – это заданная последовательность действий, которые необходимо выполнить над исходными данными для получения конечного желаемого результата. Алгоритм является важным шагом на пути к созданию приложения. Он позволяет наглядно, а главное, в большинстве случаев, понятно, продемонстрировать работу программы. Он помогает не только сразу разобраться, что нужно реализовывать в данном проекте, понять как работает данная программа, на чем она основана, но и избежать многих ошибок или найти и исправить их, так как в самом коде программы они становятся почти незаметными на взгляд. Данное приложение можно разбить на три части:
1.Просмотр маршрутов и управление движением автобусов.
- Считывание из файла " Маршруты.txt" названия всех существующих маршрутов и запись их в Combo_Box
- При выборе определенного маршрута из списка представленных - считывание из файла выбранного маршрута " < Имя маршрута >.txt" данных : номера автобусов, имена их водителей и кондукторов, названия всех остановок и их координаты. Отображение в Picture_Box схемы самого маршрута с помощью линий, остановок и автобусов – Image_Box
- Осуществление с помощью Timer движения автобусов путем расчета новых координат промежуточного положения автобусов, учитывая изменения по координатным осям, и перерисовкой автобусов на новом месте
- При выборе автобуса – щелчок по нему – отображение основных данных по нему: имена водителя и кондуктора, номер, скорость с учетом времени суток и уровень оставшегося топлива
- При щелчке по остановкам перемещать активный в данный момент автобус( выделенный) на эти остановки
- При выборе пунктов меню: переместить на остановку вперед и назад - перемещать активный в данный момент автобус( выделенный) соответственно на эти остановки
- При выборе пунктов: Режимы передвижения или просмотра автобусов – соответственно разрешать или запрещать ручное (Drag_and_Drop) перетаскивание автобусов
- открывает файл свободных автобусов
- Считывание из файла " Маршруты.txt" названия всех существующих маршрутов и запись их в Combo_Box
- При выборе определенного маршрута из списка представленных - считывание из файла выбранного маршрута " < Имя маршрута >.txt" данных : номера автобусов, имена их водителей и кондукторов, названия всех остановок и их координаты. Отображение в Picture_Box схемы самого маршрута с помощью линий и остановки – Image_Box
- При нажатии кнопки Новый считывание из файла " Маршруты.txt" названия всех существующих маршрутов и запись их в Combo_Box
- При выборе кнопок Добавление/Изменение или Удаление соответственно добавление, изменение или удаление в зависимости от определенных параметров
- При нажатии соответствующих после выбора режима изменения маршрутов кнопок переименование, удаление, перемещение выбранной остановки или добавление новой
- Перенаправление маршрута и запоминание соответственно уже измененного маршрута
- При нажатие соответствующей кнопки запись изменений в файл открытого маршрута
- Запись в файл маршрутов названия нового и создание файла самого маршрута
Самыми сложными на мой взгляд и наиболее требующими внимания являются следующие части кода программы:
Fuel(i) = Fuel(i) - 1 / (10000 * Me.Timer1.Interval)
If i = Misk Then Me.Label13.Caption = Str$(Fuel(Misk))
For z = 0 To (Combo1.ListCount - 1)
If arStayPast(z, i) = (arStayCount(z) - 1) Then arStayEdit(z, i)= -1
If arStayPast(z, i) = 0 Then arStayEdit(z, i) = 1
If Val(arStayAbsciss(z, arStayPast(z, i))) > Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
If Val(arStayAbsciss(z, arStayPast(z, i))) < Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
If Val(arStayAbsciss(z, arStayPast(z, i))) = Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
k(z, i) = (Val(arStayOrdinata(z, arStayPast(z, i))) - Val(arStayOrdinata(z, arStayPast(z, i) + arStayEdit(z, i)))) / _
(Val(arStayAbsciss(z, arStayPast(z, i))) - Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))))
b(z, i) = Val(arStayOrdinata(z, arStayPast(z, i))) - k(z, i) * Val(arStayAbsciss(z, arStayPast(z, i)))
x0(z, i) = x0(z, i) + c * 2 * arCoordEdit(z, i)
y0(z, i) = k(z, i) * x0(z, i) + b(z, i)
Image1(i).Move x0(z, i) - Image1(i).Width / 2, y0(z, i) - Me.Image1(i).Height / 2
If x0(z, i) >= Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
Then arStayPast(z, i) = arStayPast(z, i) + arStayEdit(z, i)
If x0(z, i) <= Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i)))_
Then arStayPast(z, i) = arStayPast(z, i) + arStayEdit(z, i)
где k(z, i) – угловой коэффициент уравнения движения автобуса " i " по маршруту " z "; b(z, i) – свободный член того же уравнения; arCoordEdit(z, i) – в какую сторону изменять координату автобуса; arStayPast(z, i), arStayEdit(z, i) – соответственно последняя остановка, которую прошел автобус, и величина, показывающая в какую сторону будут изменяться остановки; с – изменение координаты автобуса по X; x0(z, i), y0(z, i) – промежуточные координаты автобуса. В данной процедуре программа сама проверяет в какую сторону должен двигаться определенный автобус, как должна изменяться его координата и где следующий момент времени он будет находиться.
2.Работа с текстовыми файлами при считывании информации об определенном маршруте
Public Static Sub Work_With_Files()
Open "c:\Курсоваямоя\" + Combo1.List(Mis) + ".txt" For Input As 2
Case "автобус": Input #2, arBusNumber(Mis, arBusCount(Mis))
Case "водитель": Input #2, arDriveName(Mis, arBusCount(Mis))
Case "кондуктор": Input #2, arConductorName(Mis, arBusCount(Mis))
arBusCount(Mis) = arBusCount(Mis) + 1
Case "остановка": Input #2, arStayName(Mis, arStayCount(Mis))
Input #2, arStayAbsciss(Mis, arStayCount(Mis))
Input #2, arStayOrdinata(Mis, arStayCount(Mis))
arStayCount(Mis) = arStayCount(Mis) + 1
где Mis – номер текущего маршрута, файл которого читается.
Полный код программы смотрите в Приложении.
В данной программе удалось полностью реализовать поставленную задачу.
Программу - модель работы оператора по управлению автобусами
Обеспечили возможность управления движением автобусов по каждому из предложенных, созданных или уже существующих маршрутов.
Предоставили возможность изменения данных по маршруту: непосредственно имени самого маршрута, возможность добавить или удалить автобус, а также изменить данные по автобусам: имена водителя и кондуктора; удалить, добавить, переместить, переименовать остановки или вообще изменить направление движения по маршруту, поменять порядок прохождения остановок автобусами данного маршрута, плюс удаление самого маршрута при необходимости.
Обеспечили возможности создания своего маршрута, а также корректировки данных (бортовой номер) по свободным автобусам (которые могут быть задействованы, если это необходимо).
Плюс ко всему, смоделировали (визуализировать) наглядное движение автобусов с учетом зависимости скорости автобусов от времени суток.
1.VisualBasic 6.0 – Мастер – Разработка приложений. Санкт – Петербург, " БХВ - Петербург", 2000
Dim DooM As Boolean, Doomy As Boolean, Do_Do As Boolean
Dim Misk As Integer, disk As Integer
Dim arLinesName(0 To 30) As String, LinesCount As Integer '30 - max маршрутов
Dim arBusNumber(0 To 30, 0 To 25) As String, arBusCount(0 To 30) As Integer
Dim AllBuses As Integer '25 - max автобусов
Dim arDriveName(0 To 30, 0 To 25) As String
Dim arConductorName(0 To 30, 0 To 25) As String
Dim arStayName(0 To 30, 0 To 35) As String ' 35 max остановокнаодноммаршруте
Dim arStayAbsciss(0 To 30, 0 To 35) As String
Dim arStayOrdinata(0 To 30, 0 To 35) As String
Dim arStayCount(0 To 30) As Integer
Dim arName(0 To 30, 0 To 35) As String ' 35 - max остановокнаодноммаршруте
Dim arAbsciss(0 To 30, 0 To 35) As String
Dim arOrdinata(0 To 30, 0 To 35) As String
Dim arFreeBuses(0 To 100) As String
Dim q As Integer, food As Boolean, Boom As Boolean
Dim e As Integer, mx As Single, my As Single
Dim aa As Integer, x0 As Single, y0 As Single, nama(0 To 30, 0 To 35) As String
Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = ""
Combo2.Enabled = True: Combo4.Enabled = True
Command1.Enabled = True: Command2.Enabled = True: Command3.Enabled = True: Command7.Enabled = True
If Len(Dir("c:\Курсоваямоя\" + Combo1.List(Mis) + ".txt")) = 0 Then
MsgBox"Файл маршрута не найден" + vbCrLf + _
"Проверьте его наличие: 'c:\Курсовая моя\" + Combo1.List(Mis) + ".txt'"
Image1(i).Picture = LoadPicture("c:\Курсоваямоя\Иконки\Icon2.ico")
Me.Picture1.PSet (arStayAbsciss(Mis, 0), arStayOrdinata(Mis, 0))
Me.Image1(0).Move arStayAbsciss(Mis, 0) - w, arStayOrdinata(Mis, 0) - w
Me.Label14(0).Move Image1(0).Left + 2 * w, Image1(0).Top
Me.Label14(0).Caption = arStayName(Mis, 0)
For i = 0 To (arStayCount(Mis) - 1)
Me.Picture1.Line -(arStayAbsciss(Mis, i), arStayOrdinata(Mis, i))
Me.Image1(i).Move arStayAbsciss(Mis, i) - w, arStayOrdinata(Mis, i) - w
Me.Label14(i).Move Image1(i).Left + 2 * w, Image1(i).Top
Me.Label14(i).Caption = arStayName(Mis, i)
Me.Combo4.AddItem arStayName(Mis, i)
Text2.Enabled = True: Text3.Enabled = True
Text1.Text = arBusNumber(Mis, Misk)
Text2.Text = arDriveName(Mis, Misk)
Text3.Text = arConductorName(Mis, Misk)
Text2.Enabled = True: Text3.Enabled = True
If Label14(i).Caption = Combo4.List(disk) Then
Image1(i).Picture = LoadPicture("c:\Курсоваямоя\Иконки\!conMania.cur")
Image1(i).Picture = LoadPicture("c:\ Курсоваямоя\Иконки\Icon2.ico")
Text9.Text = nama(LinesCount - 1, Combo7.ListIndex)
IfLen(Dir("c:\Курсовая моя\Свободные автобусы.txt")) = 0 Then
MsgBox "Файл свободных автобусов не найден!!!" + vbCrLf + _
"Проверьте его наличие : 'c:\ Курсовая моя\Свободные автобусы.txt'"
Open "c:\ Курсовая моя\Свободные автобусы.txt" ForInputAs 3
IfCommand10.Caption = "Начать последовательность остановок" Then
If Text7.Text = "" Or Text6.Text = "" Or Text5.Text = "" Then
MsgBox "Все поля должны быть заполнены!!!"
arBusNumber(LinesCount - 1, zzz) = LTrim(Str$(LinesCount - 1 + 1) + Combo5.List(zxz))
arDriveName(LinesCount - 1, zzz) = Text6.Text
arConductorName(LinesCount - 1, zzz) = Text5.Text
Combo6.AddItem arBusNumber(LinesCount - 1, zzz)
IfLen(Dir("c:\ Курсовая моя\Свободные автобусы.txt")) = 0 Then
MsgBox "Файл свободных автобусов не найден!!!" + vbCrLf + _
"Проверьте его наличие : 'c:\ Курсовая моя\Свободные автобусы.txt'"
If Text8.Text = "" Then MsgBox "Напишитеназваниемаршруту!!!": Exit Sub
If Len(Dir("c:\ Курсоваямоя\Маршруты.txt")) = 0 Then
MsgBox "Файл маршрутов не найден!!!" + vbCrLf + _
"Проверьте его наличие : 'c:\ Курсовая моя\Маршруты.txt'"
Open "c:\ Курсоваямоя\Маршруты.txt" For Append As 1
Open "c:\курсоваямоя\" + Text8.Text + ".txt" For Output As 3
For zzz = 0 To (Combo6.ListCount - 1)
Print #3, "автобус,", arBusNumber(LinesCount - 1, zzz)
Print #3, "водитель,", arDriveName(LinesCount - 1, zzz)
Print #3, "кондуктор,", arConductorName(LinesCount - 1, zzz)
For i = 0 To (Combo7.ListCount - 1)
Print #3, "остановка,", nama(LinesCount - 1, i), ",", Combo7.List(i)
Open "c:\ Курсоваямоя\Свободныеавтобусы.txt" For Output As 6
For i = 0 To (Combo5.ListCount - 1)
IfText9.Text = "" ThenMsgBox "Напишите название остановки!!!" Else _
nama(LinesCount - 1, Combo7.ListIndex) = Text9.Text
Combo6.Clear: Combo6.Enabled = False
Text6.Text = "": Text6.Enabled = False
Text5.Text = "": Text5.Enabled = False
Combo7.Enabled = False: Combo7.Clear
Text9.Text = "": Text9.Enabled = False
Command16.Enabled = False: Command13.Enabled = False
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then
MsgBox "Все поля должны быть заполнены!!!"
Case False: arDriveName(Mis, Misk) = Text2.Text
arConductorName(Mis, Misk) = Text3.Text
Case True: arBusNumber(Mis, Combo2.ListCount) = LTrim(Str$(Mis + 1) + Combo3.List(Mi))
arDriveName(Mis, Combo2.ListCount) = Text2.Text
arConductorName(Mis, Combo2.ListCount) = Text3.Text
Combo2.AddItem arBusNumber(Mis, Combo2.ListCount), Combo2.ListCount
MsgBox "напишите название остановки!!!"
If Label14(i).Caption = Combo4.List(disk) Then Label14(i).Caption = Text4.Text
If disk <> 999 Then Image1(disk).DragMode = 1
If disk <> 999 Then Image1(disk).DragMode = 0
Open "c:\Курсоваямоя\" + Combo1.List(Mis) + ".txt" For Output As 5
For i = 0 To (Combo2.ListCount - 1)
Print #5, "автобус,", Combo2.List(i)
Print #5, "водитель,", arDriveName(Mis, i)
Print #5, "кондуктор,", arConductorName(Mis, i)
If Command10.Caption = "Сохранитьвсесделанныеизменения" Then
For i = 0 To (Combo4.ListCount - 1)
Print #5, "остановка,", arStayName(Mis, i), ",", arStayAbsciss(Mis, i), ",", arStayOrdinata(Mis, i)
For i = 0 To (Combo4.ListCount - 1)
Print #5, "остановка,", arName(Mis, i), ",", arAbsciss(Mis, i), ",", arOrdinata(Mis, i)
Open "c:\ Курсовая моя\Свободные автобусы.txt" ForOutputAs 6
For i = 0 To (Combo3.ListCount - 1)
If DooM = True Then MsgBox "Нечегоудалять!!!"
IfLen(Dir("c:\ Курсовая моя\Свободные автобусы.txt")) = 0 Then
MsgBox "Файл маршрутов не найден!!!" + vbCrLf + _
"Проверьте его наличие : 'c:\ Курсовая моя\Свободные автобусы.txt'"
Open "c:\ Курсоваямоя\Свободныеавтобусы.txt" For Append As 7
If Len(Dir("c:\ Курсоваямоя\маршруты.txt")) = 0 Then
MsgBox " Файл маршрутов не найден!!!" + vbCrLf + _
" Проверьте его наличие: 'c:\ Курсовая моя\маршруты.txt'"
Open "c:\ Курсовая моя\маршруты.txt" For Output As 4
For i = 0 To (Combo1.ListCount - 1)
If i <> Mis Then Print #4, Combo1.List(i)
Open "c:\Êóðñîâàÿ ìîÿ\" + Combo1.List(Mis) + ".txt" For Output As 4
Private Sub Image1_Click(Index As Integer)
Picture1.PSet (Image1(Index).Left, Image1(Index).Top)
arName(Mis, q) = arStayName(Mis, Index)
arAbsciss(miss, q) = arStayAbsciss(Mis, Index)
arOrdinata(miss, q) = arStayOrdinata(Mis, Index)
Picture1.Line -(arStayAbsciss(Mis, Index), arStayOrdinata(Mis, Index))
If Len(Dir("c:\ Курсовая моя\маршруты.txt")) = 0 Then
MsgBox " Файл маршрутов не найден!!!" + vbCrLf + _
"Ïðîâåðüòå åãî íàëè÷èå : 'c:\ Курсовая моя\маршруты.txt'"
Open "c:\ Курсовая моя\маршруты.txt" For Input As 1
Combo1.AddItem arLinesName(LinesCount)
If Len(Dir("c:\ Курсоваямоя\Свободныеавтобусы.txt")) = 0 Then
MsgBox " Файл маршрутов не найден!!!" + vbCrLf + _
" Проверьте его наличие: 'c:\ Курсовая моя\Свободные автобусы.txt"
Retval = Shell("NotePad.exec:\ Курсовая моя\Свободные автобусы.txt", 1)
Open "c:\Êóðñîâàÿ ìîÿ\" + Combo1.List(Mis) + ".txt" For Input As 2
Case "автобус": Input #2, arBusNumber(Mis, arBusCount(Mis))
Case "водитель": Input #2, arDriveName(Mis, arBusCount(Mis))
Case "кондуктор": Input #2, arConductorName(Mis, arBusCount(Mis))
arBusCount(Mis) = arBusCount(Mis) + 1
Case "остановка": Input #2, arStayName(Mis, arStayCount(Mis))
Input #2, arStayAbsciss(Mis, arStayCount(Mis))
Input #2, arStayOrdinata(Mis, arStayCount(Mis))
arStayCount(Mis) = arStayCount(Mis) + 1
Private Sub Image1_DragOver(Index As Integer, Source As Control, X As Single, Y As Single, State As Integer)
If Len(Dir("c:\ Курсовая моя\маршруты.txt")) = 0 Then
MsgBox " Файл маршрутов не найден í!!!" + vbCrLf + _
"Ïðîâåðüòå åãî íàëè÷èå : 'c:\ Курсовая моя\маршруты.txt'"
Open "c:\ Курсовая моя\маршруты.txt" For Input As 1
Combo1.AddItem arLinesName(LinesCount)
Open "c:\ Курсовая моя\Свободные автобусы.txt" ForInputAs 3
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - mx, Y - my: Label14(disk).Move X - mx + w * 2, Y - my
arStayAbsciss(Mis, disk) = Str$(X - mx)
arStayOrdinata(Mis, disk) = Str$(Y - my)
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Text4.Text = "" Then MsgBox "Напишитеназваниеостановки!!!": Exit Sub
If Text4.Text = "" Then MsgBox " Напишите название остановки!!!": Exit Sub
Image1(Combo4.ListCount).Visible = True
Image1(Combo4.ListCount).Move X - w, Y - w
Me.Label14(Combo4.ListCount).Visible = True
Me.Label14(Combo4.ListCount).Move Image1(Combo4.ListCount).Left + 2 * w, Image1(Combo4.ListCount).Top
Me.Label14(Combo4.ListCount).Caption = Text4.Text
arStayAbsciss(Mis, Combo4.ListCount) = Str$(X - w): arStayOrdinata(Mis, Combo4.ListCount) = (Y - w)
arStayName(Mis, Combo4.ListCount) = Text4.Text
Me.Combo4.AddItem arStayName(Mis, Combo4.ListCount)
Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Combo7.AddItem Str$(X) + "," + Str$(Y)
nama(LinesCount - 1, aa - 1) = Str$(aa - 1)
Dim arLinesName(0 To 30) As String, LinesCount As Integer '30 max маршрутов
Dim arBusNumber(0 To 30, 0 To 25) As String, arBusCount(0 To 30) As Integer
Dim AllBuses As Integer '25 - max автлбусов
Dim arDriveName(0 To 30, 0 To 25) As String
Dim arConductorName(0 To 30, 0 To 25) As String
Dim arStayName(0 To 30, 0 To 35) As String ' 35 - max остановокнаодноммаршруте
Dim arStayAbsciss(0 To 30, 0 To 35) As String
Dim arStayOrdinata(0 To 30, 0 To 35) As String
Dim arStayCount(0 To 30) As Integer
Dim arStayPast(0 To 30, 0 To 25) As Integer последняяостановкаавтобуса
DimarStayEdit(0 To 30, 0 To 25) AsIntegerв какую сторону изменять остановки
Dim arCoordEdit(0 To30,Dim k(0 To 30, 0 To 25) As Single вкакуюсторонуизменятькоординаты
Dim b(0 To 30, 0 To 25) As Single угловойкоэффициентпридвижении
Dim my As Single, p As Integer, Pisk As Integer
Public Mis As Integer определенныймаршрут
Public Misk As Integer определенныйавтобус
Const t0 = 4: Const t1 = 7: Const t2 = 10: Const t3 = 13
Const t4 = 15: Const t5 = 17: Const t6 = 20: Const t7 = 23
Image1(i).Picture = LoadPicture("c:\ Курсовая моя\Иконки\Blue Bus.ico")
If Len(Dir("c:\Êóðñîâàÿ ìîÿ\" + Combo1.List(Mis) + ".txt")) = 0 Then
MsgBox " Файл маршрутов не найден!!!" + vbCrLf + _
"Ïðîâåðüòå åãî íàëè÷èå : 'c:\Êóðñîâàÿ ìîÿ\" + Combo1.List(Mis) + ".txt'"
Me.Picture1.PSet (arStayAbsciss(Mis, 0), arStayOrdinata(Mis, 0))
Me.Image2(0).Move arStayAbsciss(Mis, 0) - w, arStayOrdinata(Mis, 0) - w
Me.Label14(0).Move Image2(0).Left + 2 * w, Image2(0).Top
Me.Label14(0).Caption = arStayName(Mis, 0)
For i = 0 To (arStayCount(Mis) - 1)
Me.Picture1.Line -(arStayAbsciss(Mis, i), arStayOrdinata(Mis, i))
Me.Image2(i).Move arStayAbsciss(Mis, i) - w, arStayOrdinata(Mis, i) - w
Me.Label14(i).Move Image2(i).Left + 2 * w, Image2(i).Top
Me.Label14(i).Caption = arStayName(Mis, i)
If Boom = True Then Boom = False: First_Stay_of_Buses
For i = 0 To (arBusCount(Combo1.ListIndex) - 1)
If Misk <> 999 Then If Image1(Misk).Visible = True Then Image1_Click (Misk)
If tnow > t0 And tnow < t1 Or tnow > t2 And tnow < t3 Or tnow > t4 And tnow < t5 Or _
tnow > t6 And tnow <= t7 Then Label8.Caption = "60 êì/÷": Timer1.Interval = 5
If tnow >= t1 And tnow <= t2 Or tnow >= t3 And tnow <= t4 Or tnow >= t5 And tnow <= t6 Then _
Label8.Caption = "30 êì/÷": Timer1.Interval = 10
If tnow = 24 Or tnow >= 0 And tnow <= 4 Then Label8.Caption = " - ": 'Timer1.Enabled = False
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
For z = 0 To (Combo1.ListCount - 1)
Me.Picture1.PSet (arStayAbsciss(z, 0), arStayOrdinata(z, 0))
Me.Picture1.Line -(arStayAbsciss(z, i), arStayOrdinata(z, i)), QBColor(z + 3)
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Len(Dir("c:\ Курсовая моя\маршруты.txt")) = 0 Then
MsgBox " Файл маршрутов не найден!!!" + vbCrLf + _
" Проверьте его наличие: 'c:\ Курсовая моя\маршруты.txt'"
Open "c:\ Курсовая моя\маршруты.txt" For Input As 1
Combo1.AddItem arLinesName(LinesCount)
For Mis = 0 To (Combo1.ListCount - 1)
If Len(Dir("c:\Курсоваямоя\" + Combo1.List(Mis) + ".txt")) = 0 Then
MsgBox " Файл маршрутов не найден!!!" + vbCrLf + _
" Проверьте его наличие: 'c:\Курсовая\" + Combo1.List(Mis) + ".txt'"
AllBuses = AllBuses + arBusCount(Mis)
Public Static Sub Work_With_Files()
Open "c:\Курсоваямоя\" + Combo1.List(Mis) + ".txt" For Input As 2
Case "автобус": Input #2, arBusNumber(Mis, arBusCount(Mis))
Case "водитель": Input #2, arDriveName(Mis, arBusCount(Mis))
Case "кондуктор": Input #2, arConductorName(Mis, arBusCount(Mis))
arBusCount(Mis) = arBusCount(Mis) + 1
Case "остановка": Input #2, arStayName(Mis, arStayCount(Mis))
Input #2, arStayAbsciss(Mis, arStayCount(Mis))
Input #2, arStayOrdinata(Mis, arStayCount(Mis))
arStayCount(Mis) = arStayCount(Mis) + 1
Private Sub Image1_Click(Index As Integer)
Image1(i).Picture = LoadPicture("c:\ Курсовая моя\Иконки \Blue Bus.ico")
Label4.Caption = arBusNumber(Mis, a)
Text2.Text = arConductorName(Mis, a)
Me.Label13.Caption = Str$(Fuel(Index))
Me.Image1(i).Picture = LoadPicture("c:\ Курсовая моя\Иконки \Purple Bus.ico")
Label4.Caption = arBusNumber(Mis, i)
Text2.Text = arConductorName(Mis, i)
Me.Label13.Caption = Str$(Fuel(Index))
Me.Image1(i).Picture = LoadPicture("c:\ Курсовая моя\Иконки \Purple Bus.ico")
Private Sub Image1_DragOver(Index As Integer, Source As Control, X As Single, Y As Single, State As Integer)
Private Sub Image2_Click(Index As Integer)
If Image1(Misk).Visible = True Then
x0(Mis, Misk) = Val(arStayAbsciss(Mis, Index))
y0(Mis, Misk) = Val(arStayOrdinata(Mis, Index))
If x0(Mis, Misk) = Val(arStayAbsciss(Mis, Index)) _
If arStayPast(Mis, Misk) = (arStayCount(Mis) - 1) Then arStayEdit(Mis, Misk) = -1
If arStayPast(Mis, Misk) = 0 Then arStayEdit(Mis, Misk) = 1
If Misk <> 999 Then If Image1(Misk).Visible = True Then Fuel(Misk) = 100
If Image1(Misk).Visible = True Then
x0(Mis, Misk) = Val(arStayAbsciss(Mis, arStayPast(Mis, Misk) + arStayEdit(Mis, Misk)))
If x0(Mis, Misk) = Val(arStayAbsciss(Mis, arStayPast(Mis, Misk) + arStayEdit(Mis, Misk))) _
Then arStayPast(Mis, Misk) = arStayPast(Mis, Misk) + arStayEdit(Mis, Misk)
If Image1(Misk).Visible = True Then
x0(Mis, Misk) = Val(arStayAbsciss(Mis, arStayPast(Mis, Misk)))
Me.mnuMove.Caption = "Включить режим: передвижение автобусов"
Me.mnuMove.Caption = "Включить: режим выбора автобуса"
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
If Val(arStayAbsciss(Mis, arStayPast(Mis, Pisk))) > Val(arStayAbsciss(Mis, arStayPast(Mis, Pisk) + arStayEdit(Mis, Pisk))) _
For i = Val(arStayAbsciss(Mis, arStayPast(Mis, Pisk))) To Val(arStayAbsciss(Mis, arStayPast(Mis, Pisk) + arStayEdit(Mis, Pisk))) Step -1
If i = Fix(X) Then x0(Mis, Pisk) = X
For i = Val(arStayAbsciss(Mis, arStayPast(Mis, Pisk))) To Val(arStayAbsciss(Mis, arStayPast(Mis, Pisk) + arStayEdit(Mis, Pisk))) Step 1
If i = Fix(X) Then x0(Mis, Pisk) = X
Fuel(i) = Fuel(i) - 1 / (1000 * Me.Timer1.Interval)
If i = Misk Then Me.Label13.Caption = Str$(Fuel(Misk))
For z = 0 To (Combo1.ListCount - 1)
If arStayPast(z, i) = (arStayCount(z) - 1) Then arStayEdit(z, i) = -1
If arStayPast(z, i) = 0 Then arStayEdit(z, i) = 1
If Val(arStayAbsciss(z, arStayPast(z, i))) > Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
If Val(arStayAbsciss(z, arStayPast(z, i))) < Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
If Val(arStayAbsciss(z, arStayPast(z, i))) = Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
k(z, i) = (Val(arStayOrdinata(z, arStayPast(z, i))) - Val(arStayOrdinata(z, arStayPast(z, i) + arStayEdit(z, i)))) / _
(Val(arStayAbsciss(z, arStayPast(z, i))) - Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))))
b(z, i) = Val(arStayOrdinata(z, arStayPast(z, i))) - k(z, i) * Val(arStayAbsciss(z, arStayPast(z, i)))
x0(z, i) = x0(z, i) + c * 2 * arCoordEdit(z, i)
y0(z, i) = k(z, i) * x0(z, i) + b(z, i)
Image1(i).Move x0(z, i) - Image1(i).Width / 2, y0(z, i) - Me.Image1(i).Height / 2
If x0(z, i) >= Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
Then arStayPast(z, i) = arStayPast(z, i) + arStayEdit(z, i)
If x0(z, i) <= Val(arStayAbsciss(z, arStayPast(z, i) + arStayEdit(z, i))) _
Then arStayPast(z, i) = arStayPast(z, i) + arStayEdit(z, i)
Public Static Sub First_Stay_of_Buses()
For z = 0 To (Combo1.ListCount - 1)
Me.Image1(i).Move arStayAbsciss(z, 0) - Image1(i).Width / 2, _
arStayOrdinata(z, 0) - Image1(i).Height / 2
x0(z, i) = Val(arStayAbsciss(z, 0)): y0(z, i) = Val(arStayOrdinata(z, 0))
'MsgBox Str$(z) + " - " + Str$(i) + " - " + Str$(X0(z, i)) + " " + Str$(Y0(z, i))
arStayPast(z, i) = arStayPast(z, i - 1) + 1
Me.Image1(i).Move arStayAbsciss(z, arStayPast(z, i)) _
arStayOrdinata(z, arStayPast(z, i)) _
x0(z, i) = Val(arStayAbsciss(z, arStayPast(z, i)))
y0(z, i) = Val(arStayOrdinata(z, arStayPast(z, i)))
'MsgBox Str$(z) + " - " + Str$(i) + " - " + Str$(X0(z, i)) + " " + Str$(Y0(z, i))

Название: Программирование в Бейсике
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
Добавлен 05:16:55 29 января 2011 Похожие работы
Просмотров: 475
Комментариев: 14
Оценило: 1 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Курсовая работа: Программирование в Бейсике
Реферат: Why Did We Drop The First Atomic
Город Рим Реферат 7 Класс
Реферат: A Review Of
Реферат: Творчество Рембрандта
Курсовая работа по теме Системы управления экономическими объектами
Контрольная работа по теме Аналіз інтелектуального капіталу як фактору сучасного виробництва
Наличие В России Политической Идентичности Народа Эссе
Контрольная работа: по Экологии 11
Реферат На Тему Административное Устройство России В Xviii Веке
Курсовая работа по теме Внешние эффекты на рынке
Эссе На Тему Мой Психологический Портрет
Ролевые Игры Курсовая Работа
Курсовая работа по теме Управление в черезвычайных ситуациях
Курсовая работа: Инвестиционный портрет Республики Бурятия. Скачать бесплатно и без регистрации
Дипломная работа по теме Термодинамика химической устойчивости сплавов системы Mn-Si
Сочинение На Тему Как Провели Осенние Каникулы
Аденома Предстательной Железы Реферат
Реферат по теме Организация и порядок деятельности нотариата
Реферат: Основные экономические показатели предприятия
Реферат: Книга S.Gran "A Course in Ocean Engineering". Глава "Усталость". Скачать бесплатно и без регистрации
Реферат: Социальные изменения
Реферат: Народы Прибалтики XVI-XVII вв.
Курсовая работа: Внутрифирменное планирование на предприятии

Report Page