Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 6.67 KB | None | 0 0
  1. program avia_kassa;
  2.  
  3.  
  4. uses
  5.   crt;
  6.  
  7.  
  8. type
  9.   avia = record
  10.     fio: string[35];
  11.     num: integer;
  12.     data: string[15];
  13.     nomer: integer;
  14.     vok: string[35];
  15.     kol: longint;
  16.     cena: real;
  17.     stoim: real;
  18.   end;
  19.  
  20. var
  21.   m: byte;
  22.   strok: byte;
  23.   j: byte;
  24.   k, n, i, k1, k2, k3, k4, k5, k6, Filemode, ioresult: integer;
  25.   menu: boolean;
  26.   a: array[1..25] of avia;
  27.   rezp: boolean;
  28.   obrazec: string;
  29.   f: file of avia;
  30.   v: avia;
  31.   namefile: string[15];
  32.   vid: byte;
  33.  
  34. procedure fname;
  35. begin
  36.   Filemode := 2;
  37.   write('vvedite namefile:');readln(namefile);
  38. end;
  39.  
  40. procedure addrec;
  41. begin
  42.   write('vvedite fio kassira: ');readln(v.fio);
  43.   write('vvedite nomer kassi: ');readln(v.num);
  44.   write('vvedite data prodaji: ');readln(v.data);
  45.   write('vvedite nomer reisa: ');readln(v.nomer);
  46.   write('vvedite aerovokzal: ');readln(v.vok);
  47.   write('vvedite kol prodan bil: ');readln(v.kol);
  48.   write('vvedite cena:');readln(v.cena);
  49.   v.stoim := v.cena * v.kol;
  50.   write(f, v);
  51. end;
  52.  
  53. procedure outrec;
  54. begin
  55.   read(f, v);
  56.   k1 := length(v.fio);k2 := 12 - k1;
  57.   k3 := length(v.data);k4 := 11 - k3;
  58.   k5 := length(v.vok);k6 := 12 - k5;
  59.   writeln('|', v.fio, ' ':k2, '|', v.num:5, '|', v.data, ' ':k4, '|', v.nomer:7, '|', v.vok,
  60.   ' ':k6, '|', v.kol:8, '|', v.cena:8:1, '|', v.stoim:8:1, '|');
  61. end;
  62.  
  63. procedure tab;
  64. begin
  65.   writeln('--------------------------------------------------------------------------------');
  66.   writeln('---   avia kassi   ---':47);
  67.   writeln('--------------------------------------------------------------------------------');
  68.   writeln;
  69.   writeln('|fio kassira | num | data prod | nomer | aerovokzal |prodan b|  cena  |stoimost|');
  70. end;
  71.  
  72. procedure create_file;
  73. var i : Integer;
  74. begin
  75.   fname;
  76.   assign(f, namefile);
  77.   rewrite(f);
  78.   write('vvedite size file');
  79.   readln(k);
  80.   for i := 1 to k do
  81.   begin
  82.     addrec;
  83.   end;
  84.   writeln('v file: ', ' ', filesize(f), ' -zapisey');
  85.   close(f);
  86. end;
  87.  
  88. procedure outallrec;
  89. begin
  90.   clrscr;
  91.   write('vvedite namefile:');readln(namefile);
  92.   assign(f, namefile);
  93.   {$i-} reset(f); {$i+}
  94.   if ioresult <> 0 then writeln('not file') else
  95.   begin
  96.     seek(f, 0);
  97.     tab;
  98.     while not eof(f) do
  99.     begin
  100.       outrec;
  101.     end;
  102.     close(f);
  103.   end;
  104. end;
  105.  
  106. procedure dob_end;
  107. var i : Integer;
  108. begin
  109.   fname;
  110.   assign(f, namefile);
  111.   {$i-} reset(f); {$i+}
  112.   if ioresult <> 0 then writeln('not file') else
  113.   begin
  114.     seek(f, filesize(f));
  115.     write('vvedite kol zap:');
  116.     readln(n);
  117.     for i := 1 to n do
  118.       addrec;
  119.     writeln('v file ', filesize(f), ' -zapisey');
  120.     close(f);
  121.   end;
  122. end;
  123.  
  124. procedure updaterec;
  125. var
  126.   numrec: longint;
  127. begin
  128.   fname;
  129.   assign(f, namefile);
  130.   {$i-} reset(f); {$i+}
  131.   if ioresult <> 0 then writeln('not file') else
  132.   begin
  133.     write('vvedite nomer zapisi numrec: ');
  134.     readln(numrec);
  135.     seek(f, numrec - 1);
  136.     writeln('staroe znachenie:');
  137.     writeln;
  138.     writeln('|fio kassira | num | data prod | nomer | aerovokzal |prodan b|  cena  |stoimost|');
  139.     outrec;
  140.     seek(f, numrec - 1);
  141.     writeln('vvedite novoe znachenie:');
  142.     addrec;
  143.     close(f);
  144.   end;
  145. end;
  146.  
  147. procedure vedom;
  148. var
  149.   tm, tmr, s: string;
  150.   tda, per, per2, i, m, j: integer;
  151. begin
  152.   fname;
  153.   assign(f, namefile);
  154.   {$i-} reset(f); {$i+}
  155.   if ioresult <> 0 then writeln('not file') else
  156.   begin
  157.     seek(f, 0);
  158.     clrscr;
  159.     write('vvedite month>');
  160.     readln(tda);
  161.     if tda < 12 then
  162.     begin
  163.       Str(tda, s);
  164.       per := 5;
  165.       per2 := 1;
  166.     end else
  167.     begin
  168.       Str(tda, s);
  169.       per := 4;
  170.       per2 := 2;
  171.     end;
  172.     tm := copy(s, 1, 2);
  173.     j := 0;
  174.     while not eof(f) do
  175.     begin
  176.       a[i] := v;
  177.       read(f, v);
  178.       tmr := copy(v.data, per, per2);
  179.       if (tm = tmr) then
  180.       begin
  181.         if j = 1 then
  182.         begin
  183.           writeln('vedomost':40);
  184.           tab;
  185.         end;
  186.         k1 := length(v.fio);k2 := 12 - k1;
  187.         k3 := length(v.data);k4 := 11 - k3;
  188.         k5 := length(v.vok);k6 := 12 - k5;
  189.         writeln('|', v.fio, ' ':k2, '|', v.num:5, '|', v.data, ' ':k4, '|', v.nomer:7, '|', v.vok,
  190.         ' ':k6, '|', v.kol:8, '|', v.cena:8:1, '|', v.stoim:8:1, '|');
  191.       end;
  192.     end;
  193.   end;
  194. end;
  195.  
  196. procedure sort_vok;
  197. var
  198.   i, j, m: integer;
  199. begin
  200.   fname;
  201.   assign(f, namefile);
  202.   {$i-} reset(f); {$i+}
  203.   if ioresult <> 0 then writeln('file not') else
  204.   begin
  205.     seek(f, 0);m := 0;
  206.     while not eof(f) do
  207.     begin
  208.       read(f, v);
  209.       m := m + 1;
  210.       a[m] := v;
  211.     end;
  212.     close(f);
  213.     for i := 1 to m - 1 do
  214.       for j := i + 1 to m do
  215.         if a[i].vok > a[j].vok then
  216.         begin
  217.           v := a[i];a[i] := a[j];a[j] := v;
  218.         end;
  219.     assign(f, 'vok.dat');
  220.     rewrite(f);
  221.     for i := 1 to m do write(f, a[i]);
  222.     close(f);
  223.   end;
  224. end;
  225.  
  226. procedure find_data ;
  227. var
  228.   i, m: integer;
  229. begin
  230.   assign(f, 'vok.dat');
  231.   {$i-} reset(f); {$i+}
  232.   if ioresult <> 0 then writeln('not file') else
  233.   begin
  234.     seek(f, 0);
  235.     rezp := false;
  236.     m := 0;
  237.     write('vvedite obrazec:');
  238.     readln(obrazec);
  239.     while not eof(f) do
  240.     begin
  241.       read(f, v);
  242.       if pos(obrazec, v.data) = 1 then
  243.       begin
  244.         m := m + 1;
  245.         a[m] := v;
  246.         rezp := true;
  247.       end;
  248.     end;
  249.     if rezp then
  250.     begin
  251.       tab;
  252.       for i := 1 to m do
  253.       begin
  254.         k1 := length(a[i].fio);k2 := 12 - k1;
  255.         k3 := length(a[i].data);k4 := 11 - k3;
  256.         k5 := length(a[i].vok);k6 := 12 - k5;
  257.         writeln('|', a[i].fio, ' ':k2, '|', a[i].num:5, '|', a[i].data, ' ':k4, '|', a[i].nomer:7, '|', a[i].vok,
  258.         ' ':k6, '|', a[i].kol:8, '|', a[i].cena:8:1, '|', a[i].stoim:8:1, '|');
  259.       end;
  260.       writeln('naideno:', m:3, '_zap');
  261.     end
  262.     else
  263.       writeln('obrazec ne naiden!');
  264.     close(f);
  265.   end;
  266. end;
  267.  
  268. procedure six;
  269. begin
  270.   sort_vok;
  271.   find_data;
  272. end;
  273.  
  274. begin
  275.   clrscr;
  276.   menu := false;
  277.   repeat
  278.     writeln('----------- menu -------------':55);
  279.     writeln;
  280.     writeln('---------- varianti ----------':55);
  281.     writeln;
  282.     writeln('1- sozdanie                   ':55);
  283.     writeln('2- prosmotr                   ':55);
  284.     writeln('3- dobavlenie                 ':55);
  285.     writeln('4- redaktirovanie             ':55);
  286.     writeln('5- vedomost                   ':55);
  287.     writeln('6- sortirovka i poisk po date ':55);
  288.     writeln('0- exit                       ':55);
  289.     writeln;
  290.     writeln('------------------------------':55);
  291.     readln(vid);
  292.     case vid of
  293.       1: create_file;
  294.       2: outallrec;
  295.       3: dob_end;
  296.       4: updaterec;
  297.       5: vedom;
  298.       6: six;
  299.       0: menu := true;
  300.     end;
  301.     writeln('press enter');
  302.     readln;
  303.     clrscr;
  304.   until menu;
  305. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement