Задание на алгоритмизацию и программирование задач на файлы данных
Write ('Введите имя созданного ранее файла (маска: ???):'); L:=filesize (fl); {Определение количества записей в файле}. If Vern Then begin {Если поиск успешен вычисляем проценты.}. WriteLn ('¦', shifr:6,'¦', naim:12,'¦', cena:12:2,'¦', plan:12:2,'¦', fact:12:2,'¦'); If not Vern Then WriteLn ('Вы ввели не правильный параметр.'); With d do begin {Работа с типизированной переменной d}. Program Soz… Читать ещё >
Задание на алгоритмизацию и программирование задач на файлы данных (реферат, курсовая, диплом, контрольная)
Необходимо разработать алгоритм и написать программы для:
- — создания файла данных;
- — чтения созданного файла данных;
- — добавления записей в созданный файл данных;
- — обработка созданного файла данных по заданному условию.
Структура записи данных.
Шифр товара. | Наименование. | Цена. | План продажи (руб). | Факт. Продано (руб). | |
программирование алгоритмизация запись условие Напечатать в выходном документе:
Процент выполнения плана и фактическую денежную сумму реализации для произвольно заданного товара.
Создание файла:
Рис. 2.
Программа создания файла данных:
program Soz; {Программа создает типизированный файл.}.
uses crt;
type t=record.
shifr:string[6]; {Шифр товара}.
naim:string[12]; {Наименование}.
cena:real; {Цена}.
plan:real; {План продажи}.
fact:real; {Факт. продано}.
end;
var.
fl:file of t; {Файловая переменная}.
d:t; {Переменная для обмена}.
im:String[12]; {Строковая переменная для имени файла}.
p:Byte; {переменная используемая для циклов}.
begin.
ClrScr; {Очистка экрана}.
Write ('Введите имя файла который будет создан (маска: ???):');
ReadLn (im);
WriteLn;
assign (fl, im); {Связывание файловой переменной fl}.
rewrite (fl); {Открытие файла для создания}.
p:=1;
while p=1 do {Выполнить пока есть данные}.
begin.
Write ('Введите шифр товара (не более 6 символов):');
ReadLn (d.shifr);
Write ('Введите наименование товара (не более 12 символов):');
ReadLn (d.naim);
Write ('Введите цену товара :');
ReadLn (d.cena);
Write ('Введите план продажи (руб):');
ReadLn (d.plan);
Write ('Введите сколько факт. продано (руб):');
ReadLn (d.fact);
write (fl, d); {Запись данных в файл}.
Write ('Будете продолжать вводить данные? (Да — 1; Нет — 0):');
ReadLn (p);
end;
close (fl); {Закрытие файла}.
end.
Пример выполнения программы:
Чтение файла:
Рис. 3.
Программа чтения файла данных:
program Chten; {Программа считывает данные из файла данных и выводит на экран}.
uses crt;
type t=record.
shifr:string[6];
naim:string[12];
cena:real;
plan:real;
fact:real;
end;
var.
fl:file of t;
d:t;
im:String[12];
osh:Boolean; {Логическая переменная для проверки существования файла, который открывается}.
p:byte;
begin.
osh:=True; {Задание начальных значений}.
while Osh do {Задавать вопрос о открытии файла пока не будет введено правильное}.
{имя файла}.
begin.
ClrScr;
Write ('Введите имя созданного ранее файла (маска: ???):');
ReadLn (im);
WriteLn;
assign (fl, im);
{$I-} {Отключаем контроль ошибок ввода-вывода}.
reset (fl); {Открыть файл для обработки}.
{$I+} {Включаем контроль ошибок ввода-вывода}.
If IOResult0 then.
begin.
WriteLn ('Такого файла не существует.');
Write ('Хотите ввести другое имя (Да — 1; Нет — 0):');
ReadLn (p);
If p=1 Then Osh:=true.
Else halt;
end.
Else Osh:=False;
end;
ClrScr;
while not eof (fl) do {Продолжать до тех пор пока не будет достигнут конец файла}.
begin.
with d do begin.
Read (fl, d); {Считывание данных из файла}.
WriteLn ('¦', shifr:6,'¦', naim:12,'¦', cena:12:2,'¦', plan:12:2,'¦', fact:12:2,'¦');
end; {Вывод данных на экран.}.
end;
ReadLn;
Close (fl); {Закрытие файла}.
end.
Пример выполнения программы:
Добавление записей:
Рис. 4.
Программа добавления записей в файл данных:
program Dobav; {Программа добавляет в файл данных новые данные}.
uses crt;
type t=record.
shifr:string[6];
naim:string[12];
cena:real;
plan:real;
fact:real;
end;
var.
fl:file of t;
d:t;
im:String[12];
p:Byte;
Osh:Boolean;
l:Integer; {Счетчик}.
begin.
osh:=True;
while Osh do.
begin.
ClrScr;
Write ('Введите имя созданного ранее файла (маска: ???):');
ReadLn (im);
WriteLn;
assign (fl, im);
{$I-}.
reset (fl);
{$I+}.
If IOResult0 then.
begin.
WriteLn ('Такого файла не существует.');
Write ('Хотите ввести другое имя (Да — 1; Нет — 0):');
ReadLn (p);
If p=1 Then Osh:=true.
Else halt;
end.
Else Osh:=False;
end;
l:=filesize (fl); {Определение количества записей в файле}.
seek (fl, l); {Установка указателя за пределы файла, чтобы новые данные добавлялись}.
{ в конце файла}.
WriteLn ('Введите новые данные.');
p:=1;
while p=1 do.
begin.
Write ('Введите шифр товара (не более 6 символов):');
ReadLn (d.shifr);
Write ('Введите наименование товара (не более 12 символов):');
ReadLn (d.naim);
Write ('Введите цену товара :');
ReadLn (d.cena);
Write ('Введите план продажи (руб):');
ReadLn (d.plan);
Write ('Введите сколько факт. продано (руб):');
ReadLn (d.fact);
write (fl, d);
Write ('Будете продолжать вводить данные? (Да — 1; Нет — 0):');
ReadLn (p);
end;
close (fl);
end.
Пример выполнения программы:
Обработка записей:
Рис. 5.
Программа обработки записей в файле данных.
program Obrab; {Программа по обработке файла данных по определенному условию}.
uses crt;
type t=record.
shifr:string[6];
naim:string[12];
cena:real;
plan:real;
fact:real;
end;
var.
fl:file of t;
d:t;
im:String[12];
Vern, osh: Boolean; {Vern True — если поиск параметров был успешен.
False — если поиск не успешен}.
p:byte;
st:String;
pr:Real;
begin.
osh:=True;
while Osh do.
begin.
ClrScr; {Очистка экрана}.
Write ('Введите имя созданного ранее файла (маска: ???):');
ReadLn (im);
WriteLn;
assign (fl, im);
{$I-}.
reset (fl);
{$I+}.
If IOResult0 then.
begin.
WriteLn ('Такого файла не существует.');
Write ('Хотите ввести другое имя (Да — 1; Нет — 0):');
ReadLn (p);
If p=1 Then Osh:=true.
Else halt;
end.
Else Osh:=False;
end;
p:=1;
while p=1 do begin { Пока р=1, исходные данные для ввода есть}.
ClrScr;
p:=1;
Write ('По каким параметрам будите искать: (Шифр товара — 2, Наименование — 3):');
ReadLn (p);
Write ('Введите какой товар будете искать: ');
ReadLn (st);
{Вывод шапки таблицы}.
Vern:=False;
while not eof (fl) do {Пока не достигнут конец файла}.
begin.
with d do begin {Работа с типизированной переменной d}.
Read (fl, d);
If p=2 Then begin {Анализирование данных из файла по условию поиска}.
If st=shifr Then.
Vern:=True;
end.
Else If p=3 Then begin {Анализирование данных из файла по условию поиска}.
If st=naim Then.
Vern:=True;
end;
If Vern Then begin {Если поиск успешен вычисляем проценты.}.
pr:=(fact/plan)*100;
WriteLn ('¦', shifr:6,'¦', naim:12,'¦', cena:12:2,'¦', plan:12:2,'¦', fact:12:2,'¦', pr:12:2,'¦'); {Вывод данных на экран}.
Break;
end;
end;
end;
If not Vern Then WriteLn ('Вы ввели не правильный параметр.');
Write ('Хотите продолжить? (Да — 1; Нет — 0):');
ReadLn (p);
end;
ReadLn;
Close (fl);
end.
Пример выполнения программы: