Está en la página 1de 10

1.

Una empresa que vende productos de tipo accesorios personales para utilizar en

el problema del COVID-19, estos accesorios son mascarillas, guantes, lentes,

mamelucos, gorros y otros Los productos de venta tiene Código, Nombre,

Cantidad, Precio, Estado: Bueno o Fallado:

Se pide:

a. Crear un archivo secuencial para almacenar o guardar esta información,

b. Recorrer y mostrar estos productos

c. Buscar los productos que estén en estado: Bueno

d. Eliminar los productos que estén en estado: Fallado

e. Insertar productos nuevos que también son requeridos

Pre-Condición:

ENTRADA: Registro de productos

SALIDA: F (Archivo de Enteros)

Registro de productos - - - - - - - --------F

Post-Condición:

F------- - - - - - - - - A (campos de A)
Pseudocódigo:

Cada registro de productos contiene los siguientes campos:

Cod Nombre Cantidad Precio Estado

Se define el Registro ACCESORIOS y la clase FILA

Estructura ACCESORIOS
Inicio
Cadena Cod[10]
Cadena Nombre[10]
Entero Cantidad
Entero Precio
Booleano Estado
Fin

Clase FILA
Archivo F
Archivo G
Entero N
ACCESORIOS A
Metodos
crear ()
recorrer ()
buscar ()
eliminar ()
insertar ()

La Accion crear FILA


Accion Fila::crear()
Inicio
Leer n desde la entrada
i=0
Mientras i < n
Leer Cod desde la entrada
Leer Nombre desde la entrada
Leer Cantidad desde la entrada
Leer Precio desde la entrada
Leer estado desde la entrada
Mientras estado > 2
Si estado es 1
A.Estado = verdadero
Sino
A.Estado = falso
Escribir A en el archivo F
Incrementar i
Fin Mientras
Fin Mientras
Cerrar archivo F
Fin

La Accion recorrer FILA y mostrar los accesorios existentes

Accion Fila::recorrer ()
Inicio
Abrir archivo F para leer
Mientras no se alcance el final del archivo
Leer A desde el archivo F
Si A.Estado es verdadero
Escribir A en la salida
Fin Si
Fin Mientras
Cerrar archivo F
Fin
La Accion buscar FILA, solo los productos en buen estado

Accion Fila::buscar ()
Inicio
Abrir archivo F para leer
Mientras no se alcance el final del archivo
Leer A desde el archivo F
Si A.Estado es verdadero
Escribir A en la salida
Fin Si
Fin Mientras
Cerrar archivo F
Fin

La Accion eliminar FILA, solo los productos defectuosos

Accion Fila::eliminar ()
Inicio
Abrir archivo F para leer
Abrir archivo G para escribir
Mientras no se alcance el final del archivo
Leer A desde el archivo F
Si A.Estado es verdadero
Escribir A en el archivo G
Sino
hallado = 1
Fin Si
Fin Mientras
Cerrar archivo F
Cerrar archivo G
Borrar archivo F
Renombrar archivo G como "ACCESORIOS.txt"
Si hallado es 0
Escribir "No existen accesorios fallados"
Sino
Escribir "Se elimino el registro pedido"
Fin
La Accion insertar FILA, agregar productos adicionales
Accion Fila::insertar ()
Inicio
Abrir archivo F para leer
i=0
Mientras no se alcance el final del archivo
Leer A desde el archivo F
Incrementar i
Fin Mientras
Cerrar archivo F
Abrir archivo F para escribir
Leer n desde la entrada
j=i
i=i+n
Mientras j < i
Leer Cod desde la entrada
Leer Nombre desde la entrada
Leer Cantidad desde la entrada
Leer Precio desde la entrada
Leer estado desde la entrada
Mientras estado > 2
Si estado es 1
A.Estado = verdadero
Sino
A.Estado = falso
Escribir A en el archivo F
Incrementar j
Fin Mientras
Fin Mientras
Cerrar archivo F
Fin

Código:

Codificación del programa en C++


1 #include <conio.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <fstream>
5 #include<iostream>
6
7 using namespace std;
8
9 struct ACCESORIOS
10 {
11 char Cod[10];
12 char Nombre[10];
13 int Cantidad;
14 int Precio;
15 bool Estado;
16 };
17
18 class FILA
19 {
20 FILE *F;
21 FILE *G;
22 int N;
23 ACCESORIOS A;
24 public:
25 void crear();
26 void recorrer();
27 void buscar();
28 void eliminar();
29 void insertar();
30 };
31
32 void FILA::crear()
33 {
34 int i,n,estado;
35 F=fopen("ACCESORIOS.txt","w");
36 if(F == NULL)
37 {
38 cout<<"No se puede abrir el archivo";
39 exit(1);
40 }
41 cout<<"Numero de Productos que desea ingresar?: ";
42 cin>>n;
43 i=0;
44 while(i<n)
45 {
46 cout<<"\n Producto No "<<i+1<<endl;
47 cout<<"\n\t Ingrese Codigo: ";
48 cin>>A.Cod;
49 cout<<"\n\t Ingrese Nombre: ";
50 cin>>A.Nombre;
51 cout<<"\n\t Ingrese Cantidad de productos: ";
52 cin>>A.Cantidad;
53 cout<<"\n\t Ingrese Precio de productos: ";
54 cin>>A.Precio;
55 do
56 {
57 cout<<"\n Ingrese Estado de productos (1: Bueno)
58 (2: Fallado): ";
59 cin>>estado;
60 switch (estado)
61 {
62 case 1:
63 {
64 A.Estado=true;
65 break;
66 }
67 case 2:
68 {
69 A.Estado=false;
70 break;
71 }
72 default: cout<<"Opcion incorrecta";
73 }
74 }while(estado>2);
75 fwrite(&A,sizeof(A),1,F);
76 i=i+1;
77 }
78 fclose(F);
79 cout<<endl<<"\nPresione una tecla ? n para continuar";
80 getch();
81 system("cls");
82 }
83
84 void FILA:: recorrer ( )
85 {
86 F=fopen ("ACCESORIOS.txt","r");
87 if(F == NULL)
88 {
89 cout<<"No se puede abrir el archivo";
90 exit(1);
91 }
92 fread(&A,sizeof(A),1,F);
93 int bol=0;
94 cout<<"Reporte de Productos";
95 while(!feof(F))
96 {
97 bol++;
98 cout<<endl<<endl<<bol<<" Codigo: "<<A.Cod;
99 cout<<endl<<bol<<" Nombre: "<<A.Nombre;
100 cout<<endl<<bol<<" Cantidad: "<<A.Cantidad;
101 cout<<endl<<bol<<" Precio: "<<A.Precio;
102 cout<<endl<<bol<<" Estado: ";
103 if(A.Estado==true) cout<<"Bueno";
104 else cout<<"Fallado";
105 fread(&A,sizeof(A),1,F);
106 }
107 cout<<endl<<"\nPresione una tecla ? n para continuar";
108 fclose(F);
109 getch();
110 system("cls");
111 }
112
113 void FILA::buscar()
114 {
115 F=fopen ("ACCESORIOS.txt","r");
116 if(F == NULL)
117 {
118 cout<<"No se puede abrir el archivo";
119 exit(1);
120 }
121 fread(&A,sizeof(A),1,F);
122 int bol=0;
123 cout<<"Reporte de Productos en Buen Estado";
124 while(!feof(F))
125 {
126 if(A.Estado==true)
127 {
128 bol++;
129 cout<<endl<<endl<<bol<<" Codigo: "<<A.Cod;
130 cout<<endl<<bol<<" Nombre: "<<A.Nombre;
131 cout<<endl<<bol<<" Cantidad: "<<A.Cantidad;
132 cout<<endl<<bol<<" Precio: "<<A.Precio;
133 cout<<endl<<bol<<" Estado: ";
134 if(A.Estado==true) cout<<"Bueno";
135 }
136 fread(&A,sizeof(A),1,F);
137 }
138 cout<<endl<<"\nPresione una tecla ? n para continuar";
139 fclose(F);
140 getch();
141 system("cls");
142 }
143
144 void FILA::eliminar()
145 {
146 int hallado=0;
147 F=fopen ("ACCESORIOS.txt","r");
148 if(F == NULL)
149 {
150 cout<<"No se puede abrir el archivo";
151 exit(1);
152 }
153 G=fopen("ACopia.text","w");
154 fread(&A,sizeof(A),1,F);
155 while(!feof(F))
156 {
157 if(A.Estado==true)
158 {
159 fwrite(&A,sizeof(A),1,G);
160 }
161 else hallado=1;
162 fread(&A,sizeof(A),1,F);
163 }
164 fclose(F);
165 fclose(G);
166 remove("ACCESORIOS.txt");
167 rename("ACopia.text","ACCESORIOS.txt");
168 if(hallado==0)
169 {
170 cout<<"No existen accesorios fallados";
171 }
172 else cout<<endl<<"Se elimino el registro pedido";
173 cout<<endl<<"\nPresione una tecla ? n para continuar";
174 getch();
175 system("cls");
176 }
177
178 void FILA::insertar()
179 {
180 int n,i=0,j=0,estado;
181 F=fopen ("ACCESORIOS.txt","r");
182 if(F == NULL)
183 {
184 cout<<"No se puede abrir el archivo";
185 exit(1);
186 }
187 G=fopen("ACopia.text","w");
188 fread(&A,sizeof(A),1,F);
189 while(!feof(F))
190 {
191 i++;
192 fwrite(&A,sizeof(A),1,G);
193 fread(&A,sizeof(A),1,F);
194 }
195 cout<<"Numero de Productos Nuevos que desea ingresar?:
196 ";
197 cin>>n;
198 while(j<n)
199 {
200 cout<<"\n Producto No "<<i+1<<endl;
201 cout<<"\n\t Ingrese Codigo: ";
202 cin>>A.Cod;
203 cout<<"\n\t Ingrese Nombre: ";
204 cin>>A.Nombre;
205 cout<<"\n\t Ingrese Cantidad de productos: ";
206 cin>>A.Cantidad;
207 cout<<"\n\t Ingrese Precio de productos: ";
208 cin>>A.Precio;
209 do
210 {
211 cout<<"\n Ingrese Estado de productos (1:
212 Bueno) (2: Fallado): ";
213 cin>>estado;
214 switch (estado)
215 {
216 case 1:
217 {
218 A.Estado=true;
219 break;
220 }
221 case 2:
222 {
223 A.Estado=false;
224 break;
225 }
226 default: cout<<"Opcion incorrecta";
227 }
228 }while(estado>2);
229 fwrite(&A,sizeof(A),1,G);
230 i=i+1;
231 j=j+1;
232 }
233 fclose(F);
234 fclose(G);
235 remove("ACCESORIOS.txt");
236 cout<<"\nSe agregaron los productos correctamente";
237 rename("ACopia.text","ACCESORIOS.txt");
238 cout<<endl<<"\nPresione una tecla ? n para continuar";
239 getch();
240 system("cls");
241 }
242
243 int menu()
244 {
245 int op;
246 cout<<"\n\nMenu: "<<endl;
247 cout<<"Crear Fila....................1"<<endl;
248 cout<<"Recorrer Fila.................2"<<endl;
249 cout<<"Buscar producto Buenos........3"<<endl;
250 cout<<"Eliminar producto Fallados....4"<<endl;
251 cout<<"Insertar producto.............5"<<endl;
252 cout<<"Salir.........................0"<<endl;
253 cin>>op;
254 return op;
255 }
256
257 int main()
258 {
259 int opc;
260 FILA FIL;
261 int i,n;
262 opc=menu();
263 while(opc!=0)
264 {
265 switch(opc)
266 {
267 case 1:
268 {
269 FIL.crear();
270 break;
271 }
272 case 2:
273 {
274 FIL.recorrer();
275 break;
276 }
277 case 3:
278 {
279 FIL.buscar();
280 break;
281 }
282 case 4:
283 {
284 FIL.eliminar();
285 break;
286 }
287 case 5:
288 {
289 FIL.insertar();
290 break;
291 }
292 default:
293 cout<<"No existe la opcion"<<endl;
294 }
295 opc=menu();
296 }
}

También podría gustarte