Necesito ayuda

Iniciado por Lucho1110, 31 Julio 2016, 03:12 AM

0 Miembros y 1 Visitante están viendo este tema.

Lucho1110

Amigos necesito ayuda, para hacer una agenda telefonica, urgente.

class_OpenGL

Dime la dirección de tu casa, para que así te pueda hacer las tareas xD.

Siento lo del sarcasmo. Ahora en serio, el objetivo de estudiar programación es aprender a programar, y si no haces códigos, nunca aprenderás. En este foro no se realizan tareas, lo que se hace en este foro es poner preguntas concretas, y nosotros, amablemente, intentaremos llegar a una solución. Por ejemplo, puedes preguntar: ¿por qué no me funciona esta parte del código? o ¿cómo puedo hacer tal cosa (concreta)?

Otra cosilla, probablemente los moderadores te digan que pongas títulos descriptivos, y es que lo pone en las reglas de este foro. Por ejemplo, podrías poner: "(Ayuda) Problemas al crear una agenda electrónica en C++"

Por si le quieres echar un vistazo a esas reglas: http://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL

Lucho1110

#2
no pido que me lo hagan solo pedia ayuda para resolver algo que no se porque sucede, es simple, me arroja un error en un simple cout que esta bien escrito al parece, es el primer cout<<"MENU:"<<endl; allí me arroja el error si pueden ayudar seria de muchar ayuda

Código (cpp) [Seleccionar]

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct agenda {
char nom[15];
int t_f;
int t_m;
char dir[30], email[40], grupos[12];
}
control[100];
int cont=0;

void agregar();
void buscar();
void contactos();

int main()
{
int opc;

do{
system("cls");

cout<<"MENU:"<<endl;
cout<<"1.Agregar:"<<endl;
cout<<"2.Buscar:"<<endl;
cout<<"3.Ver todos los contactos:"<<endl;
cout<<"4.Salir:"<<endl;
}



[MOD] Para publicar código, usar las etiquetas GeSHi - Titulo debe ser descriptivo del problema a plantear.

class_OpenGL

Primero, disculpas. Hay mucha gente que pide que les hagamos sus ejercicios, por eso hay que poner un código para ver que llevas algo hecho.

Para poder usar cout sin escribir antes std:: (es decir, escribir std::cout), tienes que incluir, preferentemente, después de los include, 'using namespace std'. Ejemplo:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main() {
        cout << "Hola, mundo!" << endl;
       
        return 0;
}


Lo mismo se aplica para cualquier función/objeto/clase de las librerías estándar de C++

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL

Lucho1110

#4
Tranquilo amigo no hay nada que disculparse solo fue un mal entendido,y me di cuenta de eso hace unos minutos, seguí haciendo el codigo y lo termine con ayuda de varias paginas, el me compila, pero me arroja un problemita cuando deseo agregar mas personas, me salta el nombre o el telefono fijo o el grupo, no se que tengo mal, muchas gracias por la ayuda viejo

[MOD] Nuevamente te recuerdo la obligación de usar etiquetas GeSHi para publicar código. 2º aviso.

Código (cpp) [Seleccionar]

#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

using namespace std;

struct agenda {
char nom[15];
int t_f;
int t_m;
char dir[30], email[40], grupos[12];
} control[100];
int cont=0;

void agregar();
void buscar();
void contactos();

main(){
int opc;

do{
system("cls");

cout<<"MENU:"<<endl;
cout<<"1.Agregar"<<endl;
cout<<"2.Buscar"<<endl;
cout<<"3.Ver todos los contactos"<<endl;
cout<<"4.Salir"<<endl;

cin>>opc;

switch(opc){

case 1:
agregar();
system("pause");
break;

case 2:
buscar();
system("pause");
break;

case 3:
contactos();
system("pause");
break;
}
}while(opc!=4);

return 0;
}

void agregar(){
system("cls");

fflush(stdin);
cout<<"Nombre de contacto:"<<cont+1<<endl;
gets(control[cont].nom);

fflush(stdin);
cout<<"\nTel\202fono fijo:";
cin>>control[cont].t_f;

fflush(stdin);
cout<<"\nTel\202fono m\242vil:";
cin>>control[cont].t_m;

fflush(stdin);
cout<<"\nDirecci\242n:";
gets(control[cont].dir);

fflush(stdin);
cout<<"\nE-mail:";
gets(control[cont].email);

fflush(stdin);
cout<<"\nGrupo:";
gets(control[cont].grupos);

cont++;

}

void buscar(){
char busca[15];
int i;

system("cls");

fflush(stdin);
cout<<"\nBuscar contacto\nIngrese el nombre del contacto:";
gets(busca);

for(i=0;i<cont;i++){
if(strcmpi(busca,control[i].nom)==0){
cout<<"\nNombre: %s\n"<<control[i].nom;
cout<<"Tel\202fono fijo: %d\n"<<control[i].t_f;
cout<<"Tel\202fono m\242vil: %d\n"<<control[i].t_m;
cout<<"Direcci\242n: %s\n"<<control[i].dir;
cout<<"E-mail: %s\n"<<control[i].email;
cout<<"Grupo: %s\n"<<control[i].grupos;
}
}

}

void contactos(){
int aux, i, j;
char auxc[50];

system("cls");

for(i=0;i<cont-1;i++){
for(j=0;j<cont-1-i;j++){
if(strcmp(control[j].nom,control[j+1].nom)>0){

strcpy(auxc,control[j].nom);
strcpy(control[j].nom,control[j+1].nom);
strcpy(control[j+1].nom,auxc);

aux = control[j].t_f;
control[j].t_f = control[j+1].t_f;
control[j+1].t_f = aux;

aux = control[j].t_m;
control[j].t_m = control[j+1].t_m;
control[j+1].t_m = aux;

strcpy(auxc,control[j].dir);
strcpy(control[j].dir,control[j+1].dir);
strcpy(control[j+1].dir,auxc);

strcpy(auxc,control[j].email);
strcpy(control[j].email,control[j+1].email);
strcpy(control[j+1].email,auxc);

strcpy(auxc,control[j].grupos);
strcpy(control[j].grupos,control[j+1].grupos);
strcpy(control[j+1].grupos,auxc);
}
}
}

cout<<"\nAgenda.\n";

for(i=0;i<cont;i++){
cout<<"\n%d.Nombre: %s\n"<<(i+1)<<control[i].nom;
cout<<"Tel\202fono fijo: %d\n"<<control[i].t_f;
cout<<"Tel\202fono m\242vil: %d\n"<<control[i].t_m;
cout<<"Direcci\242n: %s\n"<<control[i].dir;
cout<<"E-mail: %s\n"<<control[i].email;
cout<<"Grupo: %s\n"<<control[i].grupos;
}

}


jorgediazbass

#5
Código (cpp) [Seleccionar]
for(i=0;i<cont;i++){
if(strcmpi(busca,control[i].nom)==0){
cout<<"\nNombre: %s\n"<<control[i].nom;
cout<<"Tel\202fono fijo: %d\n"<<control[i].t_f;
cout<<"Tel\202fono m\242vil: %d\n"<<control[i].t_m;
cout<<"Direcci\242n: %s\n"<<control[i].dir;
cout<<"E-mail: %s\n"<<control[i].email;
cout<<"Grupo: %s\n"<<control[i].grupos;
}


por encima veo q estas escribiendo como fuera la libreria stdio osea no hay necesidad del %s y los %d solo eso por encima y los "\n" van despues de los control....

aqui tambien tenes el mismo error
Código (cpp) [Seleccionar]
cout<<"\nAgenda.\n";

for(i=0;i<cont;i++){
cout<<"\n%d.Nombre: %s\n"<<(i+1)<<control[i].nom;
cout<<"Tel\202fono fijo: %d\n"<<control[i].t_f;
cout<<"Tel\202fono m\242vil: %d\n"<<control[i].t_m;
cout<<"Direcci\242n: %s\n"<<control[i].dir;
cout<<"E-mail: %s\n"<<control[i].email;
cout<<"Grupo: %s\n"<<control[i].grupos;
}

Lucho1110

Ya hice lo que me recomendaste que tenia malo viejo, pero igual, sigue saltandose los telefonos y la direccion, cuando los agrego, aca el codigo de nuevo, no se que mas corregirle, he intentado lo poco que he aprendido


Código (cpp) [Seleccionar]

#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

using namespace std;

struct agenda {
char nom[15];
int t_f;
int t_m;
char dir[30], email[40], grupos[12];
} control[100];
int cont=0;

void agregar();
void buscar();
void contactos();

main(){
int opc;

do{
system("cls");

cout<<"MENU:"<<endl;
cout<<"1.Agregar"<<endl;
cout<<"2.Buscar"<<endl;
cout<<"3.Ver todos los contactos"<<endl;
cout<<"4.Salir"<<endl;

cin>>opc;

switch(opc){
case 1:
agregar();
system("pause");
break;

case 2:
buscar();
system("pause");
break;

case 3:
contactos();
system("pause");
break;
}
}while(opc!=4);

return 0;
}

void agregar(){
system("cls");

fflush(stdin);
cout<<"Nombre de contacto:"<<cont+1<<endl;
gets(control[cont].nom);

fflush(stdin);
cout<<"\nTel\202fono fijo:"<<endl;
cin>>control[cont].t_f;

fflush(stdin);
cout<<"\nTel\202fono m\242vil:"<<endl;
cin>>control[cont].t_m;

fflush(stdin);
cout<<"\nDirecci\242n:"<<endl;
gets(control[cont].dir);

fflush(stdin);
cout<<"\nE-mail:"<<endl;
gets(control[cont].email);

fflush(stdin);
cout<<"\nGrupo:"<<endl;
gets(control[cont].grupos);

cont++;

}

void buscar(){
char busca[15];
int i;

system("cls");

fflush(stdin);
cout<<"\nBuscar contacto\nIngrese el nombre del contacto:";
gets(busca);

for(i=0;i<cont;i++){
if(strcmpi(busca,control[i].nom)==0){
cout<<"\nNombre: \n"<<control[i].nom<<endl;
cout<<"Tel\202fono fijo: \n"<<control[i].t_f<<endl;
cout<<"Tel\202fono m\242vil: \n"<<control[i].t_m<<endl;
cout<<"Direcci\242n: \n"<<control[i].dir<<endl;
cout<<"E-mail: \n"<<control[i].email<<endl;
cout<<"Grupo: \n"<<control[i].grupos<<endl;
}
}

}

void contactos(){
int aux, i, j;
char auxc[50];

system("cls");

for(i=0;i<cont-1;i++){
for(j=0;j<cont-1-i;j++){
if(strcmp(control[j].nom,control[j+1].nom)>0){

strcpy(auxc,control[j].nom);
strcpy(control[j].nom,control[j+1].nom);
strcpy(control[j+1].nom,auxc);

aux = control[j].t_f;
control[j].t_f = control[j+1].t_f;
control[j+1].t_f = aux;

aux = control[j].t_m;
control[j].t_m = control[j+1].t_m;
control[j+1].t_m = aux;

strcpy(auxc,control[j].dir);
strcpy(control[j].dir,control[j+1].dir);
strcpy(control[j+1].dir,auxc);

strcpy(auxc,control[j].email);
strcpy(control[j].email,control[j+1].email);
strcpy(control[j+1].email,auxc);

strcpy(auxc,control[j].grupos);
strcpy(control[j].grupos,control[j+1].grupos);
strcpy(control[j+1].grupos,auxc);
}
}
}

cout<<"\nAgenda.\n";

for(i=0;i<cont;i++){
cout<<"\n.Nombre: \n"<<(i+1)<<control[i].nom<<endl;
cout<<"Tel\202fono fijo: \n"<<control[i].t_f<<endl;
cout<<"Tel\202fono m\242vil: \n"<<control[i].t_m<<endl;
cout<<"Direcci\242n: \n"<<control[i].dir<<endl;
cout<<"E-mail: \n"<<control[i].email<<endl;
cout<<"Grupo: \n"<<control[i].grupos<<endl;
}

}

jorgediazbass

tranquilo todo con calma, mira yo en lo particular no uso el end1 pero esta bien, yo lo corregi asi en mi pc y funciona bien:

Código (cpp) [Seleccionar]
gets(busca);

for(i=0;i<cont;i++){
if(strcmpi(busca,control[i].nom)==0){
cout<<"\nNombre: "<<control[i].nom<<"\n";
cout<<"Tel\202fono fijo: "<<control[i].t_f<<"\n";
cout<<"Tel\202fono m\242vil: "<<control[i].t_m<<"\n";
cout<<"Direcci\242n: "<<control[i].dir<<"\n";
cout<<"E-mail: "<<control[i].email<<"\n";
cout<<"Grupo: "<<control[i].grupos<<"\n";
}


y en la otra parte quedaria asi:

Código (cpp) [Seleccionar]
cout<<"\nAgenda.\n";

for(i=1;i<cont;i++){
cout<<"\n"<<(i)<<".Nombre: "<<control[i].nom<<"\n";
cout<<"Tel\202fono fijo: "<<control[i].t_f<<"\n";
cout<<"Tel\202fono m\242vil: "<<control[i].t_m<<"\n";
cout<<"Direcci\242n: "<<control[i].dir<<"\n";
cout<<"E-mail: "<<control[i].email<<"\n";
cout<<"Grupo: "<<control[i].grupos<<"\n";
}


nota que en el inicio del for coloque i=1 de una vez para evitar el (i+1) que tenias alli y simplemente dejar i, es decir, simplificar tantas operaciones.

PD: elimina la libreria stdio.h ya que no estas haciendo uso de ella

Lucho1110

#8
Muchas gracias amigo, ya hice todo lo que me recomendaste y me da un errorsito en el void contactos(){ , y gracias por la paciensia viejo

Código (cpp) [Seleccionar]
#include <iostream>
#include<stdlib.h>
#include<string.h>

using namespace std;

struct agenda {
char nom[15];
int t_f;
int t_m;
char dir[30], email[40], grupos[12];
} control[100];
int cont=0;

void agregar();
void buscar();
void contactos();

main(){
int opc;

do{
system("cls");

cout<<"MENU:"<<endl;
cout<<"1.Agregar"<<endl;
cout<<"2.Buscar"<<endl;
cout<<"3.Ver todos los contactos"<<endl;
cout<<"4.Salir"<<endl;

cin>>opc;

switch(opc){
case 1:
agregar();
system("pause");
break;

case 2:
buscar();
system("pause");
break;

case 3:
contactos();
system("pause");
break;
}
}while(opc!=4);

return 0;
}

void agregar(){
system("cls");

fflush(stdin);
cout<<"Nombre de contacto:"<<cont+1<<endl;
gets(control[cont].nom);

fflush(stdin);
cout<<"Tel\202fono fijo:"<<endl;
cin>>control[cont].t_f;

fflush(stdin);
cout<<"Tel\202fono m\242vil:"<<endl;
cin>>control[cont].t_m;

fflush(stdin);
cout<<"Direcci\242n:"<<endl;
gets(control[cont].dir);

fflush(stdin);
cout<<"E-mail:"<<endl;
gets(control[cont].email);

fflush(stdin);
cout<<"Grupo:"<<endl;
gets(control[cont].grupos);

cont++;

}

void buscar(){
char busca[15];
int i;

system("cls");

fflush(stdin);
cout<<"\nBuscar contacto\nIngrese el nombre del contacto:";
gets(busca);

for(i=0;i<cont;i++){
if(strcmpi(busca,control[i].nom)==0){
cout<<"\nNombre: "<<control[i].nom<<"\n";
cout<<"Tel\202fono fijo: "<<control[i].t_f<<"\n";
cout<<"Tel\202fono m\242vil: "<<control[i].t_m<<"\n";
cout<<"Direcci\242n: "<<control[i].dir<<"\n";
cout<<"E-mail: "<<control[i].email<<"\n";
cout<<"Grupo: "<<control[i].grupos<<"\n";
}

}

void contactos();{ //<<<<<<ACA ME ARROJA EL error    
int aux, i, j;
char auxc[50];

system("cls");

for(i=0;i<cont-1;i++){
for(j=0;j<cont-1-i;j++){
if(strcmp(control[j].nom,control[j+1].nom)>0){

strcpy(auxc,control[j].nom);
strcpy(control[j].nom,control[j+1].nom);
strcpy(control[j+1].nom,auxc);

aux = control[j].t_f;
control[j].t_f = control[j+1].t_f;
control[j+1].t_f = aux;

aux = control[j].t_m;
control[j].t_m = control[j+1].t_m;
control[j+1].t_m = aux;

strcpy(auxc,control[j].dir);
strcpy(control[j].dir,control[j+1].dir);
strcpy(control[j+1].dir,auxc);

strcpy(auxc,control[j].email);
strcpy(control[j].email,control[j+1].email);
strcpy(control[j+1].email,auxc);

strcpy(auxc,control[j].grupos);
strcpy(control[j].grupos,control[j+1].grupos);
strcpy(control[j+1].grupos,auxc);
}
}
}

cout<<"\nAgenda.\n";

for(i=1;i<cont;i++){
cout<<"\n"<<(i)<<".Nombre: "<<control[i].nom<<"\n";
cout<<"Tel\202fono fijo: "<<control[i].t_f<<"\n";
cout<<"Tel\202fono m\242vil: "<<control[i].t_m<<"\n";
cout<<"Direcci\242n: "<<control[i].dir<<"\n";
cout<<"E-mail: "<<control[i].email<<"\n";
cout<<"Grupo: "<<control[i].grupos<<"\n";
}

}        

jorgediazbass

quita el punto y coma ";"
Código (cpp) [Seleccionar]
void contactos();{ //<<<<<<ACA ME ARROJA EL error   

asi:
Código (cpp) [Seleccionar]
void contactos(){
recuerda que arriba antes del main la declaras como prototipo y alli si lleva punto y coma, pero aqui no lleva porque estas desarollando su metodo