
Otro trabajo que nos dejaron en vacaciones
Ojo poner los archivos con extensión .H en la carpeta INCLUDE de Borland
CONDUCTO.H
1: /******************************************************************************************************************************
2: * *
3: * 25 de marzo de 2010 *
4: * *
5: * El programa guarda los datos del conductor en un archivo binario *
6: * *
7: * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis *
8: * *
9: ******************************************************************************************************************************/
10: #include
11: #include
12: #include
13:
14: struct registro
15: {
16: int numeroC;
17: char nombre[10];
18: char domicilio[20];
19: float estatura;
20: char activo;
21: }conductores;
22:
23: void registrarConductor()
24: {
25: clrscr();
26: printf("tt REGISTRO DE CONDUCTORES n");
27: cout<<"Numero de conductor "; cin>>conductores.numeroC;
28: cout<<"Nombre "; gets(conductores.nombre);
29: cout<<"Domicilio "; gets(conductores.domicilio);
30: cout<<"Estatura "; cin>>conductores.estatura;
31:
32: conductores.activo='a';
33:
34: FILE *registro;
35:
36: registro=fopen("conductores.dat","ab");
37: fwrite(&conductores,sizeof(conductores),1,registro);
38: fclose(registro);
39: }
40:
41: void reporteConductores()
42: {
43: clrscr();
44: FILE *rep;
45:
46: rep=fopen("conductores.dat","rb");
47: fread(&conductores,sizeof(registro),1,rep);
48: printf("# CONDUCTOR tt NOMBRE tt DOMICILIO t ESTATURA");
49:
50: do
51: {
52: if(conductores.activo=='a')
53: {
54: cout<<"n"<<conductores.numeroC<<"ttt "<<conductores.nombre<<"ttt "<<conductores.domicilio<<"tt "<<conductores.estatura;
55: }
56: fread(&conductores,sizeof(registro),1,rep);
57: }while(!feof(rep));
58: fclose(rep);
59: getch();
60: }
61:
62: void consultaC(int n)
63: {
64: clrscr();
65: FILE *rep;
66:
67:
68: rep=fopen("conductores.dat","rb");
69:
70: fseek(rep,(n-1)*(sizeof(conductores)),SEEK_SET);
71: fread(&conductores,(n)*(sizeof(conductores)),1,rep);
72:
73: printf("# CONDUCTOR tt NOMBRE tt DOMICILIO t ESTATURA");
74: if(conductores.activo=='a')
75: {
76: cout<<"n"<<conductores.numeroC<<"ttt "<<conductores.nombre<<"ttt "<<conductores.domicilio<<"tt "<<conductores.estatura;
77: }
78: else
79: {
80: cout<<"n El conductor no exite";
81: }
82: fclose(rep);
83: }
84:
85:
86:
87: void eliminarC()
88: {
89: FILE *reg;
90: int d;
91:
92: cout<<"Inserte el conductor que desee dar de baja: "; cin>>d;
93:
94: reg=fopen("conductor.dat","rb+");
95:
96: fseek(reg,(d-1)*(sizeof(conductores)),SEEK_SET);
97: fread(&conductores,(d)*(sizeof(conductores)),1,reg);
98:
99:
100: conductores.activo='b';
101:
102: fseek(reg,(d-1)*(sizeof(conductores)),SEEK_SET);
103: fwrite(&conductores,sizeof(conductores),1,reg);
104: fclose(reg);
105: }
106:
107:
108: void menuC()
109: {
110: conductores.activo=NULL;
111: int op;
112: int b;
113: while(op!=5)
114: {
115: clrscr();
116: gotoxy(25,1); cout<<"REGISTRO DE CONDUCTORES";
117: gotoxy(1,3); cout<<"1.- Registrar conductor";
118: gotoxy(1,5); cout<<"2.- Reporte";
119: gotoxy(1,7); cout<<"3.- Consulta";
120: gotoxy(1,9); cout<<"4.- Eliminar";
121: gotoxy(1,11); cout<<"5.- Regresar";
122: gotoxy(1,14); cout<<"t Eliga una opcion [ ]";
123: gotoxy(24,14); cin>>op;
124:
125: switch(op)
126: {
127: case 1:
128: registrarConductor();
129:
130: break;
131: case 2:
132: reporteConductores();
133: break;
134: case 3:
135: clrscr();
136: cout<<"Inserte el numero de conductor que desee consultar "; cin>>b;
137: consultaC(b);
138: getch();
139: break;
140: case 4:
141: clrscr();
142: eliminarC();
143: break;
144:
145: }
146: }
147: }
148: void eslogan()
149: {
150: cout<<" ****** ** ******* ******* ******** ******* ** ";
151: cout<<"n **////** **** /**////** /**////** /**///// /**////** **** ";
152: cout<<"n ** // **//** /** /** /** /** /** /** /** **//** ";
153: cout<<"n/** ** //** /******* /******* /******* /******* ** //** ";
154: cout<<"n/** **********/**///** /**///** /**//// /**///** **********";
155: cout<<"n//** **/**//////**/** //** /** //** /** /** //** /**//////**";
156: cout<<"n //****** /** /**/** //**/** //**/********/** //**/** /**";
157: cout<<"n ////// // // // // // // //////// // // // // ";
158: }
159:
AUTOMOVI.H
1: /************************************************************************************************************
2: * *
3: * 25 DE MARZO DE 2010 *
4: * *
5: * Programa que almacena los datos de los diferentes tipos de carros y los guarda en un archivo binario *
6: * *
7: * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis *
8: * *
9: ************************************************************************************************************/
10:
11: #include
12: #include
13: #include
14: #include
15:
16: /** Estructura de los datos de los datos */
17: struct reg
18: {
19: int numeroV;
20: char marca[10];
21: int anio;
22: char color[10];
23: int matricula;
24: char activo;
25: }automoviles;
26:
27:
28: /** Funcion para registrar los datos en el archivo */
29: void registrar()
30: {
31:
32: clrscr();
33: printf("tt REGISTRO DE AUTOS n");
34: cout<<"Numero de vehiculo "; cin>>automoviles.numeroV;
35: cout<<"Marca "; gets(automoviles.marca);
36: cout<<"Año "; cin>>automoviles.anio;
37: cout<<"Matricula "; cin>>automoviles.matricula;
38: cout<<"Color "; gets(automoviles.color);
39:
40: automoviles.activo='a'; //Marca que el archivo no esta eliminado logicamente
41:
42:
43: FILE *registro1;
44:
45: registro1=fopen("automoviles.dat","ab+");
46: fseek(registro1,(automoviles.numeroV)-1*(sizeof(automoviles)),SEEK_SET); //Posicionar el puntero en un lugar definido por la variable vehiculoV
47: fwrite(&automoviles,sizeof(automoviles),1,registro1); //Escrive en el archivo
48: fclose(registro1);
49:
50: }
51:
52: /** Muestra todos los registros del archivo en forma de reporte */
53: void reporte()
54: {
55: clrscr();
56: FILE *rep;
57:
58: rep=fopen("automoviles.dat","rb+");
59: fread(&automoviles,sizeof(automoviles),1,rep);
60: printf("# VEHICULO tt MARCA tt AÑO t MATRICULA t COLOR");
61:
62: do
63: {
64: if(automoviles.activo=='a')
65: {
66: cout<<"n "<<automoviles.numeroV<<"t tt "<<automoviles.marca<<"tt "<<automoviles.anio<<"t "<<automoviles.matricula<<"tt "<<automoviles.color;
67: }
68: fread(&automoviles,sizeof(automoviles),1,rep);
69: }while(!feof(rep));
70: fclose(rep);
71: getch();
72: }
73:
74: /** Consulta un solo registro en el archivo */
75: void consultaVehiculo(int n)
76: {
77: FILE *rep;
78:
79:
80:
81: rep=fopen("automoviles.dat","rb");
82:
83: fseek(rep,(n-1)*(sizeof(automoviles)),SEEK_SET);
84: fread(&automoviles,(n)*(sizeof(automoviles)),1,rep);
85:
86: printf("n # VEHICULO tt MARCA tt AÑO t MATRICULA t COLOR");
87: if(automoviles.activo=='a')
88: {
89: cout<<"n "<<automoviles.numeroV<<"t tt "<<automoviles.marca<<"tt "<<automoviles.anio<<"t "<<automoviles.matricula<<"tt "<<automoviles.color;
90: }
91: else
92: {
93: cout<<"n El automovil no existe";
94: }
95: fclose(rep);
96: }
97:
98: /* Modifica un registro señalado */
99: void modificar()
100: {
101: clrscr();
102: FILE *reg;
103: int d;
104:
105: cout<<"Inserte el dato que desee modificar: "; cin>>d;
106:
107: reg=fopen("automoviles.dat","rb+");
108:
109: printf("tt REGISTRO DE AUTOS n");
110: cout<<"Numero de vehiculo "; cin>>automoviles.numeroV;
111: cout<<"Marca "; gets(automoviles.marca);
112: cout<<"Año "; cin>>automoviles.anio;
113: cout<<"Matricula "; cin>>automoviles.matricula;
114: cout<<"Color "; gets(automoviles.color);
115:
116: automoviles.activo='a';
117:
118: fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET);
119: fwrite(&automoviles,sizeof(automoviles),1,reg);
120: fclose(reg);
121: }
122:
123: /* Elimina el registro seleccionado "logicamente" */
124: void eliminar()
125: {
126: FILE *reg;
127: int d;
128:
129: cout<<"Inserte el registro que desee Eliminar: "; cin>>d;
130:
131: reg=fopen("automoviles.dat","rb+");
132:
133: fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET);
134: fread(&automoviles,(d)*(sizeof(automoviles)),1,reg);
135:
136:
137: automoviles.activo='b';
138:
139: fseek(reg,(d-1)*(sizeof(automoviles)),SEEK_SET);
140: fwrite(&automoviles,sizeof(automoviles),1,reg);
141: fclose(reg);
142: }
143:
144:
145: /* Menu de opciones */
146: void menuA()
147: {
148: int a;
149: int op;
150: while(op!=5)
151: {
152: automoviles.activo=NULL;
153: clrscr();
154: gotoxy(25,1); cout<<"REGISTRO DE AUTOMOTORES";
155: gotoxy(1,3); cout<<"1.- Registrar automotor";
156: gotoxy(1,5); cout<<"2.- Reporte";
157: gotoxy(1,7); cout<<"3.- Consultar";
158: gotoxy(1,9); cout<<"4.- Eliminar";
159: gotoxy(1,11); cout<<"5.- Regresar";
160: gotoxy(1,14); cout<<"t Eliga una opcion [ ]";
161: gotoxy(23,14); cin>>op;
162: cout<<"n";
163: eslogan();
164:
165: switch(op)
166: {
167: case 1:
168: registrar();
169:
170: break;
171: case 2:
172: reporte();
173: break;
174: case 3:
175: clrscr();
176: cout<<"Inserte el numero de automovil que desee consultar"; cin>>a;
177: consultaVehiculo(a);
178: getch();
179: break;
180: case 4:
181: clrscr();
182: eliminar();
183: break;
184:
185: }
186: }
187: }
188:
EVENTO.H
1: /******************************************************************************************************************************
2: * *
3: * 25 de marzo de 2010 *
4: * *
5: * Elprograma graba el folio y el numero de conductor y vechiculo para consultar sus datos y registrar sus tiempo * *
6: * *
7: * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis *
8: * *
9: ******************************************************************************************************************************/
10: #include
11:
12: struct evento
13: {
14: int folio;
15: int nC;
16: int nV;
17: int tiempo;
18: }carrera;
19:
20:
21:
22: void ultimo();
23:
24:
25: void borrar()
26: {
27: carrera.folio=NULL;
28: carrera.nC=NULL;
29: carrera.nV=NULL;
30: carrera.tiempo=NULL;
31: }
32: //REGISTRAR AUTO Y CONDUCTOR
33:
34: void registrarParticipante()
35: {
36:
37: borrar();
38: FILE *e;
39: FILE *a;
40: int size;
41:
42: borrar();
43: e=fopen("evento.dat","ab+");
44: a=fopen("evento.dat","rb+");
45:
46:
47: size=sizeof(carrera);
48:
49: fseek(a,-size,SEEK_END);
50: fread(&carrera,size,1,a);
51:
52: carrera.tiempo=NULL;
53: carrera.folio=(carrera.folio)+1;
54:
55: cout<<"nINSERTE EL NUMERO DEL PILOTO "; cin>>carrera.nC;
56:
57: cout<<"nINSERTE EL NUMERO DEL VEHICULO "; cin>>carrera.nV;
58:
59: fwrite(&carrera,sizeof(carrera),1,e);
60:
61: fclose(e);
62: fclose(a);
63:
64: }
65:
66:
67:
68: //ULTIMO REGISTRO
69:
70: void ultimo()
71: {
72: FILE *final;
73:
74: borrar();
75: final=fopen("evento.dat","ab+");
76:
77: do
78: {
79: fread(&carrera,sizeof(carrera),1,final);
80: }while(!feof(final));
81:
82: }
83:
84: //REPORTE
85:
86: void reporteEvento()
87: {
88: borrar();
89: FILE *reporte1;
90:
91: reporte1=fopen("evento.dat","rb+");
92:
93: do
94: {
95: if(carrera.folio!=NULL)
96: {
97: cout<<"n"<<"FOLIO "<<carrera.folio<<" NUMERO DE VEHICULO "<<carrera.nV<<" NUMERO DE CONDUCTOR "<<carrera.nC<<" TIEMPO "<<carrera.tiempo ;
98: }
99: fread(&carrera,sizeof(carrera),1,reporte1);
100: }while(!feof(reporte1));
101: }
102:
103:
104:
105: void registrarTiempo()
106: {
107: FILE *tiempo;
108: tiempo=fopen("evento.dat","rb+");
109: int folio;
110:
111: borrar();
112: cout<<"nnINSERTE EL FOLIO DEL PILOTO QUE DESEE INGRESAR EL TIEMPO ";
113: cin>>folio;
114:
115: fseek(tiempo,(folio-1)*(sizeof(carrera)),SEEK_SET);
116: fread(&carrera,sizeof(carrera),1,tiempo);
117:
118: cout<<"nnINGRESE EL TIEMPO ";cin>>carrera.tiempo;
119:
120: fseek(tiempo,(folio-1)*(sizeof(carrera)),SEEK_SET);
121: fwrite(&carrera,sizeof(carrera),1,tiempo);
122: fclose(tiempo);
123: }
124:
125:
126: /* Menu de opciones */
127: void menuE()
128: {
129: int a;
130: int op;
131: while(op!=5)
132: {
133: automoviles.activo=NULL;
134: clrscr();
135: gotoxy(25,1); cout<<"EVENTO";
136: gotoxy(1,3); cout<<"1.- Registrar participante";
137: gotoxy(1,5); cout<<"2.- Reporte";
138: gotoxy(1,7); cout<<"3.- Modificar tiempo";
139: gotoxy(1,9); cout<<"4.- Consulta participante";
140: gotoxy(1,11); cout<<"5.- Regresar";
141: gotoxy(1,13); cout<<"t Eliga una opcion [ ]";
142: gotoxy(26,13); cin>>op;
143:
144: switch(op)
145: {
146: case 1:
147: clrscr();
148: registrarParticipante();
149: getch();
150: break;
151: case 2:
152: reporteEvento();
153: getch();
154: break;
155: case 3:
156: clrscr();
157: registrarTiempo();
158: getch();
159: break;
160:
161: case 4:
162: cout<<"n INSERTE EL NUMERO DEL PARTICIPANTE QUE DESEE CONSULTAR "; cin>>a;
163: consultaVehiculo(a);
164: cout<<"n";
165: getch();
166: consultaC(a);
167: cout<<"nPresione cualquier tecla para continuar";
168: getch();
169: break;
170: case 5:
171: break;
172: default:
173: cout<<"OPCION NO VALIDA";
174: getch();
175: break;
176: }
177: }
178: }
179:
VACACION.CPP
1: /******************************************************************************************************************************
2: * *
3: * 11 de abril de 2010 *
4: * *
5: * Paquete de programas para el proyecto de la carrera *
6: * *
7: * Programador Julio Cesar Leyva Rodriguez Instituto Tecnologico de Los Mochis *
8: * *
9: ******************************************************************************************************************************/
10: #include
11: #include
12: #include
13: #include
14:
15:
16: void main()
17: {
18: int op;
19: while(op!=4)
20: {
21: clrscr();
22: eslogan();
23: gotoxy(25,15); cout<<"PRINCIPAL";
24: gotoxy(1,18); cout<<"1.- Vehiculos";
25: gotoxy(1,20); cout<<"2.- Conductores";
26: gotoxy(1,22); cout<<"3.- Evento";
27: gotoxy(1,24); cout<<"4.- Salir";
28: gotoxy(1,26); cout<<"t Eliga una opcion [ ]";
29: gotoxy(22,26); cin>>op;
30:
31: switch(op)
32: {
33: case 1:
34: clrscr();
35: menuA();
36:
37: break;
38: case 2:
39: menuC();
40: break;
41: case 3:
42: clrscr();
43: menuE();
44: break;
45: case 4:
46: clrscr();
47: break;
48: case 5:
49: cout<<"nOPCION INCORRECTA";
50: break;
51:
52: }
53: }
54: }
Deja un comentario