Dev - C++ - AGENDA CON FUNCIONES EN C

 
Vista:

AGENDA CON FUNCIONES EN C

Publicado por kuku (2 intervenciones) el 16/04/2007 21:11:43
Hola, tengo q hacer una agenda de contactos con funciones en c, pero no se cmo aplicar las funciones. Tengo el codigo de la agenda sin las funciones y queria pediros si me podeis decir como seria la agenda hecha con funciones, os dejo mi codigo.
Lo q pide el ejercicio es en un menu:1.Agregar contactos,2.Listar todos,3.Buscar un contacto por nombre,4.Borrar un contacto,5.Quien cumple años,6.Salir.

#include <stdio.h>
#include <stdlib.h>
#include <conio.c>
#include <time.h>

struct fechas
{
int dia_semana;
int dia;
int mes;
int ano;
};

struct fechas ordenador;

struct agenda
{
char nombre[50];
char apellido1[50];
char apellido2[50];
int edad[3];
int telefono[9];
int movil[9];
char mail[30];
int fecha[10];
struct fechas ordenador;
};
struct agenda contactos[100];

int main(int argc, char *argv[])
{
int opcion,i=0,x=0;
int MAX=100,cont=0,pos=0;
char contactos2[50],contactos3[50];

time_t temp;
struct tm *fecha;

do{

printf ("1- Agregar un contacto\n");
printf (" 2- Listar todos los contactos\n");
printf ("3- Buscar un contacto por nombre\n");
printf ("4- Borrar un contacto\n");
printf ("5- Quien cumple los annos hoy\n");
printf ("6- Salir\n\n");
printf ("Selecciona una opcion: ");
fflush(stdin);
scanf("%d",&opcion);

switch(opcion)
{
case 1: //Agregar contacto

if(cont == MAX)
{
printf("Agenda llena.");
getch();
}
else
{
cont++;
system("cls");
printf("Introduzca un nombre: ");
fflush(stdin);
scanf("%s", contactos[cont].nombre);
printf("Introduzca el primer apellido: ");
fflush(stdin);
scanf("%s", contactos[cont].apellido1);
printf("Introduzca el segundo apellido: ");
fflush(stdin);
scanf("%s", contactos[cont].apellido2);
printf("Introduzca la edad: ");
fflush(stdin);
scanf("%s", contactos[cont].edad);
printf("Introduzca el numero de telefono: ");
fflush(stdin);
scanf("%s", contactos[cont].telefono);
printf("Introduzca el movil: ");
scanf("%s", contactos[cont].movil);
printf("Introduzca el e-mail: ");
fflush(stdin);
scanf("%s", contactos[cont].mail);
printf("Introducza la fecha de nacimiento: ");
fflush(stdin);
scanf("%s", contactos[cont].fecha);
}

printf("\n Pulse enter para volver al menu.");
getch();
system("cls");

break;

case 2: //Listar todo
system("cls");
for(i=1;i<=cont;i++)
{
printf("Nombre: %s\n", contactos[*i].nombre);
printf("Apellido primero: %s\n", contactos[*i].apellido1);
printf("Apellido segundo: %s\n", contactos[*i].apellido2);
printf("Edad: %s\n", contactos[*i].edad);
printf("Telefono: %s\n", contactos[*i].telefono);
printf("Movil: %s\n", contactos[*i].movil);
printf("E-mail: %s\n", contactos[*i].mail);
printf("Fecha de nacimiento: %s\n", contactos[*i].fecha);
}
getch();
system("cls");
break;

case 3: //Buscar por nombre
system("cls");
fflush(stdin);
printf("Introduzca el nombre del contacto que desea buscar: ");
gets(contactos2);
for(i=1;i<=MAX;i++)
{
if(strcmp(contactos2,contactos[*i].nombre)==0)
{
printf("Nombre: %s\n", contactos[*i].nombre);
printf("Apellido primero: %s\n", contactos[*i].apellido1);
printf("Apellido segundo: %s\n", contactos[*i].apellido2);
printf("Edad: %s\n", contactos[*i].edad);
printf("Telefono: %s\n", contactos[*i].telefono);
printf("Movil: %s\n", contactos[*i].movil);
printf("E-mail: %s\n", contactos[*i].mail);
printf("Fecha de nacimiento: %s\n", contactos[*i].fecha);
}
}
getch();
system("cls");
break;

case 4: //Borrar
system("cls");
fflush(stdin);
printf("Introduzca el nombre del contacto que desea borrar: ");
scanf("%s",contactos3);

for (i=0;i<MAX;i++)
{
if(strcmp(contactos3,contactos[i].nombre)==0)
{
contactos[i]=contactos[i+1];
for(x=i;x<cont;x++)
{
contactos[x]=contactos[x+1];
}
x--;
cont--;
}
}
system("cls");
break;

case 5: //¿Quien cumple años?

temp = time(NULL);

fecha = localtime(&temp);

ordenador.dia_semana=fecha->tm_wday;

ordenador.dia=fecha->tm_mday;

ordenador.mes=fecha->tm_mon;

ordenador.mes=ordenador.mes+1;

ordenador.ano=fecha->tm_year;

ordenador.ano=ordenador.ano+1900;

break;

break;

case 6: //Salir

break;

}
}while (opcion!<6);

system("PAUSE");
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

CODIGOS DE AGENDA CON FUNCIONADO CORRECTAMENTE

Publicado por TYOGYER EMMAUEL TYOGYER  (1 intervención) el 29/06/2009 19:02:44
#include <iostream>
#include <time.h>
#include <string>
#include "Agenda.h"

using namespace std;

void GetContact(contact*eMM){
fflush(stdin);

cout<<"Name:";
getline(cin,eMM->Name);

cout<<"Direction"<<endl;
cout<<"State";
fflush(stdin);

getline(cin,eMM->direction.state);
cout<<"LGA:";
fflush(stdin);
getline(cin,eMM->direction.LGA);
cout<<"State:";
fflush(stdin);
getline(cin,eMM->direction.street);
cout<<"number:";
fflush(stdin);
cin>>eMM->direction.number;
}
void Contacts List(Agenda *agenda) {
Contacto *eMM;
cout<<endl<<"Contacts"<<endl;

for (int j=0; j < agenda->getNumContacts();j++) {
cout<<"Contacts:"<<i<<endl;
eMM=agenda->getContacts(j);
cout<<"Name:"<<eMM->name;
cout<<" Direction "<<endl;
cout<<"State:"<<eMM->direction.state<<endl;
cout<<"LGA:"<<eMM->direction.LGA<<endl;
cout<<"Street:"<<eMM->direction.street<<endl;
cout<<"Number:"<<eMM->direction.number<<endl;
cout<<endl;
}
}

int main() {
Agenda *agenda;
Contact *eMM=NULL;
agenda=new Agenda;
int jak=0, EC;

while (jak!==4) {
cout<<" seach "<<endl;
cout<<"1.add contact"<<endl<<
"2.- contacts list "<<endl<<"3.- Eliminate contact "<<endl<<"4.out "<<endl;
fflush(stdin);
cout<<endl<<"option:";
cin>>jak;
switch(jak) {
case 1: eMM=new Contact;
GetContact(eMM);
agenda->addContact(eMM);
break;
case 2: Contactslist(agenda);
break;
case 3: cout<<"what contact: ";
cin>>EC;
agenda->eliminateContact(EC);
break;
}
}
delete agenda;
system("pause");
}

#include <iostream>
#include <time.h>

using namespace std;

struct Direction {
string street;
int number;
string LGA;
string state;
};
struct Contact {
string name;
Direccion direccion;
};

#define MAX_TAM 100

class Agenda {
private:
Contact *contacts[MAX_TAM]; // una funcion que definir el numeros de contactos que puede contiene una agenda. El numero max de este es de 100 contactos
int numContacts;// numeros de contactos en una agenda
public:
Agenda();
~Agenda();// una funcion para distruye o cancelar otro contactos
void agregaContact(Contact *DContact);// para agregar contactos
void eliminateContact(int indiceContact);// para quitar contactos
Contact *getContact(int indiceContact);// contenidos de los contactos
int getNumContactos(); // cuantas contactos esta en la agenda
};
Agenda::Agenda() {
numContacts=0;
for (int j=0; j < MAX_TAM; j++) {
contacts[j]=NULL;
}
}
Agenda::~Agenda() {
for (int j=0; j < MAX_TAM; j++) {
if (contacts[j]!=NULL)// vacio o donde no hay contactos en la agenda
delete contacts[j];// para eliminar contacto existe
}
}
void Agenda::addContact(Contact *DContact) {
if (numContacts<MAX_TAM) {
contacts[numContacts++]=DContact;
} else
cout<<" no space in the agenda !!."<<endl
}
void Agenda::eliminateContaco(int indiceContact) {
if (indiceContact<numContacts) {
delete contactos[indiceContacto];
contacts[indiceContact]=NULL;// el contenido es vacio
int j=indiceContact+1;
while((contacts[j]!=NULL) && (j<MAX_TAM)) {
contacts[j-1]=contacts[j];
j++;
}
contacts[j-1]=NULL;// Esta vacio la agenda
numContacts--;
} else
cout<<"The contact do not exist."<<endl;
}
contact *Agenda::getContact(int indiceContact) {
if (indiceContact<numContacts) {
return contacts[indiceContact];
} else
cout<<"The contact do not exist."<<endl;
return NULL;// Ir donde la agenda es vacio
}

int Agenda::getNumContacts() {
return numContacts;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar