|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
03.04.2010, 21:32 | #1 |
Новичок
Джуниор
Регистрация: 03.04.2010
Сообщений: 3
|
Лабораторная работа.
Задача:
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. Код программы: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button5Click(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.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.FormCreate(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Edit5.Text:=''; Memo1.Clear; // Сделать невидимой кнопку "Ввести запись" nzap:=0; Button1.Hide; end; procedure TForm1.Button2Click(Sender: TObject); {кнопка создания файла} begin Memo1.clear; 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 Memo1.clear; 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.Button6Click(Sender: TObject); {кнопка закрытия формы} begin form1.Close; 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 end. я создаю файл «1» забиваю в него необходимые данные. Жму кнопку «сохранить» и создаю файл «2», куда все это дело сохраняется. Собственно, с кнопкой 5 «Сохранение» и возникает проблема. Данные сохраняются в файле «2», но в искаженном виде и не полностью. Вылезают какие-то лишние цифры, иероглифы и т.д. Про нахождение рейсов с минимальным временем пути я вообще молчу. Не понимаю даже алгоритма решения задачи. Заранее спасибо за помощь. |
04.04.2010, 18:01 | #2 |
Новичок
Джуниор
Регистрация: 03.04.2010
Сообщений: 3
|
Если необходимо - вот исходник
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button5Click(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.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.FormCreate(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Edit5.Text:=''; Memo1.Clear; // Сделать невидимой кнопку "Ввести запись" nzap:=0; Button1.Hide; end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.clear; 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 Memo1.clear; 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.Button6Click(Sender: TObject); begin form1.Close; 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; end. |
04.04.2010, 20:13 | #3 | |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
Цитата:
и зачем тебе мемо, удобнее стрингрид пользовать
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
|
04.04.2010, 20:20 | #4 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
время преобразуй в число, но не StrToInt, а своей функцией, чтобы брала из времени все цифры, а не только до точки
напр так Код:
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
05.04.2010, 21:47 | #5 |
Новичок
Джуниор
Регистрация: 03.04.2010
Сообщений: 3
|
RUSt88. Пока понимаю с трудом.Мне по условию надо, чтобы программа выбирала минимальное время пути до Пункта Назаначения "XYZ". Как сделать так, чтобы программа выбирала маршруты только до этого пункта и из маршрутов выбирала минимальное время. Как написать алгоритм нахождения. Я его не понимаю
Если необходимо - во вложении проэкт. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
лабораторная работа! | nikolayz | Помощь студентам | 2 | 20.12.2010 19:04 |
[C++]Лабораторная работа | Sudeki | Помощь студентам | 0 | 17.11.2009 20:02 |
Лабораторная работа | Дініс | Фриланс | 4 | 17.11.2009 13:26 |
Delphi лабораторная работа | Дмитрий666 | Помощь студентам | 3 | 06.05.2009 12:18 |