elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Temas
Páginas: [1] 2
1  Programación / Programación C/C++ / Leer cadena y contar cantidad de días que se encuentran en esta. en: 6 Marzo 2020, 01:48 am
Tengo la gran duda de cómo obtengo la cantidad de días de la siguiente cadena de texto: “Se otorga bono por cierre a las 02 am los días 22, 23 y 24 de febrero”.

Me gustaría saber cómo obtengo esos tres valores (22, 23 y 24) para mostrar la cantidad de días, que en este caso la respuesta sería 3. Y asimismo cuando tenga uno, dos o más días. No adjunto código porque no sé por dónde o cómo empezar.
2  Programación / Programación General / Leer una función matemática [Visual Basic o C#] en: 28 Agosto 2019, 20:15 pm
Bueno, tengo como tarea realizar una aplicación que sea capaz de leer una función matemática (seno, coseno, variables, etc) y resolver cierto ejercicio (en este caso, el error aproximado a la raíz por medio del método de bisección), sin embargo, no tengo ni la más remota idea de cómo hacerlo (leer la función).

Entonces, lo único que solicito es que me guíen por el camino correcto para poder resolver esto, y si son súper generosos, compartirme un ejemplo.
3  Programación / Java / Error java.lang.Byte cannot be cast to java.lang.Integer en: 24 Agosto 2019, 04:15 am
Tengo el siguiente error: "java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer" cuando en ninguna parte tengo declarada alguna variable del tipo Byte. Lo mismo sucede con las otras dos líneas siguientes.

Código
  1. private void Cargar4()
  2.    {
  3.        Session s = NewHibernateUtil.getSessionFactory().openSession();
  4.         try
  5.        {  
  6.            Query query =  s.createQuery("select\n" +
  7.                                        "   c.categoryId as idCategoria,\n" +
  8.                                        "   c.name as nombre,\n" +
  9.                                        "   count(*) as Cantidad\n" +
  10.                                        "from Category c\n" +
  11.                                        "inner join c.filmCategories fc\n" +
  12.                                        "group by c.name");
  13.  
  14.            List<Object[]> res = query.list();
  15.            List<PeliculaC> elist = new ArrayList<PeliculaC>();
  16.            Iterator it = res.iterator();
  17.            while(it.hasNext()){
  18.                Object[] line = (Object[]) it.next();
  19.                PeliculaC pc = new PeliculaC();
  20.                pc.setIdCategoria((int) line[0]); //Esta es la línea donde me indica el error
  21.                pc.setNombre((String) line[1]); //java.lang.Long cannot be cast to java.lang.String
  22.                pc.setCantidad((int) line[2]); //java.lang.Byte cannot be cast to java.lang.Integer
  23.                elist.add(pc);
  24.            }
  25.       }catch( Exception io)
  26.        {     JOptionPane.showMessageDialog(null, "Fallo de conexion: "+io.toString());
  27.  
  28.        }finally
  29.        {  
  30.            s.close();    
  31.        }
  32.    }
  33.  

Espero puedan ayudarme.
4  Programación / Java / Error java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to class en: 14 Agosto 2019, 01:48 am
Me gustaría algo de ayuda para resolver ese problemita de casteo. Se supone que, lo que tengo aquí:

Código
  1. String hql = "select\n" +
  2.                    "    c.categoryId as IdCategoria,\n" +
  3.                    "    c.name as nombre,\n" +
  4.                    "    count(*) as Cantidad\n" +
  5.                    "from Category c\n" +
  6.                    "inner join c.filmCategories fc\n" +
  7.                    "group by c.name";
  8.  
  9.       Iterator iterador  = s.createQuery(hql).list().iterator();
  10.  
  11.        while(iterador.hasNext()) {
  12.            Object obj[] = (Object[]) iterador.next();
  13.            System.out.println(obj[0]+" - "+obj[1] +" - "+obj[2]);
  14.        }
  15.  

Se tiene que mostrar en un reporte usando Jasper-Reports. Tengo la siguiente clase que manda a imprimir en el reporte, los elementos de la consulta:

Código
  1. public class CategoriaPelicula implements JRDataSource{
  2.    private List<PeliculaC> lista4 = new ArrayList<PeliculaC>();
  3.    private int indiceFact = -1;
  4.  
  5.    @Override
  6.    public boolean next() throws JRException {
  7.        return ++indiceFact < lista4.size();
  8.    }
  9.  
  10.    @Override
  11.    public Object getFieldValue(JRField jrf) throws JRException {
  12.         Object valor = null;
  13.  
  14.  
  15.         if("IdCategoria".equals(jrf.getName()))
  16.       {
  17.           valor = String.valueOf(lista4.get(indiceFact).getIdCategoria());
  18.       }
  19.       if("Nombre".equals(jrf.getName()))
  20.       {
  21.           String x = lista4.get(indiceFact).getNombre();
  22.           valor = x;
  23.       }
  24.       if("Cantidad".equals(jrf.getName()))
  25.       {
  26.           valor = String.valueOf(lista4.get(indiceFact).getCantidad());
  27.       }
  28.  
  29.       return valor;
  30.    }
  31.    /*El problema está en esta parte*/
  32.    public void addPeliculaC(PeliculaC c){
  33.        this.lista4.add(c);
  34.    }
  35.   /**/
  36.    public void Limpiar(){
  37.        if(indiceFact == -1)
  38.            indiceFact = -1;
  39.        else
  40.            indiceFact -= 1;
  41.    }
  42. }
  43.  
  44.  

Y aquí es donde ejecuto la consulta para mi reporte:

Código
  1. private void Cargar4()
  2.    {
  3.        Session s = NewHibernateUtil.getSessionFactory().openSession();
  4.         try
  5.        {  
  6.            Query query =  s.createQuery("select\n" +
  7.                                        "    c.categoryId as idCategoria,\n" +
  8.                                        "    c.name as nombre,\n" +
  9.                                        "    count(*) as Cantidad\n" +
  10.                                        "from Category c\n" +
  11.                                        "inner join c.filmCategories fc\n" +
  12.                                        "group by c.name");//.setResultTransformer(Transformers.aliasToBean(PeliculaC.class));
  13.  
  14.  
  15.            List<PeliculaC> elist = query.list();
  16.  
  17.              for (PeliculaC e: elist)
  18.            {
  19.               DataSource4.addPeliculaC(e);
  20.            }
  21.       }catch( Exception io)
  22.        {     //JOptionPane.showMessageDialog(null, "Fallo de conexion: "+io.toString());
  23.            System.out.println("Fallo de conexion" + io.toString());
  24.        }finally
  25.        {  
  26.            s.close();    
  27.        }
  28.    }
  29.  

En resumen, lo que tengo de primero, tengo que transformarlo para imprimirlo en mi reporte de Jasper, pero he intentado de todo y sigo sin resolver ese problema. Espero puedan ayudarme.
5  Programación / Bases de Datos / Clientes que hayan realizado más de 5 órdenes por año [DB Northwind] en: 6 Abril 2019, 04:42 am
Tengo el siguiente problema: Seleccionar a todos los clientes que hayan realizado más de 5 órdenes por año. Presentar el detalle de las cantidad por año. Ordenar por año.

Esto es lo que yo hice y que no sé si está correcto:

Código
  1. ALTER PROCEDURE SP_TopClientes
  2. AS
  3. CREATE TABLE #HistorialCantidad(
  4. --IdHistorial int primary key identity(0,1),
  5. Nombre VARCHAR(100),
  6. Año INT,
  7. Cantidad INT
  8. )
  9. CREATE TABLE #Año(
  10. Id INT PRIMARY KEY IDENTITY(0,1),
  11. Año INT
  12. )
  13. INSERT INTO #Año
  14. SELECT DISTINCT YEAR(OrderDate) FROM Orders
  15. DECLARE @Contador INT
  16. SET @Contador = 0
  17. WHILE(@Contador < (SELECT COUNT(*) FROM #Año))
  18. BEGIN
  19. INSERT INTO #HistorialCantidad
  20. SELECT DISTINCT TOP 5
  21. c.CompanyName AS [Nombre Compañía],
  22. YEAR(o.OrderDate) AS Año,
  23. COUNT(*) AS Cantidad
  24. FROM [ORDER Details] od
  25. INNER JOIN Orders o ON o.OrderID = od.OrderID
  26. INNER JOIN Customers c ON c.CustomerID = o.CustomerID
  27. WHERE YEAR(o.OrderDate) = (SELECT Año FROM #Año WHERE Id = @Contador)
  28. GROUP BY c.CompanyName, YEAR(o.OrderDate)
  29. ORDER BY Cantidad DESC
  30.  
  31. SET @Contador = @Contador+1
  32. END
  33. SELECT * FROM #HistorialCantidad ORDER BY Año, Cantidad
  34. DROP TABLE #HistorialCantidad
  35. DROP TABLE #Año
  36.  

Espero puedan ayudarme.
6  Programación / Bases de Datos / Procedimiento almacenado que recibe como parámetros fecha de entrada y salida en: 24 Marzo 2019, 23:33 pm
Tengo la siguiente consulta usando la misma base de datos de mi post anterior:

https://foro.elhacker.net/bases_de_datos/ayuda_con_una_consulta_usando_procedimientos_almacenados-t493882.0.html

Realizar un procedimiento almacenado que reciba como parámetro Fecha de Entrada, Fecha de Salida. Consultar la disponibilidad de todas las habitaciones en el rango de fechas solicitado.
Presentar: IdHabitación - Tipo de Habitación, Estado.
Ejemplo:
Entrada
Fecha de Entrada: 2019-03-14
Fecha de Salida:  2019-03-20
Ejecución
IdHabitación Tipo de Habitación         Estado
   1            Deluxe                 Disponible
   2            Deluxe                 Disponible
   3            Turística              Reservado
   4            Presidencial           Disponible
   ..           .....                  .....
   ..           .....                  .....
Nota: Con que exista un día ocupado en la habitación en el rango solicitado, el estado será: Reservado.

Es bastante parecido a la consulta de mi post anterior, así que, decidí modificarla y en teoría funciona, pero por ejemplo, tengo 5 datos almacenados y este muestra 30 datos en la ejecución.

Adjunto mi código:

Código
  1. CREATE PROCEDURE SP_Disponibilidad2
  2. @fecha_entrada DATE,
  3. @fecha_salida  DATE
  4. AS BEGIN
  5. DECLARE @ocupado INTEGER
  6. DECLARE @tmp_table TABLE (
  7. HabitacionID INT,
  8. TipoHab VARCHAR(80),
  9. Estado VARCHAR(10)
  10. )
  11.  
  12. WHILE ( @fecha_entrada <= @fecha_salida )
  13. BEGIN
  14. SET @ocupado = (
  15. SELECT COUNT(*)
  16. FROM habitacion_reserva hr
  17. --INNER JOIN habitacion h ON hr.id_habitacion = h.no_habitacion
  18. --INNER JOIN tipo_habitacion th ON th.cod_tipo = h.cod_tipo
  19. WHERE @fecha_entrada BETWEEN fecha_entrada AND fecha_salida
  20. )
  21. IF ( @ocupado > 0 )
  22. INSERT INTO @tmp_table
  23. SELECT
  24. h.no_habitacion,
  25. th.nom_tipo,
  26. 'Reservado'
  27. FROM habitacion_reserva hr
  28. INNER JOIN habitacion h ON hr.id_habitacion = h.no_habitacion
  29. INNER JOIN tipo_habitacion th ON th.cod_tipo = h.cod_tipo
  30. --WHERE @fecha_entrada BETWEEN fecha_entrada AND fecha_salida
  31. ELSE
  32. INSERT INTO @tmp_table
  33. SELECT
  34. hr.id_habitacion,
  35. th.nom_tipo,
  36. 'Disponible'
  37. FROM habitacion_reserva hr
  38. INNER JOIN habitacion h ON hr.id_habitacion = h.no_habitacion
  39. INNER JOIN tipo_habitacion th ON th.cod_tipo = h.cod_tipo
  40. --WHERE @fecha_entrada BETWEEN fecha_entrada AND fecha_salida
  41.  
  42. SET @fecha_entrada = DATEADD( DAY, 1, @fecha_entrada )
  43. END
  44.  
  45. SELECT * FROM @tmp_table
  46. END
  47.  
  48.    /********************************/
  49.  
  50.  
  51. EXECUTE SP_Disponibilidad2 '2019-07-20', '2019-07-25'
  52.  

+--------------+------------+
| IdHabitacion| Estado      |
+--------------+------------+
| 1                | Reservado |
| 2                | Reservado |
| 3                | Reservado |
| 4               | Disponible |
| 5                | Disponible |
| 1               | Disponible |
| ...30           | Disponible |
+------------+--------------+
7  Programación / Bases de Datos / Ayuda con una consulta usando procedimientos almacenados en: 23 Marzo 2019, 03:54 am
Bien, tengo la siguiente base de datos:

Código
  1. CREATE DATABASE Hotel
  2. GO
  3. USE Hotel;
  4. GO
  5.  
  6. CREATE TABLE tipo_habitacion(
  7. cod_tipo INTEGER PRIMARY KEY,
  8. nom_tipo VARCHAR(25) NOT NULL,
  9. precio money NOT NULL
  10. );
  11.  
  12. CREATE TABLE habitacion(
  13. no_habitacion INTEGER PRIMARY KEY,
  14. cod_tipo INTEGER FOREIGN KEY REFERENCES tipo_habitacion(cod_tipo),
  15. descr VARCHAR(60),
  16. cap INTEGER NOT NULL,
  17. stat VARCHAR(15)
  18. );
  19.  
  20. CREATE TABLE cliente(
  21. id_cliente INTEGER PRIMARY KEY IDENTITY(0,1),
  22. p_nom VARCHAR(15),
  23. s_nom VARCHAR(15),
  24. p_apell VARCHAR(15),
  25. s_apell VARCHAR(15),
  26. direccion VARCHAR(70),
  27. tel VARCHAR(10),
  28. correo VARCHAR(25)
  29. );
  30.  
  31. CREATE TABLE empleado(
  32. id_empleado INTEGER PRIMARY KEY IDENTITY(0,1),
  33. p_nom VARCHAR(15),
  34. s_nom VARCHAR(15),
  35. p_apell VARCHAR(15),
  36. s_apell VARCHAR(15),
  37. direccion VARCHAR(70),
  38. tel VARCHAR(10),
  39. correo VARCHAR(25)
  40. );
  41.  
  42. CREATE TABLE reserva(
  43. id_reserva INTEGER PRIMARY KEY IDENTITY(0,1),
  44. id_cliente INTEGER FOREIGN KEY REFERENCES cliente(id_cliente),
  45. id_empleado INTEGER FOREIGN KEY REFERENCES empleado(id_empleado),
  46. fecha_reserva DATE NOT NULL,
  47. forma_pago VARCHAR(15),
  48. divisa VARCHAR(3),
  49. stat VARCHAR(15)
  50. );
  51.  
  52. CREATE TABLE habitacion_reserva(
  53. id_hab_reserva INTEGER PRIMARY KEY IDENTITY(0,1),
  54. id_habitacion INTEGER FOREIGN KEY REFERENCES habitacion(no_habitacion),
  55. id_reserva INTEGER FOREIGN KEY REFERENCES reserva(id_reserva),
  56. fecha_entrada DATE NOT NULL,
  57. fecha_salida DATE NOT NULL,
  58.        precio money
  59. );
  60.  
  61. CREATE TABLE huesped(
  62. id_huesped INTEGER PRIMARY KEY IDENTITY(0,1),
  63. p_nom VARCHAR(15),
  64. s_nom VARCHAR(15),
  65. p_apell VARCHAR(15),
  66. s_apell VARCHAR(15),
  67. direccion VARCHAR(70),
  68. tel VARCHAR(10),
  69. nacionalidad VARCHAR(25),
  70. correo VARCHAR(25)
  71. );
  72.  
  73. CREATE TABLE huesped_hab_reserva(
  74. id_huesped INT FOREIGN KEY REFERENCES huesped(id_huesped) NOT NULL,
  75. id_hab_reserva INT FOREIGN KEY REFERENCES habitacion_reserva        (id_hab_reserva) NOT NULL
  76. );
  77.  
  78. ALTER TABLE huesped_hab_reserva
  79. ADD PRIMARY KEY(id_huesped, id_hab_reserva);
  80.  
  81. CREATE TABLE servicio(
  82. id_servicio INTEGER PRIMARY KEY IDENTITY(0,1),
  83. descr VARCHAR(60),
  84. precio money
  85. );
  86.  
  87. CREATE TABLE cargos_servicios(
  88. id_servicio INT FOREIGN KEY REFERENCES servicio        (id_servicio) NOT NULL,
  89. id_hab_reserva INT FOREIGN KEY REFERENCES habitacion_reserva       (id_hab_reserva) NOT NULL, precio money
  90. );
  91. ALTER TABLE cargos_servicios
  92. ADD PRIMARY KEY(id_servicio, id_hab_reserva);
  93.  

El problema es el siguiente:

Realizar un procedimiento almacenado que reciba como parámetro: ID Habitación, Fecha de Entrada, Fecha de Salida.
Consultar la disponibilidad de la habitación en cuanto a las fechas solicitadas mediante un estado.
Ejemplo:
Entrada
IdHabitación: 2
Fecha de Entrada: 2019-03-14
Fecha de Salida:  2019-03-20
Ejecución
Fecha          Estado
2019-03-14     Disponible
2019-03-15     Disponible
2019-03-16     Disponible
2019-03-17     Disponible
2019-03-18     Disponible
2019-03-19     Disponible
2019-03-20     Salida

En caso que exista una reserva en los días solicitados el estado será: "Reservado". El estado del último día debe ser: "Salida" y no ocupa implica una reserva.

Llevo atascado en eso desde hace varios días, y lo último que pude hacer fue esto:

Código
  1. CREATE PROCEDURE Disponibilidad @FechaEntrada DATE,
  2. @FechaSalida DATE,
  3. @IdHabitación INT
  4. AS
  5. SELECT
  6. hr.fecha_entrada,
  7. r.stat AS Estado
  8. FROM habitacion_reserva hr
  9. INNER JOIN reserva r ON r.id_reserva = hr.id_reserva
  10. INNER JOIN habitacion h ON h.no_habitacion = hr.id_habitacion
  11. WHERE r.fecha_reserva NOT BETWEEN @FechaEntrada AND @FechaSalida
  12. AND hr.id_habitacion = @IdHabitación
  13.  
  14. EXEC Disponibilidad '2019-04-01', '2019-04-10', 2
  15.  
  16.  

Y obviamente está incorrecto, así que, espero que sean de gran ayuda ya que la resolución de ese problema es de 'vida o muerte'
8  Programación / Programación General / Problema con ciclo if [Java] en: 6 Febrero 2018, 22:56 pm
Al encontrar el nombre que estoy buscando, además de enviarme el mensaje de que ha sido encontrado, también muestra en pantalla el mensaje de que no ha sido encontrado. Esto sucede cuando el programa busca posición por posición, o sea, si el nombre está en la posición 2, primero muestra el mensaje de que no ha sido encontrado, luego que sí y en el resto de posiciones que no. Sólo quiero que el programa muestre los mensajes una vez.

Código
  1.  
  2. package ejemplostring;
  3. import java.util.Scanner;
  4. import javax.swing.JOptionPane;
  5.  
  6. public class EjemploString {
  7.  
  8.    public static void main(String[] args) {
  9.        // TODO code application logic here
  10.        Scanner in = new Scanner(System.in);
  11.        String[] ID = new String[5];
  12.        String x;
  13.        for(int i=0;i<ID.length;i++){
  14.            System.out.print("Ingrese un nombre #"+i+": ");
  15.            ID[i] = in.next();
  16.        }
  17.        for(int i=0;i<ID.length;i++){
  18.            System.out.println("Nombres: "+ID[i]);
  19.        }
  20.        x = JOptionPane.showInputDialog("Ingrese el nombre que busca");
  21.        for(int i=0;i<ID.length;i++){
  22.            if(x.equals(ID[i])){
  23.                JOptionPane.showMessageDialog(null, "Nombre: "+ID[i]);
  24.            }else{
  25.                JOptionPane.showMessageDialog(null, "No encontrado");
  26.            }
  27.        }
  28.    }
  29.  
  30. }
  31.  
9  Programación / Programación C/C++ / Programa crashea luego de ingresar valores por teclado [C] en: 14 Enero 2018, 05:01 am
Tengo un problema con mi programa. Hace un mes más o menos, había programado el siguiente código, lo publiqué aquí porque tenía un pequeño problemita y me ayudaron a resolverlo y funcionaba a la perfección. He cambiado de computadora y todo, pero ahora cuando ejecuto mi programa, crashea luego de ingresar un valor a las "mandarinas".

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[]) {
  5. int n, x, i, a=0, b=0, parcela[20][2];
  6. do{
  7. printf("Ingrese la cantidad de parcelas: ");
  8. scanf("%d",&n);
  9. }while(n<=0 || n>=21);
  10. system("cls");
  11. for(i=0;i<=n;i++){
  12. printf("Parcela #%d ",i+1);
  13. do{
  14. printf("\nIngrese la cantidad de naranjas: ");
  15. scanf("%d",&parcela[0][0]);
  16. }while(parcela[0][0]<=0);
  17. do{
  18. printf("Ingrese la cantidad de mandarinas: ");
  19. scanf("%d",&parcela[0][1]);
  20. }while(parcela[0][1]<=0);
  21. a+=parcela[0][0];
  22. b+=parcela[0][1];
  23. parcela[i][x]=parcela[0][0]+parcela[0][1];
  24. system("cls");
  25. }
  26. system("cls");
  27. printf("Total produccion naranjas: %d ",a);
  28. printf("\nTotal produccion mandarinas: %d ",b);
  29. for(i=1;i<=n;i++){
  30. printf("\nProduccion total de Parcela #%d: %d ",i, parcela[i][x]);
  31. }
  32. return 0;
  33. }
  34.  
10  Programación / Programación C/C++ / Problema al comparar cadenas de caracteres [C] en: 27 Noviembre 2017, 02:58 am
Tengo este problema al comparar cadenas de caracteres. A la hora de buscar un código previamente ingresado en el arreglo, este imprime el mensaje "No existe" cuando únicamente ingreso uno de los códigos. Ejemplo:
Código ingresado en el segundo arreglo: cp020
Búsqueda: No Existe
'Nombre del producto'
No existe
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <string.h>
  5.  
  6. void menu(){
  7. printf("\t*****CONTROL DE INVENTARIO*****\n");
  8. printf("1.-Listado del inventario actual\n2.-Busqueda de productos\n3.-Ingresos totales\n4.-SALIR\n");
  9. printf("--------------------------------\n");
  10. }
  11.  
  12. void salida(){
  13. printf("Saliendo del programa... Hasta pronto!\n");
  14. }
  15. struct Inventario{
  16. char codigo[10];
  17. char nombre[25];
  18. int cantidad;
  19. float pventa;
  20. };
  21. int Registrar(Inventario x[], int i){
  22. for(i=0;i<=2;i++){
  23. printf("\tRegistrar productos\n");
  24. printf("Producto #%d \n",i);
  25. printf("Ingrese el codigo del producto: ");
  26. gets(x[i].codigo);
  27. fflush(stdin);
  28. printf("\nIngrese el nombre del producto: ");
  29. gets(x[i].nombre);
  30. fflush(stdin);
  31. do{
  32. printf("\nIngrese la cantidad: ");
  33. scanf("%d",&x[i].cantidad);
  34. fflush(stdin);
  35. }while(x[i].cantidad<=0);
  36. do{
  37. printf("\nIngrese el precio de venta: ");
  38. scanf("%f",&x[i].pventa);
  39. fflush(stdin); //Limpieza del buffer
  40. }while(x[i].pventa<=0);
  41. system("cls");
  42. }
  43. }
  44. void Lista(int i, Inventario x[]){
  45. for(int j=0;j<=2;j++){
  46. printf("   %s    %s        %d      %0.2f \n",x[j].codigo, x[j].nombre, x[j].cantidad, x[j].pventa);
  47. }
  48. }
  49. char Busqueda(Inventario x[], int i){
  50. char cod[10];
  51. printf("Ingrese el codigo que desea buscar: ");
  52. scanf("%s",&cod);
  53. fflush(stdin);
  54. for(int j=0;j<=2;j++){
  55. if(strcmp(x[j].codigo, cod)==0){
  56. printf("\nProducto: %s \n",x[j].nombre);
  57. break;
  58. }else{
  59. printf("\nNo Existe\n");
  60. break;
  61. }
  62. }
  63. }
  64. float Venta(Inventario x[], int i){
  65. float total;
  66. for(int j=0;j<=2;j++){
  67. total+=x[j].cantidad*x[j].pventa;  //Primero, multiplica la cantidad por el precio y al final, se suma para el total del inventario vendedido.
  68. }
  69. printf("Ingreso total: %0.2f $ \n",total);
  70. }
  71. int main(){
  72. struct Inventario prod[20];
  73. int i=0, op;
  74. bool salir = true;
  75. Registrar(prod,i); //Llamamos a la funcion "Registrar"
  76. do{
  77. system("cls");
  78. menu(); //Llamamos a la funcion "Menu"
  79. do{
  80. printf("\nSeleccione una opcion: ");
  81. scanf("%d",&op);
  82. }while(op<=0 || op>=5);
  83. system("cls");
  84. switch(op){
  85. case 1:{
  86. printf("\tINVENTARIO ACTUAL\n");
  87. printf("   Codigo    Producto        Cantidad      Precio de Venta\n");
  88. Lista(i,prod);
  89. system("PAUSE");
  90. system("cls");
  91. break;
  92. }
  93. case 2:{
  94. printf("\tBUSQUEDA\n");
  95. Busqueda(prod, i);
  96. fflush(stdin);
  97. system("PAUSE");
  98. system("cls");
  99. break;
  100. }
  101. case 3:{
  102. printf("\tVENTA TOTAL DEL INVENTARIO\n");
  103. Venta(prod, i);
  104. system("PAUSE");
  105. system("cls");
  106. break;
  107. }
  108. case 4:{
  109. salida();
  110. salir = false;
  111. break;
  112. }
  113. }
  114. }while(salir==true);
  115. return 0;
  116. }
  117.  
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines