Dev - C++ - Flujos de archivos

   
Vista:

Flujos de archivos

Publicado por CESAR (2 intervenciones) el 21/11/2015 21:27:46
Buenas tardes, me gustaría saber de que manera puedo implementar las cuatro funciones (capturar, mostrar, buscar y modificar) con los flujos de archivos, agrego mi código.
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
180
181
182
183
184
185
186
187
#include <iostream>
#include <fstream>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <cstdlib>
#define tam 6
int opc, nuec, tam1, tams=0;
using namespace std;
class estudiante{
public:
    string nombre, telefono;
 
    void capturar();
    void mostrar();
    void buscar();
    void modificar();
}arreglo[tam];
 
void estudiante::capturar(){
            cout<<"\t\t\tCAPTURANDO\n"<<endl;
            cout<<"Capturando estudiante #"<<tam1+1<<endl;
            cout<<"\n"<<endl;
            cout<<"ingresa el nombre del estudiante #"<<tam1+1<<endl;
            fflush(stdin);
            getline(cin, arreglo[tams+tam1].nombre);
            cout<<"Ingresa el numero de casa del estudiane #"<<tam1+1<<endl;
             fflush(stdin);
            getline(cin, arreglo[tams+tam1].telefono);
}
 
    void estudiante::mostrar()
		{
            fflush(stdin);
            cout<<"\t\t\tMOSTRANDO\n"<<endl;
		    cout<<"\t\tDatos de alta del estudiante #"<<tam1+1<<"\n"<<endl;
		    cout<<"Nombre:         "<<arreglo[tam1].nombre<<endl;
			cout<<"Telefono:      "<<arreglo[tam1].telefono<<endl;
			cout<<"--------------------------------------------------"<<endl;
			}
    void estudiante::buscar(){
            fflush(stdin);
            cout<<"\t\t\tMOSTRANDO\n"<<endl;
		    cout<<"\t\tDatos de alta del estudiante #"<<tam1<<"\n"<<endl;
		    cout<<"Nombre:         "<<arreglo[tam1-1].nombre<<endl;
			cout<<"Telefono:      "<<arreglo[tam1-1].telefono<<endl;
			cout<<"--------------------------------------------------\n"<<endl;
    }
 
 
    void estudiante::modificar(){
        cout<<"\t\t\tMODIFICAR\n"<<endl;
        cout<<"Ingresa la ubicacion de memoria a modificar del registro [1|2|3|4|5|6]"<<endl;
            cin>>tam1;
 
            if(tam1>=1&&tam1<=nuec){
                fflush(stdin);
                system("cls");
                cout<<"\t\t\tRegistro a modificar\n"<<endl;
                cout<<"\t\tViejos datos de alta del estudiante #"<<tam1<<"\n"<<endl;
		    cout<<"Nombre:         "<<arreglo[tam1-1].nombre<<endl;
			cout<<"Telefono:      "<<arreglo[tam1-1].telefono<<endl;
			cout<<"--------------------------------------------------\n"<<endl;
            cout<<"Presione enter\n"<<endl;
            system("pause");
            cout<<"\n\t\tMODIFICANDO REGISTRO ["<<tam1<<"] ingrese los nuevos datos"<<endl;
            cout<<"------------------------------------------------------\n"<<endl;
            cout<<"\t\t\tCAPTURANDO\n"<<endl;
            cout<<"Modificando estudiante #"<<tam1<<endl;
            cout<<"COMENCEMOS :)"<<endl;
            cout<<"ingresa el nuevo nombre del estudiante #"<<tam1<<endl;
            fflush(stdin);
            getline(cin, arreglo[tam1-1].nombre);
            cout<<"Ingresa el nuevo Telefono del estudiane #"<<tam1<<endl;
            fflush(stdin);
            getline(cin,arreglo[tam1-1].telefono);
            system("cls");
            system("pause");
                cout<<"\n\n"<<endl;
                cout<<"\t\tMOSTRANDO NUEVOS DATOS DEL REGISTRO["<<tam1<<"]  "<<endl;
            cout<<"Nombre:         "<<arreglo[tam1-1].nombre<<endl;
			cout<<"Telefono:      "<<arreglo[tam1-1].telefono<<endl;
			cout<<"--------------------------------------------------\n"<<endl;
                }
            else
            {
                cout<<"ACHTUNG"<<endl;
            cout<<"Esa ubicacion de memoria no existe"<<endl;
            }
 
    }
 
 
 
int main()                                                                              //menu
{
    estudiante estd;
    do
    {
        system("pause");//pausar
        system("cls");//limpiar pantalla
        system("color f0");//pantalla blanca y letra negra
        cout<<"Hola bienvenido a la base de datos de los estudiantes, Que deseas hacer"<<endl;
        cout<<"1) capturar"<<endl;
        cout<<"2) mostrar"<<endl;
        cout<<"3) buscar"<<endl;
        cout<<"4) modificar"<<endl;
        cout<<"5) salir"<<endl;
        cin>>opc;
        cout<<"\n"<<endl;
        system("cls");
        switch(opc)
        {
            case 1:
                system("cls");//limpiar pantalla
                system("color 0f");//pantalla negra y letra blanca
                cout<<"Bienvenido solo puedes capturar hasta "<<tam<<" estudiantes"<<endl;
                cout<<"Cuantos estudiantes vas a capturar?\n"<<endl;
                cin>>nuec;
                system("cls");
                    if(nuec<=tam)
                        {
                            for(tam1=0; tam1<nuec; tam1++){
                                estd.capturar();
                            }
                        tams=tams+nuec;
                        }
                    else
                        {
                            system("cls");
                            system("color f0");//pantalla blanca y letra negra
                            cout<<"ACHTUNG!!"<<endl;
                            cout<<"Solo puede ingresar hasta ["<<tam<<"] estudiantes"<<endl;
                            }
            break;
 
            case 2:
                system("cls");
                system("color 0f");//pantalla negra y letra blanca
                    for(tam1=0;tam1<tam;tam1++){
                        estd.mostrar();
                    }
            break;
 
            case 3:
                system("color 0f");//pantalla negra y letra blanca
                cout<<"\t\t\tBUSCAR\n"<<endl;
                cout<<"Ingrese el registro en el que se guardo el estudiante (1,2,3,4,5 o 6)"<<endl;
                cin>>tam1;
                    if(tam1>=1&&tam1<=nuec){
                        system("cls");
                        estd.buscar();
                    }
                    else {
                        system("cls");
                        system("color f0");//pantalla blanca y letra negra
                        cout<<"Ese registro no existe o esta vacio"<<endl;
                    }
            break;
 
            case 4:
                    system("cls");
                    system("color 0f");//pantalla negra y letra blanca
                    estd.modificar();
            break;
 
            case 5:
                    system("cls");
                    system("color 0f");//pantalla negra y letra blanca
                    cout<<"Auf Wiedersehen!"<<endl;
                    return 0;
            break;
 
            default:
                    system("cls");
                    system("color 0f");//pantalla negra y letra blanca
                    cout<<"ACHTUNG"<<endl;
                    cout<<"\n error, opcion no valida \n"<<endl;
                    cout<<"Vuelve a intentarlo"<<endl;
            break;
        }
    }
    while(opc!=5);
 
 
}
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

Flujos de archivos

Publicado por agustin (308 intervenciones) el 22/11/2015 12:30:47
Cuando dices flujo de archivo ¿te refieres a que en vez de usar cin usarías un archivo para leer los datos? Si es así te pongo la primera:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool estudiante::capturar(int indice,char *nameFile){
            ifstream archivo;
            bool retval=false;
            archivo.open (namefile);
            if(archivo.good()){
               cout<<"\t\t\tCAPTURANDO\n"<<endl;
               cout<<"Capturando estudiante #"<<indice+1<<endl;
               getline(archivo, arreglo[indice].nombre);
               getline(archivo, arreglo[indice].telefono);
               archivo.close ();
               retval=true;
               cout <<"Fin de la captura"<<endl;
            }
            return retval;
}
Sin más dato no puedo decirte más pero por favor no uses variables globales, mejor usa parámetros que será más fácil todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar