Visual C++ .NET - consulta

 
Vista:

consulta

Publicado por Marcos (1 intervención) el 01/07/2008 19:27:05
Que tal una vez mas visitando este exelente foro para pedir algo de ayuda, les comento hice un codigo en c++ para agregar profesores nacionalidad y sueldo solo que quiere que este tambien haga una consulta de quien gano mas y de que nacionalidad es le spresento el codigo (asi como esta ya funciona y compila):

#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
char nacionalidad[4];
char profesor[90];
int sueldo;
FILE * apuntador;
void crea();
void despliega();
void agrega();
void main()
{
int op=1;

system ("cls");
while (op>0 && op<4)
{
cout<<" 1. Crear uno nuevo 2. Desplegar archivo 3. Agregar registro ";
cout<<"4. Salir ";
cin>>op;
switch (op)
{
case 1: crea();
break;
case 2: system ("cls");
despliega();
break;
case 3: system("cls");
agrega();
break;
case 4 : system("cls");
cout<<"Fin del Programa ";
break;
default: system("cls");
cout<<"Opcion invalida ";
}
}

}

void crea()
{
char resp='s';
if ((apuntador=fopen("d:profesor.txt","w"))==NULL)
cout<<"No se creo el archivo ";
else
{
while (resp=='s')
{
cout<<"Cual es la nacionalidad del profesor ";
cin>>nacionalidad;
cout<<"Cual es el nombre del profesor ";
cin>>profesor;
cout<<"Cual es la sueldo del profesor ";
cin>>sueldo;

fprintf(apuntador, "%s %s %i ",nacionalidad,profesor,sueldo);
do
{
cout<<"Desea agregar otro registro s/n ";
cin>>resp;
}while (resp!='s' && resp!='S' && resp!='n' && resp!='N');
}
fclose(apuntador);
}
}

void despliega()
{
if ((apuntador=fopen("d:profesor.txt","r"))==NULL)
cout<<"No se encontro el archivo";
else
{
while (!feof(apuntador))
{
fscanf(apuntador, "%s %s %i ",nacionalidad,profesor,&sueldo);
cout<<nacionalidad<<" "<<profesor<<" "<<sueldo<<" ";
}
}
fclose(apuntador);
}

void agrega()
{
char resp='s';
if ((apuntador=fopen("d:profesor.txt","a"))==NULL)
cout<<"No se encontro el archivo";
else
{
while (resp=='s')
{
cout<<"Cual es la nacionalidad del profesor ";
cin>>nacionalidad;
cout<<"Cual es el nombre del profesor ";
cin>>profesor;
cout<<"Cual es la sueldo del profesor ";
cin>>sueldo;

fprintf(apuntador, "%s %s %i ",nacionalidad,profesor,sueldo);
do
{
cout<<"Desea agregar otro registro s/n ";
cin>>resp;
}while (resp!='s' && resp!='S' && resp!='n' && resp!='N');}
fclose(apuntador);
}
}
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
Imágen de perfil de Alejandro

Gestión de profesores

Publicado por Alejandro (265 intervenciones) el 05/02/2024 19:52:24
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
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
char nacionalidad[4];
char profesor[90];
int sueldo;
 
void crea();
void despliega();
void agrega();
 
int main() {
    int op = 1;
 
    while (op > 0 && op < 4) {
        system("cls");
        cout << " 1. Crear uno nuevo 2. Desplegar archivo 3. Agregar registro 4. Salir ";
        cin >> op;
 
        switch (op) {
            case 1:
                crea();
                break;
            case 2:
                system("cls");
                despliega();
                break;
            case 3:
                system("cls");
                agrega();
                break;
            case 4:
                system("cls");
                cout << "Fin del Programa ";
                break;
            default:
                system("cls");
                cout << "Opcion invalida ";
        }
    }
 
    return 0;
}
 
void crea() {
    char resp = 's';
    ofstream archivo("d:profesor.txt");
 
    if (!archivo.is_open()) {
        cout << "No se pudo crear el archivo";
        return;
    }
 
    while (resp == 's' || resp == 'S') {
        cout << "Cual es la nacionalidad del profesor: ";
        cin >> nacionalidad;
        cout << "Cual es el nombre del profesor: ";
        cin >> profesor;
        cout << "Cual es el sueldo del profesor: ";
        cin >> sueldo;
 
        archivo << nacionalidad << " " << profesor << " " << sueldo << endl;
 
        do {
            cout << "Desea agregar otro registro (s/n): ";
            cin >> resp;
        } while (resp != 's' && resp != 'S' && resp != 'n' && resp != 'N');
    }
 
    archivo.close();
}
 
void despliega() {
    ifstream archivo("d:profesor.txt");
 
    if (!archivo.is_open()) {
        cout << "No se encontro el archivo";
        return;
    }
 
    while (archivo >> nacionalidad >> profesor >> sueldo) {
        cout << nacionalidad << " " << profesor << " " << sueldo << endl;
    }
 
    archivo.close();
}
 
void agrega() {
    char resp = 's';
    ofstream archivo("d:profesor.txt", ios::app);
 
    if (!archivo.is_open()) {
        cout << "No se encontro el archivo";
        return;
    }
 
    while (resp == 's' || resp == 'S') {
        cout << "Cual es la nacionalidad del profesor: ";
        cin >> nacionalidad;
        cout << "Cual es el nombre del profesor: ";
        cin >> profesor;
        cout << "Cual es el sueldo del profesor: ";
        cin >> sueldo;
 
        archivo << nacionalidad << " " << profesor << " " << sueldo << endl;
 
        do {
            cout << "Desea agregar otro registro (s/n): ";
            cin >> resp;
        } while (resp != 's' && resp != 'S' && resp != 'n' && resp != 'N');
    }
 
    archivo.close();
}

Marcos, este código ha sido modificado para usar la librería `<fstream>` en lugar de `<stdio.h>`. Además, se han realizado algunas mejoras en la organización del código y la gestión de archivos. Ahora, el código es más compatible con C++ moderno y sigue cumpliendo con las funciones requeridas.
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