PROYECTO EN LENGUAJE C CÓDIGO FUENTE #include <iostream.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define tamano 1 struct empleado { char codigo[50]; char proyecto[50]; char nombre[50]; char fechaini[50]; char fechater[50]; char porce[50]; char descrip[100]; }; struct empleado vector[tamano]; void ingreso(); void visualizar(); void eliminar_uno(); void listado(); void modificar(); void guardar_estructura(struct empleado vector[]); 1 void leer_estructura(struct empleado vector[]); int tamanio(char *a) ; bool ( compara(char *a,char *b)); char * password="151088"; int main() { char pass[20] ; int opcion; leer_estructura(vector); //para la presentacion del menu do { //clrscr(); --> tambien se puede utilizar system("cls"); system("color 1a"); cout<< "\tBienvenido a Proyecto:\n"; time_t rawtime; time ( &rawtime ); printf ( "EL dia y La hora es: %s", ctime (&rawtime) ); cout<< "\t----------------------\n"; cout<<"\t1) \tIngreso Datos \n"; cout<<"\t2) \tReportes \n"; cout<<"\t3) \tModificar\n"; cout<<"\t4) \tBorrar Registro\n"; cout<<"\t5) \tEliminar archivo\n"; cout<<"\t6) \tSalir \n"; cout<< "\t-----------------------\n\t"; while (!(cin >> opcion)) { cout << "\nOpcion invalida!." << "\nRe-ingrese su opcion: "; cin.clear(); fflush(stdin); } switch(opcion) { case 1: { cout<<"\n\tSi desea ingresar datos ingrese su"; cout<<"\n\tPass: "; int conta=0; int i=0; //Se piden caracteres hasta que se introdusca enter while(pass[i]!=13) { //Capturamos caracter pass[i]=getch(); 2 //Si es un caracter valido y no se ha sobrepasado el limite de 20 caracteres se imprime un asterisco if(pass[i]>32 && i<20) { putchar('*'); i++; //Si se pulsa la tecla RETROCESO, se retrocede un caracter, se imprime un espacio para eliminar el asterisco y se vuelve a retroceder para que el siguiente asterisco se coloque a continuacion del anterior. } else if(pass[i]==8 && i>0) { putchar(8); putchar(' '); putchar(8); i--; } } pass[i]='\0'; if(!strcmp(pass, password)) { printf("\a\n\n\n\n\n\tACCESO PERMITIDO\n"); ingreso(); } else { printf("\n\n\n\n\n\t\t**ACCESO DENEGADO**"); system("pause"); } } break; case 2: visualizar(); //getch(); //system("pause"); break; case 3: modificar(); //getch(); system("pause"); break; case 4: eliminar_uno(); //getch(); system("pause"); break; case 5: if( remove( "c:registro.txt" ) ) perror( "Error al borrar el archivo" ); else puts( "archivo borrado" ); 3 getch(); break; case 6 : cout<<"Presione enter para salir"; } } while(opcion!=6); //getch(); system("pause"); } void ingreso() { for (int i=0; i<tamano; i++) { cout<<"***********registro********************\n"; fflush(stdin); cout<<"Ingrese el codigo del proyecto\t"<<(i+1)<<":\t\n"; gets(vector[i].codigo); fflush(stdin); cout<<"Ingreso del nombre del proyecto\n"; gets(vector[i].proyecto); fflush(stdin); cout<<"Ingrese una breve descripcion del proyecto\n"; gets(vector[i].descrip); fflush(stdin); cout<<"Ingrese el nombre y apellido del responsable\n"; gets(vector[i].nombre); fflush(stdin); cout<<"Ingrese la fecha de inicio \n"; gets(vector[i].fechaini); fflush(stdin); cout<<"Ingrese la fecha de terminacion \n"; gets(vector[i].fechater); fflush(stdin); cout<<"Ingrese el porcentaje del proyecto hasta la fecha \n"; gets(vector[i].porce); fflush(stdin); } guardar_estructura(vector); } //Funcion para visualizar void visualizar() 4 { for(int i=0; i<tamano; i++) { cout << "\n*********************************\n"; //cout << "codigo del proyecto" << (i+1) << ":\t\n"; cout << vector[i].codigo << endl; //cout << "Nombre del proyecto: \t\n"; cout << vector[i].proyecto << endl; //cout << "Descripcion del proyecto:\t\n"; cout << vector[i].descrip << endl; //cout << "Nombre del responsable: \t\n"; cout << vector[i].nombre << endl; //cout << "Fecha de inicio: \t\n"; cout << vector[i].fechaini << endl; //cout << "Fecha de Terminacion: \t\n"; cout << vector[i].fechater << endl; //cout << "Porcentaje del proyecto: \t\n"; cout << vector[i].porce << endl; system("pause"); } } void modificar() { char pass[20]; cout<<"\n\tSi desea modificar un registro ingrese su"; cout<<"\n\tPass: "; int conta=0; int i=0; //Se piden caracteres hasta que se introdusca enter while(pass[i]!=13) { pass[i]=getch(); if(pass[i]>32 && i<20) { putchar('*'); i++; } else if(pass[i]==8 && i>0) { putchar(8); putchar(' '); putchar(8); i--; } } pass[i]='\0'; if(!strcmp(pass, password)) { printf("\a\n\n\n\n\n\tACCESO PERMITIDO\n"); 5 for(int i=0; i<tamano; i++) { cout<< "\t\nNombre de proyecto:\n" << vector[i].proyecto <<"\t\nresponsable:\n" <<vector[i].nombre<<"\t\nFecha de inicio:\n"<<vector[i].fechaini<<"\t\nFecha de terminacion:\n" <<vector[i].fechater <<"\t\nporcentahe:\n"<<vector[i].porce<<"\n"; cout<<"**********************************\n"; fflush(stdin); //Esta linea la he agregado cout<< "Ingrese Nombre del proyecto: \t\n"; gets( vector[i].proyecto ); fflush(stdin); cout<<"Ingrese el nombre y apellido del responsable\n"; gets(vector[i].nombre); fflush(stdin); cout<<"Ingrese la fecha de inicio \n"; gets(vector[i].fechaini); fflush(stdin); cout<<"Ingrese la fecha de terminacion \n"; gets(vector[i].fechater); fflush(stdin); cout<<"Ingrese el porcentaje del proyecto \n"; gets(vector[i].porce); //getch(); system("pause"); break; } guardar_estructura(vector); } else { printf("\n\n\n\n\n\t\t**ACCESO DENEGADO**"); } //getch(); system("pause"); } void eliminar_uno() { char codigo[50]; cout<< "Ingrese el codigo alumno, cuyo registro desea eliminar: \t"; cin >> codigo; for(int i=0; i<tamano; i++) { if(compara(codigo,vector[i].codigo)) { cout<< "eliminando proyecto codigo "<< vector[i].codigo << "\tNombre de proyecto:" << vector[i].proyecto <<"\tresponsable:" <<vector[i].nombre<<"\tFecha de inicio:"<<vector[i].fechaini<<"\tFecha de terminacion:" <<vector[i].fechater <<"\n"; vector[i].codigo[0]= '\0'; 6 fflush(stdin); vector[i].proyecto[0]='\0'; fflush(stdin); vector[i].nombre[0]='\0'; fflush(stdin); vector[i].fechaini[0]='\0'; fflush(stdin); vector[i].fechater[0]='\0'; fflush(stdin); system("pause"); } } } int tamanio(char *a) { int i=0; while(a[i]!='\0') i++; return i; } bool compara(char *a,char *b) { bool n=true; if(tamanio(a)==tamanio(b)) { int i; for(i=0; a[i]!='\0'; i++) if(a[i]!=b[i]) { n=false; break; } } else n=false; return n; } void guardar_estructura(struct empleado vector[]) { FILE* archivo=fopen("c:registro.txt","w"); fwrite(vector, sizeof(struct empleado), tamano, archivo); fclose(archivo); } void leer_estructura(struct empleado vector[]) { FILE* archivo=fopen("c:registro.txt","a+"); fread(vector, sizeof(struct empleado),tamano, archivo); fclose(archivo); } 7