Курсовая по КП. Вариант 8
.docМИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ
им. С.Орджоникидзе
ИНСТИТУТ БИЗНЕСА В СТРОИТЕЛЬСТВЕ И УПРАВЛЕНИЕ ПРОЕКТОМ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
Курсовая работа по
компьютерной подготовке.
Вариант №8
Выполнила:
Проверил: Седун В.Н.
Москва, 2002г.
Содержание:
Вариант №8.
Исходные данные о предприятиях. Для каждого предприятия задано: код, название, количество выпускаемой продукции, данные о расходе каждого из К ресурсов в виде: план и факт. Число исходных данных не определено. 1. Основная программа (program vchib)……………………………………………стр.3
|
program vchib;
uses crt, printer;
var
w:integer;
d:char;
{$I a:\ramka.pas}
{$I a:\prc_1.pas}
{$I a:\prc_2.pas}
{$I a:\prc_3.pas}
{$I a:\prc_4.pas}
{$I a:\prc_5.pas}
{$I a:\prc_6.pas}
{$I a:\prc_7.pas}
{$I a:\prc_8.pas}
{$I a:\prc_9.pas}
{$I a:\text1.pas}
begin
ramka;
clrscr; w:=1;
while w=1 do
begin
clrscr;
writeln (' Меню: ');
writeln (' ~~~~~~');
writeln;
writeln (' Создание файла.................................………………………...................1');
writeln (' Чтение файла..............................................…………………………......2');
writeln (' Справка о предприятиях не доп.перерасход ни одного ресурса....…..3 ');
writeln (' Справка о средних ариф.значениях расходов каждого ресурса...…....4 ');
writeln (' Справка о 5 предприятиях с мах вып. плана по 1 ресурсу........……...5 ');
writeln (' Справка о предприятиях заданых кодами.......................…………......6 ');
writeln (' Справка о предприятиях заданных ресурсом................…………........7');
writeln (' Дополнение новыми записями.....................................………………...8 ');
writeln (' Изменение поля "количество продукции".................…………….........9 ');
writeln (' Просмотр текстового файла.............................………………….….......*');
writeln (' Выход................................................…………………………….............0 '); writeln;
write (' Ваш выбор: ');
d:=readkey;
case d of
'1':prc_1;
'2':prc_2;
'3':prc_3;
'4':prc_4;
'5':prc_5;
'6':prc_6;
'7':prc_7;
'8':prc_8;
'9':prc_9;
'*':text1;
'0':w:=0;
end;
end;
writeln (' E N D ');
readln; end.
unit modchib;
interface
procedure prc_1;
procedure prc_2;
procedure prc_3;
procedure prc_4;
procedure prc_5;
procedure prc_6;
procedure prc_7;
procedure prc_8;
procedure prc_9;
procedure text1;
implementation
{$I a:\prc_1.pas}
{$I a:\prc_2.pas}
{$I a:\prc_3.pas}
{$I a:\prc_4.pas}
{$I a:\prc_5.pas}
{$I a:\prc_6.pas}
{$I a:\prc_7.pas}
{$I a:\prc_8.pas}
{$I a:\prc_9.pas}
{$I a:\text1.pas}
begin
end.
procedure ramka;
var i,w:integer;
begin
textbackground (1);
clrscr;
window (2,1,79,25);
textbackground (0);
textcolor (2);
clrscr;
gotoxy (19,3);
write ('Государственный Университет Управления');
gotoxy (12,4);
write ('Институт бизнеса в строительстве и управление проектом');
gotoxy (8,6);
write ('Кафедра компьютерных технологий');
gotoxy (16,9);
write ('КУРСОВАЯ РАБОТА по компьютерной подготовке');
gotoxy (40,12);
write ('Выполнила:');
gotoxy (40,13);
write ('студентка гр.1.1');
gotoxy (40,14);
write ('Чибисова В.В.');
gotoxy (35,17);
write ('Вариант 8');
gotoxy (10,19);
write ('Для продолжения нажмите любую клавишу...');
gotoxy (5,2);
write ('г');
for i:= 6 to 70 do write ('=');
write ('¬');
for i:= 3 to 18 do
begin
gotoxy (5,i);
write ('¦');
gotoxy (71,i);
writeln ('¦');
end;
gotoxy (5,18);
write ('L');
for i:= 5 to 69 do write ('=');
write ('-');
readln;
end;
procedure prc_1;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i:integer;
begin
clrscr;
writeln;
Writeln;
writeln (' Создать файл ');
writeln;
write (' Введите имя файл - ');
readln (fif);
assign (lif,fif);
rewrite (lif);
writeln;
write (' Код предприятия - ');
readln (z.kod);
while z.kod <> 0 do
with z do
begin
write (' Название предприятия - ');
readln (naz);
write(' Количество выпускаемой продукции - ');
readln (kol);
for i:=1 to k do
begin
writeln (' Введите расход ',i,' ресурса');
write (' План - ');
readln (pl[i]);
write (' Факт - ');
readln (f[i]);
end;
write (lif,z);
write (' Код предприятия или 0 - ');
readln (kod);
end;
writeln(' Файл ',fif,' создан');
writeln(' Записей: ',filesize(lif));
close(lif);
readln;
end;
procedure prc_2;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i:integer;
begin
clrscr;
writeln;
writeln (' Чтение файла. ');
writeln;
write (' Введите имя файла - ');
readln (fif);
assign (lif,fif);
reset (lif);
writeln;
writeln (' |************************************************************************| ');
writeln (' | Код | Название предприятия | кол-во | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' | | |продукции| план\факт | план\факт | план\факт |');
writeln (' |************************************************************************|');
while not eof (lif) do
with z do
begin
read (lif,z);
write (' |',kod:3,'|',naz:15,' | ',kol:5,' | ');
for i:= 1 to k do
write (pl[i]:4,'\',f[i]:4,' | ');
writeln;
end;
writeln;
writeln(' Файл: ',fif:10,' прочитан');
writeln(' Кол-во записей: ',filesize(lif):4);
close(lif);
readln;
end;
procedure prc_3;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i,ff:integer;
begin
clrscr;
writeln;
writeln;
writeln (' Справка о предприятиях недопустивших перерасход ни одного ресурса');
writeln;
write (' Введите имя файла - ');
readln (fif);
assign (lif,fif);
reset (lif);
writeln;
writeln (' |************************************************************************| ');
writeln (' | Код | Название предприятия | кол-во | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' | | |продукции| план\факт | план\факт | план\факт |');
writeln (' |************************************************************************|');
while not eof (lif) do
with z do
begin
read (lif,z);
ff:=1;
for i:= 1 to k do
if pl[i] < f[i] then ff:=0;
if ff=1 then
begin
write (' |',filepos(lif):3,'| ',naz:15,' | ',kol:5,' | ');
for i:= 1 to k do
write (pl[i]:4,'\',f[i]:4,' |');
end;
writeln;
end;
close(lif);
readln;
end;
procedure prc_4;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i:integer;
m:real;
rr:array [1..k] of real;
begin
clrscr;
writeln;
writeln;
writeln (' Справка о средних арифметических значениях расходов каждого ресурса');
writeln;
write (' Введите имя файла - ');
readln (fif);
assign (lif,fif);
reset (lif);
writeln;
writeln;
writeln (' |*******************************|');
writeln (' | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' |*******************************|');
m:=0;
for i:= 1 to k do
rr[i]:=0;
while not eof (lif) do
with z do
begin
read (lif,z);
for i:= 1 to k do
rr[i]:=rr[i] + f[i];
m:=m+1;
end;
for i:= 1 to k do
begin
rr[i]:=rr[i]/m;
write (' | ',rr[i]:4:1,' | ');
end;
m:=1;
close(lif);
writeln;
readln;
end;
procedure prc_5;
const k=3; t=5;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
best:array [1..t] of zap;
lif:file of zap;
fif:string[20];
j,i,d,mesto:integer;
begin
clrscr;
writeln;
writeln;
writeln (' Справка о 5-ти предприятиях с мах расходом 1 ресурса');
writeln;
write (' Введите имя файла - ');
readln (fif);
assign (lif,fif);
reset (lif);
writeln; writeln;
writeln (' |*******************************************************************|');
writeln (' | номер | Код | Название предприятия | кол-во | мах расход 1 ресурс |');
writeln (' |*******************************************************************|');
for i:= 1 to t do
best[i].f[1]:=0;
while not eof (lif) do
begin
with z do
begin
read (lif,z);
mesto:=0;
for i:= t downto 1 do
if z.f[1] > best[i].f[1] then mesto:=i;
if mesto<>0 then
begin
for i:= t downto mesto+1 do
best[i].f[1]:=best[i-1].f[1];
best[mesto]:=z;
end;
end;
end;
for i:= 1 to t do
with best[i] do
writeln (' | ',i:3,' |', kod:3, ' | ',naz:15,' | ',kol:4,' | ',f[1]:10,' |');
writeln; writeln;
close(lif);
readln;
end;
procedure prc_6;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i,vkod,ff:integer;
begin
clrscr;
writeln;
writeln (' Справка о предприятии заданные кодами');
writeln;
write (' Введите имя файл - ');
readln (fif);
assign (lif,fif);
reset (lif);
write (' Введите код предприятия - ');
readln (vkod);
writeln;
while vkod<>0 do
begin
seek (lif,0);
while not eof (lif) do
with z do
begin
read (lif,z);
if vkod=kod then
begin
writeln (' *****************************************************************|');
writeln (' |Код| Название предприятия | кол-во | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' | | |продукци| план\факт | план\факт | план\факт |');
writeln (' *****************************************************************|');
write (' |',vkod:3,'|',naz:15,' |',kol:5,' |');
for i:= 1 to k do
write (pl[i]:4,' \',f[i]:4,' |');
ff:=1
end;
end;
writeln;
if ff=0 then
writeln (vkod:5,'- такого кода нет.');
writeln;
write ('Введите код или 0 для выхода - ');
read (vkod);
end;
close(lif);
end;
procedure prc_7;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i,nom:integer;
begin
clrscr;
writeln;
writeln (' Справка о предприятиях заданные ресурсом');
writeln;
write (' Введите имя файл - ');
readln (fif);
assign (lif,fif);
reset (lif);
writeln;
write (' Введите номер ресурса - ');
readln (nom);
writeln;
writeln (' **********************************************|');
writeln (' | Код | Название предприятия | кол-во | ',nom,' ресурс |');
writeln (' | | | продукци | план\факт |');
writeln (' **********************************************|');
seek (lif,0);
while not eof (lif) do
with z do
begin
read (lif,z);
begin
write (' |',kod:3,' |',naz:15,' |',kol:5,' |');
writeln (pl[nom]:4,' \',f[nom]:4,' |');
end;
end;
writeln;
writeln;
close(lif);
readln;
end;
procedure prc_8;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
i,n:integer;
begin
clrscr;
writeln;
writeln;
writeln (' Дополнение файла новыми данными. ');
writeln;
write (' Введите имя файл - ');
readln (fif);
assign (lif,fif);
reset (lif);
n:=filesize (lif);
seek (lif,n);
writeln;
with z do
begin
write (' Код предприятия - ');
readln (kod);
while kod <>0 do
begin
write (' Название предприятия - ');
readln (naz);
write(' Количество выпускаемой продукции - ');
readln (kol);
for i:=1 to k do
begin
writeln (' Введите расход ',i,' ресурса');
write (' План - ');
readln (pl[i]);
write (' Факт - ');
readln (f[i]);
end;
write (lif,z);
write (' Код предприятия или 0 - ');
readln (kod);
end;
end;
writeln(' Файл ',fif,' дополнен.');
writeln(' Добавлено записей: ',filesize (lif)-n);
close(lif);
assign (lif,fif);
reset (lif);
writeln (' НОВОЕ СОДЕРЖАНИЕ');
writeln;
writeln (' |*******************************************************************| ');
writeln (' | Код | Название предприятия | кол-во | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' | | |продукции| план\факт | план\факт | план\факт |');
writeln (' |*******************************************************************|');
while not eof (lif) do
with z do
begin
read (lif,z);
write (' |',kod:3,'|',naz:15,' | ',kol:5,' | ');
for i:= 1 to k do
write (pl[i]:4,'\',f[i]:4,' | ');
writeln;
end;
close(lif);
readln;
end;
procedure prc_9;
const k=3;
type
zap=record
kod,kol:integer;
naz:string [15];
pl:array [1..k] of integer;
f:array [1..k] of integer;
end;
var
z:zap;
lif:file of zap;
fif:string[20];
x,i,n:integer;
vnaz:string [15];
c:boolean;
begin
clrscr;
writeln;
writeln;
writeln (' Изменение ');
writeln;
write (' Введите имя файл - ');
readln (fif);
assign (lif,fif);
reset (lif);
writeln (' Поиск в базе по полю "Hазвание предприятия" ');
writeln;
write (' Введите название предприятия - ');
readln (vnaz);
x:=0;
while vnaz <> '0' do
begin
c:=true;
writeln;
write (' СТАРОЕ СОДЕРЖАНИЕ ');
writeln;
writeln (' |***********************************************************************| ');
writeln (' | Код | Название предприятия | кол-во | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' | | |продукции| план\факт | план\факт | план\факт |');
writeln (' |***********************************************************************|');
seek (lif,0);
while not eof(lif) do
with z do
begin
read (lif,z);
if vnaz=naz then
begin
write (' |',kod:3,'|',naz:15,' | ',kol:5,' | ');
for i:= 1 to k do
write (pl[i]:4,'\',f[i]:4,' | ');
writeln;
writeln;
writeln (' Введите новое содержание ');
writeln;
writeln (' Название предприятия - ',vnaz);
write (' Kол-во продукции - ');readln (kol);
seek (lif,filepos (lif)-1);
write (lif,z);
x:=x+1;
c:=false;
end;
end;
if c then
writeln (' Запись с названием предприятия ',vnaz,' не найдено');
write (' Введите название предприятия или 0 для окончания');
readln (vnaz);
end;
writeln(' Файл ',fif,' обработан');
writeln(' Количество записей: ',x);
writeln;
close(lif);
assign (lif,fif);
reset (lif);
writeln (' НОВОЕ СОДЕРЖАНИЕ');
writeln;
writeln (' |*********************************************************************| ');
writeln (' | Код | Название предприятия | кол-во | 1 ресурс | 2 ресурс | 3 ресурс |');
writeln (' | | |продукции| план\факт | план\факт | план\факт |');
writeln (' |*********************************************************************|');
while not eof (lif) do
with z do
begin
read (lif,z);
write (' |',kod:3,'|',naz:15,' | ',kol:5,' | ');
for i:= 1 to k do
write (pl[i]:4,'\',f[i]:4,' | ');
writeln;
end;
close(lif);
readln;
end;
procedure text1;
var
nf,nft:string[15];
f,ft:text;
s:string;
p,k:byte;
begin
clrscr;
repeat
writeln (' Введите имя дискового файла - ');
write (' ( или нажмите ENTER для выхода ): ');
readln (nft);
if nft = '' then exit;
assign (ft,nft);
reset (ft);
repeat
writeln;
writeln (' Вывод файла:');
writeln;
writeln (' 1.Hа экране.');
writeln (' 2.Hа принтер.');
writeln (' 0.Выход из программы.'); writeln;
write (' Ваш выбор: ');
readln (p);
until p in [0..2];
case p of
0:exit;
1:nf:='con';
2:nf:='prn';
end;
assign (f,nf);
rewrite (f);
clrscr; k:=0;
while not eof (ft) do
begin
readln (ft,s);
writeln (f,s);
k:=k+1;
if k=23 then
begin
writeln;
writeln (' Hажмите ENTER для продолжения');
readln; clrscr;
k:=0;
end;
end;
if k>0 then
begin
writeln (' Hажмите ENTER'); readln;
end;
close (ft); close (f);
until (false)
end;