Dev - C++ - Anexar al registro un campo alfanumérico para el manejo de la cedula del estudiante

 
Vista:
sin imagen de perfil

Anexar al registro un campo alfanumérico para el manejo de la cedula del estudiante

Publicado por John (8 intervenciones) el 24/05/2017 03:51:50
Anexar al registro un campo alfanumérico para el manejo de la cedula del estudiante.
Diseñar un menú, así:
1. Ingresar. (Se ingresan todos los datos excepto: activo, que por defecto será “S” y la nota definitiva,
este último dato se calcula de acuerdo al sistema de valoración de la Corporación de estudios
tecnológicos del norte del valle. Guardar todos los datos en un archivo con el nombre de
estudiantes.txt)
2. Visualizar. (se mostrarán todos los datos de los estudiantes excepto el dato activo, en forma de
filas y columnas, donde una fila es un estudiante)
3. Consulta por cedula (se visualizará la información del estudiante excepto el campo activo)
4. Modificar datos (realizando la consulta por cedula, se le permitirá al usuario modificar el nombre,
apellidos, nota1, nota2 y nota3. Se le debe permitir al usuario que dato desea modificar, tener en
cuenta que si es una de las notas, se debe actualizar su nota definitiva)
5. Eliminar estudiante (Se eliminara el estudiante del archivo, realizando la consulta por cedula y una
pregunta de confirmación antes de eliminar)
6. Mantenimiento (en esta opción se debe implementar el proceso de eliminar físicamente del archivo
los estudiantes que han sido marcados para su eliminación)
0. Salir
Utilizar un marco para el menú, la función gotoxy() para posicionar la información


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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
 
