Ir ao conteúdo

Preciso de ajuda em C++


Natalie M.

Posts recomendados

Postado

Fiz uma calculadora, com algumas opções de operações, menu,... mas...

Tenho três dúvidas:

1.Como calculo o módulo entre double?

2.Como faço para retornar ao menu após a operação escolhida?

3.Como faço para sair? O case 6 não funciona direito.


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>

using namespace std;

int main()
{
double x=0, y=0;
int z=0;
int s;

cout << "Informe dois numeros:\n" << endl;
cin >> x;
cin >> y;

cout << "= = = Menu Principal - Calculadora = = =\n" << endl;
cout << "1 - Adicao." << endl;
cout << "\n2 - Subtracao." << endl;
cout << "\n3 - Multiplicacao." << endl;
cout << "\n4 - Divisao." << endl;
cout << "\n5 - Modulo." << endl;
cout << "\n6 - Sair do programa.\n" << endl;

cin >> z;
system("cls");

switch (z)
{
case 1:
cout << x+y << endl;
break;

case 2:
cout << x-y << endl;
break;

case 3:
cout << x*y << endl;
break;

case 4:
if(y!=0){
cout << x/y << endl;
} else{
cout << "Impossível dividir por zero!" << endl;}
break;

case 5:
cout << x%y << endl;
break;

case 6:
while ((s != 's') && (s != 'n'))
{
cout << "\nDeseja sair? s ou n?" << endl;
cin >> s;

s = tolower(s);
if ((s != 's') && (s != 'n'))
{
cout << "Opção inválida!" << endl;
}
}
}
}
#include <iostream>

Alguém pode me ajudar? :confused:

Postado

Para retornar ao menu use goto

EX:

a:; // mude a para o que desejar

....... // seu programa, etc

goto a; // volta para a

e use um if com goto para sair.

Postado

bom, em caso de você ter aprendido classes, recomendo o seguinte:

1 coloque as funções em uma classe... acho que ajude a organizar

2 use um laço do..while ex:


do
{
cout << "Digite a e b: ";
...
switch(operação)
{
case '+':
...
break;
default: cout << "operação invalida\n";
break;
}
cout << "Quer continuar o programa? ";
cin >> continuar;
}
while(stricmp(continuar, "sim")==0);

ps: não lembro qual é a função de comparação de strings em c++, mas como esta função está em string.h precisa adicionar o header.. e mais, precisa usar array, no caso: continuar[10];

3: a função fmod(x, y) deve resolver seu problema com resto em operação com double ;)

fonte: http://www.cplusplus.com/reference/clibrary/cmath/fmod/

Postado

Se for pra voltar no código, escreva seu código de modo a voltar usando if, while, etc.

Pra frente, existem alguns bons casos.

Mas na grande e maioria das vezes, faça um esforço descomunal pra evitar o goto.

Não é nem que não possa, mas é bem raro precisar usar. Enfim, evite.

Quase sempre não é bom.

http://www.cprogramming.com/tutorial/goto.html

http://stackoverflow.com/questions/379172/to-use-goto-or-not

Postado

Bom voce teve varias respostas , mas um jeito fácil de se ter a recursividade em seus programas é simplesmente chamar a função main e limpar a tela.

Um jeito de fazer isso é adicionar:

cout<<"Aperte qualquer tecla para voltar ao menu principal"<<endl;

getchar();

system("cls");

main();

Adicionando isso no final de cada funcao subtraçao, adiçao etc voce obtem uma boa recursividade na sua calculadora =)

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!