Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program avia_kassa;
- uses
- crt;
- type
- avia = record
- fio: string[35];
- num: integer;
- data: string[15];
- nomer: integer;
- vok: string[35];
- kol: longint;
- cena: real;
- stoim: real;
- end;
- var
- m: byte;
- strok: byte;
- j: byte;
- k, n, i, k1, k2, k3, k4, k5, k6, Filemode, ioresult: integer;
- menu: boolean;
- a: array[1..25] of avia;
- rezp: boolean;
- obrazec: string;
- f: file of avia;
- v: avia;
- namefile: string[15];
- vid: byte;
- procedure fname;
- begin
- Filemode := 2;
- write('vvedite namefile:');readln(namefile);
- end;
- procedure addrec;
- begin
- write('vvedite fio kassira: ');readln(v.fio);
- write('vvedite nomer kassi: ');readln(v.num);
- write('vvedite data prodaji: ');readln(v.data);
- write('vvedite nomer reisa: ');readln(v.nomer);
- write('vvedite aerovokzal: ');readln(v.vok);
- write('vvedite kol prodan bil: ');readln(v.kol);
- write('vvedite cena:');readln(v.cena);
- v.stoim := v.cena * v.kol;
- write(f, v);
- end;
- procedure outrec;
- begin
- read(f, v);
- k1 := length(v.fio);k2 := 12 - k1;
- k3 := length(v.data);k4 := 11 - k3;
- k5 := length(v.vok);k6 := 12 - k5;
- writeln('|', v.fio, ' ':k2, '|', v.num:5, '|', v.data, ' ':k4, '|', v.nomer:7, '|', v.vok,
- ' ':k6, '|', v.kol:8, '|', v.cena:8:1, '|', v.stoim:8:1, '|');
- end;
- procedure tab;
- begin
- writeln('--------------------------------------------------------------------------------');
- writeln('--- avia kassi ---':47);
- writeln('--------------------------------------------------------------------------------');
- writeln;
- writeln('|fio kassira | num | data prod | nomer | aerovokzal |prodan b| cena |stoimost|');
- end;
- procedure create_file;
- var i : Integer;
- begin
- fname;
- assign(f, namefile);
- rewrite(f);
- write('vvedite size file');
- readln(k);
- for i := 1 to k do
- begin
- addrec;
- end;
- writeln('v file: ', ' ', filesize(f), ' -zapisey');
- close(f);
- end;
- procedure outallrec;
- begin
- clrscr;
- write('vvedite namefile:');readln(namefile);
- assign(f, namefile);
- {$i-} reset(f); {$i+}
- if ioresult <> 0 then writeln('not file') else
- begin
- seek(f, 0);
- tab;
- while not eof(f) do
- begin
- outrec;
- end;
- close(f);
- end;
- end;
- procedure dob_end;
- var i : Integer;
- begin
- fname;
- assign(f, namefile);
- {$i-} reset(f); {$i+}
- if ioresult <> 0 then writeln('not file') else
- begin
- seek(f, filesize(f));
- write('vvedite kol zap:');
- readln(n);
- for i := 1 to n do
- addrec;
- writeln('v file ', filesize(f), ' -zapisey');
- close(f);
- end;
- end;
- procedure updaterec;
- var
- numrec: longint;
- begin
- fname;
- assign(f, namefile);
- {$i-} reset(f); {$i+}
- if ioresult <> 0 then writeln('not file') else
- begin
- write('vvedite nomer zapisi numrec: ');
- readln(numrec);
- seek(f, numrec - 1);
- writeln('staroe znachenie:');
- writeln;
- writeln('|fio kassira | num | data prod | nomer | aerovokzal |prodan b| cena |stoimost|');
- outrec;
- seek(f, numrec - 1);
- writeln('vvedite novoe znachenie:');
- addrec;
- close(f);
- end;
- end;
- procedure vedom;
- var
- tm, tmr, s: string;
- tda, per, per2, i, m, j: integer;
- begin
- fname;
- assign(f, namefile);
- {$i-} reset(f); {$i+}
- if ioresult <> 0 then writeln('not file') else
- begin
- seek(f, 0);
- clrscr;
- write('vvedite month>');
- readln(tda);
- if tda < 12 then
- begin
- Str(tda, s);
- per := 5;
- per2 := 1;
- end else
- begin
- Str(tda, s);
- per := 4;
- per2 := 2;
- end;
- tm := copy(s, 1, 2);
- j := 0;
- while not eof(f) do
- begin
- a[i] := v;
- read(f, v);
- tmr := copy(v.data, per, per2);
- if (tm = tmr) then
- begin
- if j = 1 then
- begin
- writeln('vedomost':40);
- tab;
- end;
- k1 := length(v.fio);k2 := 12 - k1;
- k3 := length(v.data);k4 := 11 - k3;
- k5 := length(v.vok);k6 := 12 - k5;
- writeln('|', v.fio, ' ':k2, '|', v.num:5, '|', v.data, ' ':k4, '|', v.nomer:7, '|', v.vok,
- ' ':k6, '|', v.kol:8, '|', v.cena:8:1, '|', v.stoim:8:1, '|');
- end;
- end;
- end;
- end;
- procedure sort_vok;
- var
- i, j, m: integer;
- begin
- fname;
- assign(f, namefile);
- {$i-} reset(f); {$i+}
- if ioresult <> 0 then writeln('file not') else
- begin
- seek(f, 0);m := 0;
- while not eof(f) do
- begin
- read(f, v);
- m := m + 1;
- a[m] := v;
- end;
- close(f);
- for i := 1 to m - 1 do
- for j := i + 1 to m do
- if a[i].vok > a[j].vok then
- begin
- v := a[i];a[i] := a[j];a[j] := v;
- end;
- assign(f, 'vok.dat');
- rewrite(f);
- for i := 1 to m do write(f, a[i]);
- close(f);
- end;
- end;
- procedure find_data ;
- var
- i, m: integer;
- begin
- assign(f, 'vok.dat');
- {$i-} reset(f); {$i+}
- if ioresult <> 0 then writeln('not file') else
- begin
- seek(f, 0);
- rezp := false;
- m := 0;
- write('vvedite obrazec:');
- readln(obrazec);
- while not eof(f) do
- begin
- read(f, v);
- if pos(obrazec, v.data) = 1 then
- begin
- m := m + 1;
- a[m] := v;
- rezp := true;
- end;
- end;
- if rezp then
- begin
- tab;
- for i := 1 to m do
- begin
- k1 := length(a[i].fio);k2 := 12 - k1;
- k3 := length(a[i].data);k4 := 11 - k3;
- k5 := length(a[i].vok);k6 := 12 - k5;
- writeln('|', a[i].fio, ' ':k2, '|', a[i].num:5, '|', a[i].data, ' ':k4, '|', a[i].nomer:7, '|', a[i].vok,
- ' ':k6, '|', a[i].kol:8, '|', a[i].cena:8:1, '|', a[i].stoim:8:1, '|');
- end;
- writeln('naideno:', m:3, '_zap');
- end
- else
- writeln('obrazec ne naiden!');
- close(f);
- end;
- end;
- procedure six;
- begin
- sort_vok;
- find_data;
- end;
- begin
- clrscr;
- menu := false;
- repeat
- writeln('----------- menu -------------':55);
- writeln;
- writeln('---------- varianti ----------':55);
- writeln;
- writeln('1- sozdanie ':55);
- writeln('2- prosmotr ':55);
- writeln('3- dobavlenie ':55);
- writeln('4- redaktirovanie ':55);
- writeln('5- vedomost ':55);
- writeln('6- sortirovka i poisk po date ':55);
- writeln('0- exit ':55);
- writeln;
- writeln('------------------------------':55);
- readln(vid);
- case vid of
- 1: create_file;
- 2: outallrec;
- 3: dob_end;
- 4: updaterec;
- 5: vedom;
- 6: six;
- 0: menu := true;
- end;
- writeln('press enter');
- readln;
- clrscr;
- until menu;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement