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ú

Mensajes - robertoesimez

#1
Programación C/C++ / Manejo de archivos txt
4 Abril 2017, 05:25 AM
Me podrian decir como podria ingresar una serie de nombres en un archivo txt y de ahi que se me ordenara segun el metodo que eliga el usuario en el menu,  esto es lo que llevo
Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define Max 100

using namespace std;
FILE *doc;

void OrdenaBur(int , char [Max][Max], char [Max]);//mis funciones
void QS(char [Max][Max],int,int);
void MShell(int , char [Max][Max]);
void Imprimir(int , char [Max][Max]);
void Guardar(int , char [Max][Max]);



int main() {
int Tam;

char arreglo[Max][Max], temp[Max], preg;
int Menu;


cout << "  Metodos de ordenamiento"<<endl;
cout << "Seleccione una opcion"<<endl;
cout <<"1.Ingresar Datos"<<endl;
    cout <<"2.Mostrar Datos"<<endl;
    cout <<"3.Metodo QuickSort"<<endl;
cout <<"4.Metodo Burbuja"<<endl;
    cout <<"5.Metodo Shell"<<endl;
    cout <<"6.Salir"<<endl;

cin >> Menu;

do{//mi menu
system("cls");

cout << "\n\n\t 1.Ingresar Datos\n 2.Mostrar Datos\n 3.Metodo QuickSort"
<< "\n 4.Metodo Burbuja\n 5.Metodo Shell\n "
<< "\n 7.Salir\n";
if(Menu=='\0')
{
cout  << "\t\tSeleccione la opcion\n";
cin >> Menu;
}
switch(Menu){

case 1:
{
cout << "Ingrese la cantidad de cadenas que desee ordenar\n";
cin >> Tam;
Tam--;
Guardar(Tam, arreglo);
break;
}
case 2:
{

cout << "\nSus cadenas ingresadas son las siguientes\n"<<endl;
Imprimir(Tam, arreglo);
break;
}
case 3:
{
QS(arreglo,0,Tam);
Imprimir(Tam,arreglo);
break;
}
case 4:
{
OrdenaBur(Tam,arreglo,temp);
Imprimir(Tam,arreglo);
break;
}
case 5:
{
MShell(Tam, arreglo);
Imprimir(Tam,arreglo);
break;
}
case 6:
{
return 0;
    break;
}

default:
cout << "Error, Debe ingresar un dato valido\n";
}
cout << "\nDesea volver al menu?"
<< "\n s para volver\n n para salir\n";
cin >>preg;
Menu='\0';
}
while(preg=='s');
return 0;
}
void OrdenaBur(int Tam, char arreglo[Max][Max], char temp[Max])
{
int tb, rg;
cout << "\n\nSus cadenas ordenadas alfabeticamente con el metodo burbuja son: \n" << endl;

for(tb=0; tb<Tam; tb++)
for(rg=tb+1; rg<Tam+1; rg++)
if(strcmpi(arreglo[tb], arreglo[rg])>0)
{
strcpy(temp, arreglo[tb]);
strcpy(arreglo[tb], arreglo[rg]);
strcpy(arreglo[rg], temp);
}
}
void QS(char arreglo[Max][Max],int limite_izq,int limite_der)
{

    int izq,der,prob;
    char temporal[Max],pivote[Max];
    cout << "\n\nSus cadenas ordenadas \n"
<< "alfabeticamente con el metodo quick sort son: \n" << endl;

    izq=limite_izq;
    der = limite_der;
    strcpy(pivote,arreglo[(izq+der)/2]);

    do
{

        while(strcmpi(arreglo[izq],pivote)<0)
izq++;
        while(strcmpi(arreglo[der],pivote)>0)
der--;
        if(strcmpi(arreglo[izq],arreglo[der])>=0)
        {
            strcpy(temporal,arreglo[izq]);
            strcpy(arreglo[izq],arreglo[der]);
strcpy(arreglo[der],temporal);
            izq++;
            der--;
        }

    }
while(izq<=der);

    if(limite_izq<der)
QS(arreglo,limite_izq,der);
    if(limite_der>izq)
QS(arreglo,izq,limite_der);
}
void MShell(int Tam, char arreglo[Max][Max])
{
int i,j,k;
char aux[Max] ;
cout << "\n\nSus cadenas ordenadas alfabeticamente con el metodo shell sort son: \n" << endl;
k=Tam/2;

while(k>0)
{
for(i=k/*+1*/;i<=Tam;i++)
{
j=i-k;
while(j>=0)
{
if(strcmp(arreglo[j],arreglo[j+k])>=0)
{
strcpy(aux,arreglo[j]);
strcpy(arreglo[j],arreglo[j+k]);
strcpy(arreglo[j+k],aux);
}
else
{
j=0;
}
j=j-k;
}
}
k=k/2;
}
}



