C ++ Sentinel / Count Controlled Loop开始编程

时间:2012-11-03 16:59:15

标签: c++

大家好,这是我的第一篇文章。我正在做一个带有以下参数的家庭作业。

  

计件工人由这件作品支付。通常是生产工人的工人   以更高的利率支付更多的产出。

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(流,   变量)函数,如课程中讨论的,除了你将替换   带有文本文件流变量名的cin。别忘了编码   编译器指令#include<字符串>在你的程序的顶部   确认字符串变量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;
}

1 个答案:

答案 0 :(得分:0)

  

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

您需要将输出定向到输出文件的语句,就像赋值所做的那样。编译器无法读懂您的想法,也无法读取您的作业。它只能读取您的代码。

您的输入语句也有问题。工资率不在输入文件中。输入文件中的所有内容都是工人的名字和他们制作的作品数量。