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