void Guardar(int Tam, char arreglo[Max][Max])
{
int cont;
for (cont=0;cont<=Tam;cont++)
{
cout << "\nCadena "<<cont+1<<endl;
cin >> arreglo[cont];
}
}
void Imprimir(int Tam, char arreglo[Max][Max])//Mi duda con los archivos
{
    int c;
    doc= fopen("alfabetico.txt","r");
    if (doc==NULL){
    cout<<"Error con el archivo"<<endl;

     while((c=getc(doc))!=EOF){
     if(c=='\n'){
      cout<<endl;
     }
      else {
     cout<<c;
     }

     fclose(doc);

     }

    }
}




#2
Las clases me las pidio el profesor si no, no me revisa mi programa
#3
Alguien me puede ayudar a borrar el ultimo nodo en mi lista simplemente enlazada, se lo agradecería mucho




Código (cpp) [Seleccionar]


#include <cstdlib>
#include <iostream>

using namespace std;

class FLORES{//Aquí hago mi clase y mis apuntadores del tipo de la clase
              private:
              FLORES *liga;
              FLORES *primero;
              FLORES *auxiliar;
              FLORES *nuevo;
             
              float precioventa;
             
              public:
              FLORES(){//Inicializo mis apuntadores en NULL
              primero=NULL;
              auxiliar=NULL;
              nuevo=NULL;
              }                 
              void ingresa_nodo();
              void mostrar_nodo();
              void borrar_nodo();                     
             
                };

void FLORES::ingresa_nodo(){//Mi función para ingresar nodos
                             
                             
                     system("cls");   
                     if(primero==NULL){
                    cout<<"ENTRO AQUI PORQUE NO HAY NODOS"<<endl;
                    nuevo= new (FLORES);
                    cout<<"Ingrese el precio de la flor"<<endl;
                    cin>>nuevo->precioventa;
                    primero= nuevo;
                    auxiliar= nuevo;
                    nuevo->liga=NULL;
                    }
                    else{
                    cout<<"ENTRO AQUI PORQUE  HAY NODOS"<<endl;     
                    nuevo=new (FLORES);
                    cin>> nuevo->precioventa;
                    auxiliar->liga= nuevo;   
                    auxiliar=nuevo;
                    nuevo->liga=NULL;
                    }
                    }
                   
                 

void FLORES::borrar_nodo(){// El problema XD
                            auxiliar=auxiliar->liga;
                            delete nuevo;
                            auxiliar->liga=NULL;
                            }
                       
                       
                       
                         
                             
void FLORES::mostrar_nodo(){//Mi función para mostrar nodo
                            auxiliar=primero;
                            while(auxiliar!=NULL){
                            cout<<"Precio:"<<auxiliar->precioventa<<endl;
                            auxiliar=auxiliar->liga;
                            }
                             system("PAUSE");               
                            }
                                     
                                                                   

int main(int argc, char *argv[])
{

FLORES obj;//Creo mi objeto

   
int opc;

do{//Menu
   system("cls");
   cout<<"\t"<<"\t"<<"\t"<<"MENU NODO"<<endl<<endl;
   cout<<"1. Ingresar nodo"<<endl;
   cout<<"2. Borrar nodo"<<endl;
   cout<<"3. Ver nodo"<<endl;
   cout<<"4. Salir"<<endl<<endl;
   cout<<"Elige tu opcion:"<<endl,   
   cin>> opc;       
switch (opc){ 
             case 1:
             obj.ingresa_nodo();     
             break;


            case 2:
            obj.borrar_nodo();     
            break;
     
           case 3:
            obj.mostrar_nodo();
            break; 
           
            case 4:
            break;       
   

 
   
}while(opc!=4);       
    system("PAUSE");
    return EXIT_SUCCESS;
}










#4
Programación C/C++ / Ayuda con nodos
4 Marzo 2017, 21:03 PM
Apreciaria que me pudieran ayudar tengo que hacer un nodo  y que se muestre pero realmente no comprendo muy bien sobre apuntadores, esto es lo que llevo de codigo.

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

using namespace std;

class FLORES{
             private:
             FLORES *liga;
             FLORES *primero;
             float precioventa;
             
             public:
             FLORES(){
             primero=NULL;}                
             void ingresa_nodo();
             void mostrar_nodo();                      
             
               };

void FLORES::ingresa_nodo(){
                            if(primero==NULL){
                             primero= new FLORES;
                               
                            cout<<"El precio de la flor es:"<<endl;
                            cin>>liga->precioventa;
                         
                            system("PAUSE");
                            system("cls");
                            //liga=primero;
                            }
                            else{
                            cout<<"Ya se creo el nodo"<<endl;
                            }        
                            }

void FLORES::mostrar_nodo(){
                           
                          //primero->liga=primero;
                          cout<< liga->precioventa<<endl;
                          system("PAUSE");
                          system("cls");
                         }    

int main(int argc, char *argv[])
{
 
FLORES *obj;

 
int opc;

do{
  cout<<"\t"<<"\t"<<"\t"<<"MENU NODO"<<endl<<endl;
  cout<<"1. Ingresar nodo"<<endl;
  cout<<"2. Mostrar nodo"<<endl;
  cout<<"3. Salir"<<endl<<endl;
  cout<<"Elige tu opcion;"<<endl,    
  cin>> opc;        
switch (opc){  
            case 1:
            obj->ingresa_nodo();    
            break;


           case 2:
           obj->mostrar_nodo();    
           break;
     
          case 3:
     
           break;    
   
}  
 
   
}while(opc!=3);      
   system("PAUSE");
   return EXIT_SUCCESS;
}



· Los códigos deben ir en etiquetas GeSHi
· los temas deben ir en su respectivo subforo (movido)
>aquí las reglas del foro
-Engel Lex
#5
Programación C/C++ / Re: Ayuda en compilacion
10 Noviembre 2016, 23:23 PM
jaja gracias no me habia dado cuenta , y si a mi lista le quisiera ingresar mas de 1 juego como se haria?
#6
Programación C/C++ / Ayuda en compilacion
10 Noviembre 2016, 22:53 PM
Alguien puede decirme porque me dice que no he declarado auxiliar, si lo declare en struct y por lo que me han struct es como si se declarara todo  en publico no se mucho del tema  .

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

using namespace std;
void ingresar();
struct lista{
char nombre[20];
int codigodebarras;
char consola[10];
struct lista *sig;
}*cabeza=NULL, *final=NULL, *auxilar=NULL,*anterior=NULL;

int main(int argc, char *argv[])
{
int opc;
do{
system("cls");
cout<<"Bienvenido"<<endl;
cout<<"Menu de juegos"<<endl;    
cout<<"1.Insertar juego"<<endl;
cout<<"2.Visualizar juego"<<endl;
  cout<<"3.Visualizar juego"<<endl;
 cout<<"4.Borrar juego"<<endl;
  cout<<"5. Salir"<<endl;
 cout<<"Ingrese una opcion"<<endl;
 cin>>opc;
 switch(opc){
 case 1: ingresar();
 break;
 case 5:
                       break;
                       }
                     

system("PAUSE");                

   
   
}while(opc!=5);      
   system("PAUSE");
   return EXIT_SUCCESS;


}

void ingresar(){
auxiliar= new lista;
system("cls");    
if(auxiliar){
cout<<"Bienvenido a lista"<<endl;
cout<<"Ingrese el nombre del juego"<<endl;
fflush(stdin);
gets(auxiliar->nombre);
cout<<"Ingrese el codigo de barras"<<endl;
fflush(stdin);
cin>>codigodebarras;                                      
cout<<"Ingrese la consola de su juego"<<endl;
fflush(stdin);
gets(auxiliar->consola);  
auxiliar->sig=NULL;
if (cabeza==NULL){
cabeza=auxiliar;
final=auxiliar;
}
else{
 final->sig=auxiliar;
 final=auxiliar;
}
}
else{
cout<<"No se aparto memoria"<<endl;
}                        
}
}




Mod: Los códigos deben ir en etiquetas GeSHi