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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Buenas tardes amigos, necesito una ayuda urgente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buenas tardes amigos, necesito una ayuda urgente  (Leído 3,179 veces)
Lucho1110

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Buenas tardes amigos, necesito una ayuda urgente
« en: 9 Agosto 2016, 17:21 pm »

Este algoritmo lo hice con ayuda de foros, mas que todo este y hay algo que no entiendo bien, mi duda es porque control[100]; "en la linea 13" no esta declarada como una variable como tal, sin char, int, float etc, necesito saber eso, gracias...
Código
  1. #include <iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5.  
  6. using namespace std;
  7.  
  8. struct agenda {
  9. char nom[15];
  10. char t_f[20];
  11. char t_m[20];
  12. char dir[30], email[40], grupos[12];
  13. } control[100];
  14. int cont=0;
  15.  
  16. void agregar();
  17. void buscar();
  18. void contactos();
  19.  
  20. main(){
  21. int opc;
  22.  
  23. do{
  24. system("cls");
  25.  
  26. cout<<"MENU:"<<endl;
  27. cout<<"1.Agregar"<<endl;
  28. cout<<"2.Buscar"<<endl;
  29. cout<<"3.Ver todos los contactos"<<endl;
  30. cout<<"4.Salir"<<endl;
  31.  
  32. cin>>opc;
  33.  
  34. switch(opc){
  35. case 1:
  36. agregar();
  37. system("pause");
  38. break;
  39.  
  40. case 2:
  41. buscar();
  42. system("pause");
  43. break;
  44.  
  45. case 3:
  46. contactos();
  47. system("pause");
  48. break;
  49. }
  50. }while(opc!=4);
  51.  
  52. return 0;
  53. }
  54.  
  55. void agregar(){
  56. system("cls");
  57.  
  58. fflush(stdin);
  59. cout<<"Nombre de contacto:"<<cont+1<<endl;
  60. gets(control[cont].nom);
  61.  
  62. fflush(stdin);
  63. cout<<"\nTelefono fijo:"<<endl;
  64. cin>>control[cont].t_f;
  65.  
  66. fflush(stdin);
  67. cout<<"\nTelefono movil:"<<endl;
  68. cin>>control[cont].t_m;
  69.  
  70. fflush(stdin);
  71. cout<<"\nDireccion:"<<endl;
  72. gets(control[cont].dir);
  73.  
  74. fflush(stdin);
  75. cout<<"\nE-mail:"<<endl;
  76. gets(control[cont].email);
  77.  
  78. fflush(stdin);
  79. cout<<"\nGrupo:"<<endl;
  80. gets(control[cont].grupos);
  81.  
  82. cont++;
  83.  
  84. }
  85.  
  86. void buscar(){
  87. char busca[15];
  88. int i;
  89.  
  90. system("cls");
  91.  
  92. fflush(stdin);
  93. cout<<"\nBuscar contacto\nIngrese el nombre del contacto:";
  94. gets(busca);
  95.  
  96. for(i=0;i<cont;i++){
  97. if(strcmpi(busca,control[i].nom)==0){
  98. cout<<"\nNombre: "<<control[i].nom<<"\n";
  99. cout<<"Telefono fijo: "<<control[i].t_f<<"\n";
  100. cout<<"Telefono movil: "<<control[i].t_m<<"\n";
  101. cout<<"Direccion: "<<control[i].dir<<"\n";
  102. cout<<"E-mail: "<<control[i].email<<"\n";
  103. cout<<"Grupo: "<<control[i].grupos<<"\n";
  104. }
  105. }
  106.  
  107. }
  108.  
  109. void contactos(){
  110. int aux, i, j;
  111. char auxc[50];
  112.  
  113. system("cls");
  114.  
  115. for(i=0;i<cont-1;i++){
  116. for(j=0;j<cont-1-i;j++){
  117. if(strcmp(control[j].nom,control[j+1].nom)>0){
  118.  
  119. strcpy(auxc,control[j].nom);
  120. strcpy(control[j].nom,control[j+1].nom);
  121. strcpy(control[j+1].nom,auxc);
  122.  
  123. aux = control[j].t_f[20];
  124. control[j].t_f[20] = control[j+1].t_f[20];
  125. control[j+1].t_f[20] = aux;
  126.  
  127. aux = control[j].t_m[20];
  128. control[j].t_m[20] = control[j+1].t_m[20];
  129. control[j+1].t_m[20] = aux;
  130.  
  131. strcpy(auxc,control[j].dir);
  132. strcpy(control[j].dir,control[j+1].dir);
  133. strcpy(control[j+1].dir,auxc);
  134.  
  135. strcpy(auxc,control[j].email);
  136. strcpy(control[j].email,control[j+1].email);
  137. strcpy(control[j+1].email,auxc);
  138.  
  139. strcpy(auxc,control[j].grupos);
  140. strcpy(control[j].grupos,control[j+1].grupos);
  141. strcpy(control[j+1].grupos,auxc);
  142. }
  143. }
  144. }
  145.  
  146. cout<<"\nAgenda.\n";
  147.  
  148. for(i=0;i<cont;i++){
  149. cout<<"\n.Nombre: \n"<<(i+1)<<control[i].nom<<endl;
  150. cout<<"Telefono fijo: \n"<<control[i].t_f<<endl;
  151. cout<<"Telefono movil: \n"<<control[i].t_m<<endl;
  152. cout<<"Direccion: \n"<<control[i].dir<<endl;
  153. cout<<"E-mail: \n"<<control[i].email<<endl;
  154. cout<<"Grupo: \n"<<control[i].grupos<<endl;
  155. }
  156.  
  157. }


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Buenas tardes amigos, necesito una ayuda urgente
« Respuesta #1 en: 9 Agosto 2016, 17:27 pm »

