gpt4 book ai didi

c++ - 无法正确计算公式

转载 作者:行者123 更新时间:2023-11-30 05:19:56 27 4
gpt4 key购买 nike

我正在尝试使用几个用户定义的函数来计算各种形状的总面积(选择 1-4)。

我还希望在项目结束时(选择 5)计算总费用。

我可以得到要计算的第一个(圆形)和最后一个(三角形)形状,但不能计算中间两个。

当我尝试计算矩形和圆时,代码只是越过它,就好像它正在跳过它一样。

谁能告诉我我做错了什么?

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cmath>

using namespace std;

//predefined functions
double square(double sqrSide, double sqrArea, double& sqrTot);
double rectangle(double rectLength, double rectWidth, double& rectArea, double& rectTot);
double circle(double radius, double& cirTot, double circleArea);
double triangle(double triBase, double triHeight, double& triTot, double triArea);

//constants
const double MATERIAL_COST = 2.59;
const double LABOR_COST = 32.5;
const double PIE = 3.14;
const double TAX = .0825;


int main()
{
// declare and initialize the variables for the shape
int selection;
double sqrSide = 0;
double sqrArea = 0;
double rectLength = 0;
double rectWidth = 0;
double rectArea = 0;
double radius = 0;
double circleArea = 0;
double triBase = 0;
double triHeight = 0;
double triArea = 0;


double sqrTot = 0;
double rectTot = 0;
double cirTot = 0;
double triTot = 0;


do
{

// get input from user as to what they want to do
cout << "Carpet Area Shape" << endl;
cout << "1. Square" << endl;
cout << "2. Rectangle" << endl;
cout << "3. Circle" << endl;
cout << "4. Triangle" << endl;
cout << "5. Done" << endl;
cout << "Type a number to continue: ";
cin >> selection;
cout << endl;


// loop through the solutions based on the user's selection
switch (selection)
{
case 1: // square
// get the length of the side from the user
cout << "What is the length of the square: ";
cin >> sqrSide;

//get the totals of all the shapes
square(sqrSide, sqrArea, sqrTot);
rectangle(rectLength, rectWidth, rectArea, rectTot);
circle(radius, cirTot, circleArea);
triangle(triBase, triHeight, triTot, triArea);

break;

case 2:// rectangle
// get the length of the side from the user

cout << "What is the length of the rectangle: ";
cin >> rectLength;

cout << "What is the width of the rectangle: ";
cin >> rectWidth;

//get the totals of all the shapes
square(sqrSide, sqrArea, sqrTot);
rectangle(rectLength, rectWidth, rectArea, rectTot);
circle(radius, cirTot, circleArea);
triangle(triBase, triHeight, triTot, triArea);

break;

case 3:// circle
// get the radius of the circle from the user
cout << "What is the radius of the circle: ";
cin >> radius;

//get the totals of all the shapes
square(sqrSide, sqrArea, sqrTot);
rectangle(rectLength, rectWidth, rectArea, rectTot);
circle(radius, cirTot, circleArea);
triangle(triBase, triHeight, triTot, triArea);


break;

case 4:// triangle
// get the length of the base from the user
cout << "What is the base of the triangle: ";
cin >> triBase;

// get the height of the triangle from the user
cout << "What is the height of the triangle: ";
cin >> triHeight;

//get the totals of all the shapes
square(sqrSide, sqrArea, sqrTot);
rectangle(rectLength, rectWidth, rectArea, rectTot);
circle(radius, cirTot, circleArea);
triangle(triBase, triHeight, triTot, triArea);


break;

case 5:// exit

system("cls");

//get the totals of all the sheets before the totals page
square(sqrSide, sqrArea, sqrTot);
// rectangle(rectLength, rectWidth, rectArea, rectTot);
circle(radius, cirTot, circleArea);
triangle(triBase, triHeight, triTot, triArea);

//declare the variable that will be used for the total section
double totalArea;
double carpetCost;
double laborCost;
double subTotal;
double tax;
double totalCost;

//initialize the variable that will be used for the total section
totalArea = sqrTot + rectTot + circleArea + triArea;
carpetCost = totalArea * MATERIAL_COST;
laborCost = (totalArea/100) * LABOR_COST;
subTotal = carpetCost + laborCost;
tax = subTotal * TAX;
totalCost = subTotal + tax;

//the total section
cout << "Total of the area: " << totalArea << endl;
cout << " Carpet Cost: $" << carpetCost << endl;
cout << " Labor Cost: $" << laborCost << endl;
cout << " Sub Total: $" << subTotal << endl;
cout << " Tax: $" << tax << endl;
cout << " Total of charge: $" << totalCost << endl;

break;

default: "You have made an invalid selection. Please choose a number from the list.";
cout << endl;
}

// loop through if the user is still making a valid selection
} while (selection > 0 && selection < 5);

system("pause");
return 0;

}

//user defined function to get the area of the square
double square(double sqrSide, double sqrArea, double& sqrTot)
{
sqrArea = sqrSide * sqrSide;

//get the total area and store it as a variable
sqrTot += sqrArea;

if (sqrTot > 0) {
cout << endl;
cout << " Shape: SQUARE " << endl;
cout << " Side: " << sqrSide << " feet" << endl;
cout << " Area: " << sqrArea << " square feet" << endl;
cout << "Total Area: " << sqrTot << " square feet" << endl;
cout << endl;
}
else
{
cout << endl;
}

return sqrTot;
}

//user defined function to get the area of the rectangle
double rectangle(double rectLength, double rectWidth, double& rectArea, double& rectTot)
{

rectArea = rectLength * rectWidth;

if (rectTot > 0) {
//get the total area and store it as a variable
rectTot += rectArea;
cout << " Shape: RECTANGLE " << endl;
cout << " Length: " << rectLength << " feet" << endl;
cout << " Width: " << rectWidth << " feet" << endl;
cout << " Area: " << rectArea << " square feet" << endl;
cout << "Total Area: " << rectTot << " square feet" << endl;
cout << endl;

}
else
{
cout << endl;
}

return rectTot;
}

//user defined function to get the area of the circle
double circle(double radius, double& cirTot, double circleArea)
{
//get the total area and store it as a variable
circleArea = PIE * radius * radius;

if (cirTot > 0) {
//get the total area and store it as a variable
cirTot += circleArea;
cout << " Shape: CIRCLE " << endl;
cout << " Radius: " << radius << " feet" << endl;
cout << " Area: " << circleArea << " square feet" << endl;
cout << "Total Area: " << cirTot << " square feet" << endl;
cout << endl;

}
else
{
cout << endl;
}

return cirTot;
}

//user defined function to get the area of the triangle
double triangle(double triBase, double triHeight, double& triTot, double triArea)
{
triArea = (triBase*triHeight) / 2;

// get the total area and store it as a variable
triTot += triArea;

if (triTot > 0) {
//get the total area and store it as a variable
triTot += triArea;
cout << " Shape: TRIANGLE " << endl;
cout << " Base: " << triBase << " feet" << endl;
cout << " Height: " << triHeight << " feet" << endl;
cout << " Area: " << triArea << " square feet" << endl;
cout << "Total Area: " << triTot << " square feet" << endl;
cout << endl;

}
else
{
cout << endl;
}

return triTot;
}

最佳答案

在您的代码中:

{
sqrArea = sqrSide * sqrSide;

//get the total area and store it as a variable
sqrTot += sqrArea;

if (sqrTot > 0) {
cout << endl;
cout << " Shape: SQUARE " << endl;
cout << " Side: " << sqrSide << " feet" << endl;
cout << " Area: " << sqrArea << " square feet" << endl;
cout << "Total Area: " << sqrTot << " square feet" << endl;
cout << endl;
}
else
{
cout << endl;
}

return sqrTot;
}

您在 if 语句之前执行此“sqrTot += sqrArea”。

在你正在做的矩形中:

{

rectArea = rectLength * rectWidth;

if (rectTot > 0) {
//get the total area and store it as a variable
rectTot += rectArea;
cout << " Shape: RECTANGLE " << endl;
cout << " Length: " << rectLength << " feet" << endl;
cout << " Width: " << rectWidth << " feet" << endl;
cout << " Area: " << rectArea << " square feet" << endl;
cout << "Total Area: " << rectTot << " square feet" << endl;
cout << endl;

}
else
{
cout << endl;
}

return rectTot;
}

rectTot += rectArea;在 if 语句中。

我认为错误就在这里。如果不是,您可以提供示例输出吗?

希望这对您有所帮助!

关于c++ - 无法正确计算公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40927800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com