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 - johnnyd77

#1
Programación C/C++ / ayuda herencia c++
2 Noviembre 2016, 23:50 PM
hola, disculpen la molestia pero necesito auyda con la materia de herencia y polimorfismo (mas herencia), lo que sucede es que hice un header llamado sistema.h y debo hacer 3 clases derivadas de la clase bus (vienen siendo semi cama, premium y salon cama) . en estas clases, tienen los mismos atributos pero solo se diferencian en la capacidad que tienen (semi cama 45, premium 20 y 30 salon cama) y no se como hacer que la otra clase sistema (que es un vector de bus) diferencie cuando es salon cama, semi cama y premium .  les agradeceria mucho su ayuda


Código (cpp) [Seleccionar]

#ifndef SISTEMA_H_
#define SISTEMA_H_

class Bus {
protected:
   std::vector<std::string> asientos_;
   std::string tipo_;
   std::string origen_;
   std::string destino_;
   int precio_;
   int hora_;
public:
   Bus(std::string tipo, size_t asientos, std::string origen, std::string destino, int precio, int hora) {
       for (size_t i = 0; i < asientos; i++)
       {
           asientos_.push_back("");
       }
       tipo_ = tipo;
       origen_ = origen;
       destino_ = destino;
       precio_ = precio;
       hora_ = hora;
   }

   void listarAsientos() {
       std::cout << "Asientos disponibles: ";
       for (size_t i = 0; i < asientos_.size(); i++)
       {  
           if(asientos_[i].size() == 0)
           {
               std::cout << i+1 << " ";
           }
       }
       std::cout << std::endl;

       std::cout << "Asientos vendidos: ";
       for (size_t i = 0; i < asientos_.size(); i++)
       {
           if(asientos_[i].size() != 0)
           {
               std::cout << i+1 << ": " << asientos_[i] << std::endl;
           }
       }
       std::cout << std::endl;
   }

   bool venderAsiento(int asiento, std::string rut) {
       if(asientos_[asiento-1].size() == 0) {
           asientos_[asiento-1] = rut;
           return true;
       }
       return false;
   }

   void info() {
       std::cout << origen_ << "\t" << destino_ << "\t" << tipo_ << "\t" << hora_;
   }
};




class semi_cama:public Bus {
public:

}


};
class Sistema {
protected:
   std::vector<Bus> buses_;
public:
   Sistema(int buses) {
       buses_.reserve(buses);
   }
   
   void agendarBus(Bus bus) {
       buses_.push_back(bus);
   }
   
   void listarAgenda() {
       std::cout << "Selector\tOrigen\t\tDestino\t\tTipo\t\tHora" << std::endl;
       for (size_t i = 0; i < buses_.size(); i++)
       {
           std::cout << i+1 << "\t\t";
           buses_[i].info();
           std::cout << std::endl;
       }
   }
   
   void listarBus(int bus) {
       buses_[bus-1].listarAsientos();
   }
   
   bool venderPasaje(int bus, int asiento, std::string rut) {
       if (buses_[bus-1].venderAsiento(asiento, rut) == false) {
           std::cerr << "El asiento ya está vendido.\n";
           return false;
       }
       return true;
   }
};

#endif
#2
buenas, en la uni comenzamos a ver clases y memoria dinamica en c++, y nos pidieron crear un tipo de dato en una clase que maneja operaciones con un elemento string ingresado por el usuario (es como hacer otro tipo de dato similar a string que haga operaciones de insertar el string enviado por parametro al objeto, eliminar string, preguntar si pertenece , union ,interseccion y diferencia entre ellos).

hice el ver si esta adentro o no, pero no logro entender como hacer el insertar un string por parametro a un objeto de arreglo char. mi code es asi:

Código (cpp) [Seleccionar]

#include <iostream>
#include <cassert>
#include <cstdlib>
#include <string.h>
#include<vector>

using namespace std;

class setstring{
char *objetos;
int cantidad;
int espacio;
public:
setstring(){     //hice un constructor por defecto
espacio=1;
objetos = new char [espacio];
objetos [0]='\0';
cantidad=0;
}
~setstring () {
delete [ ]objetos;}


bool insert (string s)   //mi problema es aqui, no se que hacer.
{
  if(in(s)==false){
 
vector<string> obj ={objetos};         
vector <string> obj2={s};
  obj.push_back(s);
  return true;}
}
   
bool in(string s){
if(strstr(objetos,s.c_str())!=0){
return true;
}
else{
return false;
}
}
};
#3
buenas a todos, necesito crear un programa que abra un fichero y busque palabras (en mi caso , debo buscar tragos y palabras positivas que los acompañen), hasta ahora solo he abierto el archivo, guardado en un string y transforme todas las minusculas a mayusculas para disminuir un poco la cantidad de palabras a buscar. (las palabras no las ingresa el usuario, debe hacerlo el programa.

no se que hacer he intentado pero o no me compila o no hace lo que debe  :( :(
( c++)
Código (cpp) [Seleccionar]

       #include <iostream>
#include <fstream>
#include <cctype>
#include <cstring>
#include <cstdlib>
#include <sstream>

using namespace std;

string lectura(ifstream &file);
string mayusculas (string archivo);


int main(){
int contar;
string contenedor, enmayusculas,copia;
ifstream archivo ("tweets.txt");
if(archivo.fail())
{cout<<"error";
return  1;  }

contenedor=lectura(archivo);
enmayusculas=mayusculas(contenedor);
copia=enmayusculas;
cout<<copia;
system ("pause");  
return 0;
}

string lectura (ifstream &file) {
string entrada, contenido;
while (getline(file,entrada))
contenido=contenido + entrada ;

return contenido;
}

string mayusculas (string archivo) {
for(int i=0;i<archivo.size();i++){
archivo[i]=toupper(archivo[i]);
}
return archivo;
}