GRAFOS
11/09/2008
0
Pessoal estou com a seguinte duvida. Estou com um método que imprimi em um Form, logo preciso que seja impresso em um arquivo como faço isto?
segue meu codigo abaixo.
/**
* Imprimir os vertices pendentes no Form1
**/
void TGrafo::VerticesPendentes() {
AnsiString Aux = ´´;
for( int x = 0; x < n; x++ ){
if ( RetornaGrau(x) == 1 ) {
Aux = Aux + AnsiString(RetornaNome(x).c_str()) + ´ ´;
}//fim if
}//fim for
Form1->Relatorio->Lines->Add(Aux);
}//fim VerticesPendentes
Criei um metodo no main q gera o arquivo, mas o metodo acima é void como inserir o resultado no arquivo?
Abaixo o main do meu programa
#include ´grafo.h´
include <iostream> //cin e cout (windows: iostream.h)
include <fstream> //fun &807;~es de arquivo (windows: fstream.h)
using namespace std;
//=====================================================================
// DEFINICOES DE CONSTANTES
//=====================================================================
#define endl ´\n´
define TAB_MENU ´\t\t\t\t\t\t´
define TAB ´\t´
define MAX_TAM 100
void gerarRelatorio(Grafo *g){
//cria e abre um arquivo para a escrita em modo texto
ofstream fout (´teste.txt´);
//escreve no arquivo
fout << ´\nNumero de Vertices: ´ << g->numeroVertice();
fout << ´\nNumero de Arestas: ´ << g->numeroAresta();
fout << ´\nNumero de Componetes: ´ << g->numeroComponente();
fout << ´\nO grafo é Regular? ´;
if (g->Regular()== 0){
fout << ´Não´ ;
}
else
fout << ´Sim´ ;
fout << ´\nO grafo é Nulo? ´ << g->Nulo();
fout << ´\nO grafo é Completo? ´ ;
if (g->Completo()== 0){
fout << ´Não´;
}
else
fout << ´Sim´;
fout << ´\nO grafo é Simples? ´;
if (g->Simples()== 0){
fout << ´Não´;
}
else
fout << ´Sim´;
fout << ´\nO grafo é Euleriano? ´;
if (g->Euleriano()== 0){
fout << ´Não´;
}
else
fout << ´Sim´;
fout << ´\nO grafo é Unicursal? ´;
if (g->Unicursal()== 0){
fout << ´Não´;
}
else{
fout << ´Sim´;
}
fout << ´\nO grafo possui condiçoes para ser Hamiltoniano? ´;
if (g->Hamiltoniano() == 0){
fout << ´Não´;
}
else{
fout << ´Sim´;
}
// fout << ´\nGrafo Complementar: ´ << g->Complementar();
//...
/*//fout << ´\nLISTA ADJ:´;
for(int i = 0; i < g->numeroVertice(); i++){
fout << ´\nVertice(´ << i << ´):´
//....
}*/
// fecha o arquivo
fout.close();
}
//=====================================================================
// FUNCAO PRINCIPAL
//=====================================================================
int main(int argc, char **argv){
Grafo *g = new Grafo;
char opcao;
FILE *arq;
//Validar o arquivo que contem o grafo
if(argc != 2){
cout << endl << ´ERRO: Sintaxe ./main <NOME_ARQUIVO_GRAFO>´ << endl << endl;
exit(1);
}else{
arq = fopen(argv[1],´r´);
if (arq == NULL){
cout << endl << ´ERRO: O arquivo ´ << argv[1] << ´ não existe.´ << endl << endl;
exit(1);
}
fclose(arq);
}
//Leitura do grafo
g->lerGrafo(argv[1]);
do{
clrscr();
cout << ´================================´ << endl;
cout << ´TP1 - GTC - PUC MINAS´ << endl;
cout << ´================================´ << endl;
cout << endl << endl << endl;
cout << TAB_MENU << ´(I)Imprimir Grafo´ << endl;
cout << TAB_MENU << ´(2)Relatorio´ << endl;
cout << TAB_MENU << ´(3)Grafo Complementar´ << endl;
// cout << TAB_MENU << ´(1)Verifica se Grafo é Complementar´ << endl;
cout << TAB_MENU << ´(S)Sair´ << endl;
opcao = toupper(getch());
clrscr();
cout << ´================================´ << endl;
cout << ´TP1 - GTC - PUC MINAS´ << endl;
cout << ´================================´ << endl;
cout << endl << endl << endl;
if(opcao == ´I´){
g->imprimir();
getch2();
}
if(opcao == ´2´){
gerarRelatorio(g);
getch2();
}
if(opcao == ´3´){
cout << ´\nGrafo Complementar: ´;
Grafo complementar = g->getComplementar();
complementar.imprimir();
getch2();
}
// if(opcao == ´1´){
// printf(´¬d´,g->Complementar());
//getch2();
// }
}while(opcao != ´S´);
clrscr();
return 0;
}//--------------------------------------------------------------------
se precisar mando a classe grafo.cc
to compilando no linux
segue meu codigo abaixo.
/**
* Imprimir os vertices pendentes no Form1
**/
void TGrafo::VerticesPendentes() {
AnsiString Aux = ´´;
for( int x = 0; x < n; x++ ){
if ( RetornaGrau(x) == 1 ) {
Aux = Aux + AnsiString(RetornaNome(x).c_str()) + ´ ´;
}//fim if
}//fim for
Form1->Relatorio->Lines->Add(Aux);
}//fim VerticesPendentes
Criei um metodo no main q gera o arquivo, mas o metodo acima é void como inserir o resultado no arquivo?
Abaixo o main do meu programa
#include ´grafo.h´
include <iostream> //cin e cout (windows: iostream.h)
include <fstream> //fun &807;~es de arquivo (windows: fstream.h)
using namespace std;
//=====================================================================
// DEFINICOES DE CONSTANTES
//=====================================================================
#define endl ´\n´
define TAB_MENU ´\t\t\t\t\t\t´
define TAB ´\t´
define MAX_TAM 100
void gerarRelatorio(Grafo *g){
//cria e abre um arquivo para a escrita em modo texto
ofstream fout (´teste.txt´);
//escreve no arquivo
fout << ´\nNumero de Vertices: ´ << g->numeroVertice();
fout << ´\nNumero de Arestas: ´ << g->numeroAresta();
fout << ´\nNumero de Componetes: ´ << g->numeroComponente();
fout << ´\nO grafo é Regular? ´;
if (g->Regular()== 0){
fout << ´Não´ ;
}
else
fout << ´Sim´ ;
fout << ´\nO grafo é Nulo? ´ << g->Nulo();
fout << ´\nO grafo é Completo? ´ ;
if (g->Completo()== 0){
fout << ´Não´;
}
else
fout << ´Sim´;
fout << ´\nO grafo é Simples? ´;
if (g->Simples()== 0){
fout << ´Não´;
}
else
fout << ´Sim´;
fout << ´\nO grafo é Euleriano? ´;
if (g->Euleriano()== 0){
fout << ´Não´;
}
else
fout << ´Sim´;
fout << ´\nO grafo é Unicursal? ´;
if (g->Unicursal()== 0){
fout << ´Não´;
}
else{
fout << ´Sim´;
}
fout << ´\nO grafo possui condiçoes para ser Hamiltoniano? ´;
if (g->Hamiltoniano() == 0){
fout << ´Não´;
}
else{
fout << ´Sim´;
}
// fout << ´\nGrafo Complementar: ´ << g->Complementar();
//...
/*//fout << ´\nLISTA ADJ:´;
for(int i = 0; i < g->numeroVertice(); i++){
fout << ´\nVertice(´ << i << ´):´
//....
}*/
// fecha o arquivo
fout.close();
}
//=====================================================================
// FUNCAO PRINCIPAL
//=====================================================================
int main(int argc, char **argv){
Grafo *g = new Grafo;
char opcao;
FILE *arq;
//Validar o arquivo que contem o grafo
if(argc != 2){
cout << endl << ´ERRO: Sintaxe ./main <NOME_ARQUIVO_GRAFO>´ << endl << endl;
exit(1);
}else{
arq = fopen(argv[1],´r´);
if (arq == NULL){
cout << endl << ´ERRO: O arquivo ´ << argv[1] << ´ não existe.´ << endl << endl;
exit(1);
}
fclose(arq);
}
//Leitura do grafo
g->lerGrafo(argv[1]);
do{
clrscr();
cout << ´================================´ << endl;
cout << ´TP1 - GTC - PUC MINAS´ << endl;
cout << ´================================´ << endl;
cout << endl << endl << endl;
cout << TAB_MENU << ´(I)Imprimir Grafo´ << endl;
cout << TAB_MENU << ´(2)Relatorio´ << endl;
cout << TAB_MENU << ´(3)Grafo Complementar´ << endl;
// cout << TAB_MENU << ´(1)Verifica se Grafo é Complementar´ << endl;
cout << TAB_MENU << ´(S)Sair´ << endl;
opcao = toupper(getch());
clrscr();
cout << ´================================´ << endl;
cout << ´TP1 - GTC - PUC MINAS´ << endl;
cout << ´================================´ << endl;
cout << endl << endl << endl;
if(opcao == ´I´){
g->imprimir();
getch2();
}
if(opcao == ´2´){
gerarRelatorio(g);
getch2();
}
if(opcao == ´3´){
cout << ´\nGrafo Complementar: ´;
Grafo complementar = g->getComplementar();
complementar.imprimir();
getch2();
}
// if(opcao == ´1´){
// printf(´¬d´,g->Complementar());
//getch2();
// }
}while(opcao != ´S´);
clrscr();
return 0;
}//--------------------------------------------------------------------
se precisar mando a classe grafo.cc
to compilando no linux
Leojunio
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)