viernes, 14 de diciembre de 2012

proyecto final



proyecto de programación final 

nombre de proyecto: control de entradas y salidas de centro de computo del instituto tecnológico de Tijuana



pseudocodigo

inicio

#include <conio.h>
#include <iostream.h>
#include <fstream.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

void iniciar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
void lectura(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
void asignar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
void salir(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
void desplegar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
void borrartodo(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
void guardar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])

void main()
{
opcion, computadoras[72], hora1[72], hora2[72], minutos1[72], minutos2[72] int
sigue char

//Estructura para el tiempo (dia, mes, hora, año)
time_t rawtime
struct tm * timeinfo
time ( &rawtime )
timeinfo = localtime ( &rawtime )
iniciar(computadoras, hora1, hora2, minutos1, minutos2)
lectura(computadoras, hora1, hora2, minutos1, minutos2)

do
{

print   “  “
print  "                                Menu principal"
print   “  “
printf (asctime (timeinfo) )
print  "********************************************************************************"
print   “  “
print  "Seleccionar accion"
print   “  “
print  "1)Entrada"
print  "2)Salida"
print  "3)Desplegar lista de computadoras"
print  "4)Utileria de base de datos"
print  "Opcion: "
read  opcion
clrscr( )
print  endl

switch(opcion)
{
case 1:
print  "                                Entrada"
print   “  “
printf (asctime (timeinfo) )
print  "********************************************************************************"
print   “  “
asignar(computadoras, hora1, hora2, minutos1, minutos2)
break


case 2:
print  "                                Salida"
print   “  “
printf (asctime (timeinfo) )
print  "********************************************************************************"
print   “  “
salir(computadoras, hora1, hora2, minutos1, minutos2)
break


case 3:
print  "                         Desplegar lista de computadoras"
print   “  “
printf (asctime (timeinfo) )
print  "********************************************************************************"
print   “  “
desplegar(computadoras, hora1, hora2, minutos1, minutos2)
break


case 4:
print  "                         Utileria de base de datos"
print   “  “
printf (asctime (timeinfo) )
print  "********************************************************************************"
print   “  “
borrartodo(computadoras, hora1, hora2, minutos1, minutos2)
break

default:

print  "Error en opcion:"
}
if(opcion !=0)
{
print  "Presione cualquier tecla para continuar"

}
}
while(opcion!=0)

}
// Funciones para la base de datos.

// Funcion para reemplazar, en una cadena de caracteres 'str', todos los caracteres 'o' por caracteres 'v'.

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

// Funcion para agregar un nuevo usuario en la base de datos.

void registrarusuario()
{
char numero[16], nombre[128], carrera[128], semestre[16]
ofstream iusr

iusr.open("C://Datos//Base de datos.txt", ifstream::app)

cin.ignore(9001, '\n')
print  "Numero: "
cin.getline(numero, 16)
print  "Nombre:"
cin.getline(nombre, 128)
print  "Carrera: "
cin.getline(carrera, 128)
print  "Semestre: "
cin.getline(semestre, 16)

reemplazarcaracteres(carrera, ' ', '_')
reemplazarcaracteres(nombre, ' ', '_')
reemplazarcaracteres(semestre, ' ', '_')

iusr , numero , " " , nombre , " " , carrera , " " , semestre
}

// Funcion para verificar que el usuario este registrado en la base de datos y obtener sus datos.

bool buscarusuario(int numero, char nombre[128], char carrera[128], char semestre[16])
{
ifstream iusr
n int

iusr.open("C://Datos//Base de datos.txt")

while (iusr.good())
{
iusr  ,  n
if (n == numero)
{
iusr  ,  nombre  ,  carrera  ,  semestre
reemplazarcaracteres(nombre, '_', ' ')
reemplazarcaracteres(carrera, '_', ' ')
reemplazarcaracteres(semestre, '_', ' ')

return true
}
iusr.ignore(9001, '\n')
}
}

// Funciones para el registro de entradas y salidas
// Funcion para leer los datos del archivo.

void lectura(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
ifstream entrada
char fnombre[128]
time_t mt = time(0)
tm *lctm = localtime(&mt)

sprintf(fnombre, "C://Datos//%d-%d-%d.txt", lctm->tm_mday, lctm->tm_mon + 1, lctm->tm_year + 1900)
entrada.open(fnombre)
for(int i=0 to 72 step i++)
{
entrada  ,  computadoras[i]  ,  hora1[i]  ,  minutos1[i]  ,  hora2[i]  ,  minutos2[i]
}
}

// Funcion para guardar los datos en el archivo.

void guardar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
ofstream salida
fnombre[128] char
time_t mt = time(0)
tm *lctm = localtime(&mt)

sprintf(fnombre, "C://Datos//%d-%d-%d.txt", lctm->tm_mday, lctm->tm_mon + 1, lctm->tm_year + 1900)
salida.open(fnombre)
for(int i=0 to 72 step i++)
{
salida , computadoras[i] , " " , hora1[i] , " " , minutos1[i] , " " , hora2[i] , " " , minutos2[i]}
}

// Funcion para darle valor de 0 a todas las variables de los arreglos.

void iniciar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
for(int i=0 to 72 step i++)
{
computadoras[i]=hora1[i]=hora2[i]=minutos1[i]=minutos2[i]=0
}
}

// Funcion para desplegar cada computadora si esta ocupada o desocupada y la hora de entrada y salida.

void desplegar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
print   "\t\t\tNumero de control\tEntrada\t\tsalida"
for(int i = 0 i < 72 i++)
{
print  "Computadora " , (i+1) , “      “   , computadoras[i] , (!computadoras[i] ? "\t\t\t" : “      “  ) , hora1[i] , ":" , minutos1[i] , “      “   , hora2[i] , ":" , minutos2[i]
}
}

// Funcion para desocupar una computadora.

void salir(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
struct time t
num int

print  "Salida"
print  "Numero de computadora: "
read  num

num--

gettime(&t)
hora2[num]=t.ti_hour
minutos2[num]=t.ti_min
guardar(computadoras, hora1, hora2, minutos1, minutos2)
}

// Funcion para asignar una computadora al alumno, segun las computadoras desocupadas.

void asignar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
nombre[128], carrera[128], semestre[16], opc char
i, numero, comp int
struct time t

print   "Numero de control: "
read   numero

if (buscarusuario(numero, nombre, carrera, semestre))
{
print  "Alumno: " , nombre
print  "Carrera: " , carrera
print  "Semestre: " , semestre
}
else
{
print  "No es alumno del plantel"
print  "Se recomienda registrar"
print  "y pedir una identificacion."
print  "Desea registrar nuevo usuario (s/n): "
read   opc
if(opc=='s'||opc=='S')
{
registrarusuario()
}
}

for(i = 0 i < 72 i++)
{
if (computadoras[i] == numero && !hora2[i] && !minutos2[i])
{
print   "Este alumno ya tiene asignada una computadora"

}
}

print   "Seleccionar computadora (s/n): "
read   opc

if (opc == 's' || opc == 'S')
{
print   "Computadoras disponibles:"
for (i = 0 to 72 step  i++)
{
if (!computadoras[i])
{
print   "Computadora # "  ,  (i+1)
}
}

print   "Computadora deseada: "
read   comp
comp--

if (!computadoras[comp] || (hora2[comp] && minutos2[comp]))
{
i=comp
computadoras[i] = numero
gettime(&t)
hora1[i] = t.ti_hour
minutos1[i] = t.ti_min
hora2[i] = minutos2[i] = 0
guardar(computadoras, hora1, hora2, minutos1, minutos2)

}
else
{
print   "Esa computadora ya esta ocupada"

}
}

for(i = 0 i < 72 i++)
{
if(!computadoras[i]||(hora2[i] && minutos2[i]))
{
computadoras[i]=numero
gettime(&t)
hora1[i]=t.ti_hour
minutos1[i]=t.ti_min
hora2[i]=minutos2[i]=0
guardar(computadoras, hora1, hora2, minutos1, minutos2)
break
}
}
print  "Su computadora es: "
print  "Computadora " , (i+1)
}

// Funcion para borrar usuarios de la base de datos.

void borrarusuarios()
{
ofstream iusr
iusr.open("C://Datos//Base de datos.txt", ostream::trunc)
}

// Funcion para borrar base de datos.

void borrartodo(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int minutos2[72])
{
opc char
clave=12212012 int
pasword int

print  "Insertar clave de administrador: "
read  pasword
if(clave==pasword)
{
print  "Borrar base de datos(s/n): "
read  opc
if(opc=='s'||opc=='S')
{
borrarusuarios()
}
}
else
{
print  "Clave incorrecta"
}
}

