Помощь - Поиск - Пользователи - Календарь
Полная версия: База данных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Doberman
Помогите разобраться с этим
Задание

Создать базу данных движения поездов, отправляющихся со станции Ташкент.
Разработать структуру базы данных, каждая запись которой содержит не менее 10 полей.
Подготовить исходные данные для разработанной БД (не менее 15 записей).
Создать разработанную БД на ПК и заполнить её исходными данными.
Посмотреть созданную БД и в случае необходимости внести необходимые корректировки.
Перекопировать исходную БД в БД2. БД2 отсортировать по какому-то признаку и
перекопировать в БД3. Предусмотреть выборку данных из исходной БД по какому-то признаку и
выдачу их на экран. Включить в программу команды, осуществляющие суммирование числовых
полей, вычисление среднего и т.д.


Я смог сделать только вот это, да и то не правильно

uses crt;
const n = 10; { kolichestvo marshrutov poezdov}
type
TRec = record {Bazoviy tip,xranit informaciyu o dannom studente}
name : string; {imya marshruta}
maks : array [1..7] of byte; {vremya otxoda poezdov po dnyam nedeli}
end;
TBase = array [1..n] of TRec;
{ Baza dannix :informaciya o grafike dvijeniya poezdov.}
TFile = file of TBase; { fail dlya zraneniya bazi}
procedure Input(var b : TBase; var f : TFile); { vvod bazi dannix }
var i,j: byte;
begin
(* Imeem massiv zapisey TBase, i-y element massiva soderjit informaciyu ob
i-om marshrute, dlya togo chtobi poluchit' naprimer imya 4 marshruta, nado
obratitsya snachala k 4 zapisi, a posle etogo k nujnomu polyu b[4].name,
ego vremya vo 2 den' nedeli - b[4].maks[2]*)
writeln('Vvod bazi dannix. ');
for i := 1 to n do
with b[i] do begin
writeln('Marshrut N ',i);
write('imya : '); readln(name);
writeln('Vvedite vremya otxoda poezda : ');
for j := 1 to 10 do begin
write('vremya otxoda poyezda v j- den : ');
readln(maks[j]);
end;
writeln;
end;
write(f, b); { zapisivaem bazu dannix v fail }
end;
procedure Print(var b : TBase; var f : TFile);
{ procedura vivoda informacii iz bazi}
(* Pomimo vivoda na ekran, informaciya budet soxranena v peremennuyu base *)
var
i,j : byte;
begin
read(f, b); { Chitaem bazu iz faila}
writeln('Informaciya o graphike dvijeniya poezdov : ');
for i := 1 to n do
with b[i] do begin
writeln('Marsrut N ,i:' );
writeln('Imya : ' + name);
writeln('vremya otxoda poezdov za 7 dney nedeli:');
for j := 1 to 3 do
writeln('vremya otxoda poezda v j- tiy den : ',maks[j]);
writeln;
end;
end;
var
base : TBase;
baseFile : TFile;
begin
clrscr;
assign(baseFile, 'c:\students.db');
rewrite(baseFile); { otkrivaem fail dlya zapisi}
Input(base, baseFile); { Proizvodim zapis' bazi v fail}
writeln('Najmite lyubuyu klavishu ...'); readln; clrscr;
reset(baseFile); { otkrivaem fail dlya chteniya}
Print(base, baseFile); { vivod informacii iz faila}
close(baseFile); { zavershenie raboti, zakrivaem fail}
readln
end.
Бродяжник
Особенно улыбнуло вот это:
Цитата
type
TRec = record {Bazoviy tip,xranit informaciyu o dannom studente}
name : string; {imya marshruta}
maks : array [1..7] of byte; {vremya otxoda poezdov po dnyam nedeli}
end;

Какой еще данный студент?! И почему время отхода поездов называется "maks"?!
Если хотите, чтобы помогли сделать - т.е. Вы делаете, а мы подсказываем - тогда начинаем сначала, по условию задачи.
Цитата
Разработать структуру базы данных, каждая запись которой содержит не менее 10 полей.

Начинаем разрабатывать структуру:
1. Номер рейса
2. Название (опционально, для фирменных и т.п. поездов)
4. Тип поезда - обычный, скорый, фирменный, еще какой-то там
5. Станция назначения
6. Время отправления
7. Время прибытия
8. Общее время пути
9. Количество дней пути
10. Частота рейсов - какой-нибудь код, указывающий, как часто ходит поезд: ежедневно, по четным дням, по нечетным дням, по выходным, только летом,... и т.д.
Теперь опишите на Паскале структурный тип, соответствующий данной структуре.
klem4
Doberman,

Цитата
Я смог сделать только вот это, да и то не правильно


А ТЫ отвечаешь за ТО что это ТВОЙ код ? mad.gif

Ты нас тут за идиотов считаешь ? Ну-ну, по крайней мере от меня никакой помощи теперь не жди.

http://forum.pascal.net.ru/index.php?showtopic=9198


Бродяжник, я думаю ответы на свои вопросы найдешь по ссылке ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.