-1
我目前正在研究一组代码,我们不得不重写所有正在写入的代码,并将其分解为两个子函数和main。我已经打破了,但我在阅读我的一个子功能时遇到了麻烦。我从来没有学过深入的参数传递,因为我的教授只是简单地提到了它。C++表达式在括号之前
我得到的错误是“显式调用的括号之前的表达式必须有(指针 - )函数类型。”
这是我在遇到问题的代码行:....
type = selectCarpet(type, unitPrice);
unitPrice = oneRoom(pricePerSqYd, count, ftLength, ftWidth, ftSq, ydSq, squareYd, materialCost, totalCost, unitPrice);
,这是功能:
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <string>
using namespace std;
const double BEST = 6.99,
MEDIUM = 4.59,
BASIC = 3.50,
INSTALL = 129.99;
const int NINE = 9;
int selectCarpet(int type, int unitPrice);
double oneRoom(double pricePerSqYd, int count, double ftLength, double ftWidth, int numRooms, double ftSq, double ydSq, int squareYd, double materialCost, double unitPrice, double totalCost);
int main()
{
double ftLength, // room length in feet
ftWidth, // room width in feet
ftSq, // square footage
ydSq, // square yard
materialCost, // carpet material cost
totalCost, // material cost plus install
grandTotal,
unitPrice;
int squareYd, // square yards, round off
type, // carpet type
count,
numRooms;
type = 0;
unitPrice = 0;
double pricePerSqYd,
oneRoom;
type = selectCarpet(type, unitPrice);
totalCost = 0;
cout << "\nEnter number of rooms: ";
cin >> numRooms;
unitPrice = oneRoom(pricePerSqYd, count, ftLength, ftWidth, ftSq, ydSq, squareYd, materialCost, totalCost, unitPrice);
// step 11
grandTotal = 0;
grandTotal += totalCost;
cout << "\n\nThe grand total price is "
<< grandTotal << endl;
// step 13
do
{
cout << "\n\t\t*** CARPET INSTALLATION ***\n\n";
cout << "Select carpet type:\n"
<< "1 - Best Quality, Unit Price $6.99\n"
<< "2 - Medium Quality, unit price $4.59\n"
<< "3 - Basic Quality, Unit price $3.50\n"
<< "4 - exit\n"
<< "Enter your choice --> ";
cin >> type;
} while (type != 1 && type != 2 && type != 3 && type != 4);
return 0;
}
int selectCarpet(int type, int unitPrice)
{
do
{
cout << "\n\t\t*** CARPET INSTALLATION ***\n\n";
cout << "Select carpet type:\n"
<< "1 - Best Quality, Unit Price $6.99\n"
<< "2 - Medium Quality, unit price $4.59\n"
<< "3 - Basic Quality, Unit price $3.50\n"
<< "4 - exit\n"
<< "Enter your choice --> ";
cin >> type;
} while (type != 1 && type != 2 && type != 3 && type != 4);
while (type != 4)
{
// step 2
if (type == 1) unitPrice = BEST;
else if (type == 2) unitPrice = MEDIUM;
else if (type == 3) unitPrice = BASIC;
}
return unitPrice;
}
double oneRoom(double pricePerSqYd, int count, double ftLength, double ftWidth, int numRooms, double ftSq, double ydSq, int squareYd, double materialCost, double unitPrice, double totalCost)
{
for (count = 0; count < numRooms; count++)
{
cout << "Enter room length in feet: ";
cin >> ftLength;
cout << "Enter room diwth in feet: ";
cin >> ftWidth;
// step 5
ftSq = ftLength * ftWidth;
// step 6
ydSq = ftSq/NINE;
// step 7
squareYd = int(ydSq + .5);
// step 8
materialCost = squareYd * unitPrice;
// step 9
totalCost = materialCost + INSTALL;
// step 10
cout << setiosflags(ios::fixed | ios::showpoint)
<< setprecision(2);
cout << "\n\nSquare footage of the room is: " << ftSq
<< "\nSquare yard of the room is:\t" << ydSq
<< "\nSquare yards priced for: " << squareYd
<< "\nMaterial Cost:\t$" << materialCost
<< "\nInstallation\t$" << INSTALL
<< "\nTotal Cost\t$" << totalCost
<< endl << endl;
}
return pricePerSqYd;
}
,因为我有几乎任何帮助表示赞赏不知道我在这里做什么。谢谢。
什么是“selectCarpet”。你应该发布所有的代码,所以我们不必猜测。 –
为什么他还在用脚,还没有过公制?!?! :) – BitTickler
请提供[最小,**完整**和可验证的示例](http://www.stackoverflow.com/help/mcve)。可能'selectCarpet'实际上并不是一个函数。 – Barry