Автор работы: Пользователь скрыл имя, 28 Февраля 2016 в 17:41, курсовая работа
Составить программу, помогающую администратору гостиницы. В гостинице 8 этажей. На первом этаже – административные помещения и ресторан; на втором – восемь двухкомнатных номеров-люксов; на третьем-четвертом – по шестнадцать двухместных однокомнатных номеров на каждом этаже. О каждом номере известна следующая информация: номер свободен, номер забронирован, номер занят. В номере живет один человек (мужчина и женщина). В этом случае известно дополнительная информация : с правом подселения или нет (если номер двухместный). Прибыл в командировку, прибыл в частном порядке. По требованию администратора выдать информация о гостях, приехавших в командировку с указанием номеров, в которых они живут.
write(DB, tmpFlat);
end;
end;
{+инициализируем 5-8 этажи}
close(DB);
end;
procedure InputResidents(outFile: string);
var DB: file of flat;
tmpFlat: flat;
i,j: integer;
flag:boolean;
begin
assign(DB, outFile); reset(DB);
repeat
clrscr;
write('Введите номер (3 цифры):'); readln(i);
reset(DB);j:=-1;
while not EOF(DB) do
begin
clrscr;
read(DB,tmpFlat);
flag:=false;
if (tmpFlat.floor = i div 100) and (tmpFlat.number = i mod 100) then
begin
writeLN('Номер ', i div 100,i mod 100);
with tmpFlat do
begin
writeln('Кол-во комнат: ',rooms);
writeln('Вид номера:', style);
writeln('Текущее сотояние:', status);
write('Изменить состояние (1-свободен,2-занят,3-
readln(j);
case j of
1: begin status:='free'; flag:=true; end;
2: status:='busy';
3: status:='reserved';
else break;
end;
if not flag then
begin
with resident do
begin
Write('Сколько человек(1-2): '); readln(j);
case j of
1: number:=1;
2: number:=2;
else number:=0;
end;
if number = 1 then
begin
write('Пол (1-мужчина, 2-женщина): ');
readln(j);
case j of
1: sex:='male';
2: sex:='female';
else sex:='';
end;
write('C подселением? (1-да, 2-нет): ');
readln(j);
case j of
1: make_another:=true;
2: make_another:=false;
else make_another:=false;
end;
end;
write('Статус (1-командировка, 2- частный): ');
readln(j);
case j of
1: status:='mission';
2: status:='free';
else status:='free';
end;
end;
end else
begin
with resident do
begin
sex:='';{male, female}
number:=0;
make_another:=true; {подселение}
status:= '';
end;
end;
end;
end;
seek(DB, FilePos(DB)-1); write(DB, tmpFlat);
flag:=false;
end;
if j<0 then Writeln('Ничего не найдено');
Writeln('Для выхода нажмите 0!'); readln(j);
until j=0;
close(DB);
end;
function Search(inFile: string):integer;
var DB: file of flat;
tmpFlat: flat;
i,j: integer;
flag:boolean;
begin
j:=0;
assign(Db,inFile); reset(DB);
while not EOF(DB) do
begin
read(DB,tmpFlat);
if tmpFlat.resident.status = 'mission' then
begin
inc(j);
with tmpFlat do
begin
writeln('=====================
writeLn('Номер: ':20, floor,'-',number);
writeln('Количество комнат: ':20, rooms);
writeln('Тип: ':20, style);
writeln('Статус: ':20, status);
with resident do
begin
writeln ('Тип прибытия: ':20,status);
writeln ('Количество человек: ':20,number);
writeln ('Пол: ':20, sex);
writeln ('С подселением: ':20, make_another);
end;
writeln('=====================
end;
writeln;
end;
end;
close(DB);
Search:=j;
end;
var DataBase: file of flat;
i:integer;
ch:char;
nameOfDB: string;
begin
clrscr;
repeat
case Menu of
2: begin
clrscr;
write('Введите имя файла: '); readln(nameOfDB);
if nameOfdb='' then nameOfdb := 'hotel.dat';
InitHotelRooms(nameOfDB);
end;
3: begin
clrscr;
write('Введите имя файла: '); readln(nameOfDb);
Assign(DataBase, nameOfdb);
{$I-}
Reset(DataBase);
{$I+}
If IOResult=0 Then WriteLn('Файл успешно
Else WriteLn('Файл не найден.');
end;
4: begin
if nameOfdb='' then nameOfDB := 'hotel.dat';
InputResidents(nameOfDB);
end;
5: begin
if nameOfdb='' then nameOfDB := 'hotel.dat';
i:=Search(NameOfDB);
if i>0 then Writeln('Найдено ',i) else writeln('Ничего не найдено!');
end;
6: begin
writeln('Для выхода нажмите ESC!');
ch:=#27;
end;
end;
writeln('Для возврата в МЕНЮ нажмите любую клавишу!');
ch:=readkey;
until ch=#27;
writeln('Завершение работы программы...');
delay(1000);
end.
ПРИМЕР РАБОТЫ ПРОГРАММЫ
Демонстрация работы меню программы
Загрузка файла с базой
Демонстрация ввода данных о номере
пример вывода результатов по запросу администратора
Блок-схема программы
1. Фаронов В.В., «Turbo Pascal 7.0” начальный курс и практикум, изд-во «Нолидж», Москва, 2000 г.
2. Немюгин С.А. «Turbo Pascal», изд-во «Питер», Санкт-Петербург, 2001 г.
3. Новиков Ф.А. «Дискретная математика для программистов», изд-во «Питер», Санкт-Петербург, 2001 г.
.