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