0

大家好,这是我的第一篇文章。我正在使用以下参数进行家庭作业。

计件工人按计件支付。通常,生产更多产出的工人得到更高的报酬。

1 - 199 pieces completed  $0.50 each
200 - 399 $0.55 each (for all pieces)
400 - 599 $0.60 each
600 or more   $0.65 each

输入:对于每个工人,输入名称和完成的件数。

Name          Pieces

Johnny Begood     265
Sally Great       650
Sam Klutz     177
Pete Precise      400
Fannie Fantastic  399
Morrie Mellow     200

输出:打印适当的标题和列标题。每个工人应该有一个明细行,显示姓名、件数和收入。计算并打印件数和赚取的美元金额的总和。

处理:对于每个人,通过将件数乘以适当的价格来计算所赚取的工资。累计件数和支付的总金额。

示例程序输出:

Piecework Weekly Report

Name          Pieces  Pay

Johnny Begood     265 145.75
Sally Great       650 422.50
Sam Klutz     177 88.5
Pete Precise      400 240.00
Fannie Fantastic  399 219.45
Morrie Mellow     200 110.00

Totals            2091    1226.20

您需要编码、编译、链接和运行一个哨兵控制的循环程序,该程序将输入转换为输出规范,如上面的附件所示。输入项应输入到名为piecework1.dat 的文本文件中,输出文件存储在piecework1.out 中。程序文件名为piecework1.cpp。这三个文件的副本应以原始形式通过电子邮件发送给我。

使用单个变量读取名称,而不是使用两个不同的变量。要做到这一点,您必须使用课堂上讨论的 getline(stream, variable) 函数,但您将用您的文本文件流变量名称替换 cin。不要忘记在程序顶部编写编译器指令 #include <string> 以确认字符串变量 name 的使用。您的嵌套 if-else 语句、累加器、计数控制循环应经过适当设计以正确处理数据。

下面的代码将运行,但不会产生任何输出。我认为它需要第 57 行附近的东西来停止循环。

类似的东西(这只是一个例子......这就是为什么它不在代码中。)

count = 1;
while (count <=4)

有人可以查看代码并告诉我需要引入什么样的计数,以及是否需要进行任何其他更改。

谢谢。

//COS 502-90
//November 2, 2012
//This program uses a sentinel-controlled loop that transforms input to output.

#include <iostream>
#include <fstream>
#include <iomanip>  //output formatting
#include <string>   //string variables
using namespace std;

int main()
{

double pieces;          //number of pieces made
double rate;            //amout paid per amount produced
double pay;             //amount earned 
string name;            //name of worker
ifstream inFile;
ofstream outFile;

//***********input statements****************************
inFile.open("Piecework1.txt");  //opens the input text file
outFile.open("piecework1.out");  //opens the output text file
outFile << setprecision(2) << showpoint;
outFile << name << setw(6) << "Pieces" << setw(12) << "Pay" << endl;
outFile << "_____" << setw(6) << "_____" << setw(12) << "_____" << endl;
getline(inFile, name, '*');         //priming read
inFile >> pieces >> pay >> rate;    // ,,
while (name != "End of File")           //while condition test
{                                   //begining of loop
    pay = pieces * rate;
    getline(inFile, name, '*');     //get next name
    inFile >> pieces;               //get next pieces
}                                   //end of loop
inFile.close();
outFile.close();
return 0;
}
4

1 回答 1

0

有人可以查看代码并告诉我需要引入什么样的计数,以及是否需要进行任何其他更改。

您需要将输出定向到输出文件的语句,就像作业所说的那样。编译器不能读懂你的心思,也不能读懂你的作业。它只能读取您的代码。

您的输入语句也有问题。工资率不在输入文件中。输入文件中的所有内容都是工人的姓名和他们生产的件数。

于 2012-11-03T17:39:04.390 回答