lunes, 17 de diciembre de 2012

Practica 13

Problema 1
 
Pseudocodigo:
 
struct producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto Registro
FILE *alias
inicio 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\\PRODUCTO.SEC","wb")
print "\n\n\n\rNumero de producto: "; cin >> 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: "
read 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 >>>"
}
fin funcion void ALTA_SECUENCIAL
 

inicio funcion void CONSULTA_SECUENCIAL(void)
{
no_prod int
clrscr()
print "\n\rCONSULTA 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: "
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 CONSULTA_SECUENCIAL
 

inicio funcion void LISTADO_SECUENCIAL(void)
{
clrscr()
print "\n\rLISTADO DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb"); // Intenta abrir el archivo
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 >>>"
}
fin funcion void LISTADO_SECUENCIAL
inicio funcion int menu()
{
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)Baja Logica de productos"
print "\n6)Baja Fisica de productos"
print "\n7)Salida Programa"
print "\n\nSelecciona opcion = ?  "
read opcion
return opcion
}
fin funcion int menu
inicio 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\rNo existe el archivo !!!"
print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
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\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 : "
read Registro.cantidad
print "\n\rPrecio : "
read 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 >>>"
}
fin funcion void MODIFICACION_SECUENCIAL
inicio 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: "
read no_prod
fread(&Registro,sizeof(Registro),1,alias)
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
Registro.noProd=0
strcpy(Registro.descrip,"")
Registro.cantidad=0
Registro.precio=0.0
do {
cout <<"\n\n\rEsta seguro que desea borrarlo? [S/N] ---> "
op=toupper(getche())
}while(op!='S' and 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 >>>"
}
fin funcion void BAJA_LOGICA_SECUENCIAL
inicio 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 funcion void BAJA_FISICA_SECUENCIAL
 
inicio funcion principal
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 : BAJA_LOGICA_SECUENCIAL()
break
case 6: BAJA_FISICA_SECUENCIAL()
break
case 7: print "\n\nFinal programa "
break
default: print "\nError en opcion"
  }
}
while(opc !=7)
fin

 
Lenguaje C++
 
Problema 2
 
Pseudocodigo:
 
inicio funcion void salida_datos_file(int n)
 {
 ofstream salida
 salida.open("C:\\Datos\\calificaciones.txt")
 i int
 name[30] char

for(i=1 to n step i=i+1)
 {
 print "nombre ",i,"= "
 gets(name)
 salida,name

}
 salida.close()
 }

fin funcion void salida_datos_file
 
inicio funcion void agregar_datos_file()
 {
 ofstream salida
 salida.open("C:\\Datos\\calificaciones.txt",ios::app)
 i=1 int
 name[30],sigue char
 do
 {
 print "nombre ",i,"= "
 gets(name)
 salida,name
 print "\nDeseas continuar s/n "
 read sigue
 }
 while(sigue=='s' or sigue=='S')
 salida.close()
 }

fin funcion void agregar_datos_file

inicio funcion void entrada_datos_file()
 {
 ifstream entrada

entrada.open("C:\\Datos\\calificaciones.txt")
name[30] char
 print "\nListado de nombre \n"
 entrada.getline(name,30)
print name
 while(!entrada.eof())
 {
 entrada.getline(name,30)
 print ,name
 }
 entrada.close()
 }

fin funcion void entrada_datos_file

inicio funcion void almacena_calif(int n)
 {
 ofstream salida
 salida.open("C:\\Datos\\calificaciones.txt")
 r,c,calif int
 for(r=0 to <n r=r+1)
 {
 print "introduce calificaciones del estudiante ",(r+1)
 for(c=0 to <6 step c=c+1)
 {
 print "calificacion ",(c+1),"= "
 read calif
 salida calif," "
 }
 salida, "\n"
 }
 salida.close()
 }

fin funcion void entrada_datos_file

inicio funcion void leer_archivo_calif(int a[20][6],int promedio[20],int n)
 {
 ifstream entrada
 entrada.open("C:\\Datos\\calificaciones.txt")
 int r,c,suma
 for(r=0 to <n step r=r+1)
 {
 suma=0
 for(c=0 to <6 step c=c+1)
 {
 entrada a[r][c]
 print a[r][c],"\t"
 suma=suma+a[r][c]
 }

promedio[r]=suma/6
 print promedio[r]
 }
 entrada.close()
 }

fin funcion void entrada_datos_file

inicio funcion void menu()
 {
 print "  Menu de opciones \n"
 print "\n1)agregar nombre de alumnos "
 print "\n2)Listado de nombre de alumnos "
 print "\n3)agregar calificaciones de alumnos "
 print "\n4)Listado de calificaciones"
 print "\n5)Fin de programa\n"
 print "Seleccione opcion --->"
 }

fin funcion void menu

inicio programa
n,opcion int
c[20][6],p[20] int
 print "cantidad de alumnos "
 read n
 do
 {
 clrscr()
 menu()
 read opcion
 switch(opcion)
 {
 case 1:salida_datos_file(n)
 break
 case 2:entrada_datos_file()
 break
 case 3:almacena_calif(n)
 break
 case 4:
   print "listado de calificaciones alumnos\n\n"
   leer_archivo_calif(c, p, n)
       break
 case 5: print "\n\n FIN PROGRAMA\n "
         break
 default: print "error en opcion "
 }
 }
 while(opcion!=5)
 fin


Lenguaje C++


Problema 3

Pseudocodigo:
inicio funcion void almacena_datos_archivo()
{
ofstream salida
salida.open("C:\\datos\\numeros.txt")
i,j,n,dato int
for(i=1 to 3 step i=i+1)
{
print "cantidad de datos del grupo: ",i
read n
salida,n
for(j=1 to n step j=j+1)
{
print "dato ",j," grupo ",i,": "
read dato
salida,dato
}
}
salida.close()
}

fin funcion void almacena_datos_archivo

inicio funcion void leer_datos_archivo()
{
ifstream entrada
entrada.open("C:\\datos\\numeros.txt")
dato,n,suma,i,j int
for(i=1 to 3;step i=i+1)
{
entrada,n
suma=0
for(j=1 to n;step j=j+1)
{
entrada,dato
suma=suma+dato
}
print "el promedio del grupo ",i," es: ",(suma/n)
}
entrada.close()
}

fin funcion void leer_datos_archivo

inicio funcion void listado_datos_archivo()
{
dato int
ifstream entrada
entrada.open("C:\\datos\\numeros.txt")
if(entrada.fail())
{
print  "\nEl archivo no se abrio con exito\n por favor comprueve que el archivo existe\n"
exit(1)
}
print "listado datos archivo \n\n"
entrada,dato
while(!entrada.eof())
{
print dato," "
entrada>>dato
}
entrada.close()
}

funcion void listado_datos_archivo

inicio funcion void menu()
{
print "1)Crear el archivo de grupo de numeros \n\n"
print "2)Leer datos archivo para calcular el promedio sde cada grupo \n\n"
print "3)Listado de datos \n\n"
print "4)salida del programa \n\n"
print "seleccione opcion==> "
}

fin funcion void menu

inicio programa
opcion int
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1:almacena_datos_archivo()
break
case 2:leer_datos_archivo()
break
case 3:listado_datos_archivo()
break
case 4:print "\n\nsalida del programa "
break
default:print "error en opcion \n\n"
}
}
while(opcion !=4)

fin

Lenguaje C++



Problema 4

Pseudocodigo:

inicio funcion void agregar_datos_file()
{
ofstream salida
salida.open("C://Datos//grupo.txt",ios::app)
j,calf int
name[30],sigue char
calif int
do
{
 print "Nombre = ? "
gets(name)
salida,name
for(j=1 to 4 step j=j+1)
{
 print "Calificacion ",j," : "
 read calf
salida,calf
}
 print "\n\nDeseas Registrar otro alumno s/n ? "
 read sigue
  }
while(sigue=='s'  or sigue=='S')
salida.close()
}

fin funcion void agregar_datos_file

 inicio funcion void listado_datos_file()
{
 i,suma=0,promedio int
ifstream entrada
entrada.open("C://Datos//grupo.txt")
 nombre[30] char
 c1 int
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 to 4 step i=i+1)
{
entrada,c1
  print setw(4),c1
  suma=suma + c1
  }
promedio=suma/4
  print ,setw(5),promedio
  entrada.ignore()
  entrada.getline(nombre,30)
  }
entrada.close()
   }

fin funcion void listado_datos_file

 inicio funcion void menu()
{
  print "1)Agregar datos alumno\n"
  print "2)Listado de alumnos\n "
  print "3)Fin de programa\n"
  print "Elige opcion ==> "
  }

fin funcion void menu


inicio programa
opcion int
do
{
clrscr()
menu()
 read opcion
switch(opcion)
{
case 1: agregar_datos_file()
    break
case 2: listado_datos_file()
    break
case 3: cout<<"\n\nFin del programa \n\n"
    break
default: print "Error en opcion "
   break
}
}
while(opcion !=3)
fin


Lenguaje C++

No hay comentarios:

Publicar un comentario