viernes, 14 de diciembre de 2012

Practica 13

Problema 1

Pseudocodigo:




Inicio.

registro producto

 {

 noProd int

 descrip[30] char

 precio real

 cantidad int

 }

 producto Registro

 FILE*alias



funcion  void ALTA_SECUENCIAL()

 {

 no_prod int

 clrscr()

 Print "\n\rALTAS DE REGISTROS DE PRODUCTOS"

 alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")

 if(alias==NULL)

 alias=fopen("c:\\Datos\\PRODCTO.SEC","wb")

 Print "\n\n\n\rNumero de producto:"  Read no_prod;

 fread(&Registro,sizeof(Registro),1,alias)

 while(!feof(alias))

 {

 if(Registro.noProd==no_prod)

 {

 Print "\n\n\n\rRegistro duplicado!!!"

 fclose(alias)



 }

 fread(&Registro,sizeof(Registro),1,alias)

 }

 Print "\n\rDescripcion:"  gets(Registro.descrip)

 Print "\n\rCantidad:"  Read  Registro.cantidad

 Print "\n\rPrecio:" Read  Registro.precio

 Registro.noProd=no_prod

 fwrite(&Registro,sizeof(Registro),1,alias)

 fclose(alias)

 Print "\n\n\n\rProducto registrado!!!"

 Print "\n\r<<<Oprima cualquier tecla para continuar >>>   "



 }

Funcion  void CONSULTA_SECUENCIAL(void)

 {

  no_prod int 

 clrscr()

 Print "\n\rCONSULTA DE REGISTROS DE PRODUCTOS"

 alias=fopen("c:\\Datos\\PRODUCTOS.SEC","rb")

 if(alias==NULL)

 {

 Print "\n\n\n\rNo existe el archivo!!!"

 Print "\n\r<<<Oprima cualquier tecla para continuar>>>"



 }

 Print "\n\n\n\rNumero de producto:" Read  no_prod;

 while(!feof(alias))

 {

 if(Registro.noProd==no_prod)

 {

 Print "\n\rNo Prod Descripcion Cantidad precio"

Print "\n\r------------------------------------------------------------\n\n"

Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio

fclose(alias)

Print "\n\r<<< Oprima cualquier tecla para continuar>>>"



}

fread(&Registro,sizeof(Registro),1,alias)

}

Print "\n\rNo se encuentra ese registro !!!"

fclose(alias)

Print "\n\r<<<Oprima cualquier tecla para continuar>>>"



}

funcion  void LISTADO_SECUENCIAL(void)

{

clrscr()

Print "\n\rLISTADO DE REGISTRO DE PRODUCTOS"

alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb")

if(alias==NULL)

{

Print "\n\n\n\rNo existe el archivo!!!"

Print "\n\r<<< Oprima cualquier tecla para continuar>>>"



}

Print "\n\rNo Prod Descripcion Cantidad Precio"

Print "\n\r------------------------------------------\n\n"

fread(&Registro,sizeof(Registro),1,alias);

while(!feof(alias))

{

Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio

fread(&Registro,sizeof(Registro),1,alias)

}

fclose(alias)

Print "\n\r-----------------------------------------------------------------\n\n"

Print "\n\rFin del listado!!!"

Print "\n\r<<<Oprima cualquier tecla para continuar>>>"



}

menu() int 

{

opcion int 

Print "\n\n1)alta de producto"

Print "\n2)Consulta de producto"

Print "\n3)Listado de productos"

Print "\n4)Modificar datos de productos"

Print "\n5)Salida programa"

Print "\n\nSeleccioa opcion=?"

Read opcion

return opcion

}

funcion void MODIFICACION_SECUENCIAL(void)

 {

 no_prod int 

 clrscr()

 Print "\n\rMODIFICACION DE REGISTROS DE PRODUCTOS"

 alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")

 if(alias==NULL)

 {

 Print "\n\n\n\r No existe el archivo!!!"

 Print "\n\r<<< Oprima cualquier tecla para continuar>>>"


 }

 Print "\n\n\n\rNumeros de producto:" Read no_prod

 fread(&Registro,sizeof(Registro),1,alias)

 while(!feof(alias))

 {

 if(Registro.noProd==no_prod)

 {

 Print "\n\rNo prod descripcion Cantidad precio\n\n"

 Print "\n\r--------------------------------------------\n\n"

 Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio

 Print "\n\n\n\rAnote los nuevos datos..."

 Print "\n\rDescripcion:";gets(Registro.descrip)

 Print "\n\rCantidad:"; cin>>Registro.cantidad

 Print "\n\rprecio:"; cin>>Registro.precio

 fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)

 fwrite(&Registro,sizeof(Registro),1,alias)

 fclose(alias)

 Print "\n\n\n\rRegistro modificado!!!"

 Print "\n\r<<< Oprima cualquier tecla para continuar>>>"



 }

 fread(&Registro,sizeof(Registro),1,alias)

 }

 Print "\n\rNo se encuentra ese registro!!!"

 fclose(alias)

 Print "\n\r<<<Oprima cualquier tecla para continuar>>>"


 }

  main() int 



{

opc int 

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: Print "\n\nFinal programa"

break;

default: Print "\nError en opcion"

 }

}



while(opc !=5)

Fin.



Problema 2.

Pseudocodigo:



Inicio.

registro producto

 {

 noProd int

 descrip[30] char

 precio real

 cantidad int

 }

 producto Registro

 FILE*alias



funcion  void ALTA_SECUENCIAL()

 {

 no_prod int

 clrscr()

 Print "\n\rALTAS DE REGISTROS DE PRODUCTOS"

 alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")

 if(alias==NULL)

 alias=fopen("c:\\Datos\\PRODCTO.SEC","wb")

 Print "\n\n\n\rNumero de producto:"  Read no_prod;

 fread(&Registro,sizeof(Registro),1,alias)

 while(!feof(alias))

 {

 if(Registro.noProd==no_prod)

 {

 Print "\n\n\n\rRegistro duplicado!!!"

 fclose(alias)



 }

 fread(&Registro,sizeof(Registro),1,alias)

 }

 Print "\n\rDescripcion:"  gets(Registro.descrip)

 Print "\n\rCantidad:"  Read  Registro.cantidad

 Print "\n\rPrecio:" Read  Registro.precio

 Registro.noProd=no_prod

 fwrite(&Registro,sizeof(Registro),1,alias)

 fclose(alias)

 Print "\n\n\n\rProducto registrado!!!"

 Print "\n\r<<<Oprima cualquier tecla para continuar >>>   "



 }

Funcion  void CONSULTA_SECUENCIAL(void)

 {

  no_prod int 

 clrscr()

 Print "\n\rCONSULTA DE REGISTROS DE PRODUCTOS"

 alias=fopen("c:\\Datos\\PRODUCTOS.SEC","rb")

 if(alias==NULL)

 {

 Print "\n\n\n\rNo existe el archivo!!!"

 Print "\n\r<<<Oprima cualquier tecla para continuar>>>"



 }

 Print "\n\n\n\rNumero de producto:" Read  no_prod;

 while(!feof(alias))

 {

 if(Registro.noProd==no_prod)

 {

 Print "\n\rNo Prod Descripcion Cantidad precio"

Print "\n\r------------------------------------------------------------\n\n"

Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio

fclose(alias)

Print "\n\r<<< Oprima cualquier tecla para continuar>>>"



}

fread(&Registro,sizeof(Registro),1,alias)

}

Print "\n\rNo se encuentra ese registro !!!"

fclose(alias)

Print "\n\r<<<Oprima cualquier tecla para continuar>>>"



}

funcion  void LISTADO_SECUENCIAL(void)

{

clrscr()

Print "\n\rLISTADO DE REGISTRO DE PRODUCTOS"

alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb")

if(alias==NULL)

{

Print "\n\n\n\rNo existe el archivo!!!"

Print "\n\r<<< Oprima cualquier tecla para continuar>>>"



}

Print "\n\rNo Prod Descripcion Cantidad Precio"

Print "\n\r------------------------------------------\n\n"

fread(&Registro,sizeof(Registro),1,alias);

while(!feof(alias))

{

Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio

fread(&Registro,sizeof(Registro),1,alias)

}

fclose(alias)

Print "\n\r-----------------------------------------------------------------\n\n"

Print "\n\rFin del listado!!!"

Print "\n\r<<<Oprima cualquier tecla para continuar>>>"



}

menu() int 

{

opcion int 

Print "\n\n1)alta de producto"

Print "\n2)Consulta de producto"

Print "\n3)Listado de productos"

Print "\n4)Modificar datos de productos"

Print "\n5)Salida programa"

Print "\n\nSeleccioa opcion=?"

Read opcion

return opcion

}

