Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - planta12

#1
Hola a todos, gracias por su ayuda y tiempo
como puedo implementar clases amigas y el puntero this en este código, es una agenda también tengo mucho código innecesario y que no utilizo.

Código (cpp) [Seleccionar]

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<iomanip>

using namespace std;

char nombre[500000][500];
int Edad[30];
int Mat[230];
int Tel[30];
int bucle;

//Agenda 2
char nombreA1[500000][500];
int EdadA1[30];
int MatA1[230];
int TelA1[30];
int bucleA1,hj;
class Agenda
{
public:
Agenda()
{
cout<<"\n\t->Constructor"<<endl;
}
~Agenda()
{
cout<<"\n\t->Destructor"<<endl;
}
Agenda &establecehora( int );
void Nombre(char a);
int Matricula(int);
int Edad(int);
int Tel(int);
friend class Agenda1;
void convMayusc(char *s);
void Inicial();
private:
friend void convMayusc(char *s);
int hora;

};

class Agenda1
{
public:
Agenda1()
{

}
void convMayusc(char *s);
void estableceX(Agenda &, int);
}User[10];
void Agenda1::convMayusc(char *s)
{
while(*s != '\0')
{
if(*s >= 'a' && *s <= 'z'){
*s-=32;
}
++s;
}
}
int Agenda::Matricula(int x)
{
cout<<"#"<<Mat<<endl;
}
void Agenda::convMayusc(char *s)
{
while(*s != '\0')
{
if(*s >= 'a' && *s <= 'z'){
*s-=32;
}
++s;
}


}
Agenda &Agenda::establecehora( int h )
{
hj=24;
    hora = ( h >= 0 && h < 50 ) ? h : 0;
    return *this;
}
Agenda h;
void Inicial()
{
for(int i=0;i<bucle;i++)
{
cout<<"\n\tUsuario["<<i+1<<"]"<<endl;
cout<<"\n\t["<<i+1<<"]-Nombre completo ";
gets(nombre[i]);
gets(nombre[i]);
h.convMayusc(nombre[i]);
cout<<"\n\t["<<i+1<<"]-Edad ";
cin>>Edad[i];
cout<<"\n\t["<<i+1<<"]-Matricula ";
cin>>Mat[i];
cout<<"\n\t["<<i+1<<"]-Telefono ";
cin>>Tel[i];
}
}

void Mostrar()
{
char c=219;
for( int i=0;i<bucle;i++)
{
cout<<"Nombre:     "<<nombre[i]<<endl;
cout<<"Edad:       "<<Edad[i]<<endl;
cout<<"Matricula: #"<<Mat[i]<<endl;
cout<<"Telefono:   "<<Tel[i]<<endl<<endl;

for(int j=0;j<40;j++)
{
cout<<c<<" ";
}
}
}
void newArray()
{
Agenda1 Object;
for(int j=0;j<bucleA1;j++)
{
cout<<"\n\tUsuario["<<j+1<<"]"<<endl;
cout<<"\n\t["<<j+1<<"]-Nombre completo ";
gets(nombreA1[j]);
gets(nombreA1[j]);
Object.convMayusc(nombreA1[j]);
cout<<"\n\t["<<j+1<<"]-Edad ";
cin>>EdadA1[j];
cout<<"\n\t["<<j+1<<"]-Matricula ";
cin>>MatA1[j];
cout<<"\n\t["<<j+1<<"]-Telefono ";
cin>>TelA1[j];
}
}
void newArrayPrint()
{
char c=219;
for(int j=0;j<bucle;j++)
{
cout<<"Nombre:     "<<nombreA1[j]<<endl;
cout<<"Edad:       "<<EdadA1[j]<<endl;
cout<<"Matricula: #"<<MatA1[j]<<endl;
cout<<"Telefono:   "<<TelA1[j]<<endl<<endl;
for(int j=0;j<40;j++)
{
cout<<c<<" ";
}
}
}

void Search()
{
int mat1,cont;
cout<<"\n\tIngresa Nombre o Matricula o numero de tel. a buscar ";
cin>>mat1;
for(int i=0;i<bucle;i++)
{
if( mat1==Mat[i] || mat1==Tel[i] || mat1==nombre [i][500] )
{
cout<<"Nombre:     "<<nombre[i]<<endl;
cout<<"Edad:       "<<Edad[i]<<endl;
cout<<"Matricula: #"<<Mat[i]<<endl;
cout<<"Telefono:   "<<Tel[i]<<endl<<endl;
cont++;
}
if( mat1==MatA1[i] || mat1==TelA1[i] || mat1==nombreA1 [i][500] )
{
cout<<"Nombre:     "<<nombreA1[i]<<endl;
cout<<"Edad:       "<<EdadA1[i]<<endl;
cout<<"Matricula: #"<<MatA1[i]<<endl;
cout<<"Telefono:   "<<TelA1[i]<<endl<<endl;
cont++;
}
else if(cont<1)
{
cout<<"\n\tNo se encontaron resultados en la base de datos";
cont=0;
}
}
}

void borrar()
{
for(int i=0;i<bucle+bucleA1;i++)
{
int *pointer;
pointer = new int(Edad[i]);
cout<< pointer<<endl;;
delete pointer;
}
}


int main()
{
Agenda Hora;
int op,cont=1,op2;
do{
Hora.establecehora(hj);
   cout<< setw(70)<<" Semptiembre "<<hj<<" 2015" <<endl;
cout<<"\n\t1-Nueva entrada 2-Ver entradas 3-Salir ";
cin>>op;
cout<<endl;
switch(op)
{
case 1:
cout<<"\n\tCuantas entradas quieres ingresar ";
cin>>bucle;
Inicial();
break;
case 2:
Mostrar();
if(cont==2)
{
newArrayPrint();
}
do{
cout<<"\n\t1-Buscar contacto 2-Nueva entrada 3-Continuar ";
cin>>op2;
switch(op2)
{
case 1:
Search();
break;
case 2:
cont=1;
cont++;
cout<<"\n\tCuantas entradas quieres ingresar ";
cin>>bucleA1;
newArray();
//newArrayPrint();
break;
}
/*getch();
system("cls");*/
}while(op2!=3);
break;
case 3:
borrar();
Mostrar();
cout<<"\n\tSaliendo"<<endl;

break;
}
getch();
system("cls");
}while(op!=3);
return 0;
}


#2
tengo dificultades para sacar los 3 productos mas vendidos alguien que me de una idea de como hacerlo. Gracias

#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<conio.h>
#define size 300
void principal();
void Vendido();
void media(int[]);
void mediana(int[]);
void moda(int[],int[]);
void impArr(int[]);
void bubbleSort(int[]);
int frecuencia[15]={0};
int respuestas[size]={0};

main()
{
principal();
getch();
system("cls");
Vendido();
getch();
system("cls");
media(respuestas);
getch();
system("cls");
mediana(respuestas);
getch();
system("cls");
moda(frecuencia,respuestas);
}
void principal()
{
printf("\tBienvenido. Inventario PlantaDynamics.");
printf("\n================================================================================");
printf("\n\tProductos disponibles:");
printf("\n\tProductos            Precio (Dolares)\n");

printf("\n\t1-Ununseptio 10g.................. 20  $ USD\n");
printf("\n\t2-Grafeno 10g..................... 40  $ USD\n");       
printf("\n\t3-acelerador de particulas........ 100 $ USD\n");
printf("\n\t4-Telescopio catadioptrico........ 95  $ USD\n");
printf("\n\t5-Reloj atommico.................. 100 $ USD\n");
printf("\n\t6-Computadora cuantica............ 999 $ USD\n");
    printf("\n\t7-Impresora 3D milimetrica........ 799 $ USD\n");
    printf("\n\t8-Fotocelda solar ultra eficiente. 99  $ USD\n");
    printf("\n\t9-Nitrogeno liquido 1L............ 20  $ USD\n");
printf("\n\t10-Holograma atomico.............. 299 $ USD\n");    
}
void Vendido()
{
//int respuestas[size]={0};
int i,c1=1;
srand(time(NULL));
for(i=0;i<size;i++)
{
respuestas[i]=1+rand()%10;
}
printf("\n\tProductos vendidos durante la semana por cada 30 bloques");
for(i=0;i<size;i++)
{
if(i%30==0)
{
printf("\n");
printf("--------------------------------------------------------------------------------\n");
}
printf("\t%3d",respuestas[i]);
}
}
void media(int sol[])
{
int j, total=0, temp=0;

printf("\n\t Media de Ventas mensuales. PlantaDynamics");
for(j=0;j<size;j++)
    total +=sol[j];

    printf("\nLa media es: %d / %d =%.4f\n\n",total, size,(float)total/size);
}
void mediana(int sol[])
{
printf("\n\t Mediana de Ventas mensuales. PlantaDynamics");
printf("\n================================================================================");

printf("\n\nLa mediana es el elemento %d del total de %d Ventas . \nPara este inventario la mediana es: %d",size/2,size,sol[size/2]);

}

void moda(int freq[], int sol[])
{
int rating, j, h, mayor=0, valormoda=0;

printf("\n\t Moda de Ventas mensuales. PlantaDynamics");
printf("\n================================================================================");

for(rating=1;rating<=9;rating++)
freq[rating]=0;

for(j=0;j<size;j++)
++freq[sol[j]];

printf("\nProducto    Frecuencia    Histograma\n");

for(rating=1;rating<=10;rating++)
{
printf("%5d%15d      ", rating,freq[rating]);
if(freq[rating]){
mayor=freq[rating];
valormoda=rating;
}

for(h=1;h<=freq[rating];h++)
printf("* ");

printf("\n");

printf("\nLa moda es el valor que se repite con mayor frecuencia.\n Para este cuestionario la moda es %d que se repite %d veces.\n\n\n",valormoda, mayor);

}
}
void bubbleSort(int a[])
{
int pasada, j, temp;

for(pasada=1; pasada<size;pasada++){
for(j=0;j<=size-2;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}


}
void impArr(int a[]){
int j;

for(j=0;j<size;j++){
if(j%20==0)
printf("\n");

printf("%2d", a[j]);
}
}