0
# include <iostream>
# include <fstream>
# include <string> 
using namespace std;

struct primera


    # include <iostream>
    # include <fstream>
    # include <string> 
    using namespace std;

    struct primera
    {
        int ID;
        char nombre [50];
        char fecha_de_alta [10];
        char fecha_de_caducidad [10];
        int cantidad_en_existencia;
        char marca_presentacion [50];
        float costo_para_mi;
        float bonificacion; 
        float precio_venta;

    } arr1 [100];
    int i=0;


    void genera_archivo();


    void main ()
    {
        int x=0;
        int ID_cont=0;
        float IVA=.16;
        float R_IVA;
    while(x!=2)
    {
        system("cls");
        cout << "\n\t\t\t\t BIENVENIDO A FARMACIA C++";
        cout << "\n\t\t\t\ SI DESEA CAPTURAR PRODUCTO, PRESIONE 1";
        cout << "\n\t\t\t SI NO DESEA CAPTURAR PRODUCTO, PRESIONE 2\n";
        cout<< "\n";
    cin>> x;
    cout<< "\n";

    switch (x)
    {
    case 1:
        { 
            cout << "ID: ";
            arr1[i].ID=ID_cont;
            ID_cont++;
            cout << arr1 [i].ID <<" ";
            cout << "\n";
            cout << "NOMBRE: ";
            cin >> arr1 [i].nombre;
            cout << "FECHA DE ALTA: ";
            cin >> arr1 [i].fecha_de_alta;
            cout << "FECHA DE CADUCIDAD: ";
            cin >> arr1 [i].fecha_de_caducidad;
            cout << "CANTIDAD EN EXISTENCIA: ";
            cin >> arr1 [i].cantidad_en_existencia;
            cout << "MARCA O PRESENTACION: ";
            cin >> arr1 [i].marca_presentacion;
            cout << "COSTO UNITARIO: $ ";
            cin >> arr1 [i].costo_para_mi;
            cout << "NO BONIFICACION\n";
            cout << "IMPUESTO al 16% \n";
            arr1 [i].bonificacion=IVA;
            R_IVA=arr1 [i].costo_para_mi*IVA;
            arr1 [i].precio_venta=R_IVA+arr1 [i].costo_para_mi;
            cout <<"PRECIO DE VENTA: $";
            cout << arr1 [i].precio_venta <<" ";
            genera_archivo();
            i++;
            cout << "\n";
        break;
            }
    case 2:
        {
            cout << "\t\t\tUSTED HA ELEGIDO NO REGISTRAR PRODUCTUCTO\n";
            cout << "\t\t\t\tGRACIAS POR USAR FARMACIA C++";
            break;
        }

    default:
        {
            cout << "\t\tERROR RESPUESTA NO RECIBIDA, ESCOJA UNA OPCION PORFAVOR\n";
            break;
        }

     }
    }
    }
    void genera_archivo()
    {
        ofstream archivo;
        archivo.open("farmacia.txt",ios::app);
        archivo << arr1 [i].ID;
        archivo << "\n";
        archivo << arr1 [i].nombre;
        archivo << "\n";
        archivo << arr1 [i].fecha_de_alta;
        archivo << "\n";
        archivo << arr1 [i].fecha_de_caducidad;
        archivo << "\n";
        archivo << arr1 [i].cantidad_en_existencia;
        archivo << "\n";
        archivo << arr1 [i].marca_presentacion;
        archivo << "\n";
        archivo << arr1 [i].costo_para_mi;
        archivo << "\n";
        archivo << arr1 [i].bonificacion;
        archivo << "\n";
        archivo << arr1 [i].precio_venta;
        archivo << "\n";
        archivo << "\n";
        i++;
        archivo.close();
    }

Edited by Dani: Formatting fixed

2
Contributors
1
Reply
14
Views
3 Years
Discussion Span
Last Post by tinstaafl
0

Not sure what your question is. The genera_archivo() sub routine is already reading the elements of your structure. To read a file instead of writing to a file, you could use ifstream and just change the operator to >>.

On a side note, you're incrementing i twice every time you write a record to the file, once in genera_archivo() and again when right after you call it. This means that every other item in your array won't be filled.

Edited by tinstaafl

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.