recurro a ustedes porque mi cabeza ah explotado,, no logro resolver el error llevo noches enteras en las cuales no logro resolverlo y me quedo dormido frente al monitor les dejo mi codigo para que lo revisen ustedes mismos gracias. el probkema reside en el metodo "inscribir alumno"
Código
#include <iostream> #include <conio.h> #include <string.h> #include <fstream> #include <stdlib.h> //Limpiar pantalla// #ifdef _WIN32 #define CLEAR "cls" #elif defined(unix)||defined(__unix__)||defined(__unix)||defined(__APPLE__)||defined(__MACH__) #define CLEAR "clear" #else #endif using namespace std; class proyecto { private: char nombre[100]; char carrera[100]; char num[100]; char curp[100]; public: void altaAlumno(); void bajaAlumno(); void modificarAlumno(); void listaAlumnos(); void menuPrincipal(); void detallesAlumno(); void mostarRegistro(char codigo [100]); }; void pausa(); void error(); void proyecto::menuPrincipal() { int o; do { cout<<"--------------------------------------------------------------------------"<<endl; cout<<" ~ PORTAL ASPIRANTES/ESTUDIANTES UV ~"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; cout<<" ADVERTENCIA: El uso de caracteres que no sean numeros enteros, "<<endl; cout<<" haran que el programa no corra, NO UTILIZAR LETRAS NI NUMEROS DECIMALES."<<endl; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"1. Inscribirse"<<endl; cout<<"2. Mostrar mis datos"<<endl; cout<<"3. Lista de Alumnos"<<endl; cout<<"4. Dar de baja"<<endl; cout<<"5. Modificar mis datos"<<endl; cout<<"6. Salir"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Elija una opcion: "<<endl; cin>>o; system(CLEAR); switch(o) { case 1: altaAlumno(); break; case 2: detallesAlumno(); break; case 3: listaAlumnos(); break; case 4: bajaAlumno(); break; case 5: modificarAlumno(); break; case 6: break; default: cout<<"Ha ingresado una opcion no valida."<<endl; break; } } while(o!=6); } void proyecto::altaAlumno() { ofstream escribir; ifstream checar; char auxCurp[100]; bool coincidencia=false; checar.open("alumnos.txt",ios::in); escribir.open("alumnos.txt",ios::app); if(escribir.is_open()&&checar.is_open()) { cout<<"--------------------------------------------------------------------------"<<endl; cout<<" INSCRIBIRSE"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; fflush(stdin); cout<<"Ingrese su Curp: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; if(strcmp(auxCurp,"")==0) do { cout<<"Curp no valido!, intentalo nuevamente: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; } while(strcmp(auxCurp,"")==0); do { checar.seekg(0); checar>>curp; while(!checar.eof()) { checar>>nombre>>carrera>>num; if(strcmp(curp,auxCurp)==0) { coincidencia=true; cout<<"\n\nYa existe un alumno con ese curp."<<endl; cout<<"Ingresa un curp valido: "<<endl; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; if(strcmp(auxCurp,"")==0) do { cout<<"\nCurp no valido!, intentalo nuevamente: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; } while(strcmp(auxCurp,"")==0); break; } checar>>curp; } if(checar.eof()&&strcmp(auxCurp,curp)!=0) coincidencia=false; } while(coincidencia==true); system(CLEAR); strcpy(curp,auxCurp); cout<<"--------------------------------------------------------------------------"<<endl; cout<<" INSCRIBIRSE"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Ingrese su Curp: "; cout<<curp; cout<<"\n\n"; fflush(stdin); cout<<"Ingrese su Nombre: "; cin.getline(nombre,100, '\0'); cout<<"\n\n"; fflush(stdin); cout<<"Ingrese la Carrera solicitada: "; cin.getline(carrera,100, '\0'); cout<<"\n\n"; fflush(stdin); cout<<"Ingrese su Numero de telefono: "; cin.getline(num,100, '\0'); cout<<"\n\n"; fflush(stdin); escribir<<curp<<"\n\n"<<nombre<<"\n\n"<<carrera<<"\n\n"<<num<<"\n\n"; cout<<"Inscripcion exitosa, Bienvenido."<<endl; } else { error(); } escribir.close(); checar.close(); pausa(); } void proyecto::bajaAlumno() { ifstream leer; ofstream auxiliar; bool encontrado=false; char auxCurp[100]; char mismoCurp[100]; char respuesta[5]; leer.open("alumnos.txt",ios::in); auxiliar.open("auxiliar.txt",ios::out); cout<<"--------------------------------------------------------------------------"<<endl; cout<<" SISTEMA DE BAJAS"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; if(leer.is_open()&&auxiliar.is_open()) { fflush(stdin); cout<<"Ingresa el Curp para dar de baja: "<<endl; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; leer>>curp; while(!leer.eof()) { leer>>nombre>>carrera>>num>>mismoCurp; if(strcmp(auxCurp,curp)==0) { encontrado=true; cout<<"\n\nCurp Encontrado\n\n"; cout<<"Curp: "<<curp<<endl; cout<<"Nombre: "<<nombre<<endl; cout<<"Carrera: "<<carrera<<endl; cout<<"Numero de telefono: "<<num<<endl; cout<<"\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Realmente deseas darte de baja: "<<nombre<<" (s/n)?: "; cin.getline(respuesta,5, '\n'); if(strcmp(respuesta,"s")==0||strcmp(respuesta,"S")==0|| strcmp(respuesta,"si")==0||strcmp(respuesta,"SI")==0|| strcmp(respuesta,"Si")==0||strcmp(respuesta,"sI")==0) { cout<<"\n\nTe has dado de naja correctamente\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; } else { cout<<"\n\nCliente conservado\n\n"; auxiliar<<curp<<"\n\n"<<nombre<<"\n\n"<<carrera<<"\n\n"<<num<<"\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; } } else { auxiliar<<curp<<"\n\n"<<nombre<<"\n\n"<<carrera<<"\n\n"<<num<<"\n\n"; } leer>>curp; } if(encontrado==false) { cout<<"\n\nNo se encontro el curp: "<<auxCurp<<"\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; } } else { error(); } leer.close(); auxiliar.close(); remove("alumnos.txt"); rename("auxiliar.txt","alumnos.txt"); pausa(); } void proyecto::detallesAlumno() { char auxCurp [100]; ifstream mostrar; bool encontrado=false; mostrar.open("alumnos.txt",ios::in); if(mostrar.is_open()) { fflush(stdin); cout<<"--------------------------------------------------------------------------"<<endl; cout<<" CONSULTAR MIS DATOS"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Ingrese su curp por favor: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; mostrar>>curp; while(!mostrar.eof()) { mostrar>>nombre>>carrera>>num; if(strcmp(auxCurp,curp)==0) { encontrado=true; cout<<"\n\nRegistro Encontrado\n\n"; cout<<"Curp: "<<curp<<endl; cout<<"Nombre: "<<nombre<<endl; cout<<"Carrera: "<<carrera<<endl; cout<<"Numero de telefono: "<<num<<endl; cout<<"\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; } mostrar>>curp; } if(encontrado==false) { cout<<"\n\nNo se encontro el registro: "<<auxCurp<<"\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; } } else { error(); } mostrar.close(); pausa(); } void proyecto::modificarAlumno() { ifstream leer; ifstream checar; ofstream auxiliar; char auxCurp[100]; char curpModif[100]; char auxNombre[100]; char auxcarrera[100]; char auxnum[100]; char auxFecha[100]; bool encontrado=false; bool coincidencia=false; bool mismoCurp=false; leer.open("alumnos.txt",ios::in); checar.open("alumnos.txt",ios::in); auxiliar.open("auxiliar.txt",ios::out); cout<<"--------------------------------------------------------------------------"<<endl; cout<<" MODIFICAR MIS DATOS"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; if(leer.is_open()&&checar.is_open()&&auxiliar.is_open()) { fflush(stdin); cout<<"Ingrese su curp por favor: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; if(strcmp(auxCurp,"")==0) { do { cout<<"Curp invalido!, intentalo nuevamente: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; } while(strcmp(auxCurp,"")==0); } strcpy(curpModif,auxCurp); leer>>curp; while(!leer.eof()) { leer>>nombre>>carrera>>num; if(strcmp(auxCurp,curp)==0) { encontrado=true; mostarRegistro(curpModif); cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Ingresa la nueva informacion\n\n"; fflush(stdin); cout<<"Ingrese su curp: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; if(strcmp(auxCurp,curpModif)==0) { mismoCurp=true; } if(mismoCurp==false) { do { if(strcmp(auxCurp,curpModif)==0) { coincidencia=false; break; } checar.seekg(0); checar>>curp; while(!checar.eof()) { checar>>nombre>>carrera>>num; if(strcmp(curp,auxCurp)==0) { coincidencia=true; cout<<"\n\nYa existe un curp igual!\n\n"; cout<<"Ingresa un curp valido!: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; if(strcmp(auxCurp,"")==0) { do { cout<<"\n Curp no valido, "; cout<<"intentalo nuevamente: "; cin.getline(auxCurp,100, '\n'); cout<<"--------------------------------------------------------------------------"<<endl; } while(strcmp(auxCurp,"")==0); } break; } checar>>curp; } if(checar.eof()&&strcmp(auxCurp,curp)!=0) { coincidencia=false; } } while(coincidencia==true); } system(CLEAR); cout<<"--------------------------------------------------------------------------"<<endl; cout<<" MODIFICAR MIS DATOS"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Ingrese su Curp por favor: "; cout<<curpModif; mostarRegistro(curpModif); cout<<"--------------------------------------------------------------------------"<<endl; cout<<"\n\n"; cout<<"Ingresa la nueva informacion \n\n"; cout<<"Ingrese su Curp: "; cout<<auxCurp; cout<<"\n\n"; fflush(stdin); cout<<"Ingrese su Nomre: "; cin.getline(auxNombre,100, '\n'); fflush(stdin); cout<<"\n\n"; fflush(stdin); cout<<"Ingresa el Numero de telefono: "; cin.getline(auxnum,100, '\n'); cout<<"\n\n"; fflush(stdin); auxiliar<<auxCurp<<"\n\n"<<auxNombre<<"\n\n"<<auxcarrera<<"\n\n"<<auxnum <<"\n\n"; cout<<"Los datos de han modificado correctamente.\n\n"; } else { auxiliar<<curp<<"\n\n"<<nombre<<"\n\n"<<carrera<<"\n\n"<<num <<"\n\n"; } leer>>curp; } } else { error(); } if(encontrado==false) { cout<<"\n\nNo se encontro su curp.\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; } leer.close(); checar.close(); auxiliar.close(); remove("alumnos.txt"); rename("auxiliar.txt","alumnos.txt"); pausa(); } void proyecto::listaAlumnos() { int i=0; ifstream leer; leer.open("alumnos.txt",ios::in); if(leer.is_open()) { cout<<"--------------------------------------------------------------------------"<<endl; cout<<" LISTADOS DE ALUMNOS INSCRITOS"<<endl; cout<<"--------------------------------------------------------------------------"<<endl; leer>>curp; while(!leer.eof()) { i++; leer>>nombre>>carrera>>num; cout<<"Curp: "<<curp<<endl; cout<<"Nombre: "<<nombre<<endl; cout<<"Carrera: "<<carrera<<endl; cout<<"Numero de telefono: "<<num<<endl; leer>>curp; cout<<"--------------------------------------------------------------------------"<<endl; } if(i==1) cout<<"Solo hay un Alumno inscrito."<<endl; else cout<<"Hay un total de "<<i<<" Alumnos inscritos. "<<endl; } else { error(); } leer.close(); pausa(); } void pausa() { cout<<"Presiona Enter para continuar..."; getch(); system(CLEAR); } int main() { proyecto inicio; system ("color 00"); inicio.menuPrincipal(); return 0; } void error() { cout<<"No se pudo abrir el archivo de registros, asegurese que el archivo se encuentre en"<<endl; cout<<"la misma ubicacion que el programa o que el archivo de texto se llame: "<<endl; cout<<"alumnos.txt, si el archivo tiene otro nombre renombrelo al ya mencionado"<<endl; } void proyecto::mostarRegistro(char codigo[100]) { ifstream mostrar; mostrar.open("alumnos.txt",ios::in); mostrar>>curp; while(!mostrar.eof()) { mostrar>>nombre>>carrera>>num; if(strcmp(codigo,curp)==0) { cout<<"\n\nRegistro Encontrado\n\n"; cout<<"--------------------------------------------------------------------------"<<endl; cout<<"Curp: "<<curp<<endl; cout<<"Nombre: "<<nombre<<endl; cout<<"Carrera: "<<carrera<<endl; cout<<"Numero de telefono: "<<num<<endl; } mostrar>>curp; } mostrar.close(); }
[MOD] Usar etiquetas GeSHi para publicar codigo.