|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Re: Agenda telefonica
|
en: 1 Junio 2020, 23:37 pm
|
depsues de mucho intentos tuve que modificar y empezar de nuevo el codigo para tenerlo mas claro, pero ahora el problema es que no se guardan los contactos, solo guarda el ultimo y en la opción dos de modificar en el listado de numeros guardados solo aparece el ultimo ingresado no los demás include<stdio.h> #include<conio.h> struct contacto { int Numero_registrado, activo; long int tel; char nom[10],AP[10],AM[10],correo[20], empresa[30],puesto[15],sito_web[30],notas[30]; }contact[30]; int no_reg=0; int main() { } menu() { int opc; printf("Elija una opcion.\n"); printf("1. Crear Contacto\n"); printf("2. Actualizar Contacto\n"); printf("3. Eliminar Contacto\n"); while(opc<1||opc>4) { printf("Elija una opcion.\n"); printf("1. Crear Contacto\n"); printf("2. Actualizar Contacto\n"); printf("3. Eliminar Contacto\n"); } switch(opc) { case 1: CrearContacto(); break; case 2: ActualizarContacto(); break; case 3: EliminarContacto(); break; case 4: return 0; break; } } CrearContacto() { int crear; printf("AGREGAR CLIENTE\n\n"); contact[no_reg].activo=1; contact[no_reg].Numero_registrado= no_reg+1; printf("Ingrese el telefono (a 8 digitos): "); scanf("%ld",&contact [no_reg ]. tel); printf("\n\t\t*EL NUMERO DE TELEFONO HA SIDO REGISTRADO CORRECTAMENTE*\n"); printf("\nIngrese el apellido paterno: "); gets(contact [no_reg ]. AP); strupr(contact[no_reg].AP); printf("Ingrese el appelido materno: "); gets(contact [no_reg ]. AM); strupr(contact[no_reg].AM); printf("Ingrese el nombre: "); gets(contact [no_reg ]. nom); strupr(contact[no_reg].nom); printf("Ingrese el E-mail: "); gets(contact [no_reg ]. correo); strupr(contact[no_reg].correo); printf("Ingrese su sitio web: "); gets(contact [no_reg ]. sito_web); strupr(contact[no_reg].sito_web); printf("Ingrese su puesto: "); gets(contact [no_reg ]. puesto); strupr(contact[no_reg].puesto); printf("Ingrese el nombre de la empresa: "); gets(contact [no_reg ]. empresa); strupr(contact[no_reg].empresa); printf("Ingrese alguna nota: "); gets(contact [no_reg ]. notas); strupr(contact[no_reg].notas); printf("Los Datos Registrados son: \n"); printf("%ld",contact [no_reg ]. tel); printf("\nNumero de registo del cliente: %d\n",contact [no_reg ]. Numero_registrado); puts(contact [no_reg ]. AP); puts(contact [no_reg ]. AM); printf("Nombre del cliente:"); puts(contact [no_reg ]. nom); puts(contact [no_reg ]. correo); puts(contact [no_reg ]. sito_web); puts(contact [no_reg ]. notas); puts(contact [no_reg ]. empresa); puts(contact [no_reg ]. puesto); printf("\n\n¿Desea agregar otro contacto?: "); while(crear<1||crear>2) { printf("%ld",contact [no_reg ]. tel); printf("El El numero de registro del cliente es: %d\n",contact [no_reg ]. Numero_registrado); printf("El apellido paterno es:\n"); puts(contact [no_reg ]. AP); printf("El apellido materno es:\n"); puts(contact [no_reg ]. AM); printf("El nombre del cliente es:\n"); puts(contact [no_reg ]. nom); puts(contact [no_reg ]. correo); puts(contact [no_reg ]. sito_web); puts(contact [no_reg ]. notas); puts(contact [no_reg ]. empresa); puts(contact [no_reg ]. puesto); printf("\n\n¿Desea agregar otro contacto?: "); } if(crear==1) { printf("\nLOS DATOS HAN SIDO REGISTRADOS CORRECTAMENTE"); no_reg++; menu(); } else { CrearContacto(); } } ActualizarContacto() { int m,i; long int telefono; printf("\nACTUALIZAR CONTACTO\n"); printf("\n\n\t\t\tCONTACTOS EXISTENTES\n\t"); printf("\tTELEFONO\t\tNOMBRE\n\t\t"); for(i=0;i<50;i++) { if(contact[i].activo==1) { printf("%lld",contact [i ]. tel); printf("\t\t%s",contact [i ]. nom); } } printf("\n\nIngrese el telefono del contacto a actualizar\n"); for(i=0;i<50;i++) { m=0; if(telefono==contact[i].tel) { printf("\n\n\t\t\tCONTACTO ENCONTRADO\n\n\n\n\n\n\n"); printf("%lld",contact [i ]. tel); printf("\n\nEl Id del cliente es: %d\n",contact [no_reg ]. Numero_registrado); printf("\n\nEl apellido paterno es:\n"); printf("\n\nEl apellido materno es:\n"); printf("\n\nEl nombre del cliente es:\n"); printf("\n\nEl correo es:\n"); printf("\n\nEl sitio web es:\n"); puts(contact [i ]. sito_web); printf("\n\nLa empresa es:\n"); puts(contact [i ]. empresa); printf("\n\nEl puesto es:\n"); ActualizarC(i); break; } else { m=1; } } if(m==1) { printf("\n\n\t\t\tTELEFONO NO ENCONTRADO\n\n\n\n\n\n\n"); menu(); } } ActualizarC(int i) { int x,y; printf("\n\n\t\t\tACTUALIZAR CLIENTE\n\n\n\n\n\n\n"); printf("Ingrese el telefono (celular de 10 digitos o local + lada): "); scanf("%lld",&contact [i ]. tel); printf("\t\t\t\n\n\n\nCONTACTO REGISTRADO\n\n\n"); //apellido paterno printf("Ingrese el apellido paterno: "); strupr(contact[i].AP); //apellido materno printf("Ingrese el appelido materno: "); strupr(contact[i].AM); //nombre printf("Ingrese el nombre: "); strupr(contact[i].nom); //correo printf("Ingrese el correo: "); strupr(contact[i].correo); //sitio web printf("Ingrese su sitio web: "); gets(contact [i ]. sito_web); strupr(contact[i].sito_web); //puesto printf("Ingrese su puesto: "); strupr(contact[i].puesto); //empresa printf("Ingrese el nombre de la empresa: "); gets(contact [i ]. empresa); strupr(contact[i].empresa); //notas printf("Ingrese alguna nota: "); strupr(contact[no_reg].notas); //Imprimir datos printf("%lld",contact [i ]. tel); printf("\n\nEl Id del cliente es: %d\n",contact [i ]. Numero_registrado); printf("\n\nEl apellido paterno es:\n"); printf("\n\nEl apellido materno es:\n"); printf("\n\nEl nombre del cliente es:\n"); printf("\n\nEl correo es:\n"); printf("\n\nEl sitio web es:\n"); puts(contact [i ]. sito_web); printf("\n\nLa empresa es:\n"); puts(contact [i ]. empresa); printf("\n\nEl puesto es:\n"); //verificar datos printf("\n\n\t\tIngrese:\n\n\t1)Si los datos son correctos.\n\t2)Si los datos son incorrectos."); while(x<1||x>2) { printf("%lld",contact [i ]. tel); printf("\n\nEl Id del cliente es: %d\n",contact [i ]. Numero_registrado); printf("\n\nEl apellido paterno es:\n"); printf("\n\nEl apellido materno es:\n"); printf("\n\nEl nombre del cliente es:\n"); printf("\n\nEl correo es:\n"); printf("\n\nEl sitio web es:\n"); puts(contact [i ]. sito_web); printf("\n\nLa empresa es:\n"); puts(contact [i ]. empresa); printf("\n\nEl puesto es:\n"); //verificar datos printf("\n\n\t\tIngrese:\n\n\t1)Si los datos son correctos.\n\t2)Si los datos son incorrectos."); } if(x==1) { printf("\n\t\t\tCONTACTO ACTUALIZADO"); menu(); } else { ActualizarC(i); } } EliminarContacto() { int x,i,m,y; long long int telefono; printf("\n\n\t\t\tELIMINAR CONTACTO\n\n\n\n\n\n\n"); printf("\n\n\t\t\tCONTACTOS EXISTENTES\n\t"); printf("\tTELEFONO\t\tNOMBRE\n\t\t"); for(i=0;i<50;i++) { if(contact[i].activo==1) { printf("%lld",contact [i ]. tel); printf("\t\t%s",contact [i ]. nom); } } printf("\t\nINGRESE EL TELEFONO DEL CONTACTO A ELIMINAR\n\n"); for(i=0;i<50;i++) { m=0; if(telefono==contact[i].tel) { printf("\n\n\t\t\tCONTACTO ENCONTRADO\n\n\n\n\n\n\n"); printf("%lld",contact [i ]. tel); printf("\n\nEl Id del cliente es: %d\n",contact [i ]. Numero_registrado); printf("\n\nEl apellido paterno es:\n"); printf("\n\nEl apellido materno es:\n"); printf("\n\nEl nombre del cliente es:\n"); printf("\n\nEl correo es:\n"); printf("\n\nEl sitio web es:\n"); puts(contact [i ]. sito_web); printf("\n\nLa empresa es:\n"); puts(contact [i ]. empresa); printf("\n\nEl puesto es:\n"); printf("\nSeguro que desea eliminar este contacto?\n1)Seguro.\n2)No estoy seguro\n"); if(y=1) { BorrarC(i); break; } else { menu(); } } else { m=1; } } if(m==1) { printf("\n\n\t\t\tTELEFONO NO ENCONTRADO\n\n\n\n\n\n\n"); menu(); } } BorrarC(int i) { printf("\n\n\t\t\tELIMINAR CLIENTE\n\n\n\n\n\n\n"); contact[i].activo=0; printf("\n\n\t\t\tCLIENTE ELIMINADO\n\n\n\n\n\n\n"); menu(); }
|
|
|
2
|
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
|
|
|
3
|
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 ().
|
|
|
4
|
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
|
|
|
|
|
|
|