Dev - C++ - Sumatoria de precios registrados en un Fichero

   
Vista:
Imágen de perfil de Omar

Sumatoria de precios registrados en un Fichero

Publicado por Omar (14 intervenciones) el 18/11/2015 19:54:22
Buenas tardes gente del foro, quiero hacer un sistema simple que simule la compra de productos en una farmacia, estoy apenas copiando el formato de un ticket y la cosa es que quiero imprimir la sumatoria de los precios de los productos cada vez que se compra algo, para ello implemente el mismo codigo que cuando captura e invoque la funcion mostrar justo despues de que se ejecuta la funcion de compra, en la funcion mostrar incluyo la "sumatoria" que es donde se deberia de ir sumando cada uno de los precios del listado.
Necesito ayuda con algunos consejos y observaciones en el codigo.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#include <iostream>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
class Farmacia {
    public:
char codigo[20], auxCodigo[20], resp[1];
string nombre;
float precio, total, sumatoria;
void comprar();
void ingresar();
void salir();
void consulta_de_ventas();
void mostrar();
void total_func();
string usuario;
};
 
 
void Farmacia::comprar(){
    system ("cls");
    cout <<"\n\t\tFARMACIAS ABC DE MEXICO  S.A.  DE  C.V.";
    cout <<"\n\t\tPRODUCTOS";
    ofstream escritura;
    ifstream consulta;
    bool repetido=false;
 
    escritura.open("ventas.txt",ios::out|ios::app);
    consulta.open("ventas.txt",ios::in);
    if(escritura.is_open() && consulta.is_open()){ //VALIDACION
        do{
        cout <<"\n\n\t\tINGRESA LA EL CODIGO DEL PRODUCTO: ";
        cin>>auxCodigo;
        consulta>>codigo;
        while(!consulta.eof()){
            consulta>>nombre>>precio;
            if(codigo==auxCodigo){
                cout<<"\n\t\tYA EXISTE UN PRODUCTO CON ESTE CODIGO"<<endl;
                repetido=true;
                system("pause");
                break;
            }
            consulta>>codigo;
        }
        if(repetido==false){
            cout<<"\n\t\tINGRESA EL NOMBRE: ";
            cin>>nombre;
            cout<<"\n\t\tINGRESA EL PRECIO: ";
            cin>>precio;
 
            escritura<<auxCodigo<<" "<<nombre<<" "<<precio<<endl;
            cout<<"\n\tREGISTRO AGREGADO"<<endl;
            cout<<"\n\tDESEA AGREGAR OTRO PRODUCTO... (S/N)?";
            cin>>resp;
 
        }
        }while(resp[0]=='S'|resp[0]=='s');
 
    }
    else{
        cout<<"Error, el Archivo No se Pudo Abrir o No ha sido Creado"<<endl;
    }
    escritura.close();
    consulta.close();
 
 
}
void Farmacia::mostrar(){
    system ("cls");
    ifstream lectura;
    lectura.open("ventas.txt",ios::out|ios::in);
    if(lectura.is_open()){
        cout <<"\n\t\tFARMACIAS ABC DE MEXICO  S.A.  DE  C.V.";
        lectura>>codigo;
        while(!lectura.eof()){
            lectura>>nombre>>precio;
            cout<<"\t\t--------------------------------------"<<endl;
            cout<<"\t\tNOMBRE      CODIGO    PRECIO   TOTAL  "<<endl;
            cout<<"\t\t"<<nombre<<"       "<<codigo<<"       "<<precio<<endl;
            cout<<"\t\t--------------------------------------"<<endl;
 
            /*cout<<"\t\t";
            cout<<"\t\t";
            cout<<"\t\t";
            cout<<"\t\t";
            cout<<"\t\t";
            cout<<"\t\t";
            cout<<"\t\t";*/
 
            lectura>>codigo;
            }
            cout<<"\n\t\tTOTAL         : $" <<sumatoria;
    }
}
 
void Farmacia::consulta_de_ventas(){
    system ("cls");
    ifstream lectura;
    lectura.open("ventas.txt",ios::out|ios::in);
    if(lectura.is_open()){
        cout<<"\n\t\tRegistros del Archivo Ventas.txt"<<endl;
        lectura>>codigo;
        while(!lectura.eof()){
            lectura>>nombre>>precio;
            cout<<"\n\t\t----------------------------------";
            cout<<"\n\n\t\tNOMBRE      CODIGO    PRECIO    ";
            cout<<"\n\t\t"<<nombre<<"       "<<codigo<<"       "<<precio;
 
            lectura>>codigo;
        }cout<<"\n\n\t";
         system ("pause");
    }else{
        cout<<"\n\t\tError, el Archivo No se Pudo Abrir, No ha sido creado"<<endl;
    }
    lectura.close();
}//Fin funcion consultas
 
 
void Farmacia::total_func(){
 
    ifstream lectura;
    lectura.open("ventas.txt",ios::out|ios::in);
        lectura>>codigo;
        while(!lectura.eof()){
            lectura>>nombre>>precio;
            sumatoria+=precio;
            lectura>>codigo;
        }
    lectura.close();
}
 
void Farmacia::ingresar(){
    cout << "\n\t\tFARMACIAS ABC DE MEXICO  S.A.  DE  C.V." << endl;
    cout << "\n\t\tINGRESA TU NOMBRE DE VENDEDOR" << endl;
 
 
}
 
 
int opc1;
 
 
 
int main()
{
    Farmacia f;
    do{
    cout << "\n\t\tFARMACIAS ABC DE MEXICO  S.A.  DE  C.V." << endl;
    cout << "\n\t\t1.COMPRAR";
    cout << "\n\t\t2.INGRESAR USUARIO EN TURNO";
    cout << "\n\t\t3.CONSULTAR VENTAS";
    cout << "\n\t\t4.SALIR";
    cout << "\n\t\tELIGE UNA OPCION";
    cin >>opc1;
    switch (opc1){
      case 1:
        f.comprar();
        system ("cls");
        f.mostrar();
      break;
      case 2:
       // f.ingresar();
      break;
      case 3:
        f.consulta_de_ventas();
      break;
      default:
      cout <<"\n\t\tOpcion Invalida";
    }
    }while (opc1!=4);
 
 
 
 
return 0;
 
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder