Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2015, 23:59   #1
username12
 
Регистрация: 03.11.2015
Сообщений: 6
По умолчанию Расписание движения автобусов

Здравствуйте уважаемые эксперты! Есть следующее задание: В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. ПОМОГИТЕ НАПИСАТЬ КОД ДЛЯ Button4 - Я НЕ ПОНИМАЮ, КАК Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени

Код:
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
 
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
BitBtn1: TBitBtn;
 
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
 
 
private
{ Private declarations }
public
{ Public declarations }
end;
Type 
Tavt=record 
Nmar: integer; 
Tipavt: string[20]; 
Punkt: string[20]; 
VrOtpr: TDateTime; 
VrPr: TDateTime;
end;
Var
Fz:File of Tavt; // Файл типа запись
Ft:TextFile; // Текстовой файл
Avto:array[1..100] of Tavt;// Массив записей
nzap:integer; // Номер записи
FileNameZ, FileNameT : string;// Имя файла
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 
Edit1.Text:='';
Edit2.Text:=''; 
Edit3.Text:=''; 
Edit4.Text:=''; 
Edit5.Text:='';
Memo1.Clear; // Очистка окна редактора Memo1
Memo1.Lines.Add('Лаб.раб.№6 ');
Memo1.Lines.Add('__________________ ___________________________________ ____________________________');
Memo1.Lines.Add('№ маршр | тип авт | пункт наз | время отпр | время приб ');
Button1.Hide; // Сделать невидимой кнопку "Ввести запись"
nzap:=0; 
end;
 
procedure TForm1.Button1Click(Sender: TObject); // Ввести новую запись
begin
nzap:=nzap+1;
with Avto[nzap] do begin 
Nmar:=StrToInt(Edit1.Text); 
Tipavt:=Edit2.Text; 
Punkt:=Edit3.Text; 
VrOtpr:=StrToTime(Edit4.Text); 
VrPr:=StrToTime(Edit5.Text);
Memo1.Lines.Add(IntToStr(Nmar)+' '+Tipavt+' '+Punkt+' '
+timeToStr(VrOtpr)+' '+timeToStr(VrPr));
end;
Write(fz,Avto[nzap]); // Запись в файл 
Edit1.Text:=''; 
Edit2.Text:=''; 
Edit3.Text:=''; 
Edit4.Text:=''; 
Edit5.Text:=''; 
end;
procedure TForm1.Button2Click(Sender: TObject); // Создание нового файла записей
begin
OpenDialog1.Title :='Создать новый файл'; // Изменение заголовка окна диалога 
if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла 
begin
FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Fz,FileNameZ); // Связывание файловой переменной Fz c именем файла
Rewrite(Fz); // Создание нового файла
end; 
Button1.Show;
 
end;
 
 
procedure TForm1.Button3Click(Sender: TObject); // Открыть существующий файл
begin
 
if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла 
begin
FileNameZ:=OpenDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла 
Reset(Fz); // Открытие существующего файла 
end; 
while not eof(fz) do begin 
nzap:=nzap+1; 
Read(fz,Avto[nzap]); // Чтение записи из файла 
with Avto[nzap] do
Memo1.Lines.Add(IntToStr(Nmar)+' '+Tipavt+' '+Punkt+' '
+TimeToStr(VrOtpr)+' '+TimeToStr(VrPr));
end;
Button1.Show; // Сделать видимой кнопку "Ввести запись"
end;
 
 
procedure TForm1.Button5Click(Sender: TObject);// Сохранение результатов в текстовом файле
var i:word;
begin
if SaveDialog1.Execute then // Выполнение стандартного диалога выбора имени файла
begin
FileNameT:=SaveDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Ft, FileNameT); // Связывание файловой переменной Ft c именем файла
Rewrite(Ft); // Открытие нового текстового файла
end;
for i:=1 to nzap do
with Avto[i] do Writeln(ft,
IntToStr(Nmar)+' '
+Tipavt+' '
+Punkt+' '
+TimeToStr(VrOtpr)+' '
+TimeToStr(VrPr));
CloseFile(Ft); // Закрытие текстового файла
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(fz); // Закрытие файла записей при нажатии на кнопку "Сlose"
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(fz); // Закрытие файла записей при нажатии на кнопку (закрыть крестик) 
end;
 
end.

Последний раз редактировалось Stilet; 04.11.2015 в 09:43.
username12 вне форума Ответить с цитированием
Старый 04.11.2015, 09:49   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
for //просмотр расписания всех авто
if // автобус нам подходит
then //добавляем инфу в список
Код:
for // первый просмотр
for // второй просмотр
if // второй приходит туда раньше чем первый отправляется оттуда
then // добавляем инфу
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 04.11.2015 в 09:51.
evg_m вне форума Ответить с цитированием
Старый 04.11.2015, 12:58   #3
username12
 
Регистрация: 03.11.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
for //просмотр расписания всех авто
if // автобус нам подходит
then //добавляем инфу в список
Код:
for // первый просмотр
for // второй просмотр
if // второй приходит туда раньше чем первый отправляется оттуда
then // добавляем инфу

Как полностью написать?
username12 вне форума Ответить с цитированием
Старый 04.11.2015, 14:28   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
for j:=<начальный индекс в общем списке расписаний> to <последний заполненный индекс в списке расписаний> do 
begin
  if ( <текущий элемент списка расписаний>.пункт назначения =<наш пункт назначения>  )
    and ( <текущий элемент списка расписаний>.время прибытия < <контрольное время прибытия> )
  then begin 
     ....// добавление информации в список 
  end;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача "Расписание движения" makskovalko Помощь студентам 2 31.12.2013 20:16
Программа учета движения автобусов у остановки sonia2012 C++ Builder 0 19.12.2013 18:37
В справочной автовокзала хранится расписание движения автобусов [Delphi] StudeHt Помощь студентам 10 28.05.2013 00:37
Си/Си++ Расписание автобусов Маришка_Курносова Помощь студентам 2 10.09.2010 15:03
Расписание движения поездов. KORT БД в Delphi 3 17.09.2007 14:01