funcion void MODIFICACION_SECUENCIAL(void)

 {

 no_prod int 

 clrscr()

 Print "\n\rMODIFICACION DE REGISTROS DE PRODUCTOS"

 alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")

 if(alias==NULL)

 {

 Print "\n\n\n\r No existe el archivo!!!"

 Print "\n\r<<< Oprima cualquier tecla para continuar>>>"


 }

 Print "\n\n\n\rNumeros de producto:" Read no_prod

 fread(&Registro,sizeof(Registro),1,alias)

 while(!feof(alias))

 {

 if(Registro.noProd==no_prod)

 {

 Print "\n\rNo prod descripcion Cantidad precio\n\n"

 Print "\n\r--------------------------------------------\n\n"

 Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio

 Print "\n\n\n\rAnote los nuevos datos..."

 Print "\n\rDescripcion:";gets(Registro.descrip)

 Print "\n\rCantidad:"; cin>>Registro.cantidad

 Print "\n\rprecio:"; cin>>Registro.precio

 fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)

 fwrite(&Registro,sizeof(Registro),1,alias)

 fclose(alias)

 Print "\n\n\n\rRegistro modificado!!!"

 Print "\n\r<<< Oprima cualquier tecla para continuar>>>"



 }

 fread(&Registro,sizeof(Registro),1,alias)

 }

 Print "\n\rNo se encuentra ese registro!!!"

 fclose(alias)

 Print "\n\r<<<Oprima cualquier tecla para continuar>>>"


 }

  main() int 



{

opc int 

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: Print "\n\nFinal programa"

break;

default: Print "\nError en opcion"

 }

}



while(opc !=5)



funcion void BAJA_LOGICA_SECUENCIAL(void)
{
no_prod int 
op char
clrscr()
Print  "\n\rBAJAS LOGICAS DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb+")
if(alias==NULL) 
{
Print  "\n\n\n\rNo existe el archivo !!!"
Print  "\n\r<<< Oprima cualquier tecla para continuar >>>"

}
Print  "\n\n\n\rNumero de producto: " Rad  no_prod
fread(&Registro,sizeof(Registro),1,alias)
{
if(Registro.noProd==no_prod)
{
Print  "\n\rNo Prod Descripcion Cantidad Precio "
Print  "\n\r---------------------------------------------------------------\n\n"
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 {
Print "\n\n\rEsta seguro que desea borrarlo? [S/N] ---> "
op=toupper(getche())
}while(op!='S' && op!='N')
if(op=='S')
{
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)
fwrite(&Registro,sizeof(Registro),1,alias); 
Print  "\n\n\n\rRegistro eliminado !!!"
}
fclose(alias)
Print  "\n\r<<< Oprima cualquier tecla para continuar >>>"

}
fread(&Registro,sizeof(Registro),1,alias)
}
Print  "\n\rNo se encuentra ese registro !!!"
fclose(alias)
Print  "\n\r<<< Oprima cualquier tecla para continuar >>>"
}

funcion  void BAJA_FISICA_SECUENCIAL(void)
{
FILE *temporal
clrscr()
Print  "\n\rBAJAS FISICAS DE REGISTROS DE PRODUCTOS" alias=fopen("C:\\datos\\PRODUCTO.SEC","rb"); 
if(alias==NULL) 
{
Print  "\n\n\n\rNo existe el archivo !!!"
Print "\n\r<<< Oprima cualquier tecla para continuar >>>"

}
temporal=fopen("C:\\datos\\TEMPORAL.TMP","wb"); 
fread(&Registro,sizeof(Registro),1,alias)

while(!feof(alias)) 
{
if(Registro.noProd!=0)
fwrite(&Registro,sizeof(Registro),1,temporal)

fread(&Registro,sizeof(Registro),1,alias)
}
fcloseall() 
remove("C:\\datos\\PRODUCTO.SEC")
rename("C:\\datos\\TEMPORAL.TMP","C:\\datos\\PRODUCTO.SEC")
Print  "\n\n\n\rArchivo compactado !!!"
Print  "\n\r<<< Oprima cualquier tecla para continuar >>>"
}

fin.

Problema 3.


Pseudocodigo:


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.




No hay comentarios:

Publicar un comentario