elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  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 :(  :-(

Código
  1. int main()
  2. {
  3. int count;
  4. int i = 0;
  5. int opc, telefono;
  6.  
  7. do
  8. {
  9. system("cls");
  10. printf("PIA\n");
  11. printf("Programa para hacer una agenda usando Archivos\n");
  12. printf("Elija una opcion.\n");
  13. printf("1. Crear Contacto\n");
  14. printf("2. Actualizar Contacto\n");
  15. printf("3. Eliminar Contacto\n");
  16. printf("4. Salir\n");
  17. scanf("%d", &opc);
  18.  
  19. switch(opc)
  20. {
  21. case 1:
  22. {
  23. system("cls");
  24.  
  25. printf("Escriba '0' si no quiere escribir algo.\n");
  26. printf("Telefono : ");
  27. scanf("%d", &contactos[count].tel);
  28. printf("Apellido Paterno: ");
  29. fflush(stdin);
  30. scanf("%[^\n]", &contactos[count].AP);
  31. printf("Apellido Materno: ");
  32. fflush(stdin);
  33. scanf("%[^\n]", &contactos[count].AM);
  34. printf("Nombre (usa '_' para separar nombres): ");
  35. fflush(stdin);
  36. scanf("%[^\n]", &contactos[count].Nombre);
  37. printf("Telefono fijo: ");
  38. fflush(stdin);
  39. fflush(stdin);
  40. scanf("%[^\n]", &contactos[count].email);
  41. printf("Sitio web: ");
  42. fflush(stdin);
  43. scanf("%[^\n]", &contactos[count].sitio_web);
  44. printf("Notas (usa '_' para separar palabras): ");
  45. fflush(stdin);
  46. scanf("%[^\n]", &contactos[count].Notas);
  47. printf("Empresa (usa '_' para separar palabras): ");
  48. fflush(stdin);
  49. scanf("%[^\n]", &contactos[count].Empresa);
  50. printf("Cargo (usa '_' para separar palabras): ");
  51. fflush(stdin);
  52. scanf("%[^\n]", &contactos[count].Cargo);
  53.  
  54. pf = fopen("Archivo.BIN", "at");
  55. if(pf == NULL)
  56. {
  57. printf("\nNo se pudo abrir el archivo.");
  58. getch();
  59. return -1;
  60. }
  61.  
  62.  
  63. fprintf(pf, "%s ", contactos[count].Nombre);
  64. fprintf(pf, "%s ", contactos[count].AP);
  65. fprintf(pf, "%s ", contactos[count].AM);
  66. fprintf(pf, "%ld ", contactos[count].tel);
  67. fprintf(pf, "%s ", contactos[count].email);
  68. fprintf(pf, "%s ", contactos[count].sitio_web);
  69. fprintf(pf, "%s ", contactos[count].Notas);
  70. fprintf(pf, "%s ", contactos[count].Empresa);
  71. fprintf(pf, "%s\n", contactos[count].Cargo);
  72. fclose(pf);
  73.  
  74. printf("\nContacto agregado correctamente.\n");
  75. printf("Este es el numero de contacto guardado %d.", contactos[count].tel);
  76. getch();
  77. break;
  78. }
  79. case 2:
  80. {
  81. system("cls");
  82.  
  83. printf("Inserte el numero del contacto a modificar: ");
  84. fflush(stdin);
  85. scanf("%ld", &telefono);


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
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5. #define MAX 256
  6.  
  7. struct agenda
  8. {
  9. int Num_Contacto;
  10. char AP[20];
  11. char AM[20];
  12. char Nombre[20];
  13. double tel[8];
  14. double cel[8];
  15. char email[50];
  16. char sitio_web[50];
  17. char Notas[30];
  18. char Empresa[20];
  19. char Cargo[10];
  20. };
  21. struct agenda contactos[MAX];
  22.  
  23. int main()
  24. {
  25. int count;
  26. int i = 0;
  27. int resp, opc, opc2, opc3;
  28.  
  29. while (opc != 4){
  30. system("cls");
  31. printf("PIA\n");
  32. printf("Programa para hacer una agenda usando Archivos\n");
  33. printf("Elija una opcion.\n");
  34. printf("1. Crear Contacto\n");
  35. printf("2. Actualizar Contacto\n");
  36. printf("3. Eliminar Contacto\n");
  37. printf("4. Salir\n");
  38. scanf("%d", &opc);
  39.  
  40. switch(opc)
  41. {
  42. case 1:
  43. {
  44. system("cls");
  45. do{
  46. printf("Escriba '0' si no quiere escribir algo.\n");
  47. printf("Apellido Paterno: ");
  48. fflush(stdin);
  49. scanf("%[^\n]", &contactos[count].AP);
  50. printf("Apellido Materno: ");
  51. fflush(stdin);
  52. scanf("%[^\n]", &contactos[count].AM);
  53. printf("Nombre (usa '_' para separar nombres): ");
  54. fflush(stdin);
  55. scanf("%[^\n]", &contactos[count].Nombre);
  56. printf("Telefono fijo con lada: ");
  57. fflush(stdin);
  58. scanf("%llu", &contactos[count].tel);
  59. printf("Telefono celular: ");
  60. fflush(stdin);
  61. scanf("%llu", &contactos[count].cel);
  62. printf("Correo electronico: ");
  63. fflush(stdin);
  64. scanf("%[^\n]", &contactos[count].email);
  65. printf("Sitio web: ");
  66. fflush(stdin);
  67. scanf("%[^\n]", &contactos[count].sitio_web);
  68. printf("Notas (usa '_' para separar palabras): ");
  69. fflush(stdin);
  70. scanf("%[^\n]", &contactos[count].Notas);
  71. printf("Empresa (usa '_' para separar palabras): ");
  72. fflush(stdin);
  73. scanf("%[^\n]", &contactos[count].Empresa);
  74. printf("Cargo (usa '_' para separar palabras): ");
  75. fflush(stdin);
  76. scanf("%[^\n]", &contactos[count].Cargo);
  77. contactos[count].Num_Contacto = count;
  78. system("cls");
  79. printf( "\nEl numero de contacto guardado es: %d\n ", contactos[count].Num_Contacto);
  80. printf( "Nombre(s): %s\n ", contactos[count].Nombre);
  81. printf( "Apellido Paterno: %s\n ", contactos[count].AP);
  82. printf( "Apellido Materno: %s\n", contactos[count].AM);
  83. printf("Numero de telefono local: %llu\n ", contactos[count].tel);
  84. printf( "Numero de telefono celular: %llu\n ", contactos[count].cel);
  85. printf( "E-mail: %s\n ", contactos[count].email);
  86. printf( "Sitio web: %s\n ", contactos[count].sitio_web);
  87. printf( "Notas: %s\n ", contactos[count].Notas);
  88. printf( "Empresa: %s\n ", contactos[count].Empresa);
  89. printf( "Cargo: %s\n", contactos[count].Cargo);
  90. printf("\nContacto agregado correctamente.\n");
  91. printf("Este es el contacto numero: %d.", contactos[count].tel);
  92. getch();
  93. printf("\n¿Desea agregar otro contacto?\n SI=1   NO=0\n");
  94. scanf("%d",&resp);
  95.    }while(resp!=0);
  96.    getch();
  97. break;
  98. }
  99. case 2:
  100. {
  101. system("cls");
  102. do
  103. {
  104. printf("Inserte el numero del contacto a modificar: ");
  105. fflush(stdin);
  106. scanf("%d", &opc2);
  107. }while(opc2 < 1 || opc2 > 255);
  108.  
  109.  
  110. for(i = 1; i <= count; i++)
  111. {
  112. if(contactos[i].Num_Contacto == opc2)
  113. {
  114. printf("\nNombre: %s %s %s", contactos[opc2].Nombre, contactos[opc2].AP, contactos[opc2].AM);
  115. printf("\nTelefono fijo: %d", contactos[opc2].tel);
  116. printf("\nTelefono celular: %d", contactos[opc2].cel);
  117. printf("\nE-mail: %s", contactos[opc2].email);
  118. printf("\nSitio Web: %s", contactos[opc2].sitio_web);
  119. printf("\nNotas: %s", contactos[opc2].Notas);
  120. printf("\nEmpresa: %s", contactos[opc2].Empresa);
  121. printf("\nCargo: %s", contactos[opc2].Cargo);
  122.  
  123. do
  124. {
  125. printf("\n\nEsta seguro de que quiere modificar este contacto? (1. Si, 2. No): ");
  126. fflush(stdin);
  127. scanf("%d", &opc3);
  128. }while(opc3 < 1 || opc3 > 2);
  129.  
  130. if(opc3 == 1)
  131. {
  132. printf("Escriba '0' si no quiere escribir algo.\n");
  133. printf("Apellido Paterno: ");
  134. fflush(stdin);
  135. scanf("%[^\n]", &contactos[opc2].AP);
  136. printf("Apellido Materno: ");
  137. fflush(stdin);
  138. scanf("%[^\n]", &contactos[opc2].AM);
  139. printf("Nombre (usa '_' para separar nombres): ");
  140. fflush(stdin);
  141. scanf("%[^\n]", &contactos[opc2].Nombre);
  142. printf("Telefono fijo: ");
  143. fflush(stdin);
  144. scanf("%d", &contactos[opc2].tel);
  145. printf("Telefono celular: ");
  146. fflush(stdin);
  147. scanf("%d", &contactos[opc2].cel);
  148. printf("Correo electronico: ");
  149. fflush(stdin);
  150. scanf("%[^\n]", &contactos[opc2].email);
  151. printf("Sitio web: ");
  152. fflush(stdin);
  153. scanf("%[^\n]", &contactos[opc2].sitio_web);
  154. printf("Notas (usa '_' para separar palabras): ");
  155. fflush(stdin);
  156. scanf("%[^\n]", &contactos[opc2].Notas);
  157. printf("Empresa (usa '_' para separar palabras): ");
  158. fflush(stdin);
  159. scanf("%[^\n]", &contactos[opc2].Empresa);
  160. printf("Cargo (usa '_' para separar palabras): ");
  161. fflush(stdin);
  162. scanf("%[^\n]", &contactos[opc2].Cargo);
  163.  
  164. pf = fopen("Archivo.BIN", "wt");
  165. if(pf == NULL)
  166. {
  167. printf("\nError al abrir el archivo.");
  168. getch();
  169. return -1;
  170. }
  171. for(i = 1; i <= count; i++)
  172. {
  173. fprintf(pf, "%d ", contactos[i].Num_Contacto);
  174. fprintf(pf, "%s ", contactos[i].Nombre);
  175. fprintf(pf, "%s ", contactos[i].AP);
  176. fprintf(pf, "%s ", contactos[i].AM);
  177. fprintf(pf, "%d ", contactos[i].tel);
  178. fprintf(pf, "%d ", contactos[i].cel);
  179. fprintf(pf, "%s ", contactos[i].email);
  180. fprintf(pf, "%s ", contactos[i].sitio_web);
  181. fprintf(pf, "%s ", contactos[i].Notas);
  182. fprintf(pf, "%s ", contactos[i].Empresa);
  183. fprintf(pf, "%s\n", contactos[i].Cargo);
  184. }
  185. fclose(pf);
  186.  
  187. printf("\nContacto modificado correctamente.");
  188. getch();
  189. }
  190. break;
  191. }
  192. else
  193. {
  194. if(i == count)
  195. {
  196. printf("\nNo se encontro el contacto.");
  197. getch();
  198. break;
  199. }
  200. }
  201. }
  202. break;
  203. }
  204. case 3:
  205. {
  206. system("cls");
  207. do
  208. {
  209. printf("Inserte el numero del contacto a eliminar: ");
  210. fflush(stdin);
  211. scanf("%d", &opc2);
  212. }while(opc2 < 1 || opc2 > 255);
  213.  
  214. for(i = 1; i <= count; i++)
  215. {
  216. if(contactos[i].Num_Contacto == opc2)
  217. {
  218. printf("\nNombre: %s %s %s", contactos[opc2].Nombre, contactos[opc2].AP, contactos[opc2].AM);
  219. printf("\nTelefono fijo: %d", contactos[opc2].tel);
  220. printf("\nTelefono celular: %d", contactos[opc2].cel);
  221. printf("\nE-mail: %s", contactos[opc2].email);
  222. printf("\nSitio Web: %s", contactos[opc2].sitio_web);
  223. printf("\nNotas: %s", contactos[opc2].Notas);
  224. printf("\nEmpresa: %s", contactos[opc2].Empresa);
  225. printf("\nCargo: %s", contactos[opc2].Cargo);
  226.  
  227. do
  228. {
  229. printf("\n\nEsta seguro de que quiere eliminar este contacto? (1. Si, 2. No): ");
  230. fflush(stdin);
  231. scanf("%d", &opc3);
  232. }while(opc3 < 1 || opc3 > 2);
  233.  
  234. if(opc3 == 1)
  235. {
  236. for(i = opc2; i <= count; i++)
  237. {
  238. contactos[i].Num_Contacto = contactos[i+1].Num_Contacto;
  239. contactos[i].Num_Contacto = contactos[i].Num_Contacto - 1;
  240. strcpy(contactos[i].Nombre, contactos[i+1].Nombre);
  241. strcpy(contactos[i].AP, contactos[i+1].AP);
  242. strcpy(contactos[i].AM, contactos[i+1].AM);
  243. contactos[i].tel = contactos[i+1].tel;
  244. contactos[i].cel = contactos[i+1].cel;
  245. strcpy(contactos[i].email, contactos[i+1].email);
  246. strcpy(contactos[i].sitio_web, contactos[i+1].sitio_web);
  247. strcpy(contactos[i].Notas, contactos[i+1].Notas);
  248. strcpy(contactos[i].Empresa, contactos[i+1].Empresa);
  249. strcpy(contactos[i].Cargo, contactos[i+1].Cargo);
  250. }
  251. count = count - 1;
  252.  
  253. pf = fopen("Archivo.BIN", "wt");
  254. if(pf == NULL)
  255. {
  256. printf("\nError al abrir el archivo.");
  257. getch();
  258. return -1;
  259. }
  260. for(i = 1; i <= count; i++)
  261. {
  262. fprintf(pf, "%d ", contactos[i].Num_Contacto);
  263. fprintf(pf, "%s ", contactos[i].Nombre);
  264. fprintf(pf, "%s ", contactos[i].AP);
  265. fprintf(pf, "%s ", contactos[i].AM);
  266. fprintf(pf, "%d ", contactos[i].tel);
  267. fprintf(pf, "%d ", contactos[i].cel);
  268. fprintf(pf, "%s ", contactos[i].email);
  269. fprintf(pf, "%s ", contactos[i].sitio_web);
  270. fprintf(pf, "%s ", contactos[i].Notas);
  271. fprintf(pf, "%s ", contactos[i].Empresa);
  272. fprintf(pf, "%s\n", contactos[i].Cargo);
  273. }
  274. fclose(pf);
  275.  
  276. printf("\nContacto eliminado correctamente.");
  277. getch();
  278. break;
  279. }
  280. }
  281. else
  282. {
  283. if(i == count)
  284. {
  285. printf("\nNo se encontro el contacto.");
  286. getch();
  287. break;
  288. }
  289. }
  290. }
  291. break;
  292. }
  293. case 4:
  294. {
  295. system("cls");
  296. printf("Gracias por usar esta agenda.");
  297. getch();
  298. break;
  299. }
  300. default:
  301. {
  302. printf("Inserte otra opcion.");
  303. getch();
  304. break;
  305. }
  306. }
  307.  
  308. }while (opc != 4);
  309.  
  310. return 0;
  311. }


MOD: Código adaptado al uso de etiquetas de Código GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines