Program do rezerwacji miejsc w kinie
Hatehatehateho
Instrukcja obsługi
Po otwarciu programu wyświetla nam się menu w którym mamy do wyboru: Rezerwacja miejsca, zwolnienie miejsca, obłożenie kina i koniec.
http://zapodaj.net/596b9bcef1e4a.png.html
Opcja „Rezerwacja miejsca” jak sama nazwa wskazuje służy do zarezerwowania miejsca w kinie. Po wybraniu tej opcji wyświetla nam się mapa sali kinowej.
http://zapodaj.net/dd25cf877d5c3.png.html
Miejsce wolne jest oznaczone znakiem „0”, a zajęte czerwonym znakiem „X”.
Pod mapą sali program prosi nas o wybranie numeru rzędu. Wpisujemy liczbę od 1 do 10 i zatwierdzamy klawiszem ENTER. Następnie jesteśmy proszeni o wybranie miejsca w wybranym rzędzie robimy to samo co poprzednio i miejsce jest zarezerwowane.
UWAGA!!! Jeżeli wpiszemy miejsce powyżej liczby 10 program wyświetli nam, że miejsce jest zajęte! Oznacza to, że nie ma takiego miejsca w sali kinowej.
http://zapodaj.net/d1869343686a9.png.html
Jeżeli wpiszemy zamiast liczby literę program zakończy działanie i się wyłączy.
Opcja Zwolnij miejsce usuwa zarezerwowane miejsce w kinie. Gdy wybierzemy tą opcję z menu zostanie wyświetlona mapa z zajętymi miejscami oznaczonymi znakiem „X”.
http://zapodaj.net/cbdcf27de63b6.png.html
Dalej musimy zrobić to co przy pierwszej opcji menu, czyli rezerwacji, wybrać miejsce i rząd.
Opcja obłożenie kina pokazuje zajęte miejsca w kinie i wyświetla procent w jakim kino jest przepełnione.
Ostatnia opcja menu- "Koniec" służy do zakończenia pracy programu. Rezerwacje nie zostaną zapisane jeśli zamkniemy program!
program szkielet;
uses crt;
type kino = array[1..10,1..10] of char;
var wybor : byte;
a : kino;
i,j : byte;
procedure Cursoroff;assembler;
asm
mov ah,01h
mov ch,10h
mov cl,00h
int 10h
end;
procedure Cursoron;assembler;
asm
mov ah,01h
mov ch,06h
mov cl,07h
int 10h
end;
procedure piszmenu(ktory:byte);
begin
textbackground(black);
textcolor(white);
gotoxy(1,1); write('┌────── MENU ──────┐');
gotoxy(1,2); write('│ │'); {1} komentarz: ta tabelka musi się trzymać kupy.
gotoxy(1,3); write('│ │'); {2}
gotoxy(1,4); write('│ │'); {3}
gotoxy(1,5); write('│ │'); {4}
gotoxy(1,6); write('│ │'); {5}
gotoxy(1,7); write('└─────────────────┘');
gotoxy(2,2);
if ktory=1 then begin
textbackground(white);
textcolor(black);
write('Rezerwuj miejsce ');
textbackground(black);
textcolor(white);
end
else begin
write('Rezerwuj miejsce ');
end;
gotoxy(2,3);
if ktory=2 then begin
textbackground(white);
textcolor(black);
write('Zwolnij miejsce ');
textbackground(black);
textcolor(white);
end
else begin
write('Zwolnij miejsce ');
end;
gotoxy(2,4);
if ktory=3 then begin
textbackground(white);
textcolor(black);
write('Oblozenie kina ');
textbackground(black);
textcolor(white);
end
else begin
write('Oblozenie kina ');
end;
gotoxy(2,5);
if ktory=4 then begin
textbackground(white);
textcolor(black);
write('Koniec ');
textbackground(black);
textcolor(white);
end
else begin
write('Koniec ');
end;
end;
Function menu: byte;
var i : integer;
z : char;
begin
i:=1;
repeat
piszmenu(i);
z:=readkey;
if ord(z)=0 then begin
z:=readkey;
case ord(z) of
72: if i-1<1 then i:=4
else i:=i-1; {swg}
80: if i+1>4 then i:=1
else i:=i+1; {swd}
71: i:=1; {home}
79: i:=4; {end}
end;
end;
until ord(z)=13;
menu:=i;
end;
procedure wys_kino;
begin
window(40,1,79,20);
clrscr;
gotoxy(1,1);
write(' 1 2 3 4 5 6 7 8 9 10');
for i:=1 to 10 do
begin
gotoxy(1,1+i);
write(i,' ');
for j:=1 to 10 do
if a[i,j]='X' then begin
textcolor(red);
write(a[i,j]);
normvideo;
write(' ');
end
else write(a[i,j],' ');
end;
end;
procedure rezerwacja;
var r,m : byte;
begin
wys_kino;
gotoxy(1,13);
write('Nr rzedu: ');
readln(r);
write('Nr miejsca: ');
readln(m);
if a[r,m]='0' then a[r,m]:='X'
else begin
writeln('Miejsce jest zajete');
readkey;
end;
end;
procedure anulujrez;
var r,m : byte;
begin
wys_kino;
gotoxy(1,13);
write('Nr rzedu: ');
readln(r);
write('Nr miejsca: ');
readln(m);
if a[r,m]='X' then a[r,m]:='0'
else begin
writeln('Miejsce jest wolne');
readkey;
end;
end;
procedure oblozenie;
var i,j,ile : word;
begin
wys_kino;
ile:=0;
for i:=1 to 10 do
for j:=1 to 10 do
if a[i,j]='X' then ile:=ile+1;
gotoxy(1,13);
writeln('Oblozenie kina: ',ile,'%');
readkey;
end;
begin
for i:=1 to 10 do
for j:=1 to 10 do
a[i,j]:='0';
repeat
window(1,1,79,24);
clrscr;
cursoroff;
wybor:=menu;
cursoron;
gotoxy(1,23);
case wybor of
1: begin
rezerwacja;
end;
2: begin
anulujrez;
end;
3: begin
oblozenie;
end;
end;
until wybor=4;
end.
Dodaje załącznik. Kod w pliku .pas i plik .exe
@Marooned Jeszcze jak.
@Satanistyczny Awatar: serio komentujesz kod gościa, który ostatni raz logował się 5 lat temu?
Assembler do włączania/wyłączania kursora? Serio? Sekwencje sterujące ukradli? Działa i pod DOS i pod Unixowe TTY. Do tego ify z który powinny być zamienione na case'y i zmiany kolorów parami można dać do osobnej procedury. Wtedy to będzie 10 razy przyjemniejsze w lekturze.
Postaraj się umieścić screeny na naszym serwerze i wyświetlić je jako obrazki. Fotki z innych serwerów z czasem znikają i potem artykuł jest dziurawy.