Ir ao conteúdo
  • Cadastre-se

C++ C/C++ Projeto Pessoal, Treinamento E Melhoria


Minedead

Posts recomendados

C/C++

Olá, iniciei um projeto pessoal para que eu possa treinar e melhora-lo a medida em que vou aprendendo mais, 

aqui gostaria de receber dicas para que eu possa melhorar meu código, e também NÃO SEI como fazer com que o usuário precione as tecla ENTER ou ESPAÇO,e conte como sair da opção "CONTINUAR? S/N SIM/NÃO " não sei como fazer para reconhecer.

OBS: ESTOU APRENDENDO, OU SEJA, SOU INICIANTE NESSA ÁREA!

#include <iostream>
#include <locale.h>
#include <math.h>
#include <cctype>
#include <stdlib.h>

using namespace std;
//função que calcula a equação de 2°
void equacao(int e1, int e2, int e3){
    float delta,res,res2;
    if(e1!=0){//Caso o termo a seja diferente de 0
                    delta=(e2*e2)-(4*e1*e3);//coleta o valor de delta!
                    cout<<"Delta \n\n"<<delta;//a pena para que eu saiba o delta!
                if(delta<0){
                    cout<<"Não possui raizes reais!\n";
                }
                else if(delta==0){
                    res=(-e2)/(2*e1);
                cout<<"Possui uma raiz: \n"<<res<<endl;
                }else{//CASO A EQUAÇÃO ESTEJA COMPLETA
                    res=(-e2-sqrt(delta))/(2*e1);
                    res2=(-e2+sqrt(delta))/(2*e1);
                    cout<<" 1° raiz: "<<res2<<endl;
                    cout<<" 2° raiz: "<<res<<endl;
                }

                }
                else{
                    cout<<"Termo a=0 não é uma equação de 2°\n";
                }

}
//Realiza algumas da operações matematicas
void soma(double t1,double t2, char esco){
    switch (esco){
    case '+':
        cout<<"SOMA = "<<t1 <<" "<<esco<<" "<<t2<<" = "<<t1+t2;
        break;
    case '-':
        cout<<"SUBTRAÇÃO = "<<t1 <<" "<<esco<<" "<<t2<<" = "<<t1-t2;
        break;
    case 'X':
        cout<<"MULTIPLICAÇÃO = "<<t1 <<" "<<esco<<" "<<t2<<" = "<<t1*t2;
        break;
    case '/':
        cout<<"DIVISÃO = "<<t1 <<" "<<esco<<" "<<t2<<" = "<<t1/t2;
        break;
    case 'E':
        cout<<"EXPONENCIÇÃO = "<<t1<<"^"<<t2<<" = "<< pow(t1,t2);
        break;
    case 'P':
        cout<<t1<<"%"<<" de "<<t2<<" = "<< (t1*t2)/100;
        break;
    }
}

//FUNÇÃO PRINCIPAL

int main()
{
    setlocale(LC_ALL,"portuguese");
    double n1,n2,n3,aux;
    int i1,i2,aux2;
    char esc,opc,mais,opc2;


    cout<<"Realizar operações comuns? S/N\n";
    cin>>opc;
    opc=toupper(opc);

    if(opc=='S'){
        do{
        system("cls");
        cout<<"--------------CALCULADORA--------------\n\n";
        cout<<"-------MENU------MENU------MENU----\n\n";
    cout<<"Informe o tipo de conta que deseja efetuar: \n";
    cout<<"+ ADIÇÃO\n";
    cout<<"- SUBTRAÇÃO\n";
    cout<<"X MULTIPLICAÇÃO\n";
    cout<<"/ DIVISÃO\n";
    cout<<"R RAIZ QUADRADA\n";
    cout<<"E EXPONECIAÇÃO\n";
    cout<<"% RESTO DA DIVISÃO\n";
    cout<<"P PORCENTAGEM\n\n";
    cout<<"   ";
        cin>>esc;
    esc=toupper(esc);
    if(esc=='_'){
        esc='-';
    }
    if (esc=='R'){
        cout<<"Informe o número: \n";
            cin>>n1;
            aux=sqrt(n1);
                cout<<"Raiz quadrada: "<<aux<<endl;
    }
    if (esc=='%'){
        cout<<"Informe dois números para obter o resto da divisão: \n";
            cin>>i1>>i2;
            aux=i1%i2;
            cout<<"\nRESTO = "<<aux;
    }
    else{
        cout<<"Entre com os valores do cálculo: \n";
            cin>>n1;
        cout<<"Outro número: \n";
            cin>>n2;
            soma(n1,n2,esc);
    }
        cout<<"\nCONTINUAR? S/N \n";
            cin>>opc;
        opc=toupper(opc);
        if(opc=='\n'||opc==' '){
        opc=='N';
    }
    }while(opc=='S');
    }
    //realiza equações de 2°
    cout<<"EQUAÇÕES DE 2°GRAU\n";
    cout<<"\nQUANDO O TERMO NÃO APARERECE, DEVE SE INFORMAR O VALOR ZERO(0)\n\n";
    cout<<"Realizar equação? S/N \n\n";
    cin>>opc2;
    opc2=toupper(opc2);

    if(opc2=='S'){
        do{
            system("cls");
            cout<<"Informe os valores de a,b,c: \n";
                cout<<"Termo a: ";
                cin>>n1;
                cout<<"\nTermo b: ";
                cin>>n2;
                cout<<"\nTermo c: ";
                cin>>n3;
                equacao(n1,n2,n3);
                cout<<"\n Realizar outra equação de 2°?S/N \n\n";//caso queira realizar mais operações
                    cin>>mais;
                    mais=toupper(mais);
        }while(mais=='S');
    }

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

@arfneto Se o usuario precionar qualquer letra que não seja 's', o programa não vai executar o que esta dentro do primeiro bloco do{}while, porém  se o usuario não digitar nada e somente precionar a tecla enter eu quero que o programa também não executo o primeiro bloco e siga para a proxima execução. Eu não sei como detectar a tecla enter.

Link para o comentário
Compartilhar em outros sites

15 minutos atrás, Minedead disse:

@arfneto Se o usuario precionar qualquer letra que não seja 's', o programa não vai executar o que esta dentro do primeiro bloco do{}while, porém  se o usuario não digitar nada e somente precionar a tecla enter eu quero que o programa também não executo o primeiro bloco e siga para a proxima execução. Eu não sei como detectar a tecla enter.

 

No modo normal de operação da entrada não há como detectar ENTER. Ou o backspace, ou as setas, ou insert, delete... Essas coisas são tratadas pelo sistema, antes de cin ver os dados. ENTER é a tecla que sinaliza o fim da entrada.

 

2 horas atrás, Minedead disse:

também NÃO SEI como fazer com que o usuário precione as tecla ENTER ou ESPAÇO

 

A grafia é "pressione". 

 

Acho que não é isso o que quer. Se quer simular a entrada de uma tecla dessas no programa sem o cara ter digitado pode usar no Windows SendMessage().

 

ENTER e espaço

 

Acho que pode simplesmente ler a linha toda com getline() e usar a primeira letra nos seus testes

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!