Pues esta mal declarada :P no se si funcione pero al parecer quieren hacer como si fuera un tipo de dato definido al estilo Typedef.

Deberia de ser asi:

Código
  1. typedef struct agenda {
  2. char nom[15];
  3. char t_f[20];
  4. char t_m[20];
  5. char dir[30], email[40], grupos[12];
  6. }registro;
  7.  
  8. registro control[100];

Ya asi tenemos que control es un arreglo de 100 registros loa cuales tienen la estrucutura de una agenda.

Saludos!


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Buenas tardes amigos, necesito una ayuda urgente
« Respuesta #2 en: 9 Agosto 2016, 17:32 pm »

Imagínate que el tipo, en vez de "float" o "string", fuera "struct Agenda{...}".

De hecho, podrías incluso no ponerle nombre a la struct:

Código
  1. struct {
  2. char nom[15];
  3. char t_f[20];
  4. char t_m[20];
  5. char dir[30], email[40], grupos[12];
  6. } control[100];
Claro que tampoco podrás crear más variables de ese tipo, como sí podías de la otra forma:

Código
  1. struct agenda ag;
  2. agenda ag2; // En C++


Citar
Pues esta mal declarada
Es correcto. Con typedef lo que evitas es tener que poner "struct XXX varName;".
En línea

FurioMoltisanti

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Buenas tardes amigos, necesito una ayuda urgente
« Respuesta #3 en: 9 Agosto 2016, 17:33 pm »

La definición es correcta. Es un array de agenda.

Fuente:Tutorialspoint

Defining a Structure

To define a structure, you must use the struct statement. The struct statement defines a new data type, with more than one member. The format of the struct statement is as follows −

Código
  1. struct [structure tag] {
  2.  
  3.   member definition;
  4.   member definition;
  5.   ...
  6.   member definition;
  7. } [one or more structure variables];  

The structure tag is optional and each member definition is a normal variable definition, such as int i; or float f; or any other valid variable definition. At the end of the structure's definition, before the final semicolon, you can specify one or more structure variables but it is optional. Here is the way you would declare the Book structure −

Código
  1. struct Books {
  2.   char  title[50];
  3.   char  author[50];
  4.   char  subject[100];
  5.   int   book_id;
  6. } book;  
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Buenas tardes amigos, necesito una ayuda urgente
« Respuesta #4 en: 9 Agosto 2016, 17:52 pm »

Pues aun asi se me hace que visualmente no se entiende, ya vimos que el que abrio el topic se confundio, pero mientras funcione esta bien, Si solo vas a usar una unica variable de ese tipo de estrucutura o el arreglo esta bien.

Yo prefiero seguirlo haciendo de la manera completa:

Código
  1. struct nodo{
  2. //definicion de variables
  3. };

Y para declarar las variables
Código
  1. struct nodo *arbol,*grafo,*cola; //etc

Me gustan mas lo apuntadores en fin es el estilo de cada QUIEN

Saludos!
En línea

Lucho1110

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Buenas tardes amigos, necesito una ayuda urgente
« Respuesta #5 en: 9 Agosto 2016, 18:08 pm »

Muchas gracias amigos, me ayudaron muchos sus sugerencias, y si solo usa esa variable de tipo estructura, no usare otra, solo esa, ya aclare esa duda, gracias a todos, estuve mirando lo que me comentaron para cambiarlo, pero como lo dije antes solo usare eso, pero a futuro lo tomare en cuenta para hacerlo de la manera correcta, gracias de nuevo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines