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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 12:28   #1
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию В справочной автовокзала хранится расписание движения автобусов [Delphi]

Здравствуйте уважаемые эксперты! Есть следующее задание: В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. Подскажите пожалуйста, как можно, найти необходимые записи? Мне посоветовали использовать для сравнения по времени функцию TDateTime, но что-то я не знаю, как это можно сделать Заранее огромное спасибо!!!
StudeHt вне форума Ответить с цитированием
Старый 29.11.2009, 12:33   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
как можно, найти необходимые записи?
if пункт прибытия = пункту и время прибытия <= время then вот она ваша запись
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 29.11.2009, 12:45   #3
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Объявляется запись типа:
Код:
type
  THelpRoadServiseStation=record
  Number:integer;
  TypeTheBus:string[15];
  Destination:string[20];
  DepartureTime:TDateTime;
  ArrivalTime:TDateTime;
  end;
Создаем 2 переменные, например
Код:
DemDes:string[20];
ST:TDateTime;
Затем считываем их из эдита:
Код:
DemDes:=Edit1.Text;
St:=Edit2.Text;
И дальше прогоняем по массиву записей в цикле:
Код:
for i:=0 to LenPG-1 do
  begin
    if (DemDes:=HelpRoadServiseStation[i].Destination) and (StrToTime(HelpRoadServiseStation[i])<=StrToTime(St)) then 
//выводим запись
Так нужно?
StudeHt вне форума Ответить с цитированием
Старый 29.11.2009, 12:46   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Так нужно?
ага
//1000-сообщений
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 29.11.2009, 13:02   #5
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Поздравляю с 1000-м сообщением
Вот есть обработка по нажатию кнопки:
Код:
procedure TMainFormOfLab6.ButtonSearchRecordsClick(
  Sender: TObject);
var HelpRoadServiseStation:array of THelpRoadServiseStation;
    LenPG,RowNum:integer;
    i:integer;
    DemDes:string[20];//íåîáõîäèìûé ïóíêò íàçíà÷åíèÿ
    ST:TDateTime;//âðåìÿ ïðèáûòèÿ
begin
  LenPG:=StringGridData.RowCount-StringGridData.FixedRows;
  RowNum:=StringGridData.FixedRows;
  SetLength(HelpRoadServiseStation,LenPG);
  //ïåðåãðóæàåì äàííûå â ìàññèâ
  for i:=0 to LenPG-1 do
    begin
      with StringGridData,HelpRoadServiseStation[i] do
        begin
          RowNum:=FixedRows+i;
          Number:=StrToInt(Cells[1,RowNum]);
          TypeTheBus:=Cells[2,RowNum];
          Destination:=Cells[3,RowNum];
          DepartureTime:=StrToTime(Cells[4,RowNum]);
          ArrivalTime:=StrToTime(Cells[5,RowNum]);
        end;
    end;
  //ïîèñê ïîäõîäÿùèõ ðåéñîâ
  DemDes:=EditDemandedDestination.Text;
  ST:=StrToTime(EditSetTime.Text);
  i:=0;
  for i:=0 to LenPG-1 do
    begin
      if (DemDes:=HelpRoadServiseStation[i].Destination) and
      (SrtToTime(HelpRoadServiseStation[i].ArrivalTime)<=StrToTime(ST)) then
        begin //здесь не знаю как сделать
  //âûãðóæàåì äàííûå îáðàòíî â StringGrid
  for i:=0 to LenPG-1 do
    begin
      RowNum:=StringGridData.FixedRows+i;
      with StringGridData,HelpRoadServiseStation[i] do
        begin
          Cells[1,RowNum]:=IntToStr(Number);
          Cells[2,RowNum]:=TypeTheBus;
          Cells[3,RowNum]:=Destination;
          Cells[4,RowNum]:=TimeToStr(DepartureTime);
          Cells[5,RowNum]:=TimeToStr(ArrivalTime);
        end;
    end;
  StringGridData.RowCount:=RowNum+1;
  Finalize(HelpRoadServiseStation);
  ButtonSaveResultToFile.Visible:=True;
end;
Для того чтобы вывести в таблицу необходимые записи нужно использовать еще один массив для их хранения? Или я совсем ничего не понимаю И еще компилятору не нравиться эта строка:
Код:
 if (DemDes:=HelpRoadServiseStation[i].Destination) and
StudeHt вне форума Ответить с цитированием
Старый 29.11.2009, 13:04   #6
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
не нравиться эта строка
правильно делает
Код:
 if (DemDes=HelpRoadServiseStation[i].Destination) and
Цитата:
Для того чтобы вывести в таблицу необходимые записи нужно использовать еще один массив для их хранения?
ну эт уж как вам удобнее
можете при нахождении сразу ее выводить в таблицу а можете забивать в массив а потом проходя по нему забивать в таблицу
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 29.11.2009 в 13:07.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 29.11.2009, 13:09   #7
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Спасибо, сейчас буду думать..
StudeHt вне форума Ответить с цитированием
Старый 27.05.2013, 00:39   #8
pis_an
 
Регистрация: 17.05.2013
Сообщений: 4
По умолчанию

Уважаемый StudeHt! не могли бы Вы выложить архив с решенной задачей



В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени.
pis_an вне форума Ответить с цитированием
Старый 27.05.2013, 01:15   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

pis_an, последняя дата посещения форума у StudeHtа - 07.04.2012, то есть более года назад, что вызывает некоторые сомнения, насчет его появления в данной теме. Тем более, что за 3,5 года не так уж легко сохранить код, который, скорее всего, был какой-нибудь курсовой работой. Так что лучше напишите сами
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.05.2013, 00:37   #10
pis_an
 
Регистрация: 17.05.2013
Сообщений: 4
По умолчанию

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

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);
pis_an вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача про расписание любаша Общие вопросы C/C++ 1 25.11.2009 07:55
Расписание движения поездов. KORT БД в Delphi 3 17.09.2007 14:01
"Разработка информационной справочной системы" Делфи SQL brainPhP БД в Delphi 0 15.05.2007 13:26
Расписание в Excel Python Microsoft Office Excel 0 25.11.2006 17:01
в каком виде хранится иконка в Exe-файле? как её из него вытащить/заменить? Holly1444 Общие вопросы Delphi 0 18.11.2006 13:56