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

出力: 適切なタイトルと列見出しを出力します。労働者ごとに詳細行が 1 行あり、名前、個数、および獲得金額が表示されます。ピース数と稼いだ金額の合計を計算して出力します。

処理: 各人について、ピースの数に適切な価格を掛けて獲得した報酬を計算します。ピースの合計数と支払った合計金額を累積します。

サンプル プログラム出力:

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 です。これら 3 つのファイルのコピーを元の形式で電子メールで送信してください。

2 つの異なる変数ではなく、1 つの変数を使用して名前を読み取ります。これを行うには、クラスで説明したように 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 に答える