无法正确计算公式
Can't get the formulas to calculate correctly
本文关键字:计算 更新时间:2023-10-16
我正在尝试使用多个用户定义的功能来计算各种形状的总面积(选择1-4)。
我还希望在计划结束时总计成本(选择5)。
i可以获得第一个(圆圈)和最后(三角形)形状来计算,而不是中间两个。
当我尝试计算矩形并圈出代码时,就好像它在跳过它一样。
谁能告诉我我做错了什么?
#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;
}
您正在执行此" 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语句中。
我相信错误在这里。如果不是,您可以给样本输出吗?
希望这会有所帮助!
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 计算平均值,不包括上次得分
- 如何计算多映射中重复对的数量