Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. program project1;
  2. type
  3. str=string[30];
  4. producto=record
  5. codigop:integer;
  6. nombre:str;
  7. precio:real;
  8. stocka:integer;
  9. stockm:integer;
  10. end;
  11. venta=record
  12. codigo:integer;
  13. cantv:integer;
  14. end;
  15. vector=array [1..30] of archivod;
  16.  
  17. archivom= file of producto;
  18. archivod= file of venta;
  19. procedure crearmaestro (var A:archivom ; var t:text);
  20. var
  21. reg:producto;
  22. begin
  23. rewrite(A);
  24. reset(t);
  25. assign (A,'maestro');
  26. while not(eof (t)) do
  27. begin
  28. readln(t,reg.codigop,reg.nombre,reg.precio,reg.stocka,reg.stockm);
  29. write(A,reg);
  30. end;
  31. close(a);
  32. close(t);
  33. end;
  34. procedure listarmaestro (var a:archivom;var t:text);
  35. var
  36. reg:producto;
  37. begin
  38. reset(a);
  39. rewrite(t);
  40. assign(t,'reporte.txt');
  41. while not(eof(a)) do
  42. begin
  43. read(a,reg);
  44. writln(t,reg.codigop,'',reg.nombre,'',reg.precio,'',reg.stocka,'',reg.stockm);
  45. end;
  46. close(a);
  47. close(t);
  48.  
  49. end;
  50. procedure creardetalle (var v:vector; var t:text; num:str);
  51. var
  52. num:str;
  53. reg:venta;
  54. begin
  55. rewrite(det);
  56. reset(t);
  57. assign(det,'detalle'+num);
  58. while not(eof(t)) do
  59. begin
  60. readln(t,reg.codigo,reg.cantv);
  61. write(v[num],reg);
  62. end;
  63. close(det);
  64. close(t);
  65.  
  66. end;
  67. procedure listardetalle (var d:archivod);
  68. var
  69. reg:venta;
  70. begin
  71. reset(d);
  72. while not(eof(d)) do
  73. begin
  74. read(d,reg);
  75. writeln(reg.codigo);
  76. writeln(reg.cantv);
  77. end;
  78. close(d);
  79. end;
  80. procedure leer(var arc:archivod;var reg:venta);
  81. begin
  82. if (not eof(arc)) then
  83. begin
  84. read(arc,reg);
  85. end
  86. else
  87. reg.codigo:=valoralto;
  88.  
  89. end;
  90.  
  91. procedure minimo (var vec:vector;var min:venta);
  92. var
  93. i:integer;
  94. reg:venta;
  95. begin
  96.  
  97. for i:=1 to 30 do
  98. begin
  99.  
  100. leer(v[i],reg);
  101. if (reg.codigo<=min.codigo) then
  102. begin
  103. min.codigo:=reg.codigo;
  104. min.cantv:=reg.cantv;
  105.  
  106. end;
  107.  
  108. end;
  109.  
  110.  
  111. end;
  112. prcedure abrir(var vec:vector);
  113. var
  114. i:integer;
  115. begin
  116. for i:=1 to 30 do
  117. begin
  118. reset (v[i]);
  119. end;
  120. end;
  121. procedure cerrar (var vec:vector);
  122. var
  123. i:integer;
  124. begin
  125. for i:=1 to 30 do
  126. begin
  127. close(v[i]);
  128. end;
  129. end;
  130.  
  131. procedure actualizar (var mae:archivom;var vec:vector);
  132. var
  133. min,reg:venta;
  134. pos:integer;
  135. regm:producto;
  136. begin
  137. reset(mae);
  138. abrir(vec);
  139. min.codigo:=9999999999999;
  140. minimo(vec,min);
  141. read(mae,regm);
  142. while(min.codigo<>valoralto) do
  143. begin
  144.  
  145. total:=0;
  146. reg:=min;
  147. while (reg.codigo=min.codigo) do
  148. begin
  149. total:=total+min.cantv;
  150. minimo(vec,min);
  151. end;
  152. while(regm.codigop<>min.codigo) do
  153. read(mae,regm);
  154. regm.stocka:=regm.stocka-total;
  155. seek(mae,filepos(mae)-1);
  156. write(mae,regm);
  157. if (not eof(mae) then
  158. read(mae,regm);
  159. end;
  160.  
  161. close(mae);
  162. cerrar(vec);
  163. end;
  164. procedure crearstock (var mae:arhivom, var t:text);
  165. var
  166. reg:producto;
  167. begin
  168. reset(mae);
  169. rewrite(t);
  170. assign(t,'stock_minimo.txt');
  171. while not(eof(mae)) do
  172. begin
  173. read(mae,reg);
  174. if (reg.stocka<reg.stockm) then
  175. begin
  176. writln(t,reg.codigop,'',reg.nombre,'',reg.precio,'',reg.stocka,'',reg.stockm);
  177. end;
  178. end;
  179. close(mae);
  180. close(t);
  181. end;
  182. var
  183. menu:integer;
  184. opc:0..6;
  185. numd:string;
  186. mae:archivom;
  187. tm,t1,t2,t3:text;
  188. ruta:string;
  189. vecd:vector;
  190.  
  191. begin
  192. menu:=-1;
  193. while(menu <> 0)do
  194. begin
  195. writeln('Ingrese la opcion que desea realizar:');
  196. writeln;
  197. writeln('(0) Salir');
  198. writeln('(1) Crear maestro');
  199. writeln('(2) Listar reporte');
  200. writeln('(3) Crear detalle');
  201. writeln('(4) Listar detalle');
  202. writeln('(5) Actualizar');
  203. writeln('(6) Listar stock minimo');
  204. readln(opc);
  205. case opc of
  206. 0: HALT;
  207. 1: begin
  208. writeln('ingrese la ruta del archivo de texto');
  209. read(ruta);
  210. assing (tm,'ruta');
  211. crearmaestro(mae,tm);
  212. end;
  213. 2: begin
  214. listarmaestro(mae,t1);
  215. end;
  216. 3: begin
  217. writeln('ingrese el numero del archivo de texto a usar(1-30)');
  218. read(numd);
  219. creardetalle(vecd[numd],numd.txt)
  220. end;
  221. 4:begin
  222. writeln('ingrese la ruta del archivo de texto');
  223. read(ruta);
  224. assing (t2,'ruta');
  225. listardetalle(t2);
  226. end;
  227. 5:begin
  228. actualizar (mae,vecd);
  229. end;
  230. 6:begin
  231. crearstock (mae,t3);
  232. end;
  233.  
  234. end;
  235.  
  236. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement