Ir al contenido principal

COMO MANEJAR ARCHIVOS EN C++

Buenas aquí les dejo una entrega con un ejemplo básico para manejar archivos en visual C++

el enunciado en el cual esta basado el programa es el siguiente:


EN UNA EMPRESA CON N EMPLEADOS SE NECESITA OBTENER CIERTA INFORMACION, POR CADA EMPLEADO SE INGRESAN LOS SIGUIENTES DATOS: APELLIDOS, NOMBRES,CLAVE,EDAD,SEXO,SUELDO HAGA UN PROGRAMA PARA CALCULAR E IMPRIMIR LO SIGUIENTE:
a) Número de hombres
b) Números de mujeres
c) Números de hombres menores de 40 años que ganen más de $1.000.000()
d) Números de empleados mayores de 50 años.
e) Listar el archivo
f) Eliminar archivo


#include "stdafx.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "stdlib.h"


#define LON sizeof(struct CLIENTES)
struct CLIENTES{
char nombre[30];
char apellidos[30];
char clave[30];
int ed,edad,edee,hombres,mujeres;
char sexo[30];
char sueldo[30];
};

struct CLIENTES reg;
void crear_archivo();
void escribir_archivo();
void mostrar_archivo();
void eliminar_archivo();
void contar_hombresmenores();
void contar_hombres();
int id,eda=0,ede=0,hombre=0,mujer=0;
char N[20];
void main(){
char M='m';
int opcion;

while (M=='m' || M=='M')
{
system("cls");
printf("BIENVENIDO AL PROGRAMA DE ARCHIVOS\n");
printf("1. CREAR ARCHIVO\n");
printf("2. ESCRIBIR EN ARCHIVO\n");
printf("3. MOSTRAR ARCHIVO\n");
printf("4. ELIMINAR ARCHIVO\n");
printf("5. SALIR\n");
printf("DIGITE OPCION\n");
//2- error al leer la opcion ya que la variable es de tipo entero y no un string
scanf("%d",&opcion);
switch(opcion)
{
case 1:crear_archivo();
break;
case 2: escribir_archivo();
break;
case 3:mostrar_archivo();
break;
case 4:eliminar_archivo();
break;
case 5: exit(0);
}
printf("SI DESEA VOLVER AL MENU DIGITE M: \n");
scanf("%s",&M);
}

getch();
}
void crear_archivo(){
printf("INGRESE EL NOMBRE DEL ARCHIVO\n");
scanf("%s",&N);
//el parametro N no va dentro de las comillas ya que es e parametro para asignar el nombre
id=_creat(N, _S_IREAD|S_IWRITE);
if(id==-1)
{
printf("ERROR AL CREAR EL ARCHIVO\n");
getch();
exit(1);
}
else{
printf("EL ARCHIVO %s FUE CREADO SASTIFACTORIAMENTE\n",N);
}
if(_close(id)==-1){
printf("ERROR AL CERRAR EL ARCHIVO\n");
getch();
exit(1);
}
}
void escribir_archivo(){
int i;
int num=1;

id=_open(N,_O_WRONLY);
if(id==-1){
printf("ERROR AL ABRIR EL ARCHIVO\n");
getch();
exit(1);
}

while(num==1) {
printf("Digite el nombre del cliente:\n");
scanf("%s",&reg.nombre);
printf("Digite los apellidos del cliente:\n");
scanf("%s",&reg.apellidos);
printf("Digite la edad del cliente:\n");
scanf("%d",&reg.edad);
printf("Digite el sexo del cliente F/M\n");
scanf("%s",&reg.sexo);
printf("Digite la clave del cliente\n");
scanf("%s",&reg.clave);
printf("Digite el sueldo del cliente\n");
scanf("%s",&reg.sueldo);
contar_hombresmenores();
contar_hombres();
i=_write(id,(char *)&reg,LON);
if(i==-1){
printf("ERROR AL GRABAR EL ARCHIVO\n") ;
getch();
exit(1);
}

printf ("DESEA GRABAR MAS CLIENTES? (SI=1/NO=0)\n");
//el num1 no esta declarado la variable correcta en num
scanf_s("%d",&num);
}
if(_close(id)==-1){
printf("ERROR AL CERRAR EL ARCHIVO\n");
getch();
exit(1);
}
getch();
}

void mostrar_archivo(){
int i;
id=_open(N,_O_RDONLY);
if(id==-1){
printf("ERROR AL ABRIR EL ARCHIVO\n") ;
getch();
exit(1);
}
printf("****************************************************************************\n");
printf("* Cantidad de hombres: %d                                                   *\n", reg.hombres);
printf("* Cantidad de mujeres: %d                                                   *\n", reg.mujeres);
printf("* Cantidad de hombres menores a 40 años con sueldo mas  1 millon: %d        *\n",reg.ed);
printf("* numero de empleados mayores a 50 años:  %d                                *\n",reg.edee);
printf("****************************************************************************\n");

printf("****************************************************************************\n");
printf("*  NOMBRE       APELLIDOS      EDAD       SEXO        CLAVE       SUELDO   *\n");
printf("****************************************************************************\n");
while(!eof(id)){
i=_read(id,(char *)&reg,LON);
if(i==-1){
printf("ERROR AL LEER EL ARCHIVO\n") ;
getch();
exit(1);
}

printf("   %s      ",reg.nombre);
printf("   %s      ",reg.apellidos);
printf("   %d      ",reg.edad);
printf("   %s      ",reg.sexo);
printf("   %s      ",reg.clave);
printf("   %s\n    ",reg.sueldo);

}

//7- en close no se puede cerrar N se tiene que cerrar enviando el parametro id
if(_close(id)==-1){
printf("ERROR AL CERRAR EL ARCHIVO\n");
getch();
exit(1);
}

getch();
}
void eliminar_archivo()
{
if(id=_unlink(N)==-1)
{
printf("ERROR AL ELIMINAR EL ARCHIVO\n");
}
else {
printf("ARCHIVO ELIMINADO CORRECTAMENTE\n");
}

}

void contar_hombresmenores()
{
char a=1000000;
if(reg.edad<=40)
{
if( reg.hombres != NULL)
{
if (reg.sueldo[0]>=1000000)
{
eda= eda+1;
reg.ed=eda;
}
}
}

else{
(reg.edad>=50);
ede= ede+1;
reg.edee=ede;

}
}

void contar_hombres()
{
if(reg.sexo[0]=='m' || reg.sexo[0] == 'M')
{
hombre =hombre+1;
reg.hombres=hombre;
}
else
{
if(reg.sexo[0]=='f' || reg.sexo[0] == 'F')
{
mujer = mujer+1;
reg.mujeres=mujer;
}
}
}




Comentarios

Entradas populares de este blog

Tablas y gráficas estadísticas dinámicas con JavaScript, highcharts, HTML y JSON

Después de tener mucho tiempo sin entradas, quiero retomar  el blog  con un poco más de desarrollo códigos ejemplos y más cosas interesantes que he podido realizar en mi día a día. En esta ocasión quiero realizar un ejemplo para el cual pueda  graficar tablas, gráficas estadísticas  utilizando la librería de highcharts ( https://www.highcharts.com/ ), esta librería tiene muchas aplicaciones se puede  usar en diferentes campos y es realmente interesante para realizar todo tipo de tratamiento de data. Este ejemplo se va a trabajar sobre un proyecto realizado en visual studio 2015, pero se debe tener en cuenta que se puede aplicar a cualquier tipo de proyecto en el cual se use javascript y objetos JSON. La idea con este código es poder generar la cantidad de objetos JSON que sean necesarios desde  el code behind usado y este sea procesado para que se genere a nivel del cliente todas las gráficas requeridas. Ejemplo: 1- Se debe crear el proyecto con el cual se va

Exportar Archivos en C# con NPOI

Siempre que se tiene que exportar un archivo, se tienen varias opciones; se puede pensar en usar reporting services, se puede usar librerías que se encuentran en la red, se pueden usar librerías especificas de .NET, pero hoy vamos a ver como usar la librería NPOI. La librería NPOI es una librería de código abierto que se usa para parsear data en archivos de excel, en este caso vamos a usar  un data set  para realizar toda la operación. Se va a crear un libro de excel con extensión xlsx, en el cual se va a crear la plantilla que se requiere para poder visualizar la data y la gráfica correspondiente. se crea el método dentro del cual se tendrá la lógica         public void ejemplonpoi()           { } Se crean la variables necesarias para realizar la conversión del archivo             var extension = "xlsx";             string result = Path.GetTempPath();             DataSet dt = new DataSet();             dt = (DataSet)Session["ListData"