Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ciwep en 8 Junio 2022, 11:10 am



Título: necesito ayuda con este programa
Publicado por: ciwep en 8 Junio 2022, 11:10 am
Lo que pasa es que el programa debe  de recibir "n" cantidad de productos, rellenar los datos y al final debe poner el total de todos los productos capturados lo cual lo tengo como "Gran total"
pero no me sale esa suma podrían ayudarme esque voy iniciando el la programacion


Código
  1. #include<windows.h>
  2. using namespace std;
  3. typedef struct factura{
  4. int id;
  5. string des;
  6. float cant;
  7. float prec;
  8. string fecela;
  9. string feccad;
  10. float sub;
  11. float iva;
  12. float total;
  13. float g_total;
  14. };
  15.  
  16. void registra(factura *);
  17. void ver (factura *);
  18. void tamano(factura *);
  19.  
  20. int main(){
  21. system("cls");
  22. int n;
  23. factura  productos[10];
  24. cout<<"-------------------------CUANTOS PRODUCTOS DESEA???---------------------\n\nR=";cin>>n;
  25. cout<<"\n\n";
  26. system("cls");
  27. for (int i=0;i<n;i++){
  28. registra(&productos[i]);
  29. }
  30. for(int i=0;i<n; i++){
  31. ver(&productos[i]);
  32.    }
  33. system("pause");
  34. //cout<<"\n\t\t---------------------------INGRESE PRODUCTOS--------------------------\t\t\n";
  35. //registra(&productos[i]);
  36. //cout<<"\t\t\n---------------------------IMPRESION DE FACTURA-----------------------\t\t\n";
  37. //ver (&productos[i]);
  38. }
  39. void registra(factura *p){
  40. cout<<"\n\n*******************PRODUCTOS CAPTURADOS********************\n\n";
  41. cout<<"           INGRESE EL ID DEL PRODUCTO: ";cin>>p->id;
  42.  fflush(stdin);
  43. cout<<"           DECRIBA EL PRODUCTO: ";cin>>p->des;
  44.  fflush(stdin);
  45. cout<<"           ESCRIBA LA CANTIDAD: ";cin>>p->cant;
  46.  fflush(stdin);
  47. cout<<"           INGRESE LE PRECIO: ";cin>>p->prec;
  48.  fflush(stdin);
  49. cout<<"           FECHA DE ELABORACION: ";cin>>p->fecela;
  50.  fflush(stdin);
  51. cout<<"           FECHA DE CADUCIDAD: ";cin>>p->feccad;
  52.  fflush(stdin);
  53. system("cls");
  54.  
  55. }
  56. void ver (factura *p){
  57. cout<<"\n\n*******************PRODUCTOS CAPTURADOS********************\n\n";
  58. cout<<"           EL ID DEL PRODUCTO "<<p->id<<"\n\n";
  59. cout<<"           EL PRODUCTO "<<p->des<<"\n\n";
  60. cout<<"           LA CANTIDAD "<<p->cant<<"\n\n";
  61. cout<<"           LE PRECIO "<<p->prec<<"\n\n";
  62. cout<<"           FECHA DE ELABORACION "<<p->fecela<<"\n\n";
  63. cout<<"           FECHA DE CADUCIDAD "<<p->feccad<<"\n\n";
  64. p->sub=p->cant*p->prec;
  65. cout<<"           EL SUBTOTAL ES: "<<p->sub<<"\n\n";
  66.    p->iva=p->sub*0.16;
  67.    cout<<"           EL IVA ES: "<<p->iva<<"\n\n";
  68. p->total=p->sub+p->iva;
  69.    cout<<"           EL TOTAL ES: "<<p->total<<"\n\n";
  70.    p->g_total=p->g-total+p->total;
  71.     cout<<"           EL GRAN TOTAL ES: "<<p->g_total<<"\n\n";
  72. cout<<" Ya se guardaron los datos !!!\n\n";
  73. }
  74. void tamano(factura *p){
  75.    cout<<"DATOS CAPTUARADOS DE LOS PRUDUCTOS \n\n";
  76.  
  77.    cout<<"    Sizeof de ID DE LOS PRODUCTOS  : "<<sizeof(p->id)<<"\n";
  78.    cout<<"  Sizeof de DESCRIPCION  : "<<sizeof(p->des)<<"\n";
  79.    cout<<"Sizeof de CANTIDAD  : "<<sizeof(p->cant)<<"\n\n";
  80.    cout<<"Sizeof de PRECIO  : "<<sizeof(p->prec)<<"\n\n";
  81.    cout<<"Sizeof de FECHA DE ELABORACION  : "<<sizeof(p->fecela)<<"\n\n";
  82.    cout<<"Sizeof de FECHA DE CADUCIDAD  : "<<sizeof(p->feccad)<<"\n\n";
  83.    cout<<"Sizeof de EL SUBTOTAL ES  : "<<sizeof(p->sub)<<"\n\n";
  84.    cout<<"Sizeof de EL IVA ES  : "<<sizeof(p->iva)<<"\n\n";
  85.    cout<<"Sizeof de EL TOTAL ES  : "<<sizeof(p->total)<<"\n\n";
  86.  
  87.    cout<<"  sizeof de struct personas  : "<<sizeof(struct factura)<<"\n\n";
  88.    cout<<"           sizeof total de p : "<<sizeof(p)<<"\n\n";
  89. }
  90.  
  91.  



Título: Re: necesito ayuda con este programa
Publicado por: jca1 en 21 Junio 2022, 07:04 am
Hola, un problema es que en la linea 70 es g_total la segunda vez, no seria guion medio sino guion bajo.

Igual g_total entiendo que que es la suma de los totales de cada 'factura', por ende no deberia ser una variable dentro de la estructura. si lo que quieres es solo mostrarlo puedes crear en main() (o en un pequeño procedimiento nuevo) una variable de tipo float; es ese caso seria asi:

Código:
int main{
system("cls");
int n;
float g_total=0;   ///agregar esto
-----------
for(int i=0;i<n; i++){
ver(&productos[i]);
    }
for(int i=0;i<n; i++){      ///agregar esto hasta terminar
g_total=g_total+productos[i].total);
    }
cout<<"el gran total es: "<<g_total<<endl;


Tu programa si pones bien la primer sugerencia total y g_total de cada factura son iguales.

*Ahora que vuelvo a ver tu programa y creo que lo que queres hacer es por ejemplo si dos facturas son del mismo productos sumar el total de las dos. Si ese es el caso ese dato no tiene sentido que lo guarde porque los podes obtener sumando los totales cuando quieras sino podria haber incongruencia en los datos, es decir que cada vez que agreges una factura tienes que actualizar g_total en cada factura con ese producto. Ademas aunque en caso de que controles que no suceda alguna incongruencia en los datos, no tiene ninguna funcionalidad tenerlo asi, por eso lo que puse seria una manera de hacerlo.

Saludos!  :) :)


Título: Re: necesito ayuda con este programa
Publicado por: dario01dr en 21 Junio 2022, 10:55 am
Hola, primero decide en que lenguaje lo vas a hacer C o C++ porque tienes algunos comandos que son propios de C y otros que son de C++.
Salu2.


Título: Re: necesito ayuda con este programa
Publicado por: jca1 en 21 Junio 2022, 11:08 am
Es cierto desde principio ya mezclas comandos de dos lenguajes. Te aconsejo que si necesitas resolverlo, este u otros, aplica el procedimiento correcto para hacer un programa y no vallas directo al codigo.

Saludos.