|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Agenda telefonica
|
en: 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 { 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"); switch(opc) { case 1: { printf("Escriba '0' si no quiere escribir algo.\n"); scanf("%d", &contactos [count ]. tel); scanf("%[^\n]", &contactos [count ]. AP); scanf("%[^\n]", &contactos [count ]. AM); printf("Nombre (usa '_' para separar nombres): "); scanf("%[^\n]", &contactos [count ]. Nombre); scanf("%[^\n]", &contactos [count ]. email); scanf("%[^\n]", &contactos [count ]. sitio_web); printf("Notas (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [count ]. Notas); printf("Empresa (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [count ]. Empresa); printf("Cargo (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [count ]. Cargo); pf = fopen("Archivo.BIN", "at"); if(pf == NULL) { printf("\nNo se pudo abrir el archivo."); 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); printf("\nContacto agregado correctamente.\n"); printf("Este es el numero de contacto guardado %d.", contactos [count ]. tel); break; } case 2: { printf("Inserte el numero del contacto a modificar: ");
MOD: Utiliza etiquetas de Código GeSHi para colocar fragmentos de código
|
|
|
2
|
Programación / Programación C/C++ / Punteros
|
en: 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 / Programación C/C++ / Ayuda
|
en: 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){ 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"); switch(opc) { case 1: { do{ printf("Escriba '0' si no quiere escribir algo.\n"); scanf("%[^\n]", &contactos [count ]. AP); scanf("%[^\n]", &contactos [count ]. AM); printf("Nombre (usa '_' para separar nombres): "); scanf("%[^\n]", &contactos [count ]. Nombre); printf("Telefono fijo con lada: "); scanf("%llu", &contactos [count ]. tel); scanf("%llu", &contactos [count ]. cel); printf("Correo electronico: "); scanf("%[^\n]", &contactos [count ]. email); scanf("%[^\n]", &contactos [count ]. sitio_web); printf("Notas (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [count ]. Notas); printf("Empresa (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [count ]. Empresa); printf("Cargo (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [count ]. Cargo); contactos[count].Num_Contacto = count; 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); printf("\n¿Desea agregar otro contacto?\n SI=1 NO=0\n"); }while(resp!=0); break; } case 2: { do { printf("Inserte el numero del contacto a modificar: "); }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): "); }while(opc3 < 1 || opc3 > 2); if(opc3 == 1) { printf("Escriba '0' si no quiere escribir algo.\n"); scanf("%[^\n]", &contactos [opc2 ]. AP); scanf("%[^\n]", &contactos [opc2 ]. AM); printf("Nombre (usa '_' para separar nombres): "); scanf("%[^\n]", &contactos [opc2 ]. Nombre); scanf("%d", &contactos [opc2 ]. tel); scanf("%d", &contactos [opc2 ]. cel); printf("Correo electronico: "); scanf("%[^\n]", &contactos [opc2 ]. email); scanf("%[^\n]", &contactos [opc2 ]. sitio_web); printf("Notas (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [opc2 ]. Notas); printf("Empresa (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [opc2 ]. Empresa); printf("Cargo (usa '_' para separar palabras): "); scanf("%[^\n]", &contactos [opc2 ]. Cargo); pf = fopen("Archivo.BIN", "wt"); if(pf == NULL) { printf("\nError al abrir el archivo."); 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); } printf("\nContacto modificado correctamente."); } break; } else { if(i == count) { printf("\nNo se encontro el contacto."); break; } } } break; } case 3: { do { printf("Inserte el numero del contacto a eliminar: "); }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): "); }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."); 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); } printf("\nContacto eliminado correctamente."); break; } } else { if(i == count) { printf("\nNo se encontro el contacto."); break; } } } break; } case 4: { printf("Gracias por usar esta agenda."); break; } default: { printf("Inserte otra opcion."); break; } } }while (opc != 4); return 0; }
MOD: Código adaptado al uso de etiquetas de Código GeSHi
|
|
|
|
|
|
|