Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Marsi

#1
Programación C/C++ / Agenda telefonica
1 Junio 2020, 10:33 AM
Hola, ayudenme por favor, tengo que modificar un numero de contacto en el case 2 aportando el numero telefonico (contactos[count].tel) en el case 1 ya lo tengo pero no se como poder modificarlo en el case 2, como lo pido y lo edito si esta guarado en contactos[count].tel, he tartado pero no me sale llego asta ahí, suponiendo que tengo muchos numeros y el programa lo tiene que buscar luego modificar, en el case 1 tambien tengo que agregar si deseo poner otro contacto mas, soy nueva programando y no entiendo muy bien :(  :-(


int main()
{
int count;
int i = 0;
int opc, telefono;

do
{
system("cls");
printf("PIA\n");
printf("Programa para hacer una agenda usando Archivos\n");
printf("Elija una opcion.\n");
printf("1. Crear Contacto\n");
printf("2. Actualizar Contacto\n");
printf("3. Eliminar Contacto\n");
printf("4. Salir\n");
scanf("%d", &opc);

switch(opc)
{
case 1:
{
system("cls");

printf("Escriba '0' si no quiere escribir algo.\n");
printf("Telefono : ");
scanf("%d", &contactos[count].tel);
printf("Apellido Paterno: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].AP);
printf("Apellido Materno: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].AM);
printf("Nombre (usa '_' para separar nombres): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Nombre);
printf("Telefono fijo: ");
fflush(stdin);
fflush(stdin);
scanf("%[^\n]", &contactos[count].email);
printf("Sitio web: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].sitio_web);
printf("Notas (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Notas);
printf("Empresa (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Empresa);
printf("Cargo (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Cargo);

pf = fopen("Archivo.BIN", "at");
if(pf == NULL)
{
printf("\nNo se pudo abrir el archivo.");
getch();
return -1;
}


fprintf(pf, "%s ", contactos[count].Nombre);
fprintf(pf, "%s ", contactos[count].AP);
fprintf(pf, "%s ", contactos[count].AM);
fprintf(pf, "%ld ", contactos[count].tel);
fprintf(pf, "%s ", contactos[count].email);
fprintf(pf, "%s ", contactos[count].sitio_web);
fprintf(pf, "%s ", contactos[count].Notas);
fprintf(pf, "%s ", contactos[count].Empresa);
fprintf(pf, "%s\n", contactos[count].Cargo);
fclose(pf);

printf("\nContacto agregado correctamente.\n");
printf("Este es el numero de contacto guardado %d.", contactos[count].tel);
getch();
break;
}
case 2:
{
system("cls");

printf("Inserte el numero del contacto a modificar: ");
fflush(stdin);
scanf("%ld", &telefono);




MOD: Utiliza etiquetas de Código GeSHi para colocar fragmentos de código
#2
Programación C/C++ / Punteros
29 Mayo 2020, 02:18 AM
Estoy estudiando punteros y no entiendo muy bien, alguien me puede decir como se realizan estos programas?

.-Realice un programa que tenga una función que mediante apuntadores pueda transformar un
número entero en una cadena de caracteres formada por los dígitos del número entero.

.-Empleando apuntadores escribir un programa que lea una línea de texto y escriba en pantalla
las palabras de que consta la línea sin utilizar las funciones de string.h y particularmente sin usar
strtok ().
#3
Programación C/C++ / Ayuda
27 Mayo 2020, 18:55 PM
Alguien sabe como en el case 2 puede modificar el contacto ingresando el numero telefonico local

#include <stdio.h>
#include <conio.h>
#include <string.h>

#define MAX 256

struct agenda
{
int Num_Contacto;
char AP[20];
char AM[20];
char Nombre[20];
double tel[8];
double cel[8];
char email[50];
char sitio_web[50];
char Notas[30];
char Empresa[20];
char Cargo[10];
};
struct agenda contactos[MAX];

int main()
{
int count;
int i = 0;
int resp, opc, opc2, opc3;

while (opc != 4){
system("cls");
printf("PIA\n");
printf("Programa para hacer una agenda usando Archivos\n");
printf("Elija una opcion.\n");
printf("1. Crear Contacto\n");
printf("2. Actualizar Contacto\n");
printf("3. Eliminar Contacto\n");
printf("4. Salir\n");
scanf("%d", &opc);

switch(opc)
{
case 1:
{
system("cls");
do{
printf("Escriba '0' si no quiere escribir algo.\n");
printf("Apellido Paterno: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].AP);
printf("Apellido Materno: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].AM);
printf("Nombre (usa '_' para separar nombres): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Nombre);
printf("Telefono fijo con lada: ");
fflush(stdin);
scanf("%llu", &contactos[count].tel);
printf("Telefono celular: ");
fflush(stdin);
scanf("%llu", &contactos[count].cel);
printf("Correo electronico: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].email);
printf("Sitio web: ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].sitio_web);
printf("Notas (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Notas);
printf("Empresa (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Empresa);
printf("Cargo (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[count].Cargo);
contactos[count].Num_Contacto = count;
system("cls");
printf( "\nEl numero de contacto guardado es: %d\n ", contactos[count].Num_Contacto);
printf( "Nombre(s): %s\n ", contactos[count].Nombre);
printf( "Apellido Paterno: %s\n ", contactos[count].AP);
printf( "Apellido Materno: %s\n", contactos[count].AM);
printf("Numero de telefono local: %llu\n ", contactos[count].tel);
printf( "Numero de telefono celular: %llu\n ", contactos[count].cel);
printf( "E-mail: %s\n ", contactos[count].email);
printf( "Sitio web: %s\n ", contactos[count].sitio_web);
printf( "Notas: %s\n ", contactos[count].Notas);
printf( "Empresa: %s\n ", contactos[count].Empresa);
printf( "Cargo: %s\n", contactos[count].Cargo);
printf("\nContacto agregado correctamente.\n");
printf("Este es el contacto numero: %d.", contactos[count].tel);
getch();
printf("\n¿Desea agregar otro contacto?\n SI=1   NO=0\n");
scanf("%d",&resp);
   }while(resp!=0);
   getch();
break;
}
case 2:
{
system("cls");
do
{
printf("Inserte el numero del contacto a modificar: ");
fflush(stdin);
scanf("%d", &opc2);
}while(opc2 < 1 || opc2 > 255);


for(i = 1; i <= count; i++)
{
if(contactos[i].Num_Contacto == opc2)
{
printf("\nNombre: %s %s %s", contactos[opc2].Nombre, contactos[opc2].AP, contactos[opc2].AM);
printf("\nTelefono fijo: %d", contactos[opc2].tel);
printf("\nTelefono celular: %d", contactos[opc2].cel);
printf("\nE-mail: %s", contactos[opc2].email);
printf("\nSitio Web: %s", contactos[opc2].sitio_web);
printf("\nNotas: %s", contactos[opc2].Notas);
printf("\nEmpresa: %s", contactos[opc2].Empresa);
printf("\nCargo: %s", contactos[opc2].Cargo);

do
{
printf("\n\nEsta seguro de que quiere modificar este contacto? (1. Si, 2. No): ");
fflush(stdin);
scanf("%d", &opc3);
}while(opc3 < 1 || opc3 > 2);

if(opc3 == 1)
{
printf("Escriba '0' si no quiere escribir algo.\n");
printf("Apellido Paterno: ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].AP);
printf("Apellido Materno: ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].AM);
printf("Nombre (usa '_' para separar nombres): ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].Nombre);
printf("Telefono fijo: ");
fflush(stdin);
scanf("%d", &contactos[opc2].tel);
printf("Telefono celular: ");
fflush(stdin);
scanf("%d", &contactos[opc2].cel);
printf("Correo electronico: ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].email);
printf("Sitio web: ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].sitio_web);
printf("Notas (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].Notas);
printf("Empresa (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].Empresa);
printf("Cargo (usa '_' para separar palabras): ");
fflush(stdin);
scanf("%[^\n]", &contactos[opc2].Cargo);

pf = fopen("Archivo.BIN", "wt");
if(pf == NULL)
{
printf("\nError al abrir el archivo.");
getch();
return -1;
}
for(i = 1; i <= count; i++)
{
fprintf(pf, "%d ", contactos[i].Num_Contacto);
fprintf(pf, "%s ", contactos[i].Nombre);
fprintf(pf, "%s ", contactos[i].AP);
fprintf(pf, "%s ", contactos[i].AM);
fprintf(pf, "%d ", contactos[i].tel);
fprintf(pf, "%d ", contactos[i].cel);
fprintf(pf, "%s ", contactos[i].email);
fprintf(pf, "%s ", contactos[i].sitio_web);
fprintf(pf, "%s ", contactos[i].Notas);
fprintf(pf, "%s ", contactos[i].Empresa);
fprintf(pf, "%s\n", contactos[i].Cargo);
}
fclose(pf);

printf("\nContacto modificado correctamente.");
getch();
}
break;
}
else
{
if(i == count)
{
printf("\nNo se encontro el contacto.");
getch();
break;
}
}
}
break;
}
case 3:
{
system("cls");
do
{
printf("Inserte el numero del contacto a eliminar: ");
fflush(stdin);
scanf("%d", &opc2);
}while(opc2 < 1 || opc2 > 255);

for(i = 1; i <= count; i++)
{
if(contactos[i].Num_Contacto == opc2)
{
printf("\nNombre: %s %s %s", contactos[opc2].Nombre, contactos[opc2].AP, contactos[opc2].AM);
printf("\nTelefono fijo: %d", contactos[opc2].tel);
printf("\nTelefono celular: %d", contactos[opc2].cel);
printf("\nE-mail: %s", contactos[opc2].email);
printf("\nSitio Web: %s", contactos[opc2].sitio_web);
printf("\nNotas: %s", contactos[opc2].Notas);
printf("\nEmpresa: %s", contactos[opc2].Empresa);
printf("\nCargo: %s", contactos[opc2].Cargo);

do
{
printf("\n\nEsta seguro de que quiere eliminar este contacto? (1. Si, 2. No): ");
fflush(stdin);
scanf("%d", &opc3);
}while(opc3 < 1 || opc3 > 2);

if(opc3 == 1)
{
for(i = opc2; i <= count; i++)
{
contactos[i].Num_Contacto = contactos[i+1].Num_Contacto;
contactos[i].Num_Contacto = contactos[i].Num_Contacto - 1;
strcpy(contactos[i].Nombre, contactos[i+1].Nombre);
strcpy(contactos[i].AP, contactos[i+1].AP);
strcpy(contactos[i].AM, contactos[i+1].AM);
contactos[i].tel = contactos[i+1].tel;
contactos[i].cel = contactos[i+1].cel;
strcpy(contactos[i].email, contactos[i+1].email);
strcpy(contactos[i].sitio_web, contactos[i+1].sitio_web);
strcpy(contactos[i].Notas, contactos[i+1].Notas);
strcpy(contactos[i].Empresa, contactos[i+1].Empresa);
strcpy(contactos[i].Cargo, contactos[i+1].Cargo);
}
count = count - 1;

pf = fopen("Archivo.BIN", "wt");
if(pf == NULL)
{
printf("\nError al abrir el archivo.");
getch();
return -1;
}
for(i = 1; i <= count; i++)
{
fprintf(pf, "%d ", contactos[i].Num_Contacto);
fprintf(pf, "%s ", contactos[i].Nombre);
fprintf(pf, "%s ", contactos[i].AP);
fprintf(pf, "%s ", contactos[i].AM);
fprintf(pf, "%d ", contactos[i].tel);
fprintf(pf, "%d ", contactos[i].cel);
fprintf(pf, "%s ", contactos[i].email);
fprintf(pf, "%s ", contactos[i].sitio_web);
fprintf(pf, "%s ", contactos[i].Notas);
fprintf(pf, "%s ", contactos[i].Empresa);
fprintf(pf, "%s\n", contactos[i].Cargo);
}
fclose(pf);

printf("\nContacto eliminado correctamente.");
getch();
break;
}
}
else
{
if(i == count)
{
printf("\nNo se encontro el contacto.");
getch();
break;
}
}
}
break;
}
case 4:
{
system("cls");
printf("Gracias por usar esta agenda.");
getch();
break;
}
default:
{
printf("Inserte otra opcion.");
getch();
break;
}
}

}while (opc != 4);

return 0;
}




MOD: Código adaptado al uso de etiquetas de Código GeSHi