struct semestre
{
	float n1[3],n2[3],n3[3];
	char cc1[10],cc2[10],cc3[10];
	char nombre1[15],apellido1[15];
	char nombre2[15],apellido2[15];
	char nombre3[15],apellido3[15];
};
int main(int argc, char** argv)
{
	int n;
	float nota[3];
	float nfinal[3];
	semestre estudiante;
	FILE *archivo;
 
	archivo=fopen("BD.txt","r+b");
 
	if(archivo==NULL)
		{	archivo=fopen("BD.txt","w+b");	}
 
	system("color 79");
	cout<<"NOTAS ESTUDIANTES"<<endl<<endl;
	for(int a=1;a<=3;a++)
		{	switch (a)
			{	case 1:
					system("color 80");
					cout<<"Digite Numero de Identificacion Estudiante 1"<<endl;cin>>estudiante.cc1;cin.ignore(256,'\n');
					cout<<"Digite Nombre del Estudiante 1"<<endl;cin.getline(estudiante.nombre1,15);cin.ignore(256,'\n');
					cout<<"Digite Apellido del Estudiante 1"<<endl;cin.getline(estudiante.apellido1,15);
					system("cls");
					cout<<"Estudiante "<<estudiante.nombre1<<" "<<estudiante.apellido1<<endl;
					cout<<"Digite Notas"<<endl;
					cout<<"Nota 1"<<endl;cin>>estudiante.n1[a];
					cout<<"Nota 2"<<endl;cin>>estudiante.n2[a];
					cout<<"Nota 3"<<endl;cin>>estudiante.n3[a];
					nfinal[a]=((estudiante.n1[a]*35)/100)+((estudiante.n2[a]*35)/100)+((estudiante.n3[a]*30)/100);
					break;
				case 2:
					system("cls");
					system("color 81");
					cout<<"Digite Numero de Identificacion Estudiante 2"<<endl;cin>>estudiante.cc2;cin.ignore(256,'\n');
					cout<<"Digite Nombre del Estudiante 2"<<endl;cin.getline(estudiante.nombre2,15);cin.ignore(256,'\n');
					cout<<"Digite Apellido del Estudiante 2"<<endl;cin.getline(estudiante.apellido2,15);
					system("cls");
					cout<<"Estudiante "<<estudiante.nombre2<<" "<<estudiante.apellido2<<endl;
					cout<<"Digite Notas"<<endl;
					cout<<"Nota 1"<<endl;cin>>estudiante.n1[a];
					cout<<"Nota 2"<<endl;cin>>estudiante.n2[a];
					cout<<"Nota 3"<<endl;cin>>estudiante.n3[a];
					nfinal[a]=((estudiante.n1[a]*35)/100)+((estudiante.n2[a]*35)/100)+((estudiante.n3[a]*30)/100);
					break;
				case 3:
					system("cls");
					system("color 87");
					cout<<"Digite Numero de Identificacion Estudiante 3"<<endl;cin>>estudiante.cc3;cin.ignore(256,'\n');
					cout<<"Digite Nombre del Estudiante 3"<<endl;cin.getline(estudiante.nombre3,15);cin.ignore(256,'\n');
					cout<<"Digite Apellido del Estudiante 3"<<endl;cin.getline(estudiante.apellido3,15);
					system("cls");
					cout<<"Estudiante "<<estudiante.nombre3<<" "<<estudiante.apellido3<<endl;
					cout<<"Digite Notas"<<endl;
					cout<<"Nota 1"<<endl;cin>>estudiante.n1[a];
					cout<<"Nota 2"<<endl;cin>>estudiante.n2[a];
					cout<<"Nota 3"<<endl;cin>>estudiante.n3[a];
					nfinal[a]=((estudiante.n1[a]*35)/100)+((estudiante.n2[a]*35)/100)+((estudiante.n3[a]*30)/100);
					break;
					default:
					break;
			}
		}
	system("cls");
 
	cout<<"RESULTADO DE NOTAS"<<endl<<endl;
	system("color 07");
 
	for(int b=1;b<=3;b++)
		{
			switch (b)
			{	case 1:
					cout<<"Estudiante "<<estudiante.nombre1<<" "<<estudiante.apellido1<<endl;
					cout<<"Nota 1:"<<estudiante.n1[b]<<endl;
					cout<<"Nota 2:"<<estudiante.n2[b]<<endl;
					cout<<"Nota 3:"<<estudiante.n3[b]<<endl<<endl;
					cout<<"NOTA FINAL: "<<nfinal[b]<<endl<<endl;
					break;
				case 2:
					cout<<"Estudiante "<<estudiante.nombre2<<" "<<estudiante.apellido2<<endl;
					cout<<"Nota 1:"<<estudiante.n1[b]<<endl;
					cout<<"Nota 2:"<<estudiante.n2[b]<<endl;
					cout<<"Nota 3:"<<estudiante.n3[b]<<endl<<endl;
					cout<<"NOTA FINAL: "<<nfinal[b]<<endl<<endl;
					break;
				case 3:
					cout<<"Estudiante "<<estudiante.nombre3<<" "<<estudiante.apellido3<<endl;
					cout<<"Nota 1:"<<estudiante.n1[b]<<endl;
					cout<<"Nota 2:"<<estudiante.n2[b]<<endl;
					cout<<"Nota 3:"<<estudiante.n3[b]<<endl<<endl;
					cout<<"NOTA FINAL: "<<nfinal[b]<<endl<<endl;
					break;
					default:
					break;
			}
		}
 
	fseek(archivo,0,SEEK_END);
	fwrite(&estudiante,sizeof(estudiante),1,archivo);
 
	getch();
	system("cls");
 
	rewind(archivo);
 
	while(fread(&estudiante,sizeof(estudiante),1,archivo))
		{
			for(int i=1;i<=3;i++)
			{	switch(i)
				{	case 1:
						cout<<"Estudiante "<<i<<endl<<endl<<"ID: "<<estudiante.cc1<<endl<<"Nombres: "<<estudiante.nombre1<<endl<<"Apellidos: "<<estudiante.apellido1<<endl<<"Nota Final: "<<nfinal[i]<<endl<<endl;
						break;
					case 2:
						cout<<"Estudiante "<<i<<endl<<endl<<"ID: "<<estudiante.cc2<<endl<<"Nombres: "<<estudiante.nombre2<<endl<<"Apellidos: "<<estudiante.apellido2<<endl<<"Nota Final: "<<nfinal[i]<<endl<<endl;
						break;
					case 3:
						cout<<"Estudiante "<<i<<endl<<endl<<"ID: "<<estudiante.cc3<<endl<<"Nombres: "<<estudiante.nombre3<<endl<<"Apellidos: "<<estudiante.apellido3<<endl<<"Nota Final: "<<nfinal[i]<<endl<<endl;
						break;
				}
			}
		}
	/*	
	cout<<"Que registro desea modificar: ";cin>>n;cout<<endl;
	fseek(archivo,n*sizeof(estudiante),SEEK_SET);
	
	fread(&estudiante,sizeof(estudiante),1,archivo);
	
	strcpy(estudiante.nombre,"AqWsRtZ1");
	fseek(archivo,n*sizeof(estudiante),SEEK_SET);
	fwrite(&estudiante,sizeof(estudiante),1,archivo);	
	
	*/
	fclose(archivo);
 
	cout<<endl<<endl;
	system("pause");
	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