курсач. Бд проката автомобилей
![]()
|
case n of 0: begin if (sot = 10) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите код сотрудника: '); readln(sotmas[sot].nosot); write('Введите ФИО: '); readln(sotmas[sot].fio); write('Введите возраст: '); readln(sotmas[sot].age); write('Введите пол: '); readln(sotmas[sot].pol); write('Введите адрес: '); readln(sotmas[sot].adres); write('Введите номер телефона: '); readln(sotmas[sot].phone); write('Введите номер паспорта: '); readln(sotmas[sot].pasport); write('Введите код должности: '); readln(sotmas[sot].nodol); sot:=sot+1; end; 1: begin if (dol = 5) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите код должности: '); readln(dolmas[dol].nodol); write('Введите наименование должности: '); readln(dolmas[dol].dolname); write('Введите оклад: '); readln(dolmas[dol].oklad); write('Введите обязаности: '); readln(dolmas[dol].obyazanosti); write('Введите требования: '); readln(dolmas[dol].trebovaniya); dol:=dol+1; end; 2: begin if (mark = 5) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите код марки автомобиля: '); readln(markmas[mark].nomark); write('Введите наименование: '); readln(markmas[mark].markname); write('Введите технические характеристики: '); readln(markmas[mark].techchar); write('Введите описание: '); readln(markmas[mark].opisanie); mark:=mark+1; end; 3: begin if (usl = 5) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите код доп. услуги: '); readln(uslmas[usl].nousl); write('Введите наименование: '); readln(uslmas[usl].uslname); write('Введите описание: '); readln(uslmas[usl].opisanie); write('Введите цену: '); readln(uslmas[usl].uslcena); usl:=usl+1; end; 4: begin if (avto = 10) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите код автомобиля: '); readln(avtomas[avto].noavto); write('Введите код марки: '); readln(avtomas[avto].nomark); write('Введите номер кузова: '); readln(avtomas[avto].cuznum); write('Введите номер двигателя: '); readln(avtomas[avto].dvignum); write('Введите год выпуска: '); readln(avtomas[avto].godvip); write('Введите пробег: '); readln(avtomas[avto].probeg); write('Введите цену автомобиля: '); readln(avtomas[avto].avtcena); write('Введите цену дня пробега: '); readln(avtomas[avto].daycena); write('Введите дату последнего ТО: '); readln(avtomas[avto].dto); write('Введите код сотрудника-механика: '); readln(avtomas[avto].nosot); write('Введите специальные отметки: '); readln(avtomas[avto].specmark); write('Введите отметку о возврате ("+" или "-"): '); readln(avtomas[avto].vozv); avto:=avto+1; end; 5: begin if (cli = 5) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите код клиента: '); readln(climas[cli].nocli); write('Введите ФИО: '); readln(climas[cli].fio); write('Введите пол: '); readln(climas[cli].pol); write('Введите дату рождения: '); readln(climas[cli].dr); write('Введите адрес: '); readln(climas[cli].adres); write('Введите телефон: '); readln(climas[cli].phone); write('Введите паспортные данные: '); readln(climas[cli].pasport); cli:=cli+1; end; 6: begin if (prok = 10) then begin writeln('Таблица переполнена. Внести запись невозможно.'); readkey; exit; end; write('Введите дату выдачи: '); readln(prokmas[prok].datavid); write('Введите срок: '); readln(prokmas[prok].srok); write('Введите дату возврата: '); readln(prokmas[prok].datavoz); write('Введите код автомобиля: '); readln(prokmas[prok].noavto); write('Введите код клиента: '); readln(prokmas[prok].nocli); write('Введите код услуги 1: '); readln(prokmas[prok].nousl1); write('Введите код услуги 2: '); readln(prokmas[prok].nousl2); write('Введите код услуги 3: '); readln(prokmas[prok].nousl3); write('Введите цену проката: '); readln(prokmas[prok].price); write('Введите отметку об оплате ("+" или "-"): '); readln(prokmas[prok].oplata); write('Введите код сотрудника: '); readln(prokmas[prok].nosot); prok:=prok+1; end; end; clrscr; writeln('Запись добавлена, нажмите любую клавишу для продолжения'); readkey; end; end. Модуль вывода таблицы на экран unit viv; interface procedure print_table(n: byte); //вывод таблицы на экран implementation uses types,crt; procedure print_table(n: byte); //вывод таблицы на экран var i: byte; //счетчик begin clrscr; case n of 0: begin if (sot = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('__________'); for i:= 0 to sot-1 do write('_________________________________________'); writeln(); write('| Код с.|'); for i:= 0 to sot-1 do write(sotmas[i].nosot:40, '|'); writeln(); write('| ФИО|'); for i:= 0 to sot-1 do write(sotmas[i].fio:40, '|'); writeln(); write('| Возраст|'); for i:= 0 to sot-1 do write(sotmas[i].age:40, '|'); writeln(); write('| Пол|'); for i:= 0 to sot-1 do write(sotmas[i].pol:40, '|'); writeln(); write('| Адрес|'); for i:= 0 to sot-1 do write(sotmas[i].adres:40, '|'); writeln(); write('| Телефон|'); for i:= 0 to sot-1 do write(sotmas[i].phone:40, '|'); writeln(); write('| Паспорт|'); for i:= 0 to sot-1 do write(sotmas[i].pasport:40, '|'); writeln(); write('| Код д.|'); for i:= 0 to sot-1 do write(sotmas[i].nodol:40, '|'); writeln(); write('|________|'); for i:= 0 to sot-1 do write('________________________________________|'); writeln(); end; 1: begin if (dol = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('_______________'); for i:= 0 to dol-1 do write('_______________________________'); writeln(); write('| Код д.|'); for i:= 0 to dol-1 do write(dolmas[i].nodol:30, '|'); writeln(); write('| Наименование|'); for i:= 0 to dol-1 do write(dolmas[i].dolname:30, '|'); writeln(); write('| Оклад|'); for i:= 0 to dol-1 do write(dolmas[i].oklad:30, '|'); writeln(); write('| Обязанности|'); for i:= 0 to dol-1 do write(dolmas[i].obyazanosti:30, '|'); writeln(); write('| Требования|'); for i:= 0 to dol-1 do write(dolmas[i].trebovaniya:30, '|'); writeln(); write('|_____________|'); for i:= 0 to dol-1 do write('______________________________|'); writeln(); end; 2: begin if (mark = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('_________________'); for i:= 0 to mark-1 do write('_______________________________'); writeln(); write('| Код м.|'); for i:= 0 to mark-1 do write(markmas[i].nomark:30, '|'); writeln(); write('| Наименование|'); for i:= 0 to mark-1 do write(markmas[i].markname:30, '|'); writeln(); write('| Технич. хар-ки|'); for i:= 0 to mark-1 do write(markmas[i].techchar:30, '|'); writeln(); write('| Описание|'); for i:= 0 to mark-1 do write(markmas[i].opisanie:30, '|'); writeln(); write('|_______________|'); for i:= 0 to mark-1 do write('______________________________|'); writeln(); end; 3: begin if (usl = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('_______________'); for i:= 0 to usl-1 do write('_______________________________'); writeln(); write('| Код усл.|'); for i:= 0 to usl-1 do write(uslmas[i].nousl:30, '|'); writeln(); write('| Наименование|'); for i:= 0 to usl-1 do write(uslmas[i].uslname:30, '|'); writeln(); write('| Описание|'); for i:= 0 to usl-1 do write(uslmas[i].opisanie:30, '|'); writeln(); write('| Цена|'); for i:= 0 to usl-1 do write(uslmas[i].uslcena:30, '|'); writeln(); write('|_____________|'); for i:= 0 to usl-1 do write('______________________________|'); writeln(); end; 4: begin if (avto = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('________________'); for i:= 0 to avto-1 do write('_______________________________'); writeln(); write('| Код авто|'); for i:= 0 to avto-1 do write(avtomas[i].noavto:30, '|'); writeln(); write('| Код марки|'); for i:= 0 to avto-1 do write(avtomas[i].nomark:30, '|'); writeln(); write('| Рег. номер|'); for i:= 0 to avto-1 do write(avtomas[i].regnum:30, '|'); writeln(); write('| Номер кузова|'); for i:= 0 to avto-1 do write(avtomas[i].cuznum:30, '|'); writeln(); write('| Номер двиг.|'); for i:= 0 to avto-1 do write(avtomas[i].dvignum:30, '|'); writeln(); write('| Год вып.|'); for i:= 0 to avto-1 do write(avtomas[i].godvip:30, '|'); writeln(); write('| Пробег|'); for i:= 0 to avto-1 do write(avtomas[i].probeg:30, '|'); writeln(); write('| Цена авто|'); for i:= 0 to avto-1 do write(avtomas[i].avtcena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto-1 do write(avtomas[i].daycena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto-1 do write(avtomas[i].dto:30, '|'); writeln(); write('| Код мех.|'); for i:= 0 to avto-1 do write(avtomas[i].nosot:30, '|'); writeln(); write('| Спец. отметки|'); for i:= 0 to avto-1 do write(avtomas[i].specmark:30, '|'); writeln(); write('| Отм. о возвр.|'); for i:= 0 to avto-1 do write(avtomas[i].vozv:30, '|'); writeln(); write('|______________|'); for i:= 0 to avto-1 do write('______________________________|'); writeln(); end; 5: begin if (cli = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('____________'); for i:= 0 to cli-1 do write('________________________________________'); writeln(); write('| Код к.|'); for i:= 0 to cli-1 do write(climas[i].nocli:40, '|'); writeln(); write('| ФИО|'); for i:= 0 to cli-1 do write(climas[i].fio:40, '|'); writeln(); write('| Пол|'); for i:= 0 to cli-1 do write(climas[i].pol:40, '|'); writeln(); write('| Дата рож.|'); for i:= 0 to cli-1 do write(climas[i].dr:40, '|'); writeln(); write('| Адрес|'); for i:= 0 to cli-1 do write(climas[i].adres:40, '|'); writeln(); write('| Телефон|'); for i:= 0 to cli-1 do write(climas[i].phone:40, '|'); writeln(); write('| Паспорт|'); for i:= 0 to cli-1 do write(climas[i].pasport:40, '|'); writeln(); write('|__________|'); for i:= 0 to cli-1 do write('_______________________________________|'); writeln(); end; 6: begin if (prok = 0) then begin writeln('Таблица не содержит данных'); readkey; exit; end; write('______________'); for i:= 0 to prok-1 do write('__________'); writeln(); write('| Дата выдачи|'); for i:= 0 to prok-1 do write(prokmas[i].datavid:10, '|'); writeln(); write('| Срок|'); for i:= 0 to prok-1 do write(prokmas[i].srok:10, '|'); writeln(); write('| Дата возвр.|'); for i:= 0 to prok-1 do write(prokmas[i].datavoz:10, '|'); writeln(); write('| Код ав.|'); for i:= 0 to prok-1 do write(prokmas[i].noavto:10, '|'); writeln(); write('| Код кл.|'); for i:= 0 to prok-1 do write(prokmas[i].nocli:10, '|'); writeln(); write('| Код ус.1|'); for i:= 0 to prok-1 do write(prokmas[i].nousl1:10, '|'); writeln(); write('| Код ус.2|'); for i:= 0 to prok-1 do write(prokmas[i].nousl2:10, '|'); writeln(); write('| Код ус.3|'); for i:= 0 to prok-1 do write(prokmas[i].nousl3:10, '|'); writeln(); write('| Цена прок.|'); for i:= 0 to prok-1 do write(prokmas[i].price:10, '|'); writeln(); write('| Оплата|'); for i:= 0 to prok-1 do write(prokmas[i].oplata:10, '|'); writeln(); write('| Код сот.|'); for i:= 0 to prok-1 do write(prokmas[i].nosot:10, '|'); writeln(); write('|____________|'); for i:= 0 to prok-1 do write('__________|'); writeln(); end; end; readkey; end; end. Модули фильтров unit fil1;//фильтр 1 interface procedure f1; //отображение сотрудников отдельных должностей implementation uses types,crt; procedure f1; var str: string; //хранит запрошенную должность i: byte; //счетчик x: integer; //хранит код должности ots: boolean; //флаг присутствия должности begin clrscr; if (dol = 0) then begin writeln('Ошибка: таблица "Должности" не содержит данных'); readkey; exit; end; if (sot = 0) then begin writeln('Ошибка: таблица "Сотрудники" не содержит данных'); readkey; exit; end; write('Введите наименование должности: '); readln(str); ots:=false; //нахождение кода требуемой должности for i:=0 to dol-1 do if (dolmas[i].dolname = str) then begin x:=dolmas[i].nodol; ots:=true; //должность найдена break; end; //нахождение соответствий кода должности в таблице сотрудников и вывод на экран if ots then //если должность была найдена begin write('__________'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write('_________________________________________'); writeln(); write('| Код с.|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].nosot:40, '|'); writeln(); write('| ФИО|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].fio:40, '|'); writeln(); write('| Возраст|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].age:40, '|'); writeln(); write('| Пол|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].pol:40, '|'); writeln(); write('| Адрес|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].adres:40, '|'); writeln(); write('| Телефон|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].phone:40, '|'); writeln(); write('| Паспорт|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].pasport:40, '|'); writeln(); write('| Код д.|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write(sotmas[i].nodol:40, '|'); writeln(); write('|________|'); for i:= 0 to sot - 1 do if (x = sotmas[i].nodol) then write('________________________________________'); writeln('|'); end else writeln('Должность не найдена'); readkey; end; end. unit fil2;//фильтр 2 interface procedure f2; //отображение автомобилей отдельных марок implementation uses types,crt; procedure f2; var str: string; //хранит запрошенную марку автомобиля i: byte; //счетчик x: integer; //хранит код марки ots: boolean; //флаг присутствия марки begin clrscr; if (mark = 0) then begin writeln('Ошибка: таблица "Марки автомобилей" не содержит данных'); readkey; exit; end; if (avto = 0) then begin writeln('Ошибка: таблица "Автомобили" не содержит данных'); readkey; exit; end; write('Введите марку автомобиля: '); readln(str); ots:=false; //нахождение кода требуемой марки for i:=0 to mark-1 do if (markmas[i].markname = str) then begin x:=markmas[i].nomark; ots:=true; //марка найдена break; end; //нахождение соответствий кода марки в таблице автомобилей и вывод на экран if ots then //если марка автомобиля была найдена begin write('________________'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write('_______________________________'); writeln(); write('| Код авто|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].noavto:30, '|'); writeln(); write('| Код марки|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].nomark:30, '|'); writeln(); write('| Рег. номер|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].regnum:30, '|'); writeln(); write('| Номер кузова|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].cuznum:30, '|'); writeln(); write('| Номер двиг.|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].dvignum:30, '|'); writeln(); write('| Год вып.|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].godvip:30, '|'); writeln(); write('| Пробег|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].probeg:30, '|'); writeln(); write('| Цена авто|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].avtcena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].daycena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].dto:30, '|'); writeln(); write('| Код мех.|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].nosot:30, '|'); writeln(); write('| Спец. отметки|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].specmark:30, '|'); writeln(); write('| Отм. о возвр.|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write(avtomas[i].vozv:30, '|'); writeln(); write('|______________|'); for i:= 0 to avto - 1 do if (x = avtomas[i].nomark) then write('______________________________|'); writeln(); end else writeln('Марка автомобиля не найдена'); readkey; end; end. unit fil3;//фильтр 3 interface procedure f3; //отображения автомобилей, находящихся и не находящихся в прокате implementation uses types,crt; procedure f3; var str: string; //хранит выбор по запросу i,j: byte; //счетчики p,t: boolean; //признаки arr: array [0..9] of boolean; begin clrscr; if (avto = 0) then begin writeln('Ошибка: таблица "Автомобили" не содержит данных'); readkey; exit; end; if (prok = 0) then begin writeln('Ни один автомобиль не находится в прокате'); readkey; exit; end; write('Введите "в прокате", если хотите получить авто, находящиеся в прокате и "не в прокате" в противном случае: '); readln(str); if (str = 'в прокате') then t:=true else if (str = 'не в прокате')then t:=false else begin writeln('Некорректный ввод'); readkey; exit; end; for i:=0 to avto-1 do begin p:=false; for j:=0 to prok-1 do if (prokmas[j].noavto = avtomas[i].noavto) then begin p:=true; break; end; if p = t then arr[i]:=true; end; write('________________'); for i:= 0 to avto - 1 do if arr[i] then write('_______________________________'); writeln(); write('| Код авто|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].noavto:30, '|'); writeln(); write('| Код марки|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].nomark:30, '|'); writeln(); write('| Рег. номер|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].regnum:30, '|'); writeln(); write('| Номер кузова|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].cuznum:30, '|'); writeln(); write('| Номер двиг.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].dvignum:30, '|'); writeln(); write('| Год вып.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].godvip:30, '|'); writeln(); write('| Пробег|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].probeg:30, '|'); writeln(); write('| Цена авто|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].avtcena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].daycena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].dto:30, '|'); writeln(); write('| Код мех.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].nosot:30, '|'); writeln(); write('| Спец. отметки|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].specmark:30, '|'); writeln(); write('| Отм. о возвр.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].vozv:30, '|'); writeln(); write('|______________|'); for i:= 0 to avto - 1 do if arr[i] then write('______________________________|'); writeln(); readkey; end; end. unit fil4;//фильтр 4 interface procedure f4; //отображение автомобилей, выданных и возвращённых в определённую дату implementation uses types,crt; procedure f4; var crit,str: string; //хранит критерий фильтра и запрошенную дату i,j: byte; //счетчики q: integer; //счётчик найдённых авто x: array[0..9] of integer; //хранит коды автомобилей begin clrscr; if (prok = 0) then begin writeln('Ошибка: таблица "Прокат" не содержит данных'); readkey; exit; end; if (avto = 0) then begin writeln('Ошибка: таблица "Автомобили" не содержит данных'); readkey; exit; end; write('Укажите,критерий поиска авто - "выдача" или "возврат": '); readln(crit); if (crit = 'выдача') then begin q:=-1; write('Введите дату выдачи: '); readln(str); //нахождение кодов авто с указанной датой выдачи for i:=0 to prok-1 do if (prokmas[i].datavid = str) then begin inc(q); x[q]:=prokmas[i].noavto; end; if (q=-1) then begin writeln('Автомобили,выданные в указанную дату не найдены'); readkey; exit; end; end else if (crit = 'возврат') then begin write('Введите дату возврата: '); readln(str); q:=-1; //нахождение кода авто с указанной датой возврата for i:=0 to prok-1 do if (prokmas[i].datavoz = str) then begin inc(q); x[q]:=prokmas[i].noavto; end; if (q=-1) then begin writeln('Автомобили,возвращённые в указанную дату не найдены'); readkey; exit; end; end else begin writeln('Некорректный ввод'); readkey; exit; end; for j:= 0 to q do begin write('________________'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write('______________________________'); writeln(); write('| Код авто|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].noavto:30, '|'); writeln(); write('| Код марки|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].nomark:30, '|'); writeln(); write('| Рег. номер|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].regnum:30, '|'); writeln(); write('| Номер кузова|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].cuznum:30, '|'); writeln(); write('| Номер двиг.|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].dvignum:30, '|'); writeln(); write('| Год вып.|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].godvip:30, '|'); writeln(); write('| Пробег|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].probeg:30, '|'); writeln(); write('| Цена авто|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].avtcena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].daycena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].dto:30, '|'); writeln(); write('| Код мех.|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].nosot:30, '|'); writeln(); write('| Спец. отметки|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].specmark:30, '|'); writeln(); write('| Отм. о возвр.|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write(avtomas[i].vozv:30, '|'); writeln(); write('|______________|'); for i:= 0 to avto - 1 do if (x[j] = avtomas[i].noavto) then write('______________________________|'); writeln(); end; readkey; end; end. unit fil5;//фильтр 5 interface procedure f5; //отображение оплаченных и не оплаченных автомобилей в прокате implementation uses types,crt; procedure f5; var str: string; //хранит выбор по запросу i,j: byte; //счетчики t,p: boolean; //признаки arr: array [0..9] of boolean; begin clrscr; if (prok = 0) then begin writeln('Ошибка: таблица "Прокат" не содержит данных'); readkey; exit; end; if (avto = 0) then begin writeln('Ошибка: таблица "Автомобили" не содержит данных'); readkey; exit; end; write('Введите "опл",если хотите посмотреть оплаченные авто в прокате и "неопл" в противоположном случае: '); readln(str); if (str = 'опл') then t:=true else if (str = 'неопл')then t:=false else begin writeln('Некорректный ввод'); readkey; exit; end; for i:=0 to prok-1 do begin if (prokmas[i].oplata = '+') then p:=true else p:=false; if (p <> t) then continue; for j:=0 to avto-1 do if (prokmas[i].noavto = avtomas[j].noavto) then arr[j]:=true; end; write('________________'); for i:= 0 to avto - 1 do if arr[i] then write('_______________________________'); writeln(); write('| Код авто|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].noavto:30, '|'); writeln(); write('| Код марки|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].nomark:30, '|'); writeln(); write('| Рег. номер|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].regnum:30, '|'); writeln(); write('| Номер кузова|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].cuznum:30, '|'); writeln(); write('| Номер двиг.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].dvignum:30, '|'); writeln(); write('| Год вып.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].godvip:30, '|'); writeln(); write('| Пробег|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].probeg:30, '|'); writeln(); write('| Цена авто|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].avtcena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].daycena:30, '|'); writeln(); write('| Цена дня|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].dto:30, '|'); writeln(); write('| Код мех.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].nosot:30, '|'); writeln(); write('| Спец. отметки|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].specmark:30, '|'); writeln(); write('| Отм. о возвр.|'); for i:= 0 to avto - 1 do if arr[i] then write(avtomas[i].vozv:30, '|'); writeln(); write('|______________|'); for i:= 0 to avto - 1 do if arr[i] then write('______________________________|'); writeln(); readkey; end; end. |