* Начальный * C ++ базовый калькулятор - PullRequest
0 голосов
/ 06 декабря 2018

Я относительно новичок в программировании, но мне действительно это нравится.Я взял пару классов, но в основном код для удовольствия (пока).Я решил создать программу, реализующую некоторые основные функции, операторы switch и пользовательский ввод.Пожалуйста, оставьте любой отзыв о том, как сделать эту программу лучше.Спасибо!

#include <iostream>
using namespace std;

int add (int x, int y){
return x+y;
};

int divide (int x, int y){
return x/y;
}

int multiply (int x, int y){
return x*y;
}

int subtract (int x, int y){
return x-y;
}


int main(){

int n1;
int n2;
int user14 = 0;

SomeLine:
cout << "Enter your 2 numbers: "<< endl;
cin >> n1;
cin >> n2;


cout << "Ok, now what do you want to do with those numbers? "<< endl;

cout << "1) Add: " << endl;
cout << "2) Divide: "<<endl;
cout << "3) Multiply: "<< endl;
cout << "4) Subtration: "<< endl;

cin >> user14;

switch (user14)
{
    case 1:
    cout << n1+n2 << endl;
        break;
    case 2:
    cout << n1/n2 << endl;
        break;
    case 3:
    cout << n1*n2<< endl;
        break;
    case 4:
    cout << n1-n2 << endl;
        break;

}

char userchoice;
cout << "Would you like to perform any other operations? y/n "<< endl;

cin >> userchoice;

if (userchoice=='y'){
    goto SomeLine;
}
else if(userchoice=='n'){
    goto Exit;
}

Exit:
return 0;

};

1 Ответ

0 голосов
/ 06 декабря 2018

Я собираюсь ответить, потому что я новичок, и есть несколько вещей, с которыми я могу вам помочь.Я не уверен, стоит ли поощрять или не отвечать на подобные сообщения, но я решил, что в любом случае хочу помочь ...

Первое, что я заметил, это то, что вы сделали большое количествофункций для всех операций, но никогда не использовал их, вместо этого выбрав операторы switch.

Несколько способов использовать функции в вашем коде:

//use in the switch statement
switch(input) {
case 1:
  cout << add(a,b) << endl;
  break;
case 2:
  cout << divide(a,b) << endl;
  break;

Я выбралвключите разделение в этот фрагмент, потому что я хотел рассказать вам об усечении.В C ++ и многих других языках программирования, которые поддерживают типы, вы встретите усечение при преобразовании из типа double в тип int.

Это происходит при делении.Если бы вы делили 5 на 2 (5/2), вы получите 2,5.Но, поскольку вы присваиваете это int, оно хранится только как 2 (десятичная дробь обрезается), потому что целые не способны обрабатывать десятичные дроби.

Для калькулятора я бы полностью порекомендовалконвертируя все используемые вами int в удваивающие значения для ошибки усечения.В случае, если вы хотите выполнять более крупные вычисления по любой причине, превышающей 2147483647 , тогда вы захотите использовать двойные, поскольку они могут хранить около 15 цифр , читайте больше здесь .

Кроме того, не ставьте точки с запятой после скобок функций (это только для вашей функции добавления).

В противном случае, это выглядит довольно хорошо с точки зрения формата, и вы используете некоторые классные концепции, которые я надеваюне пользуйтесь (операторы goto и switch).

Так держать!

...