
manejo de archivos en cpp
Publicado por Rodrigo (1 intervención) el 08/07/2021 06:11:47
Buenas tardes , quería pedir ayuda a alguna persona que pueda solucionar mi problema
La actividad es realizar un sistema que permita guardar datos en archivo txt
Clientes-(cédula,edad,teléfono,nombre,apellido)
Producto-(nombre,código,cantidad)
Este mismo trabajo tienes validaciones
Las cuales son , no puede existir dos cédulas iguales , no pueden existir dos códigos de producto iguales y solo se permiten registrar clientes mayores de edad
No se programar mucho , hice algo del programa , tiene menú y registra tanto cliente como producto y cumple con la validación de no registrar mayores de edad
El problema es que no me permite registrar mas de un cliente o mas de un producto , y me falta hacer las otras dos validaciones, y no las puedo hacer hasta que arregle que el programa me permita registrar a mas clientes o productos
Necesito ayuda para poder terminar mi programa , si alguien me puede ayudar a terminar mi programa se lo agradecería mucho.
Este es mi código
#include <fstream>
#include <stdio.h>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int opcion;
bool repetir = true;
FILE *fichero;
int i;
fichero = fopen("Registro.txt", "wt");
if (fichero == NULL)
printf("No se pudo abrir el archivo.\n");
do {
system("cls");
cout << "\n\nMenu de Registro" << endl;
cout << "1.Registrar Cliente" << endl;
cout << "2.Registrar Producto" << endl;
cout << "0.Salir" << endl;
cout << "\nIngrese una opcion: ";
cin >> opcion;
switch (opcion) {
case 1:
struct datos
{
char Nombre[21];
int Edad;
char Ape[10];
char Telf[20];
char Cedu[20];
char producto[21];
char codi[21];
char cant[21];
}persona;
{
int Edad;
do{
puts("Edad:");
scanf("%d", &persona.Edad);
getchar();
}while(persona.Edad<18);
fprintf(fichero, "%d ", persona.Edad);
puts("\nNombre:");
gets(persona.Nombre);
fprintf(fichero, "%s ", persona.Nombre);
puts("Apellido: ");
gets(persona.Ape);
fprintf(fichero, "%s ", persona.Ape);
puts("Telefono: ");
gets(persona.Telf);
fprintf(fichero, "%s ", persona.Telf);
puts("Cedula: ");
gets(persona.Cedu);
fprintf(fichero, "%s ", persona.Cedu);
fclose(fichero);
}
fichero = fopen("Registro.txt", "rt");
if (fichero == NULL)
printf("No se pudo abrir el archivo.\n");
else
{
while (!feof(fichero))
{
fgets(persona.Nombre, 21, fichero);
puts(persona.Nombre);
fscanf(fichero, "%d", &persona.Edad);
getchar();
printf("%d", persona.Edad);
fgets(persona.Ape, 10, fichero);
puts(persona.Ape);
fgets(persona.Telf, 20, fichero);
puts(persona.Telf);
fgets(persona.Telf, 20, fichero);
puts(persona.Telf);
}
fclose(fichero);
}
system("pause>nul");
break;
case 2:
{
puts("\nRegistrar Producto");
gets(persona.producto);
fprintf(fichero, "%s ", persona.producto);
puts("\nNombre del Producto: ");
gets(persona.producto);
fprintf(fichero, "%s ", persona.producto);
puts("\nRegistrar Codigo de Producto: ");
gets(persona.codi);
fprintf(fichero, "%s ", persona.codi);
puts("\nRegistrar Cantidad de Producto: ");
gets(persona.cant);
fprintf(fichero, "%s ", persona.cant);
fclose(fichero);
}
fichero = fopen("Registro.txt", "rt");
if (fichero == NULL)
printf("No se pudo abrir el archivo.\n");
else
{
while (!feof(fichero))
{
fgets(persona.producto, 21, fichero);
puts(persona.producto);
fgets(persona.codi, 21, fichero);
puts(persona.codi);
fgets(persona.cant, 21, fichero);
puts(persona.cant);
}
fclose(fichero);
}
system("pause>nul");
break;
case 0:
repetir = false;
break;
}
} while (repetir);
return 0;
}
La actividad es realizar un sistema que permita guardar datos en archivo txt
Clientes-(cédula,edad,teléfono,nombre,apellido)
Producto-(nombre,código,cantidad)
Este mismo trabajo tienes validaciones
Las cuales son , no puede existir dos cédulas iguales , no pueden existir dos códigos de producto iguales y solo se permiten registrar clientes mayores de edad
No se programar mucho , hice algo del programa , tiene menú y registra tanto cliente como producto y cumple con la validación de no registrar mayores de edad
El problema es que no me permite registrar mas de un cliente o mas de un producto , y me falta hacer las otras dos validaciones, y no las puedo hacer hasta que arregle que el programa me permita registrar a mas clientes o productos
Necesito ayuda para poder terminar mi programa , si alguien me puede ayudar a terminar mi programa se lo agradecería mucho.
Este es mi código
#include <fstream>
#include <stdio.h>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int opcion;
bool repetir = true;
FILE *fichero;
int i;
fichero = fopen("Registro.txt", "wt");
if (fichero == NULL)
printf("No se pudo abrir el archivo.\n");
do {
system("cls");
cout << "\n\nMenu de Registro" << endl;
cout << "1.Registrar Cliente" << endl;
cout << "2.Registrar Producto" << endl;
cout << "0.Salir" << endl;
cout << "\nIngrese una opcion: ";
cin >> opcion;
switch (opcion) {
case 1:
struct datos
{
char Nombre[21];
int Edad;
char Ape[10];
char Telf[20];
char Cedu[20];
char producto[21];
char codi[21];
char cant[21];
}persona;
{
int Edad;
do{
puts("Edad:");
scanf("%d", &persona.Edad);
getchar();
}while(persona.Edad<18);
fprintf(fichero, "%d ", persona.Edad);
puts("\nNombre:");
gets(persona.Nombre);
fprintf(fichero, "%s ", persona.Nombre);
puts("Apellido: ");
gets(persona.Ape);
fprintf(fichero, "%s ", persona.Ape);
puts("Telefono: ");
gets(persona.Telf);
fprintf(fichero, "%s ", persona.Telf);
puts("Cedula: ");
gets(persona.Cedu);
fprintf(fichero, "%s ", persona.Cedu);
fclose(fichero);
}
fichero = fopen("Registro.txt", "rt");
if (fichero == NULL)
printf("No se pudo abrir el archivo.\n");
else
{
while (!feof(fichero))
{
fgets(persona.Nombre, 21, fichero);
puts(persona.Nombre);
fscanf(fichero, "%d", &persona.Edad);
getchar();
printf("%d", persona.Edad);
fgets(persona.Ape, 10, fichero);
puts(persona.Ape);
fgets(persona.Telf, 20, fichero);
puts(persona.Telf);
fgets(persona.Telf, 20, fichero);
puts(persona.Telf);
}
fclose(fichero);
}
system("pause>nul");
break;
case 2:
{
puts("\nRegistrar Producto");
gets(persona.producto);
fprintf(fichero, "%s ", persona.producto);
puts("\nNombre del Producto: ");
gets(persona.producto);
fprintf(fichero, "%s ", persona.producto);
puts("\nRegistrar Codigo de Producto: ");
gets(persona.codi);
fprintf(fichero, "%s ", persona.codi);
puts("\nRegistrar Cantidad de Producto: ");
gets(persona.cant);
fprintf(fichero, "%s ", persona.cant);
fclose(fichero);
}
fichero = fopen("Registro.txt", "rt");
if (fichero == NULL)
printf("No se pudo abrir el archivo.\n");
else
{
while (!feof(fichero))
{
fgets(persona.producto, 21, fichero);
puts(persona.producto);
fgets(persona.codi, 21, fichero);
puts(persona.codi);
fgets(persona.cant, 21, fichero);
puts(persona.cant);
}
fclose(fichero);
}
system("pause>nul");
break;
case 0:
repetir = false;
break;
}
} while (repetir);
return 0;
}
Valora esta pregunta


0