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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 23:54   #1
Ikari Shinji
Новичок
Джуниор
 
Регистрация: 09.06.2010
Сообщений: 3
Восклицание Pascal - Записи

Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе типизированного файла. Функциями программы (выбираются из стартового меню) являются:
1. Создание нового файла базы данных
2. Открытие существующего файла базы данных
3. Добавление данных в файл базы данных
4. Просмотр всех данных, хранящихся в файле базы данных, в виде списка
5. Просмотр данных, удовлетворяющих определенным условиям отбора, отсортированных по указанному критерию

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

Параллельно выполняю сам, это для страховки. Заранее благодарен.

Цитата:
Program shkola;
uses CRT;
type
b=RECORD
imya:string;
Famil:string;
vozrast:byte;
end;
var sch: file of b;
men:integer;
imya:string;
nomer:byte;

procedure sozdat_file;
var f:file of b;
name:string;
begin
write('Введите имя базы данных: ');
readln(name);
if fileexists(name) then writeln('База данных с таким именем уже существует')
else
begin
assign(f,name);
rewrite(f);
close(f);
writeln('База данных успешно создана');
end;
readln;
end;

procedure otkrit_file(var f:file of b; var q:integer; var name:string);
begin
write('Введите имя базы данных ');
readln(name);
if fileexists(name) then
begin
assign(f,name);
reset(f);
q:=1;
writeln('База данных открыта');
end
else writeln('Такой базы данных не существует ');
readln;
end;
procedure Dobavlenie_dannih(f:file of b);
var m:b;
i,x:integer;
begin
while not eof(f) do
read(f,m);
writeln('Какое количество записей вы хотели бы создать?: ');
readln(x);
for i:=1 to x do
begin
clrscr;
write('Введите Имя: ');
readln(m.imya);
write('Введите Фамилию: ');
readln(m.Famil);
writeln('Выбирите год рождения: ');
readln(m.vozrast);
write(f,m);
writeln;
end;
end;

procedure Prosmotr(f:file of b);
var m:b;
w:string;
begin
seek(f,0);
while not eof(f) do
begin
read(f,m);
case m.vozrast of
end;
writeln(m.imya:20,m.Famil,w:20);
end;
readln;
end;

procedure usloviya(f:file of b);
var e:array[1..100] of b;
m:b;
vozr,y,x1:byte;
j,stoi:real;
begin
seek(f,0);
;
readln(vozr);
y:=1;
while not eof(f) do
begin
read(f,m);
if (m.vozrast=vozr) then
begin
e[y]:=m;
inc(y);
end;
end;

for x1:=1 to y-1 do
begin
m.Famil:=e[x1].Famil;
for vozr:=1 to y-1 do
begin
if e[vozr].Famil>m.Famil then
begin
m:=e[x1];
e[x1]:=e[vozr];
e[vozr]:=m;
end;
end;
end;

for vozr:=1 to y-1 do

writeln(e[vozr].imya:20,e[vozr].Famil,m.imya:20);
end;
readln;
end;
{------------------------------------------------------------------------------}
begin
men:=0;
repeat
clrscr;
writeln('Что вы хотели бы сделать?: ');
if men=1 then
begin Writeln('текущая база:',imya);
writeln;
writeln('3: Заполнить базу данных');
writeln('4: Просмотреть базу данных');
writeln('5: Просмотр списка школьников по году рождения');
end
else
begin
writeln('1: Создать новую базу данных.');
writeln('2: Открыть существующую базу данных.');
end;
writeln('0: Выйти');
writeln;
write('Введите номер желаемого действия: ');
readln(nomer);
case nomer of
1:sozdat_file;
2tkrit_file(sch,men,imya);
3:Dobavlenie_dannih(sch);
4:Prosmotr(sch);
5:usloviya(sch);
end;
until(nomer=0);
if men=1 then close(sch);
end.[/PHP]
Попытался сделать сам, но что-то не очень получается
Ikari Shinji вне форума Ответить с цитированием
Старый 10.06.2010, 00:24   #2
Ikari Shinji
Новичок
Джуниор
 
Регистрация: 09.06.2010
Сообщений: 3
По умолчанию

Прошу помогите, мозги уже не варят. Могу даже денег на телефон кинуть если кто поможет. Завтра сдавать, а она решает пустят меня на экзамен или нет...
Ikari Shinji вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] Записи Дмитрий230192 Помощь студентам 2 02.03.2010 21:55
Задача на записи (pascal) Proffy69 Помощь студентам 1 12.05.2009 23:15
Записи (Pascal) ALLELE Помощь студентам 3 09.05.2009 15:36