fin 

lunes, 3 de diciembre de 2012

practica 13


problema de calificaciones de alumnos:




Pseudocódigo
Inicio
void agregar_datos_file()
{
ofstream salida
salida.open("C://Datos//grupo.txt",ios::app)
int j,calf
char name[30],sigue
int calif
do
{
print " Nombre = ? "
gets(name)
salida , name
for(j=1 j<=4 j++)
{
print "Calificacion " , j , " : "
read calf
salida , calf
}
print " Deseas Registrar otro alumno s/n ? "
read sigue
}
while(sigue=='s' || sigue=='S')
salida.close()
}
void listado_datos_file()
{
int i,suma=0,promedio
ifstream entrada
entrada.open("C://Datos//grupo.txt")
char nombre[30]
int c1
clrscr()
print "nombre alumno c1 c2 c3 c4 Promedio "
entrada.getline(nombre,30)
while(entrada.good())
{
print setw(20) , nombre
suma=0
for(i=1 i<=4 i++)
{
entrada>>c1
print setw(4) , c1
suma=suma + c1
}
promedio=suma/4
print setw(5) , promedio
entrada.ignore()
entrada.getline(nombre,30)
}
entrada.close()
}
void menu()
{
print "1)Agregar datos alumno "
print "2)Listado de alumnos "
print "3)Fin de programa "
print "Elige opcion ==> "
}
int main()
{
int opcion
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1: agregar_datos_file()
break
case 2: listado_datos_file()
getch()
break
case 3: print " Fin del programa "
getch()
break
default: print "Error en opcion "
break
}
}
while(opcion !=3)
}
fin


Este programa toma como referencia Pdf Ing. Bruno Lopez T.
Manejo de archivos en Lenguaje C++ .
Instituto Tecnológico de Nuevo Laredo




Pseudocódigo
Inicio
struct producto
{
int noProd
char descrip[30]
realprecio
int cantidad
}
producto Registro
FILE *alias
void ALTA_SECUENCIAL()
void CONSULTA_SECUENCIAL(void)
void LISTADO_SECUENCIAL(void)
void MODIFICACION_SECUENCIAL(void)
void BAJA_LOGICA_SECUENCIAL(void)
void BAJA_FISICA_SECUENCIAL(void)

int menu()

