viernes, 14 de diciembre de 2012

Proyecto

//Proyecto final
//Leonardo fraire, Ezequiel mendez, Alejandra macias
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
void desplegar();

void fecha()
{
cout<<""<<endl;
cout<<"\t\tAGENDA"<<endl;
char sdate[9];
_strdate(sdate);
cout<<endl;
cout<<"                       "<<"\t\t\t\t\t fecha "<<sdate<<endl;
}

void reemplazar(char *str, char o, char v)
{
 char *p;
 while (p = strchr(str, o)) {*p = v;}
}

void datos() //Entrada de datos
{
ofstream salida;
salida.open("F://Agenda.txt", ios::app);
int telefono, celular;
char nombre[40], sigue;
char correo[30], cumpleanos[10];
char nextel[15];
char direccion[40];
char stime[10];
char sdate[10];

_strdate(sdate);
do{
_strtime(stime);
clrscr();
fecha();

cout << " Introduzca Nombre del contacto: ";
cin.ignore(9000, '\n');
cin.getline(nombre, 40, '\n');
cout <<endl;

cout<<" Introduzca No. de Telefono: [          ]\b\b\b\b\b\b\b\b\b\b\b";
cin>>telefono;
cout<<endl;

cout<<" Introduzca No. de Celular : 664[          ]\b\b\b\b\b\b\b\b\b\b\b";
cin>>celular;
cout<<endl;

cout<<" Introduzca No. de nextel :[          ]\b\b\b\b\b\b\b\b\b\b\b";
cin.ignore(9000, '\n');
cin.getline(nextel, 15, '\n');
cout<<endl;

cout<<" Introduzca su Email: ";
cin>>correo;
cout<<endl;

cout<<" Introduzca fecha de cumpleanos:[          ]\b\b\b\b\b\b\b\b\b\b";
cin>>cumpleanos;
cout<<endl;

cout<<" Introduzca su Direccion: ";
cin.ignore(9000, '\n');
cin.getline(direccion, 40, '\n');
cout<<endl;

reemplazar(nombre, ' ', '_');
reemplazar(direccion, ' ', '_');


salida<<nombre<<" "<<telefono<<" "<<celular<<" "<<correo<<" "<<direccion<<" "<<nextel<<" "<<cumpleanos<<endl;
cout<<" Desea registrar otro contacto: s/n? [ ] \b\b\b";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
clrscr();
}


void entrada_datos_file() //Busca nombre
{
 char nombre[40], nombrebuscar[40], direccion[40], nextel[15], correo[30], cumpleanos[10];
 int telefono, celular;

 clrscr();
 cout<<endl;
 fecha();
 ifstream entrada;

 entrada.open("F://Agenda.txt",ios::app);
 cout << "Nombre: ";
 cin.ignore(9001, '\n');
 cin.getline(nombrebuscar, 40, '\n');

 while(entrada.good())
 {
  entrada >> nombre;
  reemplazar(nombre, '_', ' ');
  if (!strcmp(nombre, nombrebuscar))
  {
   entrada >> telefono >> celular >> correo >> direccion >> nextel >> cumpleanos;
   reemplazar(direccion, '_', ' ');
   cout<< "Nombre: " <<nombre<<endl;
   cout<< "Telefono: " <<telefono<<endl;
   cout<< "Celular: " <<celular<<endl;
   cout<< "Correo: " <<correo<<endl;
         cout<< "nextel: " <<nextel<<endl;
         cout<< "cumpleaños: " <<cumpleanos<<endl;
   cout<< "Direccion: " <<direccion<<endl;
   return;

  }
 }

 cout<< "No encontrado" <<endl;
}


void menu ()
{
cout<<" \t\n\t\t Bienvenido \n "<<endl;
cout<<"\t Elija una opcion para continuar\n"<<endl;
cout<<"\t\t 1) Registrar un contacto\n "<<endl;
cout<<"\t\t 2) Consultar contacto\n  "<<endl;
cout<<"\t\t 3) Desplegar todos los contactos \n"<<endl;
cout<<"\t\t 4) Desplegar contactos por cumpleanos\n"<<endl;
cout<<"\t\t 5) Salir\n";

}
void desplegarcumple();
void main (void)
{
int opc;
do{
ofstream salida;
salida.open("F://Agenda.txt", ios::app);

menu();
cout<<"\n\t Selecione una opcion: ";
cin>>opc;

switch (opc)
{
case 1:
datos();
break;
case 2:
entrada_datos_file();
break;
case 3: desplegar();
break;
case 4: desplegarcumple();
break;
}
}
while (opc!=5);
}
void desplegarcumple()
{
ifstream entrada;
entrada.open("F://Agenda.txt");
int telefono, celular;
char nombre[40], sigue;
char correo[30], cumpleanos[10];
char nextel[15];
char direccion[40];
char mes[3];
 clrscr();
 cout << "Introducir el numero de mes: ";
 cin >> mes;


 entrada>>nombre;
 while(entrada.good())
 {
 entrada>>telefono;
 entrada>>celular;
 entrada>>correo;
 entrada>>direccion;
 entrada>>nextel;
 entrada>>cumpleanos;

 if (cumpleanos[3] == mes[0] && cumpleanos[4] == mes[1])
 {
 cout<<"Nombre: "<<nombre<<endl;
 cout<<"Telefono: "<<telefono<<endl;
 cout<<"Celular: "<<celular<<endl;
 cout<<"Correo: "<<correo<<endl;
 cout<<"Direccion: "<<direccion<<endl;
 cout<<"Nextel: "<<nextel<<endl;
 cout<<"Fecha de nacimiento: "<<cumpleanos<<endl;
 cout<<endl;
 cout<<"**************************************************************"<<endl;
 cout<<endl;
 }
 entrada>>nombre;
}
entrada.close();
getch();
}

void desplegar()  //Desplegar contactos
 {
 ifstream entrada;
 entrada.open("F://Agenda.txt");
 int telefono, celular;
char nombre[40], sigue;
char correo[30], cumpleanos[10];
char nextel[15];
char direccion[40];
 clrscr();
 //entrada.getline(nombre,40);
 entrada>>nombre;
 while(entrada.good())
 {
 entrada>>telefono;
 entrada>>celular;
 entrada>>correo;
 entrada>>direccion;
 entrada>>nextel;
 entrada>>cumpleanos;

 cout<<"Nombre: "<<nombre<<endl;
 cout<<"Telefono: "<<telefono<<endl;
 cout<<"Celular: "<<celular<<endl;
 cout<<"Correo: "<<correo<<endl;
 cout<<"Direccion: "<<direccion<<endl;
 cout<<"Nextel: "<<nextel<<endl;
 cout<<"Fecha de nacimiento: "<<cumpleanos<<endl;
 cout<<endl;
 cout<<"**************************************************************"<<endl;
 cout<<endl;
 entrada>>nombre;
}
entrada.close();
getch();
}


sábado, 1 de diciembre de 2012

Tarea 5

Cuestionario


1.- ¿Qué es un archivo?
Es una colección de datos que tiene un nombre y se guardan en dispositivos de almacenamiento secundario


2.- ¿En que repercute guardar en los dispositivos secundarios al programar archivos?
Al momento de hacerle modificaciones a los datos se tiene que cargar en la memoria principal primeramente para poder modificarlos y localizar los riesgos en el archivo, para posteriormente leerlo y colocarlo en la memoria RAM.
 

3.- ¿Qué son los Datos?
Son los testimonios individuales relacionados con hechos, ya sean características de estudio o condiciones particulares de situaciones dadas.


4.- ¿Qué es un Registro?
Es el conjunto de datos relacionados pertenecientes a una entrada.


5.- ¿Qué es necesario para realizar la apertura de u archivo?
Proporcionar al sistema operativo el nombre completo del archivo y la intención de uso


6.- ¿Cuál es la estructura de un archivo?
Contiene información del archivo que se utiliza, el tamaño del archivo y la localización de los buffers de datos.

7.- ¿Cuales son las clasificaciones de archivos por contenido?
Texto: Son aquellos que pueden contener cualquier clase de datos y de tal manera que son entendibles por el usuario.

Binario: Son los archivos que almacenan datos numéricos, con su representación binaria, estos archivos tienen representación el lenguaje maquina.

 
8.- ¿Los datos en un archivo de texto como se almacenan?
Utilizando el código ASCII en el cual cada carácter es representado por un simple byte


9.- ¿Definición de archivo de tipo secuencial?
Son registros que se graban en secuencia o consecutivamente, deben acezarse del mismo modo.

10.- ¿Función close()? Este método rompe la conexión entre el nombre externo del archivo y el objeto de flujo de archivos el cual puede ser usado por otro archivo

11.- ¿Dónde se posiciona el apuntador con frecuencia?
Al inicio del archivo, cuando se abre el archivo en modo de solo lectura, lectura/escritura, solo escritura y en modo agregar se posiciona al final del archivo.
 

12.- ¿En dirección física, sobre qué argumentos se reposiciona el apuntador?
El alias del archivo, la dirección física en bytes y el punto de referencia.

 
13.- ¿Cuáles son sus puntos de referencia principales?
“SEEK_SET”, “SEEK_CUR”, “SEEK_END”


14.- ¿Cómo podemos saber donde se encuentra el apuntador en un archivo?
Se usa la función ftell para reconocer la posición actual del apuntador.


15.- ¿ Como detectar el apuntador cuando esta al final del archivo?
Utilizamos el macro “feof ()”.


16.- ¿Cómo se cambia el nombre del archivo?
Al archivo s ele cambia el nombre utilizando rename ()”

 
17.- ¿En donde se aplica rename()?
Solo se utiliza en archivos cerrados.

18.- ¿Qué variable almacena la función “fwrite”?
Almacena la variable de tipo struct que representa el bloque de datos o campos.


19.- ¿A qué se refiere con Vaciado de los buffers con fflush?
Buffer es un área de almacenamiento temporal en memoria para el conjunto de datos leídos o escritor en el archivo, por eso se refiere al vaciado, utilizando el fflush, es para hacer el vaciado mas eficazmente.


20.- ¿Para qué se usa la función fread?
Permite leer un registro y copiarlo en la memoria RAM,