• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Jedi Gu@rdi@n

[Ajuda] Programaçao C++/CLI orientada a objectos

3 mensagens neste tópico

Boas, criei este programa ha pouco tempo p um trabalho da faculdade, mas agora pedem para fazer isto com classes em C++/CLI, eu nunca fiz programacao orientada a objectos e tou um bocado à nora nisto. Desenrasquei-me bem neste programa em programacao procedimental, mas agora nao tou a ver como fazer isto em programacao por objectos.

Podiam dar-me umas luzes por favor??

using namespace System;

int menu();
int funcao_validar_peso(float peso);
float ler_peso();
int funcao_validar_racao(float racao);
float ler_racao();
float funcao_processo(float peso);


void main()
{

char opcao;
int x,y;
String ^tamanho;
float erro, rcorrecta;
array<String^> ^racas;
array<float> ^peso;
array<float> ^racao;

y=0;
while(y==0)
{
	opcao=menu();
	switch(opcao)
	{
	case 1:
		{
			Console::WriteLine("Quantos animais deseja inserir?");
			x = int::Parse(Console::ReadLine());
			peso = gcnew array<float> (x);
			racao = gcnew array<float> (x);
			racas = gcnew array<String^>(x);		
			for(int i=0;i<x;i++)
			{
				Console::WriteLine("{0}º Animal",(i+1));
				peso[i] = ler_peso();	
				racao[i]= ler_racao();
				Console::WriteLine("Qual a raca do {0}º animal?\n",(i+1));
				tamanho = Console::ReadLine();
				racas[i]=tamanho;
				String^ ToLower(tamanho);
				Console::WriteLine("___________________________________________");
			}
			Console::Clear();
			break;
		}
	case 2:
		{       

			for(int i=0;i<x;i++)
			{     
				Console::WriteLine("{0} o. animal, raca {1}\n",(i+1),racas[i]);
				rcorrecta = funcao_processo(peso[i]);

				Console::WriteLine ("A racao correcta seria de: {0} gramas \n", rcorrecta);
				if (racao[i] > rcorrecta)
				{
					erro = (racao[i] - rcorrecta);
					Console::WriteLine ("Racao dada de {0}, excede em {1} gramas o recomendado \n",racao[i],erro);
				}
				else if (racao[i] < rcorrecta)
				{
					erro = (rcorrecta - racao[i]);
					Console::WriteLine ("Racao dada de {0}, e insuficiente em {1} gramas o recomendado \n",racao[i],erro);
				}
				else
				{
					Console::WriteLine ("Racao dada correctamente! \n");

				}
				Console::WriteLine("________________________________________________________________");
			} 
		break;
		}

	case 3:
		{
			Console::WriteLine("Saida \n");
			y=1;
		break;
		}

	}

}
}



/////////////funcoes utilizadas pelo programa principal//////////////////

int menu()
{
     
     Console::WriteLine ("*********Loja de animais********\n");
     Console::WriteLine ("** 1 - inserir dados          **\n");
     Console::WriteLine ("** 2 - calcular racao correcta**\n");
 Console::WriteLine ("** 3 - sair                   **\n");
     Console::WriteLine ("********************************\n\n");
     Console::WriteLine ("Digite a sua opcao: ");
 int n=int::Parse(Console::ReadLine());
 return n;

}



int funcao_validar_peso(float peso)
{
if (peso>0)
{
	return 1;
}
else
{
	return 0;
}
}



float ler_peso()
{
    float peso;

    do{
     	Console::WriteLine("Digite o peso(Kg): ");
		peso = float::Parse(Console::ReadLine());
    }        
while (funcao_validar_peso(peso) == 0);
return peso;	
}



int funcao_validar_racao(float racao)
{
if (racao>0)
{
	return 1;
}
else
{
	return 0;
}
}


float ler_racao()
{
    float racao;

    do{
	Console::WriteLine("Digite a racao em (g): ");
        racao = float::Parse(Console::ReadLine());
    }        
while (funcao_validar_peso(racao) == 0);
return racao;	
}



float funcao_processo(float peso)
{
	float racao_correcta,pmedio;
        int rmedia;

        
	if (peso <= 10)
	{
		rmedia = 100;
		pmedio=5;
	}
	else if (peso >10 && peso <=25)
	{
		rmedia = 250;
		pmedio=7;
	}
	else if (peso >25 && peso <=45)
	{
		rmedia = 400;
		pmedio=9.5;
	}
	else if (peso >45)
	{
		rmedia = 500;
	}



		if (pmedio<5)
		{
			racao_correcta=(rmedia-(0.005*peso*1000));	
		}
		else if (pmedio>5)
		{
			racao_correcta=(rmedia+(0.005*peso*1000));		
		}
		else if (pmedio<7)
		{
			racao_correcta=(rmedia-(0.005*peso*1000));	
		}
		else if (pmedio>7)
		{
			racao_correcta=(rmedia+(0.005*peso*1000));		
		}
		else if (pmedio<9.5)
		{
			racao_correcta=(rmedia-(0.005*peso*1000));
		}
		else if (pmedio>9.5)
		{
			racao_correcta=(rmedia+(0.005*peso*1000));
		}
		else
		{
			racao_correcta=(rmedia+(0.005*peso*1000));
		}

		return (racao_correcta);

}

Obg :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Digam-me o que devo meter em private e public, porque estou um bocado confuso se faz favor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora