Skip to content

Commit 4d99ddf

Browse files
authored
Merge pull request mouredev#6324 from eulogioep/main
#11 java, javascript, php y typescript
2 parents b9fb021 + 6c43093 commit 4d99ddf

File tree

4 files changed

+980
-0
lines changed

4 files changed

+980
-0
lines changed
Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class eulogioep {
5+
// Constantes para el nombre del archivo y el archivo de ventas
6+
private static final String FILENAME = "eulogioep.txt";
7+
private static final String SALES_FILENAME = "ventas.txt";
8+
9+
public static void main(String[] args) {
10+
// Parte 1: Creación y manipulación de archivos
11+
crearArchivoPersonal();
12+
13+
// Parte 2: Gestión de ventas (DIFICULTAD EXTRA)
14+
gestionVentas();
15+
}
16+
17+
// Método para crear y manipular el archivo personal
18+
private static void crearArchivoPersonal() {
19+
try {
20+
// Creación del archivo
21+
FileWriter fw = new FileWriter(FILENAME);
22+
BufferedWriter bw = new BufferedWriter(fw);
23+
24+
// Escritura en el archivo
25+
bw.write("Nombre: Eulogio");
26+
bw.newLine();
27+
bw.write("Edad: 30");
28+
bw.newLine();
29+
bw.write("Lenguaje de programación favorito: Java");
30+
bw.close();
31+
32+
System.out.println("Archivo creado y escrito con éxito.");
33+
34+
// Lectura y impresión del contenido
35+
BufferedReader br = new BufferedReader(new FileReader(FILENAME));
36+
String linea;
37+
System.out.println("Contenido del archivo:");
38+
while ((linea = br.readLine()) != null) {
39+
System.out.println(linea);
40+
}
41+
br.close();
42+
43+
// Borrado del archivo
44+
File file = new File(FILENAME);
45+
if (file.delete()) {
46+
System.out.println("Archivo borrado con éxito.");
47+
} else {
48+
System.out.println("No se pudo borrar el archivo.");
49+
}
50+
} catch (IOException e) {
51+
System.out.println("Error de E/S: " + e.getMessage());
52+
}
53+
}
54+
55+
// Método para la gestión de ventas
56+
private static void gestionVentas() {
57+
Scanner scanner = new Scanner(System.in);
58+
boolean salir = false;
59+
60+
while (!salir) {
61+
System.out.println("\n--- Gestión de Ventas ---");
62+
System.out.println("1. Añadir producto");
63+
System.out.println("2. Consultar productos");
64+
System.out.println("3. Actualizar producto");
65+
System.out.println("4. Eliminar producto");
66+
System.out.println("5. Calcular venta total");
67+
System.out.println("6. Calcular venta por producto");
68+
System.out.println("7. Salir");
69+
System.out.print("Seleccione una opción: ");
70+
71+
int opcion = scanner.nextInt();
72+
scanner.nextLine(); // Consumir el salto de línea
73+
74+
switch (opcion) {
75+
case 1:
76+
anadirProducto(scanner);
77+
break;
78+
case 2:
79+
consultarProductos();
80+
break;
81+
case 3:
82+
actualizarProducto(scanner);
83+
break;
84+
case 4:
85+
eliminarProducto(scanner);
86+
break;
87+
case 5:
88+
calcularVentaTotal();
89+
break;
90+
case 6:
91+
calcularVentaPorProducto(scanner);
92+
break;
93+
case 7:
94+
salir = true;
95+
borrarArchivoVentas();
96+
break;
97+
default:
98+
System.out.println("Opción no válida.");
99+
}
100+
}
101+
scanner.close();
102+
}
103+
104+
// Método para añadir un producto al archivo de ventas
105+
private static void anadirProducto(Scanner scanner) {
106+
try {
107+
FileWriter fw = new FileWriter(SALES_FILENAME, true);
108+
BufferedWriter bw = new BufferedWriter(fw);
109+
110+
System.out.print("Nombre del producto: ");
111+
String nombre = scanner.nextLine();
112+
System.out.print("Cantidad vendida: ");
113+
int cantidad = scanner.nextInt();
114+
System.out.print("Precio: ");
115+
double precio = scanner.nextDouble();
116+
117+
bw.write(String.format("%s, %d, %.2f", nombre, cantidad, precio));
118+
bw.newLine();
119+
bw.close();
120+
121+
System.out.println("Producto añadido con éxito.");
122+
} catch (IOException e) {
123+
System.out.println("Error al añadir producto: " + e.getMessage());
124+
}
125+
}
126+
127+
// Método para consultar los productos en el archivo de ventas
128+
private static void consultarProductos() {
129+
try {
130+
BufferedReader br = new BufferedReader(new FileReader(SALES_FILENAME));
131+
String linea;
132+
System.out.println("\nProductos:");
133+
while ((linea = br.readLine()) != null) {
134+
System.out.println(linea);
135+
}
136+
br.close();
137+
} catch (IOException e) {
138+
System.out.println("Error al consultar productos: " + e.getMessage());
139+
}
140+
}
141+
142+
// Método para actualizar un producto en el archivo de ventas
143+
private static void actualizarProducto(Scanner scanner) {
144+
try {
145+
List<String> lineas = new ArrayList<>();
146+
BufferedReader br = new BufferedReader(new FileReader(SALES_FILENAME));
147+
String linea;
148+
while ((linea = br.readLine()) != null) {
149+
lineas.add(linea);
150+
}
151+
br.close();
152+
153+
System.out.print("Nombre del producto a actualizar: ");
154+
String nombreActualizar = scanner.nextLine();
155+
156+
boolean encontrado = false;
157+
for (int i = 0; i < lineas.size(); i++) {
158+
String[] partes = lineas.get(i).split(", ");
159+
if (partes[0].equals(nombreActualizar)) {
160+
System.out.print("Nueva cantidad vendida: ");
161+
int nuevaCantidad = scanner.nextInt();
162+
System.out.print("Nuevo precio: ");
163+
double nuevoPrecio = scanner.nextDouble();
164+
lineas.set(i, String.format("%s, %d, %.2f", nombreActualizar, nuevaCantidad, nuevoPrecio));
165+
encontrado = true;
166+
break;
167+
}
168+
}
169+
170+
if (encontrado) {
171+
FileWriter fw = new FileWriter(SALES_FILENAME);
172+
BufferedWriter bw = new BufferedWriter(fw);
173+
for (String l : lineas) {
174+
bw.write(l);
175+
bw.newLine();
176+
}
177+
bw.close();
178+
System.out.println("Producto actualizado con éxito.");
179+
} else {
180+
System.out.println("Producto no encontrado.");
181+
}
182+
} catch (IOException e) {
183+
System.out.println("Error al actualizar producto: " + e.getMessage());
184+
}
185+
}
186+
187+
// Método para eliminar un producto del archivo de ventas
188+
private static void eliminarProducto(Scanner scanner) {
189+
try {
190+
List<String> lineas = new ArrayList<>();
191+
BufferedReader br = new BufferedReader(new FileReader(SALES_FILENAME));
192+
String linea;
193+
while ((linea = br.readLine()) != null) {
194+
lineas.add(linea);
195+
}
196+
br.close();
197+
198+
System.out.print("Nombre del producto a eliminar: ");
199+
String nombreEliminar = scanner.nextLine();
200+
201+
boolean encontrado = false;
202+
for (int i = 0; i < lineas.size(); i++) {
203+
String[] partes = lineas.get(i).split(", ");
204+
if (partes[0].equals(nombreEliminar)) {
205+
lineas.remove(i);
206+
encontrado = true;
207+
break;
208+
}
209+
}
210+
211+
if (encontrado) {
212+
FileWriter fw = new FileWriter(SALES_FILENAME);
213+
BufferedWriter bw = new BufferedWriter(fw);
214+
for (String l : lineas) {
215+
bw.write(l);
216+
bw.newLine();
217+
}
218+
bw.close();
219+
System.out.println("Producto eliminado con éxito.");
220+
} else {
221+
System.out.println("Producto no encontrado.");
222+
}
223+
} catch (IOException e) {
224+
System.out.println("Error al eliminar producto: " + e.getMessage());
225+
}
226+
}
227+
228+
// Método para calcular la venta total
229+
private static void calcularVentaTotal() {
230+
try {
231+
BufferedReader br = new BufferedReader(new FileReader(SALES_FILENAME));
232+
String linea;
233+
double ventaTotal = 0;
234+
while ((linea = br.readLine()) != null) {
235+
String[] partes = linea.split(", ");
236+
int cantidad = Integer.parseInt(partes[1]);
237+
double precio = Double.parseDouble(partes[2]);
238+
ventaTotal += cantidad * precio;
239+
}
240+
br.close();
241+
System.out.printf("Venta total: %.2f\n", ventaTotal);
242+
} catch (IOException e) {
243+
System.out.println("Error al calcular venta total: " + e.getMessage());
244+
}
245+
}
246+
247+
// Método para calcular la venta por producto
248+
private static void calcularVentaPorProducto(Scanner scanner) {
249+
try {
250+
System.out.print("Nombre del producto: ");
251+
String nombreProducto = scanner.nextLine();
252+
253+
BufferedReader br = new BufferedReader(new FileReader(SALES_FILENAME));
254+
String linea;
255+
boolean encontrado = false;
256+
while ((linea = br.readLine()) != null) {
257+
String[] partes = linea.split(", ");
258+
if (partes[0].equals(nombreProducto)) {
259+
int cantidad = Integer.parseInt(partes[1]);
260+
double precio = Double.parseDouble(partes[2]);
261+
double ventaProducto = cantidad * precio;
262+
System.out.printf("Venta de %s: %.2f\n", nombreProducto, ventaProducto);
263+
encontrado = true;
264+
break;
265+
}
266+
}
267+
br.close();
268+
269+
if (!encontrado) {
270+
System.out.println("Producto no encontrado.");
271+
}
272+
} catch (IOException e) {
273+
System.out.println("Error al calcular venta por producto: " + e.getMessage());
274+
}
275+
}
276+
277+
// Método para borrar el archivo de ventas al salir
278+
private static void borrarArchivoVentas() {
279+
File file = new File(SALES_FILENAME);
280+
if (file.delete()) {
281+
System.out.println("Archivo de ventas borrado con éxito.");
282+
} else {
283+
System.out.println("No se pudo borrar el archivo de ventas.");
284+
}
285+
}
286+
}

0 commit comments

Comments
 (0)