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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda, consejo.....
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, consejo.....  (Leído 3,125 veces)
ii

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda, consejo.....
« en: 8 Abril 2021, 21:22 pm »

Hola a todos, me encuentro realizando una agenda que me permita imprimir los datos en un archivo .txt; decidí realizarla mediante listas enlazadas simples, el problema es que no se como validar los datos, por ejemplo, como saber si el nombre de una persona ya existe en otro nodo, como debería buscarlo?.
Debo crear primeramente el nodo y añadirlo a la lista para posteriormente buscar entre los demás nodos una coincidencia, y si existe alguna debo eliminarlo.
Otra manera que se me ocurrió la cual no se si sea posible es que cuando se ingresan los datos al crear el nodo, buscar dentro de los demás nodos una coincidencia del nombre, si existe alguna escribir un aviso para que ingrese otro nombre,
Este es mi código, no llevo mucho, ya que estoy aprendiendo poco a poco,
Gracias

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<windows.h>
  5. #define V 35
  6.  
  7. typedef struct
  8. {
  9. int IdCliente;
  10. char *Nombre;
  11. char *ApPaterno;
  12. char *ApMaterno;
  13. char *FechaA;
  14. float credito;
  15. float deuda;
  16. struct reg *sig;
  17. }reg;
  18.  
  19. reg *primero = NULL;
  20. reg *ultimo = NULL;
  21. void menu(void);
  22. void subMenu(void);
  23. char *s2(char s[V]);
  24. void NuevoRegistro(void);
  25. void buscar();
  26.  
  27. int main()
  28. {
  29. menu();
  30.  
  31.  
  32.  
  33. return 0;
  34. }
  35.  
  36. void menu(void)
  37. {
  38. int op;
  39.  
  40. do {
  41. puts("\n|---------------------------------------|");
  42. puts("\t\tREGISTRO");
  43. puts("\n  MENU");
  44. puts(" (1) AGREGAR NUEVO REGISTRO");
  45. puts(" (2) MODIFICAR UN REGISTRO PARTICULAR");
  46. puts(" (3) BORRAR UN REGISTRO");
  47. puts(" (4) MOSTRAR REGISTROS");
  48. puts(" (5) SALIR");
  49. printf("\nDigite una opcion: ");
  50. scanf("%d",&op);
  51. if(op < 1 || op > 5) {
  52. printf("\nOPCION INVALIDA!..\n\n");
  53. system("pause");
  54. }
  55. system("cls");
  56. }while(op > 5 || op < 1);
  57.  
  58. switch(op) {
  59. case 1:
  60. NuevoRegistro();
  61. break;
  62. case 2:
  63.  
  64. break;
  65. case 3:
  66.  
  67. break;
  68. case 4:
  69. subMenu();
  70. break;
  71. default:
  72. exit(1);
  73. }
  74. }
  75.  
  76. void subMenu()
  77. {
  78. int op;
  79.  
  80. do {
  81. puts("\n|---------------------------------------|");
  82. puts("\t\tREGISTRO\n\n");
  83. puts(" (1) MOSTAR TODOS LOS REGISTROS");
  84. puts(" (2) MOSTRAR RESGISTRO ESPECIFICO");
  85. puts(" (3) MENU PRINCIPAL");
  86. printf("\n Digite una opcion: ");
  87. scanf("%d",&op);
  88. if(op < 1 || op > 5) {
  89. printf("\nOPCION INVALIDA!..\n\n");
  90. system("pause");
  91. }
  92. system("cls");
  93. }while(op > 3 || op < 1);
  94.  
  95. switch(op) {
  96. case 1:
  97.  
  98. break;
  99. case 2:
  100.  
  101. break;
  102. default:
  103. menu();
  104.  
  105. }
  106. }
  107.  
  108. void NuevoRegistro()
  109. {
  110. char s[V];
  111. reg *nuevo = (reg*)malloc(sizeof(reg));
  112.  
  113. printf("IdCliente: ");
  114. scanf("%d",&nuevo->IdCliente);
  115.  
  116. printf("Nombre: "); scanf("%s",s);
  117. strcpy((nuevo->Nombre = s2(s)),s);
  118.  
  119. printf("Apellido Paterno: "); scanf("%s",s);
  120. strcpy((nuevo->ApPaterno = s2(s)),s);
  121. /*printf("%s",s);*/
  122. printf("Apellido Materno: "); scanf("%s",s);
  123. strcpy((nuevo->ApMaterno = s2(s)),s);
  124.  
  125. printf("Fecha de Alta ""AAAA/MM/DD"": "); scanf("%d",s);
  126. strcpy((nuevo->FechaA = s2(s)),s);
  127.  
  128. do {
  129. printf("Credito: ");
  130. fflush(stdin);
  131. scanf("%.2f",&nuevo->credito);
  132. if((nuevo->credito) < 0)
  133. printf("DATO INVALIDO! CANTIDAD MENOR A CERO.");
  134. }while((nuevo->credito)<0);
  135.  
  136. do {
  137. printf("Deuda: ");
  138. fflush(stdin);
  139. scanf("%.2f",&nuevo->deuda);
  140. if(nuevo->deuda < 0){
  141. printf("DATO INVALIDO! CANTIDAD MENOR A CERO.");
  142. printf("INGRESE UN DATO VALID");
  143. }
  144. }while((nuevo->deuda)<0);
  145.  
  146.  
  147. printf("%s",nuevo->Nombre);
  148. printf("%d",strlen(nuevo->Nombre));
  149. }
  150.  
  151. char *s2(char s[V])
  152. {
  153. char *cad;
  154. cad = (char*)calloc(strlen(s)+1,sizeof(char));
  155.  
  156. return cad;
  157. }
  158.  
  159.  

MOD: El código debe estar entre etiquetas de Código GeSHi


« Última modificación: 8 Abril 2021, 21:47 pm por ii » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda, consejo.....
« Respuesta #1 en: 8 Abril 2021, 23:51 pm »

Buenas!

Como norma general, no te compliques, y separa los procesos lo más posible: Cuando meta el nombre, recorres la lista para ver si existe.
Si existe, se lo pones, para que ponga otro o vuelva al menú.
Si no existe, lo añades (o sigues pidiendo datos).


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda o Consejo Para Ocultar Aplicacion de vB
Programación Visual Basic
NsTeam 9 9,511 Último mensaje 11 Julio 2009, 19:38 pm
por andres_5
Consejo de que seguir estudiando...(Ayuda)
.NET (C#, VB.NET, ASP)
Senior++ 4 4,191 Último mensaje 31 Marzo 2012, 09:57 am
por Senior++
Practicando con PHP y mySQL [Ayuda/consejo]
PHP
anonimo12121 2 2,391 Último mensaje 1 Abril 2012, 19:07 pm
por anonimo12121
(ayuda) consejo sobre tarjeta grafica
Hardware
wilivarob 2 2,891 Último mensaje 18 Agosto 2019, 18:26 pm
por wilivarob
Necesito ayuda consejo con un problema extraño
Foro Libre
Hason 5 3,098 Último mensaje 17 Noviembre 2019, 02:44 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines