martes, 5 de mayo de 2015

Código para crear un archivo directo en C++

Hoy le enseñare un código para crear un archivo directo en C++ utilizando Visual Studio 2012 Primero Abren su Visual Studio -> Nuevo Proyecto-> Visual C++ -> Proyecto Vacio-> Le ponen el nombre y la ubicacion al proyecto y le ponen aceptar esperan a que se les habrá el proyecto-> Explorador de soluciones -> Clic derecho sobre el proyecto ->Agregar->Nuevo elemento Esperan a que se habra


Luego pegan este codigo , despues compilan precionando f6 esperan ->Despes de que diga compilacion correcta lo corren con ctrl + f5 o solo con f5
#include <stdio.h> // Para el manejo de archivos
#include <string.h> // Para el manejo de cadenas
#include <conio.h> // Para el manejo de clrscr
#include <iostream> // Para el manejo de cout
#include <ctype.h> // Para el uso de toupper
#include <Windows.h>
using namespace std;
struct tipo_registro
{                      // Campos:
  int no_prod;         // Numero de producto
  char descrip[65];    // Descripcion del articulo
  int cantidad;        // Cantidad disponible en almacen
  float precio;        // Precio del articulo
  char garantia;       // Tiene garantia? [S/N]
};

struct tipo_registro Registro; // Declaracion global de la variable
                                                      // "Registro" de tipo struct tipo_registro

FILE *alias;  // Declaracion global de la variable "alias" (apuntador a un
                      // archivo
long int dir_fisica;  // Declaracion global de la variable para calcular
                                     // la direccion fisica

void ALTA_DIRECTA(void); // Declaracion global de la rutina de Altas
void CONSULTA_DIRECTA(void); // Declaracion global de la rutina de Consultas
void MODIFICACION_DIRECTA(void); // Declaracion global de la rutina de Modificaciones
void BAJA_LOGICA_DIRECTA(void); // Declaracion global de la rutina de Baja Logica
void LISTADO_SECUENCIAL(void); // Declaracion global de la rutina de Listado

void main(void)
{
int op;
  do
  {
     system("cls");
     cout << "\n\n\r Programa que almacena datos de PRODUCTOS en un ARCHIVO DIRECTO";
     cout << "\n\n\r  Curso: \"Manejo de archivos en Lenguaje C++\"";
     cout << "\n\r  Instructor: Ing. Bruno Lopez Takeyas, M.C.";
     cout << "\n\n\n\r 1.- Altas directas";
     cout << "\n\r 2.- Consultas directas";
     cout << "\n\r 3.- Modificaciones directas";
     cout << "\n\r 4.- Bajas logicas directas";
     cout << "\n\r 5.- Listado Secuencial";
     cout << "\n\r 0.- Salir";

     cout << "\n\n\n\r Seleccione su opcion ---> ";
     cin >> op;

     switch(op)
     {
                case 1 : ALTA_DIRECTA();         break;
                case 2 : CONSULTA_DIRECTA();     break;
                case 3 : MODIFICACION_DIRECTA(); break;
                case 4 : BAJA_LOGICA_DIRECTA();  break;
                case 5 : LISTADO_SECUENCIAL();   break;
     }
  }while(op!=0);
  return;
}


void ALTA_DIRECTA(void)
{
  int no_prod;  // Variable local para el numero de producto
  system("cls");

  cout << "\n\rALTAS DE REGISTROS DE PRODUCTOS";
  alias=fopen("PRODUCTO.DIR","rb+"); // Intenta abrir el archivo PRODUCTO.DIR
                                                                    // en modo de lectura/escritura
  if(alias==NULL)
    alias=fopen("PRODUCTO.DIR","wb"); // Crea el archivo en caso de no existir


  cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;


  dir_fisica=no_prod*sizeof(Registro); // Calculo de la dir. fisica
  fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo

  fread(&Registro,sizeof(Registro),1,alias);
     // Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
  if(Registro.no_prod==no_prod)
  {
       cout << "\n\n\n\rRegistro duplicado !!!";
       fclose(alias);
       getch();
       return;
  }

  cout << "\n\rDescripcion: "; scanf("%s",&(Registro.descrip));
  cout << "\n\rCantidad   : "; cin >> Registro.cantidad;
  cout << "\n\rPrecio     : "; cin >> Registro.precio;
  do
  {
    cout << "\n\rGarantia   : "; Registro.garantia=toupper(getche());
  }while(Registro.garantia!='S' && Registro.garantia!='N');

  Registro.no_prod=no_prod;

  fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo
  fwrite(&Registro,sizeof(Registro),1,alias); // Grabar el Registro completo
  fclose(alias); // Cierra el archivo

  cout << "\n\n\n\rProducto registrado !!!";
  cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
  getch();
  return;
}

void CONSULTA_DIRECTA(void)
{
  int no_prod; // Variable local para el numero de producto que desea consultar
  system("cls");

  cout << "\n\rCONSULTA DE REGISTROS DE PRODUCTOS";
  alias=fopen("PRODUCTO.DIR","rb"); // Intenta abrir el archivo PRODUCTO.DIR
                                                                    // en modo de solo lectura
  if(alias==NULL)
  {
    cout << "\n\n\n\rNo existe el archivo !!!";
    cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
    getch();
    return;
  }

  cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;

  dir_fisica=no_prod*sizeof(Registro); // Calculo de la dir. fisica
  fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo
  fread(&Registro,sizeof(Registro),1,alias);
     // Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
  if(Registro.no_prod==no_prod)
  {
    cout << "\n\rNo Prod                    Descripcion  Cantidad        Precio  Garantia";
    cout << "\n\r------------------------------------------------------------------------";
    printf("\n\r%3d\t%30s\t%3d\t\t$%4.2f\t%c",Registro.no_prod,Registro.descrip,Registro.cantidad,Registro.precio,Registro.garantia);
  }
  else
  {
    cout << "\n\n\n\rNo existe ese registro !!!";
  }
  fclose(alias);
  cout << "\n\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";
  getch();
  return;
}

void MODIFICACION_DIRECTA(void)
{
  int no_prod; // Variable local para el numero de producto que desea modificar
  system("cls");

  cout << "\n\rMODIFICACION DE REGISTROS DE PRODUCTOS";
  alias=fopen("PRODUCTO.DIR","rb+"); // Intenta abrir el archivo PRODUCTO.DIR
                                                                    // en modo de lectura/escritura
  if(alias==NULL)  // Valida la existencia del archivo
  {
    cout << "\n\n\n\rNo existe el archivo !!!";
    cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
    getch();
    return;
  }

  cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;

  dir_fisica=no_prod*sizeof(Registro); // Calculo de la dir. fisica
  fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo
  fread(&Registro,sizeof(Registro),1,alias);
     // Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
  if(Registro.no_prod==no_prod)
  {
      cout << "\n\rNo Prod                    Descripcion  Cantidad        Precio  Garantia";
      cout << "\n\r------------------------------------------------------------------------";
      printf("\n\r%3d\t%30s\t%3d\t\t$%4.2f\t%c",Registro.no_prod,Registro.descrip,Registro.cantidad,Registro.precio,Registro.garantia);

      cout << "\n\n\n\rAnote los nuevos datos ...";
      cout << "\n\rDescripcion: "; scanf("%s",&(Registro.descrip));;
      cout << "\n\rCantidad   : "; scanf("%d",&(Registro.cantidad));;
      cout << "\n\rPrecio     : "; scanf("%f",&(Registro.precio));
      do
      {
                cout << "\n\rGarantia   : "; Registro.garantia=toupper(getche());
      }while(Registro.garantia!='S' && Registro.garantia!='N');

      // 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,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo
      fwrite(&Registro,sizeof(Registro),1,alias);  // Graba el registro con
                                                                                                 // los nuevos campos
      fclose(alias);   // Cierra el archivo
      cout << "\n\n\n\rRegistro modificado !!!";
      cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
      getch();
      return;
  }
  else
  {
   cout << "\n\n\n\rNo se encuentra ese registro !!!";
  }
  fclose(alias); // Cierra el archivo
  cout << "\n\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";
  getch();
  return;
}

void BAJA_LOGICA_DIRECTA(void)
{
  int no_prod; // Variable local para el numero de producto que desea eliminar
  char op;
  system("cls");

  cout << "\n\rBAJA LOGICA DE REGISTROS DE PRODUCTOS";
  alias=fopen("PRODUCTO.DIR","rb+"); // Intenta abrir el archivo PRODUCTO.DIR
                                                                    // en modo de lectura/escritura
  if(alias==NULL)  // Valida la existencia del archivo
  {
    cout << "\n\n\n\rNo existe el archivo !!!";
    cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
    getch();
    return;
  }

  cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;

  dir_fisica=no_prod*sizeof(Registro); // Calculo de la dir. fisica
  fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo
  fread(&Registro,sizeof(Registro),1,alias);
     // Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
  if(Registro.no_prod==no_prod)
  {
      cout << "\n\rNo Prod                    Descripcion  Cantidad        Precio  Garantia";
      cout << "\n\r------------------------------------------------------------------------";
      printf("\n\r%3d\t%30s\t%3d\t\t$%4.2f\t%c\n\n\n\n\r",Registro.no_prod,Registro.descrip,Registro.cantidad,Registro.precio,Registro.garantia);

      Registro.no_prod=0;
      strcpy(Registro.descrip,"");
      Registro.cantidad=0;
      Registro.precio=0.0;
      Registro.garantia=' ';

      // 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
      do
      {
                cout << "\n\rEsta seguro que desea eliminar este registro? [S/N] ---> ";
                op=toupper(getche());
      }while(op!='S' && op!='N');
      if(op=='S')
      {
                fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo
                fwrite(&Registro,sizeof(Registro),1,alias);  // Graba el registro con
                                                                                                 // los nuevos campos
                cout << "\n\n\n\rRegistro eliminado logicamente !!!";
      }
      else
      {
                    cout << "\n\n\n\rRegistro NO eliminado !!!";
      }
      fclose(alias);   // Cierra el archivo
      cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
      getch();
      return;
  }
  else
  {
   cout << "\n\n\n\rNo se encuentra ese registro !!!";
  }
  fclose(alias); // Cierra el archivo
  cout << "\n\n\n\n\r<<< Oprima cualquier tecla para continuar >>>";
  getch();
  return;
}

void LISTADO_SECUENCIAL(void)
{
  system("cls");

  cout << "\n\rLISTADO DE REGISTROS DE PRODUCTOS";
  alias=fopen("PRODUCTO.DIR","rb"); // Intenta abrir el archivo PRODUCTO.DIR
                                                                    // en modo de solo lectura
  if(alias==NULL)
  {
    cout << "\n\n\n\rNo existe el archivo !!!";
    cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
    getch();
    return;
  }

  cout << "\n\rNo Prod                    Descripcion  Cantidad        Precio  Garantia";
  cout << "\n\r------------------------------------------------------------------------";
  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
  {
    printf("\n\r%3d\t%30s\t%3d\t\t$%4.2f\t%c",Registro.no_prod,Registro.descrip,Registro.cantidad,Registro.precio,Registro.garantia);
    fread(&Registro,sizeof(Registro),1,alias);
  }
  fclose(alias); // Cierra el archivo
  cout << "\n\r------------------------------------------------------------------------";
  cout << "\n\rFin del listado !!!";
  cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
  getch();
  return;
}


lunes, 4 de mayo de 2015

Como Programar C o C++ en Visual Studio 2012

Hoy le voy a explicar como programar en C o C++ en Visual Studio para los que les tira erro en algunas funciones en este programa

Lo primero que haremos sera instalar el visual studio si es que no lo tienen instalado , si no lo han descargado lo pueden descargar desde Aqui,



Después de que termine de descargarse lo instalan y lo abren 


Después les aparecerá una interfaz como se muestra en la imagen


Después seleccionamos Nuevo Proyecto -> Visual C++ ->Proyecto vació


Esperan a que se abra  el  proyecto que ustedes acaban de crear
Ahora les aparecerá la siguiente ventana

                                      

ahora hacemos clic derecho en (Nombre que le asignaron al programa) en el explorador de soluciones  

Ahora nos vamos a agregar -> Después en nuevo elemento


Después le aparecerá una ventana hay seleccionan archivo C++ y le agregan un nombre al programa y esperan a que les abra.

Después Pegan este código en el programa

Este es el codigo mas basico de c++

#include <iostream> //Libreria de c++
using namespace std;

int main()
{
cout<<"Hola Mundo"<<endl; //cout sirve para mostrar y endl para salto de linea
return 0;
}

Codigo en C

#include <stdio.h> //Libreria de C

int main()
{
printf("Hola mundo\n"); //Printf misma funcion de c++ pero para c y \n salto de linea
return 0;
}


Mas adelante publicare otros programas y tambien algunas funciones que les pueden servir





Como aumentar rendimiento en windows 7 cualquier version

Bueno hoy hablaremos de como aumentar el rendimiento de windows 7 ,todos los pasos que les voy a explicar pueden servir para que los juegos puedan correr mejor ,también para que la computadora no se nos ponga lenta cuando trabajemos con programas pesados .

Empezamos
Primero ,sera ir a panel de control -> hardware y sonido->Opciones de Energía
hay elegimos alto rendimiento.






Segundo ,sera ir a propiedades del equipo(Clic Derecho sobre equipo->Propiedades)->Configuración avanzada del sistema (Administrador) ->Opciones avanzadas->En Rendimiento le dan configuración-> Después activan Ajustar para obtener mejor rendimiento (Advertencia: Se desactivaron los efectos Aero y su computadora tendrá un estilo clásico).






Tercero , Ir a Propiedades de gráficos(Clic derecho en escritorio->Propiedades de gráficos)-> Van al apartado 3D-> Preferencias de 3D-> Rendimiento (Advertencia: Los juegos se ven en baja resolución y algunos se pueden ver borrosos Ejemplo: Fifa 14 ).





Cuarto, Ir a ejecutar(Windows + R )->Escribir msconfig.exe -> Presionar Enter>Arranque->Opciones Avanzadas-> Numero de Procesadores : Ponen El máximo de procesadores que tengan -> Cantidad Máxima de memoria : Ponen el máximo de ram que tengan-> Aceptar-> Servicios-> Seleccionan ocultar servicios de Microsoft ->Hay ponen des-habilitar todos o pueden solo desactivar lo que no utilicen o los mas inservibles->Aplicar y aceptar-> Reinician la computadora para que se apliquen los cambios.









Quinto, Ir Ejecutar -> Escribir %temp%->Presionar Enter-> les aparecerá una Carpeta en esa carpeta Borran todos los archivos que estén dentro (Recomendación: Borra todo lo que este en la carpeta una vez a la semana o al mes).


Sexto , Ir Ejecutar -> Escribir TEMP (NO ES LO MISMO QUE %temp%)->Presionar Enter-> les aparecerá una Carpeta en esa carpeta Borran todos los archivos que estén dentro (Recomendación: Borra todo lo que este en la carpeta una vez a la semana o al mes) .




Algunos Programas que les pueden servir también  para aumentar el rendimiento son :

AVG tuneup 2015 (La mas recomendada)

Descargar Tune up

Game Booster 3 (El mejor para Rendimiento en Juegos)



Gracias por visitar mi blog y deje sus comentarios para ayudarnos a mejorar 



viernes, 7 de noviembre de 2014

"Carlo Ancelotti a comentado que no cree que Messi este al nivel de Cristiano Ronaldo"

Ancelotti : "creo que cerca de Cristiano habrá un jugador de Alemania ya que ellos ganaron el mundial pero no creo que hayan otros jugadores que puedan estar cerca de el"
" Los resultados son totalmente claro que el único que se merece el balón de oro es Cristiano Ronaldo, y sin contar con el argentino Leo Messi ,también señaló que la competencia seria entre CR7 y un jugador Aleman."

jueves, 6 de noviembre de 2014

Los Pinguinos de Madagascar La Pelicula

Ya esta un adelanto de la nueva pelicula de DreamWorks Los Pinguinos De Madagascar.
Es pelicula contara la historia de los 4 piguinos mas famosos del mundo, su inicios como unos niños indefensos hata convertirse en unos de los mejores episas del mundo.
Esta pelicula promete muchas risas y mas que todo accion a todo dar.
He aqui el adelanto de los pinguinos mas bonitos y gorditos.


Bob Esponja: Un Heroe Fuera Del Agua

Y han anunciado una nueva pelicula de la esponja mas famosa que vive en una piña debajo del mar.

En esta pelicula se puede ver a bob esponja dejando a fondo de bikini con sus amigo para recuperar la formula de las cancreburges que fue robada por un malvado pirtata.
Y se mira a bob esponja diferente a lo que estamos a ver ahora estara en animacin 3D.
Se espera que se estrene en 2015 aqui el trailer

Ultima película de: The Hobbit: The Battle of the Five Armies

Hoy se dio a concer el trailer de la trilogia de el hobbit, la entrega final.


Se epera que se estrene el mes de diciembre, se puede apreciar en le trailer una gran batalla epica como parte central de la pelicula.

Esta pelicula esta dirigida por Peter Jackson, basados en el libro El Hobbit y la trilogia del Señor de los Anillos de autoy J.R.Tolkien

Aqui esta el trailer que promete emocionarnos con la pelicula: