Массив записей в динамической памяти базы данных "Аптека"

Страницы работы

Содержание работы

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова

Кафедра информационных систем и технологий

Лабораторная работа №3

«Массив записей в динамической памяти»

Преподаватель: Козлов В.Р.

Выполнил: Боровкова К.О.

Группа: И-351

Санкт-Петербург

2006 год.

Задание:

Разработать модуль, определяющий в массиве записей с полями: номер аптеки, наименование лекарства, шифр лекарства, страна-производитель, количество, стоимость  совпадение с отдельно введенным «материалом» и выводящий данные о таких элементах массива. Поиск и удаление.


Блок-схема алгоритма

Текст программы

Lab_3.pas

program lab_3; {sozdaet bazu dannih dlya apteki}

uses crt,in_out,job,global;

begin

clrscr;

assign(f1,'table.txt');

new(a);

while true do begin

writeln;

writeln('1.Просмотр базы');

writeln('2.Добавление информации');

writeln('3.Поиск');

writeln('4.Удаление информации');

writeln('5.Выход');

readln(key);

clrscr;

case key of

'1': begin

vivod(a,n);

readln;

clrscr;  end;

'2': begin

vvod(a,n);

clrscr; end;

'3': begin

poisk(a,n);

readln;

clrscr; end;

'4': begin

del(a,n);

readln;

clrscr; end;

'5': halt;

end;

end;

dispose(a);

end.

Global.pas

unit global;

interface

uses crt;

type zap=record

num:string[3];

lek:string[14];

shifr:string[5];

land:string[11];

kol:string[5];

price:string[5];

end;

mas=array[1..20] of zap;

ptr=^mas;

var

key:char;

ok:boolean;

a:ptr;

n:byte;

implementation

begin

a:=nil;

end.

In_Out.pas

unit in_out;

interface

uses crt,global;

procedure vvod(var a:ptr ;var n:byte);

procedure vivod(a:ptr ;n:byte);

var f1:text;

implementation

procedure vvod;

var k:char;

begin

repeat

n:=n+1;

with a^[n] do begin

clrscr;

writeln;

writeln('введите номер аптеки');

readln(num);

writeln('введите название лекарства');

readln(lek);

writeln('введите шифр');

readln(shifr);

writeln('введите страну-производитель');

readln(land);

writeln('введите кол-во');

readln(kol);

writeln('введите стоимость');

readln(price);

end;

writeln('ещё одна запись?y/n');

readln(k);

until k='n';

end;

procedure vivod;

var i:byte;

z:zap;

begin

writeln;

{shapka}

if n=0 then

writeln('База данных пуста')

else begin

rewrite(f1);

write('╔═══════╦══════════════╦═════════╦══════════════════════╦════════╦═══════════╗');

write(f1,'╔═══════╦══════════════╦═════════╦══════════════════════╦════════╦═══════════╗');

writeln;

writeln(f1);

write('║ Номер ║ Наименование ║  Шифр   ║ Страна-производитель ║ Кол-во ║ Стоимость ║');

writeln;

write('║аптеки ║  лекарства   ║лекарства║                      ║        ║           ║');

write(f1,'║ Номер ║ Наименование ║  Шифр   ║ Страна-производитель ║ Кол-во ║ Стоимость ║');

writeln(f1);

write(f1,'║аптеки ║  лекарства   ║лекарства║                      ║        ║           ║');

for i:=1 to n do begin

if i mod 9=0 then begin

writeln;

write('╚═══════╩══════════════╩═════════╩══════════════════════╩════════╩═══════════╝');

writeln;

writeln('Нажмите любую клавишу для продолжения':40);

readln;

clrscr;

write('╔═══════╦══════════════╦═════════╦══════════════════════╦════════╦═══════════╗');

writeln;

write('║ Номер ║ Наименование ║  Шифр   ║ Страна-производитель ║ Кол-во ║ Стоимость ║');

writeln;

write('║аптеки ║  лекарства   ║лекарства║                      ║        ║           ║');

end;

writeln;

writeln(f1);

write('╠═══════╬══════════════╬═════════╬══════════════════════╬════════╬═══════════╣');

write(f1,'╠═══════╬══════════════╬═════════╬══════════════════════╬════════╬═══════════╣');

writeln;

writeln(f1);

with a^[i] do begin

write('║');write(num:4); write('║':4); write(lek:9); write('║':6);

write(shifr:6);write('║':4); write(land:21); write('║':2); write(kol:6); write('║':3);

write(price:8); write('║':4);

write(f1,'║');write(f1,num:4); write(f1,'║':4); write(f1,lek:9); write(f1,'║':6);

write(f1,shifr:6);write(f1,'║':4); write(f1,land:21); write(f1,'║':2); write(f1,kol:6); write(f1,'║':3);

write(f1,price:8); write(f1,'║':4);

end;

end;

writeln;

writeln(f1);

write('╚═══════╩══════════════╩═════════╩══════════════════════╩════════╩═══════════╝');

Похожие материалы

Информация о работе