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 - Elias Flores

#1
Código (cpp) [Seleccionar]

#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
struct Nodo{
int Elemento;
Nodo *Sig;
};
class Pila{
private:
Nodo *Tope;
public:
void Crear();
bool Vacia();
void Meter(int);
void Sacar(int &);
//int Cima();
void Mostrar();
void Analizar();
};
void Pila::Crear(){
  Tope=NULL;
}
bool Pila::Vacia(){
 return Tope==NULL;
}
//int Pila::Cima(){
 //if(!Vacia()){
 //return Tope->Elemento;
 //}
//}
void Pila::Meter(int E){
 Nodo *aux=new Nodo();
 if(aux!=NULL){
aux->Elemento=E;
aux->Sig=Tope;
Tope=aux;
 }
}
void Pila::Sacar(int &E){
 if(!Vacia()){
Nodo *aux=Tope;
E=Tope->Elemento;
Tope=Tope->Sig;
delete(aux);
 }
}
void Pila::Analizar(){
   Pila p;
char frase [30];
int x,c,d;
p.Crear();
c=0;
d=0;
cout<<"Escriba un texto: "<<endl;
cin>>frase;
int i=0;
while(frase[i]!='\0'){
  if(frase[i]=='('){
  p.Meter(frase[i]);
  c++;
  }
  if(frase[i]==')'){
  p.Sacar(x);
  d++;
  }
  i++;
}
if(c==d)
cout<<"Los parentesis estan correctos"<<endl;
else
cout<<"Los parentesis estan incorrectos"<<endl;
}
void Pila::Mostrar(){
Nodo *aux=Tope;
if (!Vacia()) {
  while (aux!=NULL){
cout<<"||\t";
cout<<aux->Elemento;
cout<<"\t ||\n";
aux=aux->Sig;
}
}else{
cout<<" ||\t \t||\n";
}
}
int main(){
bool menu=true;int i;Pila P;
   while(menu){
cout<<"\t\t*********************************"<<endl;
cout<<"\t\t*\tMENU\t\t\t*"<<endl;
cout<<"\t\t*********************************"<<endl;
cout<<"\t\t*\t1.-Analizar Frase: \t*"<<endl;
cout<<"\t\t*\t2.-Mostrar Pila\t\t*"<<endl;
cout<<"\t\t*\t3.-Salir\t\t*"<<endl;
cout<<"\t\t*********************************"<<endl;
cin>>i;
       if(i==1){
           P.Analizar();
       }else{
           if(i==2){
               P.Mostrar();
           }else{
               if(i==3){
                   exit(0);
               }
           }
       }
}
   return 0;
}
#2
Hola foro ya estoy devuelta por aqui y con un nuevo tema tengo una presentacion de este login en c++ para una tarea el ejercicio consiste en crear un login con encriptacion de la contraseña, la cual se la incripta por llevando la contraseña a un vector y el vector se multiplica con una matriz que nosotros eligamos en este caso la matriz es {{1,2,1},{0,-1,3},{2,1,0}} en el codigo dejo la matriz definida ya que nunca cambia solo el vector tiene que ser de 3 elementos si o si para poder multiplicar por la matriz, si ponemos un contraseña mas grande igual tenemos que llevarla a vector pero luego hay que cortar el vector en vectores de 3 elementos. todo esto debe ser diseñado con el uso de clase y herencia. estuve resolviendo este ejercicio por con la ayuda de getters y setters para los metodos de la clase pero me quede hasta donde tengo que heredar el atributo contraseña para poder usar el metodo cifrado de la clase cifrado alguien podria darme una mano con el tema de la herencia de la contraseña luego de hay todo es mas facil dejo mi 2 codigos uno con herencia y otro sin herencia HELP!!!!!! T_T T_T T_T
Código (cpp) [Seleccionar]

//lOGIN SIN HERRENCIA
#include<iostream>
#include<windows.h>
#include <fstream>
#include<stdlib.h>
#include<conio.h>
#define MAX 4
#define MIN 1
using namespace std;
char nombre1[10];
char apellido1[10];
char contrasenia1[100];
char cargo1[100];
char cumpleanio1[100];
char nombretxt[100];
void borrar_pantalla();
typedef char matriz[3][3];
typedef char alfabeto[27];
//typedef char palabra [100];
class Registro_Usuario{
public://atributos
string nombre,apellido,contrasenia,cargo,fecha_nacimiento;
public://metodos
Registro_Usuario();//constructor de la clase
~Registro_Usuario();//destuctor de la clase
void setregistro(string,string,string,string,string);
string getregistronombre();
string getregistroapellido();
string getregistrocontrasenia();
string getregistrocargo();
string getregistrofecha_nacimiento();
};
//constructor, nos sirve para inicializar los atributos
Registro_Usuario::Registro_Usuario(){
}
//destructor de la clase
Registro_Usuario::~Registro_Usuario(){
}
//establecemos los valores a los atributos
void Registro_Usuario::setregistro(string _nombre, string _apellido, string _contrasenia, string _cargo, string _fecha_nacimiento){
nombre = _nombre;
apellido = _apellido;
contrasenia = _contrasenia;
cargo = _cargo;
fecha_nacimiento = _fecha_nacimiento;
cout<<"\n\tEscriba el nombre de usuario: ";
gets(nombretxt);
fstream archivo;
archivo.open(nombretxt,ios::out);
if(archivo.bad()){
cout<<"Mary te AMO <3";
exit(1);
}
archivo<<"BIENVENIDO A PROVIDENCIA "<<nombre1<<endl;
archivo<<"Nombre y Apellido: "<<apellido1<<endl;
archivo<<"Contraseña: "<<contrasenia<<endl;
archivo<<"cargo: "<<cargo1<<endl;
archivo<<"cumpleaños: "<<cumpleanio1<<endl;
archivo.close();
}
string Registro_Usuario::getregistronombre(){
return nombre;
}
string Registro_Usuario::getregistroapellido(){
return apellido;
}
string Registro_Usuario::getregistrocontrasenia(){
return contrasenia;
}
string Registro_Usuario::getregistrocargo(){
return cargo;
}
string Registro_Usuario::getregistrofecha_nacimiento(){
return fecha_nacimiento;
}
class cifrado : public Registro_Usuario{
private://atributos
string contrasenia;
public://metodos
cifrado();// contructor de la clase cifrado
~cifrado();
void setcifrado(string);
string getcifradocontrasenia();
};
//contructor de la clase cifrado
cifrado::cifrado(){
}
//destructor de la clase
cifrado::~cifrado(){
}
//establecemos valores a los atributos
void cifrado::setcifrado(string _contrasenia){
contrasenia = _contrasenia;
alfabeto alf = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
matriz m = {{1,2,1},{0,-1,3},{2,1,0}};
int longitud = 0;
}
string cifrado::getcifradocontrasenia(){
return contrasenia;
}
int main(){
const int tam = 4 ;
int opcion_menu;
char caracter;
int i = 0;
cout <<endl<<endl<< "\t\t\t    BIENVENIDOS A PROVIDENCIA" << endl<<endl<<endl;
cout << "------------------------------------------------------------------------------------------------------------------------------------" << endl;
cout << "\t\t\t|1. Ingresar como Usuario    |" << endl;
cout << "\t\t\t|2. Registrarse              |" << endl;
cout << "\t\t\t|3. Ingrersar como Visitante |" << endl;
cout << "\t\t\t|4. Salir del Programa.      |"  << endl;
cout << "------------------------------------------------------------------------------------------------------------------------------------\n" << endl;
cout << " Introduzca Opcion:  ";
cin >> opcion_menu;
if((opcion_menu==1)||(opcion_menu==2)||(opcion_menu==3)||(opcion_menu==4)){
if(opcion_menu==2){
system("cls");
Sleep(1000);
cout<<endl<<endl<<"\n\tBienvenido a PROVIDENCIA: \n";//INGRESAR COMO USUARIO"
gets(nombre1);
cout<<"\n\tDigite su Nombre y Apellido: ";//INGRESAR COMO USUARIO"
gets(apellido1);
cout<<"\n\tDigite su contrasenia: ";//INGRESAR COMO USUARIO"
while (caracter=getch()){
if(caracter==13){
contrasenia1[i]='\0';
break;
}else if (caracter==8){
i--;
cout<<("\b \b");
}else
cout<<("*");
contrasenia1[i]=caracter;
i++;
}
cout<<endl<<"\n\tDigite su Cargo: ";//INGRESAR COMO USUARIO"
gets(cargo1);
cout<<"\n\tDigite su Fecha de nacimineto: ";//INGRESAR COMO USUARIO"
gets(cumpleanio1);
Sleep(1000);    //SEGUNDO Y MEDIO QUE DURA LA PANTALLA, SE PUEDE AUMENTAR EL TIEMPO EN MILISEGUNDOS :v
                system("cls"); //LIMPIA TODO  
                main();
               }
if (opcion_menu==4){
system("cls");  
cout<<endl<<(" El Programa CERRARA en Cualquier Momento"); Sleep(3000);
exit(0);
}
}
if((opcion_menu<MIN)||(opcion_menu>MAX)){        
try {        
system("cls");
            cout<<"\n\n\t  ============================\n"
                <<"\n\n\t | ESTA OPCION  ES INCORRECTA |\n"
                <<"\n\n\t  ============================\n";
                Sleep(1000);    //SEGUNDO Y MEDIO QUE DURA LA PANTALLA, SE PUEDE AUMENTAR EL TIEMPO EN MILISEGUNDOS :v
                system("cls"); //LIMPIA TODO  
                main();//Y VUELVE AL MENÚ
    }
  catch(...)
{cout << "\n UN ERROR HA OCURRIDO " << endl;}
}
switch (opcion_menu){
case 2:
Registro_Usuario usuario;
cifrado codificar;
codificar.setcifrado(contrasenia1);
usuario.setregistro(nombre1,apellido1,contrasenia1,cargo1,cumpleanio1);
break;
}
getch();
return 0;
}
/*void verificar_existencia_de_usuario(string nuevo_usuario)
{
   ifstream archivo(string nuevo_usuario);
   if (!archivo)
   {
            cout<<"\n Nombre de Usuario DISPONIBLE\n"<<endl;Sleep(2500);
            }
            else
            {
            cout<<"\n Este Nombre de Usuario ya Existe.....INTENTELO DE NUEVO"<<endl; Sleep(2500); borrar_pantalla();main();      
            }  
}
/*void Ingresar_PASS(password){
char caracter;
int i = 0;

cout << " Escriba su Nuevo PASS:                 " ;
while (caracter=getch()){
if(caracter==13){
break;
}else if (caracter==8){
i--;
cout<<("\b \b");
}else
cout<<("*");
p.PASS[i]=caracter;
i++;
}
cout<<"\n SE HA REGISTRADO CORRECTAMENTE"<<endl; Sleep(2500);
}*/
void borrar_pantalla()
{
system("CLS");
}
#3
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <string>
#include <ctime>
using namespace std;
void cargar (int arreglo[],int num2,int n);
void mostrar (int arreglo[],int num2,int n);
void invertir (int arreglo[],int a,int b);
void mostrarinversa (int arreglo[],int num2,int n);
int main (){
int n;
cout<<"ingrese la longitud del vector: ";cin>>n;
int arreglo[n];
cargar (arreglo,0,n);
cout<<endl<<endl;
mostrar (arreglo,0,n);
cout<<endl<<endl;
invertir (arreglo,0,n);
cout<<endl<<endl;
mostrarinversa (arreglo,n-n+1,n);
getch();
return 0;
}
void invertir(int arreglo[],int a ,int b){
  int n=b-a+1;
  int aux;
  if (n>1)
     {
     invertir(arreglo,a+1,b-1);
     aux=arreglo[a];
     arreglo[a]=arreglo[b ] ;
     arreglo[ b]=aux ;
      }
}
void mostrarinversa (int arreglo[],int num2,int n){
if (n>0){
mostrarinversa(arreglo,num2+1,n-1);
cout<<arreglo[num2]<<" ";}  
}
void cargar (int arreglo[],int num2,int n){//en el siguiente metodo le pasado el vector y el indice que comienza en cero = num2
if (n>0){   //num2 debe ir aumentando de 1 en 1
srand(time(0));   //el srand sirve para sincronizar el rand con el reloj del pc
cargar(arreglo,num2+1,n-1);   //llamamos a la misma funcion cargar pero menos el ultimo dato n-1
arreglo[num2]=1+rand()% 10;}
}
void mostrar (int arreglo[],int num2,int n){
if (n>0){
mostrar(arreglo,num2+1,n-1);
cout<<arreglo[num2]<<" ";}
}


hola necesito ayuda en esto tengo que llevarlo a una matriz pero todo tiene que ser recurisvo desde cargar la matriz hasta mostrar la matriz solo se puede usar "If" HELP aun son muy nuevo en esto de la recursion




Mod: Es obligatorio el uso de etiquetas GeSHi para poner código.