Создать базу данных "Одноклассники" - Turbo Pascal
Формулировка задачи:
«Одноклассники»
- фамилия
- месяц и год рождения
- номер телефона
Составить типизированный файл. Данные вводить в файл. Производить поиск по фамилии, а также именинников одного месяц рождения и выводить результаты на экран и в другой файл. В случае отсутствия человека с заданной фамилией выводить соответствующее сообщение. Добавлять записи в файл. Сортировать данные по фамилии.
Незнаю вобще как это делать.Помогите кто знает ПЖ!
Решение задачи: «Создать базу данных "Одноклассники"»
textual
Листинг программы
program Zadanie6;
uses crt;
type
odnoklassniki=record
fam:string[30];
mec:iteger;
nom:integer;
end;
type fil=file of odnoklassniki;
mas=array[1..5] of odnoklassniki;
var
f,od,q:fil;
d,y,:plan;
a:mas;
f1:string;
i,n,m,k,l:integer;
flag:boolean;
procedure sozd(var f:fil);
begin
clrscr;
assign(f,'odnoklassniki.txt');
rewrite(f);
write('Введите количество фамилий: ');
readln(k);
writeln;
for m:=1 to k do
begin
with d do
write('Введите фамилию: ');
readln(fam);
write('Введите месяц и год рождения: ');
readln(mec);
write('Введите номер телефона: ');
readln(nom);
writeln;
end;
write(f,d);
end;
close(f);
writeln('Для выхода нажмите ENTER');
readkey;
end;
procedure mk (var f:fil);
begin
clrscr;
flag:=false;
assign(od,'odnaklassniki2.txt');
write('Введите фамилию: ');
readln(f1);
writeln;
reset(f);
rewrite(od);
while not eof(f) do
begin
read(f,d);
with d do
begin
if f1=fam then
begin
flaf:=true;
write('Фамилия: ');
writeln(fam);
write('Месяц и год рождения: ');
writeln(mec);
write('Номер телефона: ');
writeln(nom);
write(od,d);
writeln;
end;
end;
end;
if flag=false then writeln('Такой фамилии нет!');
close(od);
close(f);
writeln('Для выхода нажмите ENTER');
readkey;
end;
procedure dob(var f:fil);
begin
clrscr;
write('Введите количество новых данных которые вы хотите добавить:');
readln(n);
writeln;
assign(f,'odnoklassniki.txt');
reset(f);
seek(f,filesize(f));
for i:=1 to n do
begin
with d do
begin
write('Введите фамилию: ');
readln(fam);
write('Введите месяц и год рождения: ');
readln(mec);
write('Введите номер телефона: ');
readln(nom);
writeln;
write(f,d);
end;
end;
close(f);
writeln('Для выхода нажмите ENTER');
readkey;
end;
procedure prm (var f:fil);
begin
clrscr;
flag:=false;
write('Введите месяц и год рождения: ');
readln(f1);
assign(q,'odnoklassniki.txt');
writeln;
reset(f);
rewrite(q);
while not eof(f) do
begin
read(f,d);
with d do
begin
if (f1=mec) then
begin
flag:=true;
writeln;
write('Фамилия: ');
writeln(fam);
write('Месяц и год рождения: ');
writeln(mec);
write('Номер телефона: ');
writeln(nom);
write(q,d);
end;
end;
end;
if flag=false then writeln('Таких фамилий нет!');
close(q);
close(f);
writeln('Для выхода нажмите ENTER');
readkey;
end;
procedure mash(var f:fil);
begin
assign(f,'odnoklassniki.txt');
reset(f);
k:=filesize(f);
for i:=1 to k do
with d do
begin
clrscr;
read(f,d);
a[i].fam=fam;
a[i].mec=mec;
a[i].nom=nom;
end;
for l:=k downto 2 do
for i:=1 to l-1 do
if a[i].
Объяснение кода листинга программы
Код написан на языке Turbo Pascal. Он включает в себя следующие элементы:
- Тип данных
odnoklassniki, который представляет одну запись о человеке. Он содержит поляfam(фамилия),mec(месяц и год рождения) иnom(номер телефона). - Тип данных
filпредставляет файл, содержащий записи о людях. Он является массивом записей типаodnoklassniki. - Переменные
k,f,od,qиaиспользуются для работы с файлом и данными. - Функция
sozdсоздает базу данныхodnoklassniki.txtи записывает в нее данные, введенные пользователем. - Функция
mkдобавляет новую запись в базу данныхodnoklassniki2.txt, если фамилия существует в базе данныхodnoklassniki.txt. Если фамилия не существует, то функция сообщает об этом. - Функция
dobдобавляет новые данные в базу данныхodnoklassniki.txt. - Функция
prmдобавляет новую запись в базу данныхodnoklassniki.txt, если фамилия и месяц и год рождения совпадают с введенными пользователем данными. Если фамилия и месяц и год рождения не совпадают, то функция сообщает об этом. - Функция
mashчитает файлodnoklassniki.txtи заполняет массивaданными о людях.