Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:написанные программы / задание №4 — 5 / lab_4
.pas program for_kristina_number_4;
uses crt, strings;
{/*
* Љ®«ў® ®¬Ґа®ў.
*/}
const numbers = 15;
{/*
* ®вЇаҐ¤Ґ«пҐ¬ ®ўлҐ вЁЇл, ЇҐаҐ¬ҐлҐ.
*/}
type name_type = array[0..80] of char;
type room = record
name : name_type;
name2 : name_type;
end;
type hotel_type = array[0..numbers-1] of room;
var hotel : hotel_type;
var exit_code : shortint;
var var_file : file of hotel_type;
{/*
* ”гЄжЁЁ f_name Їлв Ґвбп ©вЁ § ЇЁбм Ї® Ё¬ҐЁ,
* Є ᮦ «ҐЁо згўбвўЁвҐ«м Є ॣЁбваг ЎгЄў, в Є зв® «гзиҐ ўбҐ ¬ «ҐмЄЁ¬Ё
* ЇЁб вм. …б«Ё ‚ б, ¤®Ўа®¤гил© Ї®«м§®ў ⥫м, нв® Ґ а ¤гҐв Ё§¬ҐЁвҐ дгЄжЁо
* strcomp. ‚ Є зҐб⢥ аЈг¬Ґв дгЄжЁп ЇаЁЁ¬ Ґв Ё¬п, ў®§ўа й Ґв
* ®¬Ґа (-1 ў б«гз Ґ Ґг¤ зЁ).
*/}
function f_name(name : name_type) : shortint;
var i : byte;
begin
clrscr;
for i := 0 to numbers-1 do
begin
if ((strcomp(name, hotel[i].name) = 0) or (strcomp(name, hotel[i].name2) = 0)) then
begin
f_name := i;
exit;
end;
end;
f_name := -1;
end;
{/*
* ”гЄжЁЁ add ¤®Ў ў«пҐв ®ў®Ј® Є«ЁҐв .
*/}
procedure add;
var str_tmp : name_type;
var error : shortint;
var i : shortint;
begin
clrscr;
for i := 0 to numbers-1 do
if ((strcomp(hotel[i].name, '') = 0) or ((i >= 5) and (strcomp(hotel[i].name2, '') = 0))) then break;
repeat
write('Please enter new name: ');
readln(str_tmp);
error := f_name(str_tmp);
until error = -1;
if (strcomp(hotel[i].name, '') = 0) then strcopy(hotel[i].name, str_tmp)
else strcopy(hotel[i].name2, str_tmp);
end;
{/*
* ”гЄжЁЁ delete г¤ «пҐв § ЇЁбм ® Є«ЁҐвҐ.
*/}
procedure delete;
var str_tmp : name_type;
var error : integer;
var i : shortint;
begin
clrscr;
repeat
write('Please enter name you want to delete:');
readln(str_tmp);
error := f_name(str_tmp);
until error <> -1;
if (strcomp(str_tmp, hotel[error].name) = 0) then strcopy(hotel[error].name, hotel[error].name2);
strcopy(hotel[error].name2, '');
writeln('It was deleted!');
end;
{/*
* ”гЄжЁЁ find Їа®бЁв ўўҐбвЁ Ё¬п нЄа ўлў®¤Ёв ®¬Ґа Є®¬ вл.
*/}
procedure find;
var str_tmp : name_type;
var error : integer;
begin
clrscr;
repeat
write('Please enter name:');
readln(str_tmp);
error := f_name(str_tmp);
until error <> -1;
writeln('Room: ', error+1);
end;
{/*
* ѓ« ў п дгЄжЁп Є®в®а п § ЇгбЄ Ґвбп ў ЇҐаўго ®зҐаҐ¤м.
* ’ Є ¦Ґ бзЁвлў Ґв Ў §г ЇаЁ ўе®¤Ґ Ё § ЇЁблў Ґв ЇаЁ ўл室Ґ.
*/}
begin
assign (var_file, 'c:\LANGUA~1\TP7\1\data1.dat');
{$I-}
reset(var_file);
if (ioresult <> 0) then rewrite(var_file)
else read(var_file, hotel);
{$I+}
close (var_file);
repeat
clrscr;
writeln('Hello man!', #010, #013, 'This is main menu, please make your'+
'choice.');
writeln('1. Add to database');
writeln('2. Delete from database');
writeln('3. Find by name');
writeln('4. Exit');
write('I want: ');
case readkey of
'1' : add;
'2' : delete;
'3' : find;
'4' : exit_code := 1;
else writeln(#010, #013, 'Hm... Try again');
end;
readkey;
until exit_code = 1;
assign (var_file, 'c:\LANGUA~1\TP7\1\data1.dat');
rewrite(var_file);
write(var_file, hotel);
close (var_file);
end.
uses crt, strings;
{/*
* Љ®«ў® ®¬Ґа®ў.
*/}
const numbers = 15;
{/*
* ®вЇаҐ¤Ґ«пҐ¬ ®ўлҐ вЁЇл, ЇҐаҐ¬ҐлҐ.
*/}
type name_type = array[0..80] of char;
type room = record
name : name_type;
name2 : name_type;
end;
type hotel_type = array[0..numbers-1] of room;
var hotel : hotel_type;
var exit_code : shortint;
var var_file : file of hotel_type;
{/*
* ”гЄжЁЁ f_name Їлв Ґвбп ©вЁ § ЇЁбм Ї® Ё¬ҐЁ,
* Є ᮦ «ҐЁо згўбвўЁвҐ«м Є ॣЁбваг ЎгЄў, в Є зв® «гзиҐ ўбҐ ¬ «ҐмЄЁ¬Ё
* ЇЁб вм. …б«Ё ‚ б, ¤®Ўа®¤гил© Ї®«м§®ў ⥫м, нв® Ґ а ¤гҐв Ё§¬ҐЁвҐ дгЄжЁо
* strcomp. ‚ Є зҐб⢥ аЈг¬Ґв дгЄжЁп ЇаЁЁ¬ Ґв Ё¬п, ў®§ўа й Ґв
* ®¬Ґа (-1 ў б«гз Ґ Ґг¤ зЁ).
*/}
function f_name(name : name_type) : shortint;
var i : byte;
begin
clrscr;
for i := 0 to numbers-1 do
begin
if ((strcomp(name, hotel[i].name) = 0) or (strcomp(name, hotel[i].name2) = 0)) then
begin
f_name := i;
exit;
end;
end;
f_name := -1;
end;
{/*
* ”гЄжЁЁ add ¤®Ў ў«пҐв ®ў®Ј® Є«ЁҐв .
*/}
procedure add;
var str_tmp : name_type;
var error : shortint;
var i : shortint;
begin
clrscr;
for i := 0 to numbers-1 do
if ((strcomp(hotel[i].name, '') = 0) or ((i >= 5) and (strcomp(hotel[i].name2, '') = 0))) then break;
repeat
write('Please enter new name: ');
readln(str_tmp);
error := f_name(str_tmp);
until error = -1;
if (strcomp(hotel[i].name, '') = 0) then strcopy(hotel[i].name, str_tmp)
else strcopy(hotel[i].name2, str_tmp);
end;
{/*
* ”гЄжЁЁ delete г¤ «пҐв § ЇЁбм ® Є«ЁҐвҐ.
*/}
procedure delete;
var str_tmp : name_type;
var error : integer;
var i : shortint;
begin
clrscr;
repeat
write('Please enter name you want to delete:');
readln(str_tmp);
error := f_name(str_tmp);
until error <> -1;
if (strcomp(str_tmp, hotel[error].name) = 0) then strcopy(hotel[error].name, hotel[error].name2);
strcopy(hotel[error].name2, '');
writeln('It was deleted!');
end;
{/*
* ”гЄжЁЁ find Їа®бЁв ўўҐбвЁ Ё¬п нЄа ўлў®¤Ёв ®¬Ґа Є®¬ вл.
*/}
procedure find;
var str_tmp : name_type;
var error : integer;
begin
clrscr;
repeat
write('Please enter name:');
readln(str_tmp);
error := f_name(str_tmp);
until error <> -1;
writeln('Room: ', error+1);
end;
{/*
* ѓ« ў п дгЄжЁп Є®в®а п § ЇгбЄ Ґвбп ў ЇҐаўго ®зҐаҐ¤м.
* ’ Є ¦Ґ бзЁвлў Ґв Ў §г ЇаЁ ўе®¤Ґ Ё § ЇЁблў Ґв ЇаЁ ўл室Ґ.
*/}
begin
assign (var_file, 'c:\LANGUA~1\TP7\1\data1.dat');
{$I-}
reset(var_file);
if (ioresult <> 0) then rewrite(var_file)
else read(var_file, hotel);
{$I+}
close (var_file);
repeat
clrscr;
writeln('Hello man!', #010, #013, 'This is main menu, please make your'+
'choice.');
writeln('1. Add to database');
writeln('2. Delete from database');
writeln('3. Find by name');
writeln('4. Exit');
write('I want: ');
case readkey of
'1' : add;
'2' : delete;
'3' : find;
'4' : exit_code := 1;
else writeln(#010, #013, 'Hm... Try again');
end;
readkey;
until exit_code = 1;
assign (var_file, 'c:\LANGUA~1\TP7\1\data1.dat');
rewrite(var_file);
write(var_file, hotel);
close (var_file);
end.