税计算器暂停程序

时间:2016-07-23 17:23:14

标签: c++ calculator pause tax

我正在用C ++做税计算器,但是我有一个错误 它应该输入几个数据:车辆类型,日期和型号。 但是程序在暂停之前只问了一个,但没有继续。

假设操作如下: 您输入一种类型的车辆,然后是发行日期,最后是其价格。

鉴于这些数据,该计划应该计算必须包括的税收百分比。

但正如我所说,该程序在询问第二个数据之前暂停了。

这是代码

#include <iomanip>
#include <iostream>

using namespace std;

int main(){

std:string a;//tipo
int b;//año
double c;//precio
char d;//resultado

cout << "Ingrese el tipo:";
cin >> a;

cout << "Ingrese el año:";
cin >> b;

cout << "Ingrese el precio:";
cin >> c;

if (a = "automovil" && b <= 1980){
   d = c*100/3.3;
   }else if ( a == "automovil" && b <= 1990){
         d = c*100/5.5;
   }else if ( a == "automovil" && b <= 2000){
         d = c*100/7;
   }else if ( a == "automovil" && b <= 2010){
         d = c*100/10;
   }else if ( a == "camioneta" && b <= 1980){
         d = c*100/3.3;
   }else if ( a == "camioneta" && b <= 1990){
         d = c*100/5.5;
   }else if ( a == "camioneta" && b <= 2000){
         d = c*100/7;
   }else if ( a == "camioneta" && b <= 2010){
         d = c*100/10;
   }else if ( a == "camion" && b <= 1980){
         d = c*100/3.3;
   }else if ( a == "camion" && b <= 1990){
         d = c*100/5.5;
   }else if ( a == "camion" && b <= 2000){
         d = c*100/7;
   }else if ( a == "camion" && b <= 2010){
         d = c*100/10;
   }else if ( a == "volqueta" && b <= 1980){
         d = c*100/3.3;
   }else if ( a == "volqueta" && b <= 1990){
         d = c*100/5.5;
   }else if ( a == "volqueta" && b <= 2000){
         d = c*100/7;
   }else if ( a == "volqueta" && b <= 2010){
         d = c*100/10;
   }

cout << d;

return 0;
}

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

您的代码存在一些问题:要测试是否使用==运算符(而不是赋值=运算符)。

E.g。

if (a = "automovil" && b <= 1980)

...
else if ( a = "automovil" && b <= 1990){

应该是

if (a == "automovil" && b <= 1980)

...
else if ( a == "automovil" && b <= 1990){

你的最后一行希望你写一些标准输入。正如评论中我想的那样,如果您真的想测试计算出的d值,则应将其打印到标准输出,如下所示:

cout << d << endl;

因为当前正在发生的事情是,当您在标准输入中键入内容时,您将覆盖计算的d值。

答案 1 :(得分:1)

你的代码中有几个错误,最糟糕的是你不应该将“a”声明为char,从你的代码看起来应该是std :: string。你还应该注意以下代码是错误的

if (a = "automovil" && b <= 1980){

你应该使用

if (a == "automovil" && b <= 1980){

答案 2 :(得分:0)

您的代码中存在大量错误:

首先,您需要将ab声明为std:string,而不是char

第二次,您需要使用==来比较两个变量,而不是=,它是赋值运算符。

第三次,您需要在计划结束时cout << d;而不是cin >> d;