int main()
{
int opc
do
{
clrscr()
opc=menu()
switch(opc)
{
case 1:
ALTA_SECUENCIAL()
break
case 2:
CONSULTA_SECUENCIAL()
break
case 3:
LISTADO_SECUENCIAL()
break
case 4: MODIFICACION_SECUENCIAL()
break
case 5 : BAJA_LOGICA_SECUENCIAL()
break
case 6: BAJA_FISICA_SECUENCIAL()
break
case 7: print " Final programa "
break
default: print " Error en opcion"
}
}
while(opc !=7)
}
void ALTA_SECUENCIAL()
{
int no_prod // Variable local para el numero de producto
clrscr()
print " ALTAS DE REGISTROS DE PRODUCTOS"
alias=fopen("C:\\datos\\PRODUCTO.SEC","rb+") // Intenta abrir el archivo
// en modo de lectura/escritura
if(alias==NULL)
alias=fopen("c:\\datos\\PRODUCTO.SEC","wb") // Crea el archivo en caso de no
// existir
print " Numero de producto: " cin , no_prod
fread(&Registro,sizeof(Registro),1,alias)
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
// archivo
{
if(Registro.noProd==no_prod)
{
print " Registro duplicado !!!"
fclose(alias)
}
fread(&Registro,sizeof(Registro),1,alias)
}
print " Descripcion: " gets(Registro.descrip)
print " Cantidad : " cin , Registro.cantidad
print " Precio : " cin , Registro.precio
Registro.noProd=no_prod
fwrite(&Registro,sizeof(Registro),1,alias) // Grabar el Registro
fclose(alias) // Cierra el archivo
print " Producto registrado !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
void CONSULTA_SECUENCIAL(void)
{
int no_prod
clrscr()
print " CONSULTA DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb") // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de solo lectura
if(alias==NULL)
{
print " No existe el archivo !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
print " Numero de producto: " cin , no_prod
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
print " No Prod Descripcion Cantidad Precio "
print " ---------------------------------------------------- "
print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
fclose(alias)
print " , < Oprima cualquier tecla para continuar >>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
print " No se encuentra ese registro !!!"
fclose(alias) // Cierra el archivo
print " , < Oprima cualquier tecla para continuar >>>"
}
void LISTADO_SECUENCIAL(void)
{
clrscr()
print " LISTADO DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb") // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de solo lectura
if(alias==NULL)
{
print " No existe el archivo !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
print " No Prod Descripcion Cantidad Precio "
print " ------------------------------------------------------------------- "
fread(&Registro,sizeof(Registro),1,alias)
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
//archivo
{
print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
fread(&Registro,sizeof(Registro),1,alias)
}
fclose(alias) // Cierra el archivo
print " ------------------------------------------------------------------ "
print " Fin del listado !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
int menu()
{
int opcion
print " 1)alta de producto "
print " 2)Consulta de producto"
print " 3)Listado de productos"
print " 4)Modificar datos de productos"
print " 5)Baja Logica de productos"
print " 6)Baja Fisica de productos"
print " 7)Salida Programa"
print " Selecciona opcion = ? "
read opcion
return opcion
}
void MODIFICACION_SECUENCIAL(void)
{
int no_prod // Variable local para el numero de producto que desea
//modificar
clrscr()
print " MODIFICACION DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb+") // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de lectura/escritura
if(alias==NULL) // Valida la existencia del archivo
{
print " No existe el archivo !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
print " Numero de producto: " cin , no_prod
fread(&Registro,sizeof(Registro),1,alias)
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
//archivo
{
if(Registro.noProd==no_prod)
{
print " No Prod Descripcion Cantidad Precio "
print " -------------------------------------------------------------- "
print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
print " Anote los nuevos datos ..."
print " Descripcion: " gets(Registro.descrip)
print " Cantidad : " cin , Registro.cantidad
print " Precio : " cin , Registro.precio
// Es necesario reposicionar el apuntador del archivo al principio
//del
// registro que desea modificar, ya que al leer un registro, el
// apuntador se posiciona en el registro siguiente
// La funcion ftell(alias) devuelve la posicion donde se encuentra
// el apuntador
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)
fwrite(&Registro,sizeof(Registro),1,alias) // Graba el registro
// con los nuevos campos
fclose(alias) // Cierra el archivo
print " Registro modificado !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
print " No se encuentra ese registro !!!"
fclose(alias) // Cierra el archivo
print " , < Oprima cualquier tecla para continuar >>>"
}
void BAJA_LOGICA_SECUENCIAL(void)
{
int no_prod // Variable local para el numero de producto que desea
//eliminar
char op //Variable local
clrscr()
print " BAJAS LOGICAS DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb+") // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de lectura/escritura
if(alias==NULL) // Valida la existencia del archivo
{
print " No existe el archivo !!!"
print " , < Oprima cualquier tecla para continuar >>>"

}
print " Numero de producto: " cin , no_prod
fread(&Registro,sizeof(Registro),1,alias)
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
//archivo
{
if(Registro.noProd==no_prod)
{
print " No Prod Descripcion Cantidad Precio "
print " --------------------------------------------------------------- "
print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
Registro.noProd=0
strcpy(Registro.descrip,"")
Registro.cantidad=0
Registro.precio=0.0
do {
cout , " Esta seguro que desea borrarlo? [S/N] ---> "
op=toupper(getche())
}while(op!='S' && op!='N')
if(op=='S')
{
// Es necesario reposicionar el apuntador del archivo al principio del
// registro que desea modificar, ya que al leer un registro, el
// apuntador se posiciona en el registro siguiente
// La funcion ftell(alias) devuelve la posicion donde se encuentra
// el apuntador
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)
fwrite(&Registro,sizeof(Registro),1,alias) // Graba el registro
// con los nuevos campos
print " Registro eliminado !!!"
}
fclose(alias) // Cierra el archivo
print " , < Oprima cualquier tecla para continuar >>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
print " No se encuentra ese registro !!!"
fclose(alias) // Cierra el archivo
print " , < Oprima cualquier tecla para continuar >>>"
}
void BAJA_FISICA_SECUENCIAL(void)
{
FILE *temporal //Declaracion local de una variable para controlar el
// archivo temporal
clrscr()
print " BAJAS FISICAS DE REGISTROS DE PRODUCTOS"
alias=fopen("C:\\datos\\PRODUCTO.SEC","rb") // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de solo lectura
if(alias==NULL) // Valida la existencia del archivo
{
print " No existe el archivo !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
temporal=fopen("C:\\datos\ EMPORAL.TMP","wb") // Crea el archivo TEMPORAL.TMP
fread(&Registro,sizeof(Registro),1,alias)
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del archivo
{
if(Registro.noProd!=0)
fwrite(&Registro,sizeof(Registro),1,temporal)
/ Graba el registro valido en el archivo temporal
fread(&Registro,sizeof(Registro),1,alias)
}
fcloseall() // Cierra todos los archivos abiertos
remove("C:\\datos\\PRODUCTO.SEC") //Elimina el archivo original
rename("C:\\datos\ EMPORAL.TMP","C:\\datos\\PRODUCTO.SEC")
//Renombra el archivo temporal con el nombre del archivo original
print " Archivo compactado !!!"
print " , < Oprima cualquier tecla para continuar >>>"
}
Fin



practicas en clase



Pseudocódigo
Inicio
struct alumno
{
char nocontrol[8]
char nombre[30]
int calf[4]
}
alumno a[10]
void leerdatosalumno(int n)
void desplegardatosalumno(int n)
int main()
{
int x
print "numero de datos a registrar: "
read x
leerdatosalumno(x)
desplegardatosalumno(x)
}
void leerdatosalumno(int n)
{
 i,j int
for(i=0 to n step  i++)
{
cin.ignore()
print "Numero de Control: "
cin.getline(a[i].nocontrol,8,' ')
cin.ignore()
print "Nombre del almno: "
gets(a[i].nombre)
for(j=0 to 4 step j++)
{
print "calificacion: " , (j+1) , " : "
read a[i].calf[j]
}
}
}
void desplegardatosalumno(int n)
{
 i,j int
print "No control nombre c1 c2 c3 c4 "
for(i=0  to n step i++)
{
print a[i].nocontrol , "" , setw(20) , a[i].nombre , " "
for(j=0 to 4 step j++)
{
print setw(3) , a[i].calf[j]
}
}
}

fin

practicas en clase




//practica 16
Pseudocodigo
inicio
struct alumno
{
char nocontrol[8]
char nombre[30]
int calf[4]
}
alumno a[10]
void leerdatosalumno(int n)
void desplegardatosalumno(int n)
int main()
{
int x
print "numero de datos a registrar"
read x
leerdatosalumno(x)
desplegardatosalumno(x)
getch()
return 0
}
void leerdatosalumno(int n)
{
i,j int
for(i=0 to n step  i++)
{
cin.ignore()
print "Numero de Control: "
cin.getline(a[i].nocontrol,8,' ')
cin.ignore()
print "nombredel almno: "
gets(a[i].nombre)
for(j=0 to 4 step j++)
{
print "calificacion: " , (j+1) , " : "
read a[i].calf[j]
}
}
}
void desplegardatosalumno(int n)
{
i,j int
print "No control nombre c1 c2 c3 c4 promedio "
for(i=0  to n step  i++)
{
 suma int
 promedio real
print a[i].nocontrol , " " , setw(15) , a[i].nombre , " "" "
for(j=0 to 4 step  j++)
{
suma=suma+a[i].calf[j]
promedio=suma/4
print  a[i].calf[j]
}
print " " , promedio
}
}

Fin

domingo, 2 de diciembre de 2012

Quinta tarea de a 3er unidad


1.       ¿Que se necesita para recuperar datos fuera de un programa en c++?
-          solo se necesita un archivo y un objeto de flujo de archivo.

2.       ¿Qué es un archivo?
-          Es una colección de datos almacenados juntos bajo un nombre común.

3.       ¿Qué son los datos almacenado en un  archivo de un programa?
-          Son el código del programa que se convierte en datos de entrada para el compilador de c++.
4.       ¿De que manera  aguarda o almacena  un archivo y en que medio?
-          Un archivo se almacena en forma física en un medio externo como un disco.
5.       ¿Qué es un archivo de flujo?
-          Es una ruta de transmisión unidireccional utilizada para conectar un archivo almacenado en un dispositivo físico,como un disco o un CD-ROM.
6.       ¿Cómo se le conoce al flujo de archivo que envía o escribe datos?
-          Se conoce como flujo de archivo de salida.
7.       ¿Qué se requiere para hacer un programa que lea y escriba en un archivo?
-          Se requiere un objeto  de flujo de archivo de entrada y uni de salida.
8.       ¿Como se declaran los objetos de flujo de archivo de entrada y salida?
-          Archivo de Entrada (ifstream)
-          Archivo de Salida (ofstream)
9.       ¿Qué indica cuando el método fail() devuelve un valor booleano?
-          Indica que la apertura fallo
10.   ¿Cuál es la descripción del método dail?
-          Devuelve un valor booleano verdadero  o el archivo no se ha abierto con éxito?
11.   ¿Cuál es la descripción de método  wif()?
-          Devuelve un valor booleano verdadero o se ha invertido leer más allá de final de archivo.
12.   ¿Con que método se cierra un archivo?
-          Un archivo se cierra usando el método close ()
13.   ¿Qué función tiene el método close ()?
-          Este método rompe la conexión entre el nombre entero del archivo y el objeto de flujo de archivo, le cual puede ser usado por otro archivo.
14.   ¿ de que depende el almacenamiento real de caracteres en el archivo?
-          Depende de los códigos de caracteres usados por la computadora
15.   ¿a que es igual leer datos de un archivo basado en texto?
-          Es igual a leer datos d un tecladoestandar,excepto que el objeto cin es remplazado po el objeto  ifstream.
16.   ¿Cuál es la descripción del método get()?
-          Devuelve el siguiente carácter del flujo de entrada como un int.
17.   ¿Qué es un objeto de archivo lógico?
-           Es un flujo que conecta un archivo de datos relacionado lógicamente,como un archivo de datos.
18.   ¿Qué un objeto de archivo físico?
-          Es un flujo que conecta a un dispositivo de hardware como teclado, pantalla o impresora.
19.   ¿a que se le llama archivo estándar de entrada’
-          El dispositivo físico asignado a su programa para la instrucción de datos
20.   Cuando se ejecuta el programa ¿a que esta conectado el flujo de entrada estándar cin?
-          El flujo de entrada cin esta conectado con el dispositivo estándar de entrada



problema 10 de la pagina 470 de libro de  texto de la segunda edicion.

problema 10a



Problema  10a
pseudocodigo
Inicio
int main()
{
string nombre_archivo="datos.dat" 
ofstream archivo_sal 

archivo_sal.open(nombre_archivo.c_str()) 

if (archivo_sal.fail())
{
print "el archivo no  habrio con exito"
exit(1) 
}
archivo_sal , setiosflags(ios::fixed) , setiosflags(ios::showpoint) , setprecision(3) 
print "Nombre" , "      " , "   Tarifa" , "  " , "Horas"
print "-----------------------------"
print "Callaway,G." , "  " , "6.00" , "  " , "40" , "    "
print "Hanson,P." , "  " , "5.00" , "  " , "48"
print "Lasard,D." , "  " , "6.50" , "  " , "35"
print "Stillman,W." , "  " , "8.00" , "  " , "50"

archivo_sal , "Nombre" , "      " , "   Tarifa" , "  " , "Horas"
archivo_sal , "-----------------------------"
archivo_sal , "Callaway,G." , "  " , "6.00" , "  " , "40" , "    "
archivo_sal , "Hanson,P." , "  " , "5.00" , "  " , "48"
archivo_sal , "Lasard,D." , "  " , "6.50" , "  " , "35"
archivo_sal , "Stillman,W." , "  " , "8.00" , "  " , "50"
archivo_sal.close() 
getch() 
return 0 
}

 fin



problema 10 b



Problema 10b
Pseudocodigo
inicio
int main()
{
string nombre_archivo="datos.dat" 
ofstream archivo_sal 
archivo_sal.open(nombre_archivo.c_str()) 
if (archivo_sal.fail())
{
print "el archivo no  habrio con exito"
exit(1) 
}
archivo_sal , setiosflags(ios::fixed) , setiosflags(ios::showpoint) , setprecision(3) 


print "Nombre" , "      " , "   Tarifa" , "  " , "Horas" , "  " , "Pago bruto" , "  " , "Pago de tiempo extra" , "  " , "Pago regular"
print "-----------------------------------------------------------------------------"
print "Callaway,G." , "  " , "6.00" , "  " , "40" , "    " , (40*6) , "                        " , (0) , "               " , (40*6)
print "Hanson,P." , "  " , "5.00" , "  " , "48" , "       " , (48*1.5 + 48*5) , "                     " , 48*1.5 , "      " , 48*5
print "Lasard,D." , "  " , "6.50" , "  " , "35" , "         " , (35*6.50) , "                  " , 0 , "                  " , 35*6.50
print "Stillman,W." , "  " , "8.00" , "  " , "50" , "     " , (50*1.5 + 50*8.0) , "                  " , 50*1.5 , "      " , 50*8.0

archivo_sal , "Nombre" , "      " , "   Tarifa" , "  " , "Horas"
archivo_sal , "-----------------------------"
archivo_sal , "Callaway,G." , "  " , "6.00" , "  " , "40" , "    "
archivo_sal , "Hanson,P." , "  " , "5.00" , "  " , "48"
archivo_sal , "Lasard,D." , "  " , "6.50" , "  " , "35"
archivo_sal , "Stillman,W." , "  " , "8.00" , "  " , "50"


archivo_sal.close() 
getch() 
return 0 
}

fin



miércoles, 28 de noviembre de 2012

cuarta tarea de la 3er unidad


   
cuestionario

 de archivos en lenguaje C++ de las 
pag. 8-37 

hecho por jorge andres hernandez carrillo del pdf de
Ing. Bruno Lopez Takeyas M.C. ITNuevo Laredo



1.    ¿Relación entre la memoria principal, el microprocesador y dispositivos de almacenamiento secundario?
-         Existe una estrecha relación entre la memoria principal, el microprocesador y los dispositivos de almacenamiento secundario ya que el procesamiento que realiza una computadora es tarea absoluta del microprocesador en conjunción con la memoria principal; es decir, los dispositivos de almacenamiento secundario (diskettes, discos duros, CDs, flash drives, etc.)  no procesan datos, sólo los almacenan.
2.    ¿Qué es datos en c++?
-         Básicamente se refieren a los testimonios individuales relacionados
Con hechos, ya sean características de ciertos objetos de estudio o
Condiciones particulares de situaciones dadas.
3.    ¿Como se llama los elementos individuales de los archivos?
-         Datos o campos.
4.    ¿Que es un Registro?
-         Es el conjunto completo de datos relacionados pertenecientes a una entrada
5.    ¿Que es  un Archivo en términos computacionales?
-         Es una colección de datos que tiene un nombre y se guardan en dispositivos de almacenamiento secundario, los cuales pueden ser magnéticos, ópticos, electrónicos, etc.
6.    Da unos ejemplos de archivos en términos computacionales.
-         Diskettes, discos duros, CD´s, ZIP drives, flash drives, memory sticks, etc.
7.    ¿Que es y da un ejemplo de Una base de datos?
-         Es una colección de archivos relacionados y un Ejemplo es Profesores, alumnos y materias están correlacionados.
8.    ¿Que establece al abrir el archivo?
-         establece comunicación entre el programa y el sistema operativo a
Cerca de cómo accesarlo.
9.    ¿Que es necesario que el programa le proporcione al sistema operativo para que haiga comunicación entre ellos?
-         el nombre completo del archivo y la intención de uso (leer o escribir datos), entonces se definen áreas de comunicación entre ellos.
10.                     ¿Cuales son unas de esas áreas ya mencionadas?
-         Una de estas áreas es una estructura que controla el archivo (alias del archivo), de esta forma cuando se solicita una operación del archivo, se recibe una respuesta que informa el resultado mediante un apuntador.
11.                     ¿Qué requiere Cada archivo abierto?
-         Cada archivo abierto requiere un alias para poder realizar operaciones.
12.                     ¿Que información  contiene La estructura del archivo?
-         La estructura del archivo contiene información del archivo que se está usando, así como el tamaño actual y la localización de los buffers de datos.
13.                     ¿Cual es la clasificación de archivo mas importante acuerdo al contenido?
-         Archivo Texto y archivo binario.
14.                     ¿Qué son el archivo de texto y archivo binario?
-         los archivo de texto Son aquellos que pueden contener cualquier clase de datos y de tal manera que son “entendibles” por la gente.
-         Los archivos binarios Este tipo de archivos almacenan los datos numéricos con su representación binaria. Pueden ser archivos que contienen instrucciones en lenguaje máquina.
15.                     ¿Cual es la Clasificación de archivos por tipo de acceso de acuerdo a la         forma de acceder los datos de los archivos?
-         éstos se clasifican en secuenciales o directos (también conocidos como de acceso directo, relativos o aleatorios).
16.                     ¿Qué son los archivos secuenciales o directos?
-         este tipo de archivos los registros se graban en secuencia o consecutivamente y deben accesarse de ese mismo modo, es decir, conforme se van insertando nuevos registros, éstos se almacenan al final del último registro almacenado; por lo tanto, cuando se desea consultar un registro almacenado es necesario recorrer completamente el archivo leyendo cada registro y comparándolo con el que se busca.
17.                     ¿cual es la diferencia de los archivos secuenciales y Archivos directos?
-         A diferencia de los archivos secuenciales, en los archivos directos no es necesario recorrerlo completamente para acceder un registro en particular, sino se puede colocar el apuntador interno del archivo directamente en el registro deseado, permitiendo con esto mayor rapidez de acceso.

18.                     ¿En que consiste usar direcciones lógicas para archivos en leguaje  c++?
-         Consiste en que el direccionamiento consiste en el espacio ocupado por los datos en el archivo (calculado en bytes) no en el renglón al que se asignó dicho registro

19.                     ¿Que se tiene que hacer Para poder reposicionar el apuntador de un archivo en un registro específico?
-         es necesario calcular su dirección física correspondiente de acuerdo al espacio ocupado por sus registros predecesores. 
20.                     ¿Para que se usa La función fopen () en un programa en c++?
-         Se usa la función  fopen para abrir un archivo, determinar el modo de apertura y establecer la vía de comunicación mediante su alias correspondiente. Además determinar el tipo de contenido del archivo (texto o binario).
21.                     ¿Qué función hace el la fopen si un archivo no se puede abrir en un programa en c++?
-         la función fopen devuelve el valor de 0 (cero), definido como NULL en stdio.h.
22.                     ¿que función hacen fclose() y fcloseall() al Cierre de archivos en un programa en c++?
-         Si se usa  fclose es necesario indicarle el alias del archivo que se desea cerrar. La función  fcloseall cierra todos los archivos abiertos.
23.                     Cual es la función en Escritura de registros usando fwrite() en un programa en c++?
-         La función  fwrite proporciona el mecanismo para almacenar  todos los
Campos de un registro en un archivo.

24.                     ¿Que es y que función tiene Un buffer en un programa de c++?
-         Es un área de almacenamiento temporal en memoria para el conjunto de datos leídos o escritos en el archivo.
-         La función es que retienen datos en  tránsito desde y hacia al archivo y tienen la finalidad de hacer más eficiente las operaciones de entrada/salida en los archivos de disco, provocando menor cantidad de accesos, los cuales son más lentos que la memoria.
25.                     ¿Cual es la función de Lectura de registros usando fread() en un programa en c++?
-         La función fread permite “cargar”  todos los campos de un registro en un
Archivo, es decir, lee un registro y lo copia en la memoria RAM.

26.                     ¿Cuál son los puntos de referencia?
-         SEEK_SET  Desde el principio del archivo  
-         SEEK_CUR  Desde la posición actual del apuntador del archivo
-         SEEK_END  Desde el final del archivo

27.                     ¿para que se usa la función rewind() en un programa en c++?
-         Se usa la función rewind para colocar el apuntador del archivo al principio de un archivo abierto sin necesidad de usar la función  fseek. Basta con enviar el alias del archivo como argumento
28.                     ¿para que se usa feof() en un programa en c++?
-         Se usa el macro  feof() (definido en  stdio.h) para determinar si se ha encontrado el final de un archivo. Si se encuentra el final de un archivo, devuelve un valor diferente de cero y  cero en caso contrario
29.                     ¿Qué función u objetivo tiene rename() en un programa en c++ y cuales son sus argumentos?
-         Esta función tiene como objetivo cambiar el nombre de un archivo o subdirectorio especificado por su ruta de acceso.
-         Sólo necesita dos argumentos: el nombre anterior del archivo y el nuevo nombre.

30.                     Cual es la función remove() en un programa en c++?
-         La función remove elimina definitivamente un archivo especificando su
Nombre.