1 PROYECTO EN LENGUAJE C CÓDIGO FUENTE #include

Anuncio
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
Descargar