Jump to content


Foto

Como criar um programa simples em C++ de uma biblioteca



Existem 3 respostas neste tópico

#1 rogeriomcj    

rogeriomcj
  • Participante
  • 31 mensagens

Publicado 23 November 2005 - 09:20 PM

Meu professor passou um trabalho e estou completamente atrapalhado !


Seria bem simples ... um programa de uma biblioteca no qual teria:

 

Estantes ... e dentro delas teria Livros e Revistas

 

O usuário final so iria pesquisar livros e revistas ... o programa já teria que cadastrados os mesmo.

 

 

 


 

 


PUBLICIDADE  
 

#2 peczenyj    

peczenyj
  • Participante
  • 433 mensagens

Publicado 23 November 2005 - 10:07 PM

eu já não te respondi, antes ?

Bueno, eu não sei como te ajudar, se você não disser o que precisa.
vou supor que você não sabe C ou C++. Eu sei "bem" C, portanto posso te ajudar ai.

O que você precisa é:
1) Um Documento (de preferencia um txt puro) que diga exatamente o que o seu programa precisa fazer
2) Um modelo (txt de novo) com as estruturas de dados que você vai utilizar, bem como a forma que você pretente acessa-las
3) Um modelo (da-lhe txt) da interface com o usuario.

Ta e ai, como isso te ajuda ? Simples:

Se você sabe exatamente o que o programa DEVE fazer, sabe as estruturas de dados e sabe a interface com o usuario, fica facil descrever um quarto documento onde você descreve as etapas do programa. você pode ainda socar tudo isso no programa como forma de comentarios !

O que diabos o seu programa tem que fazer ? você quer simular uma biblioteca com uns 10 livrinhos ou é algo que tem 150000 livros e revistas ?

#3 rogeriomcj    

rogeriomcj
  • Participante
  • 31 mensagens

Publicado 24 November 2005 - 01:30 PM

Data: 23/11/2005
Autor: peczenyj

eu já não te respondi, antes ?

Bueno, eu não sei como te ajudar, se você não disser o que precisa.
vou supor que você não sabe C ou C++. Eu sei ''bem'' C, portanto posso te ajudar ai.

O que você precisa é:
1) Um Documento (de preferencia um txt puro) que diga exatamente o que o seu programa precisa fazer
2) Um modelo (txt de novo) com as estruturas de dados que você vai utilizar, bem como a forma que você pretente acessa-las
3) Um modelo (da-lhe txt) da interface com o usuario.

Ta e ai, como isso te ajuda ? Simples:

Se você sabe exatamente o que o programa DEVE fazer, sabe as estruturas de dados e sabe a interface com o usuario, fica facil descrever um quarto documento onde você descreve as etapas do programa. você pode ainda socar tudo isso no programa como forma de comentarios !

O que diabos o seu programa tem que fazer ? você quer simular uma biblioteca com uns 10 livrinhos ou é algo que tem 150000 livros e revistas ?

Respondeu sim amigo !!

1) Programa simples: o usuário so vai consultar o livro ou revista e o sistema ira dizer em que estante esta o livro

2) tem que ser feito com classes: foi o que o professor pediu

  PROJETO_BIBLIOTECA

  ESTANTE

  LIVRO

  REVISTA

  so isso.

 

3) A interface é basica, tela preta mesmo. O usuário digita o nome do livro .. o sistema informa em que estante ele esta ... e informa o nomelivro e autor por exemplo ... para revista informa em que estante ... nomedarevista, mes por exemplo

 

 

 

Pra finalizar ... vou simular uma biblioteca com 5 livros e 5 revistas por aí ... simples. mas eu não estou intendendo muito C ... e preciso dessa nota http://www.babooforu.../smilies/15.gif

 

 

Agradeço a ajuda. !!!

 

 


#4 peczenyj    

peczenyj
  • Participante
  • 433 mensagens

Publicado 24 November 2005 - 06:02 PM

Humm agora eu entendi.

bueno, você já tem o que deve ser feito escrito, falta escrever o modelo de dados.

Se você não sabe C ou C++, mas tem que usar classes, você está tratando do paradigma da programação "orientada a objetos" (OO). Logo você não apenas tem que entender a linguagem mas entender OO.

Aqui tem um bom tutorial:
http://www.cprogramm...tml#c tutorial

Em particular, esta sessão:
http://www.cprogramm...l/lesson12.html

Bom, milagre eu não posso fazer, o que posso te dizer é: isto é simples, então não tente complicar, ok ?

PROJETO_BIBLIOTECA pode ser a classe que vai englobar tudo isso. Por enquanto o único método que vejo necessário é algum método de busca.
ESTANTE, LIVRO e REVISTA podem ser classes sem nenhum método, apenas para carregar dados.

Traduzindo: uma classe é uma extrutura basica em OO, ela possui atributos e métodos. você tem que abstrair agora, e bastante, relaxe e pense. Na programação estruturada você tem DADOS e FUNÇÕES. Uma classe engloba estes conceitos. A grande sacada da OO é o seguinte: você pode criar um objeto, uma biblioteca por exemplo, que pertence a CLASSE biblioteca.

Uma biblioteca possui atributos (outros objetos, como livros, revistas e estantes) e métodos (funções de busca, por exemplo).

você faria algo como

int main(void){
Biblioteca b; //b é um objeto que herda a classe Biblioteca

b.procura(); // procura() é um método da classe biblioteca

return (0); // fim
}

Bom, como você define a Biblioteca ? Olha o link acima, ué.

Depois eu dou mais dicas




/* ah... te vira para entender os emoticons bizonhos que este site enfia no meio do codigo... */
#include <iostream>
#include <string>

using namespace std;

//definimos os atributos da classe estante
class Estante
{
public: // publico é tudo que pode ser acessado diretamente
Estante();
~Estante();
void setId(int i); // eu não posso setar o id diretamente,
int getId(); // nem pegar, eu uso estes 2 metodos publicos

protected: // coisas protected so coisas internas
int id;
};

Estante::Estante() // este é o construtor da classe
{ // quando a classe é instanciada, ele é executado
id = -1;
}

Estante::~Estante() // este é o destrutor
{ // ignoreo por enquanto
}

void Estante:etId(int i)
{
id = i; // entendeu este cara ?
}

int Estante::getId()
{
return id; // sacou ?
}

class Livro // mesma coisa...
{
public:
Livro();
~Livro(); //isto é o til '~' + Livro
string getNome(void);
void setNome(int i);
int getIdEstante();
void setIdEstante(int i);

protected:
string name;
int id_estante;
};

Livro::Livro()
{
name="";
id_estante=-1;
}

Livro::~Livro()
{

}

string Livro::getNome()
{
return name;
}

void Livro:etNome(int i)
{
switch {
// este é a coisa mais tosca que eu já fiz, mas to sem saco de fazer algo melhor
case 0:
name ="o magico de oz";
break;
case 1:
name ="operacao trovao";
break;
case 2:
name = "aleluia bar";
break;
case 3:
name = "coloradooo";
break;
case 4:
name = "so jesus salva";
break;
case 5:
name = "so jesus salva 2";
break;
case 6:
name = "jesus continua salvando";
break;
case 7:
name = "jesus descobre o autosave";
break;
case 8:
name = "jesus se alia a Microsoft";
break;
default:
name ="jesus descobre o linux";
break;

}
}

int Livro::getIdEstante()
{
return id_estante;
}

void Livro:etIdEstante(int i)
{
id_estante = i;
}

class Biblioteca
{
public:
Biblioteca();
~Biblioteca(); // isto é o til '~' + Biblioteca
void procura();
protected:
Livro l[10]; // viu so ! estamos usando um vetor de livros - 10 neste caso
Estante e[5]; // e 5 estantes !!!
};

Biblioteca::Biblioteca() // quanto biblioteca for instanciada ela faz isso tudo
{
int i;

for(i=0;i<5;i++) e[i].setId;
for(i=0;i<10;i++) {
l[i].setNome; // sacou ?
l[i].setIdEstante(e[i/2].getId()); // entendeu ?
}
}

Biblioteca::~Biblioteca()
{
}

void Biblioteca:rocura() // aqui entra o lance
{
int i;
for(i=0;i<10;i++){
cout << "livro "" << l[i].getNome() ;
cout << "" estante " < }
/* Acima é so um teste
você tem que procurar livros e revistas em estantes, qual a logica que eu usei ?
simples, estantes tem um id, um numero, so isso.
Um livro esta em uma estante especifica, então você tem que dar o id de uma estante para um livro (ou revista)
Isto é a minha forma de fazer, deve ter trocentos jeitos...
agora você precisa pesquisar onde tao esses livros !!!

veja esta referencia
http://www.cpprefere...tring/find.html

brinque a vontade e acrescente o que quiser...
*/

}

int main(void)
{
Biblioteca B;
B.procura();
return (0);
}



PUBLICIDADE