Добавил:
Oksana
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:_Курсовые работы / Курсовая-5вар_Информационные технологии обработки данных / 5 / ADRES5
.PAS program Adress;
{блок модулей}
uses CRT;
{используемые типы и записи}
type
{запись результатов ввода новых данных}
TDlgData = record
Number : string[100]; {Номер телефона}
Name : string[100]; {ФИО абонента}
Street :string[100]; {Адресс абонента}
end;
file1 = file of TDlgData; {описание типа файла данных}
{константа - массив элементов меню}
const menu : array[1..4] of string=('[ Create record ]',
'[ Find record ]',
'[ List record ]',
'[ Exit ]');
{глобальные переменные программы}
var
RData : TDlgData;{переменная типа нашей записи}
f:File of TDlgData;{переменная типа файла записи}
curchoice, status, temp: byte;{необходимые переменные для меню}
ch: char;{необходимые переменные для меню}
procedure LData;{процедура вывода всех записей}
var
AdrR:file1;{переменная считывания записи}
AdrS:TEXT;{переменная записи}
t:TDlgData;
S:string;
BEGIN
clrscr; {очищаем экран}
textbackground(0);
Assign(AdrR,'Adress.dat'); {связываем переменную для считывания с файлом записей}
Reset(AdrR);
writeln(' List records');
writeln('Number of phone Abonent Name Street');
{цикл считывания и вывода записей}
while not Eof(AdrR) do
begin
read(AdrR,t);{считали запись}
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);{вывели запись}
end;
close(AdrR);
readkey;
clrscr;
end;
{процедура поиска и записи найденых записей в файл}
procedure XData;
var
AdrR:file1;
AdrS:TEXT;
t:TDlgData;
S:string;
BEGIN
clrscr;
textbackground(0);
Writeln('Enter Street');
readln(S);{запрос параметра поиска}
writeln(' Finding racords');
writeln('Number of phone Abonent Name Street');
Assign(AdrR,'Adress.dat');{связываемся с файлом хранения всех записей}
Reset(AdrR);
Assign(AdrS,'Find.txt'); {связываемся с файлом хранения найденных записей}
Rewrite(AdrS);{очищаем файл найденных записей}
while not Eof(AdrR) do
begin
read(AdrR,t);
{поиск нужной записи}
if t.Street= S then
begin
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);
write(AdrS,t.Number + ' ' + t.Name + ' ' + t.Street);
end;
end;
close(AdrR);
close(AdrS);
readkey;
clrscr;
end;
{процедура добавления новых записей}
procedure WData;
var
N,Na,S: string;
begin
clrscr;
textbackground(0);
{запрос параметров}
Writeln('Enter number phone');
readln(N);
Writeln('Enter abonent Name');
readln(Na);
Writeln('Enter Street');
readln(S);
{сохранение параметров в запись}
RData.Number := N;
RData.Name := Na;
RData.Street := S;
Assign(f,'Adress.dat');{связываемся с файлом хранения найденных записей}
Reset(f);
Seek(f,FileSize(f));{переходим в конец файла}
write(f,RData); {создаем запись в файле}
clrscr;
end;
{основная программа}
Begin
clrscr;
{меню}
start: curchoice:=1;status:=128;textcolor(7);textbackground(0); {// инициализация}
asm mov ah,01;mov cl,$20;int $10;end; { // убираем курсор}
for temp:=1 to 4 do writeln(menu[temp]); { // выводим меню}
repeat
{ // цикл идет..}
gotoxy(1,curchoice); textcolor(20); { // рисуем полоску}
textbackground(7); write(menu[curchoice]); {// выбора}
if keypressed then
case readkey of { // проверяем кнопки}
#72: if curchoice>1 then begin { // вниз, если можно}
textcolor(7);textbackground(0); {// стираем пред.}
{ // надпись}
gotoxy(1,curchoice);write(menu[curchoice]);dec(curchoice);
end;
#80: if curchoice<4 then begin { // вверх, если можно}
textcolor(7);textbackground(0);
gotoxy(1,curchoice);write(menu[curchoice]);inc(curchoice);
end;
#27: status:=4; { // escape}
{если нажат enter то вызываем соотв процедуру}
#13: case curchoice of
1: begin
WData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
2:begin
XData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
3:begin
LData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
4:exit; { // enter}
end;
end;
until status=4; { // ..пока не выбран последний}
{ // пункт/не нажат escape}
asm mov ah,01; mov cx,$0E0D; int $10; end;
textcolor(7); textbackground(0); {// ставим нормальный цвет}
end.{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
{блок модулей}
uses CRT;
{используемые типы и записи}
type
{запись результатов ввода новых данных}
TDlgData = record
Number : string[100]; {Номер телефона}
Name : string[100]; {ФИО абонента}
Street :string[100]; {Адресс абонента}
end;
file1 = file of TDlgData; {описание типа файла данных}
{константа - массив элементов меню}
const menu : array[1..4] of string=('[ Create record ]',
'[ Find record ]',
'[ List record ]',
'[ Exit ]');
{глобальные переменные программы}
var
RData : TDlgData;{переменная типа нашей записи}
f:File of TDlgData;{переменная типа файла записи}
curchoice, status, temp: byte;{необходимые переменные для меню}
ch: char;{необходимые переменные для меню}
procedure LData;{процедура вывода всех записей}
var
AdrR:file1;{переменная считывания записи}
AdrS:TEXT;{переменная записи}
t:TDlgData;
S:string;
BEGIN
clrscr; {очищаем экран}
textbackground(0);
Assign(AdrR,'Adress.dat'); {связываем переменную для считывания с файлом записей}
Reset(AdrR);
writeln(' List records');
writeln('Number of phone Abonent Name Street');
{цикл считывания и вывода записей}
while not Eof(AdrR) do
begin
read(AdrR,t);{считали запись}
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);{вывели запись}
end;
close(AdrR);
readkey;
clrscr;
end;
{процедура поиска и записи найденых записей в файл}
procedure XData;
var
AdrR:file1;
AdrS:TEXT;
t:TDlgData;
S:string;
BEGIN
clrscr;
textbackground(0);
Writeln('Enter Street');
readln(S);{запрос параметра поиска}
writeln(' Finding racords');
writeln('Number of phone Abonent Name Street');
Assign(AdrR,'Adress.dat');{связываемся с файлом хранения всех записей}
Reset(AdrR);
Assign(AdrS,'Find.txt'); {связываемся с файлом хранения найденных записей}
Rewrite(AdrS);{очищаем файл найденных записей}
while not Eof(AdrR) do
begin
read(AdrR,t);
{поиск нужной записи}
if t.Street= S then
begin
writeln(' '+t.Number + ' ' + t.Name + ' ' + t.Street);
write(AdrS,t.Number + ' ' + t.Name + ' ' + t.Street);
end;
end;
close(AdrR);
close(AdrS);
readkey;
clrscr;
end;
{процедура добавления новых записей}
procedure WData;
var
N,Na,S: string;
begin
clrscr;
textbackground(0);
{запрос параметров}
Writeln('Enter number phone');
readln(N);
Writeln('Enter abonent Name');
readln(Na);
Writeln('Enter Street');
readln(S);
{сохранение параметров в запись}
RData.Number := N;
RData.Name := Na;
RData.Street := S;
Assign(f,'Adress.dat');{связываемся с файлом хранения найденных записей}
Reset(f);
Seek(f,FileSize(f));{переходим в конец файла}
write(f,RData); {создаем запись в файле}
clrscr;
end;
{основная программа}
Begin
clrscr;
{меню}
start: curchoice:=1;status:=128;textcolor(7);textbackground(0); {// инициализация}
asm mov ah,01;mov cl,$20;int $10;end; { // убираем курсор}
for temp:=1 to 4 do writeln(menu[temp]); { // выводим меню}
repeat
{ // цикл идет..}
gotoxy(1,curchoice); textcolor(20); { // рисуем полоску}
textbackground(7); write(menu[curchoice]); {// выбора}
if keypressed then
case readkey of { // проверяем кнопки}
#72: if curchoice>1 then begin { // вниз, если можно}
textcolor(7);textbackground(0); {// стираем пред.}
{ // надпись}
gotoxy(1,curchoice);write(menu[curchoice]);dec(curchoice);
end;
#80: if curchoice<4 then begin { // вверх, если можно}
textcolor(7);textbackground(0);
gotoxy(1,curchoice);write(menu[curchoice]);inc(curchoice);
end;
#27: status:=4; { // escape}
{если нажат enter то вызываем соотв процедуру}
#13: case curchoice of
1: begin
WData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
2:begin
XData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
3:begin
LData;
curchoice:=1;status:=128;textcolor(7);textbackground(0);
for temp:=1 to 4 do writeln(menu[temp]);
end;
4:exit; { // enter}
end;
end;
until status=4; { // ..пока не выбран последний}
{ // пункт/не нажат escape}
asm mov ah,01; mov cx,$0E0D; int $10; end;
textcolor(7); textbackground(0); {// ставим нормальный цвет}
end.{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}