1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// Pseudocode PLD Chapter 7 #6a pg. 301
// Start
// Declarations
// InputFile masterFile;
// InputFile transactionFile;
// OutputFile newMasterFile;
// num mClientNumber, mtotalClientCost, tClientNumber, titemClientCost
// string mClientfName, mClientlName
// output "Master File Updating Starting"
// open masterFile "Master.rtf"
// open transactionFile "Transaction.rtf"
// open newMasterFile "newMaster.rtf"
// read mClientNumber, mClientfName, mClientlName, mtotalClientCost from masterFile
// read tClientNumber, titemClientCost from transactionFile
// while ( transactionFile not EOF )
// while (( masterFile not EOF) and (mClientNumber < tClientNumber))
// output mClientNumber, mClientfName, mClientlName, mtotalClientCost to newMasterFile
// read mClientNumber, mClientfName, mClientlName, mtotalClientCost from masterFile
// endwhile
// if (masterFile is EOF)
// output "Error Client ID: ", tClientNumber, " not in Master File."
// else if (mClientNumber == tClientNumber) then
// mtotalClientCost = mtotalClientCost + titemClientCost
// output mClientNumber, mClientfName, mClientlName, mtotalClientCost to newMasterFile
// read mClientNumber, mClientfName, mClientlName, mtotalClientCost from masterFile
// else if (mClientNumber > tClientNumber) then
// output "Error Client ID: ", tClientNumber, " not in Master File."
// endif
// read tClientNumber, titemClientCost from transactionFile
// endwhile
// while (masterFile not EOF)
// output mClientNumber, mClientfName, mClientlName, mtotalClientCost to newMasterFile
// read mClientNumber, mClientfName, mClientlName, mtotalClientCost from masterFile
// endwhile
// output "Master File Updating Complete"
// close masterFile
// close transactionFile
// close newMasterFile
// Stop
int main(int argc, char *argv[])
{
ifstream MasterFile;
ifstream TransactionFile;
ofstream New_MasterFile;
int mClientNumber;
double mtotalClientCost;
int tClientNumber;
double titemClientCost;
string mClientfName;
string mClientlName;
cout << "Master File Updating Starting" << endl;
MasterFile.open("Master.txt");
TransactionFile.open("Transaction.txt");
New_MasterFile.open("newMaster.txt");
MasterFile >> mClientNumber;
MasterFile >> mClientfName;
MasterFile >> mtotalClientCost;
MasterFile >> mClientlName;
TransactionFile >> tClientNumber;
TransactionFile >> titemClientCost;
while(!TransactionFile.eof())
{
while (( !MasterFile.eof()) and (mClientNumber < tClientNumber))
{
New_MasterFile << mClientNumber;
New_MasterFile << mClientfName;
New_MasterFile << mClientlName;
New_MasterFile << mtotalClientCost;
MasterFile >> mClientNumber;
MasterFile >> mClientfName;
MasterFile >> mClientlName;
MasterFile >> mtotalClientCost;
}
if (!MasterFile.eof())
{
cout << "ERROR Client ID: " << tClientNumber << " not in Master File. " ;
}
else if (mClientNumber == tClientNumber)
{
mtotalClientCost = mtotalClientCost + titemClientCost;
New_MasterFile << mClientNumber;
New_MasterFile << mClientfName;
New_MasterFile << mClientlName;
New_MasterFile << mtotalClientCost;
MasterFile >> mClientNumber;
MasterFile >> mClientfName;
MasterFile >> mClientlName;
MasterFile >> mtotalClientCost;
}
else if (mClientNumber > tClientNumber)
{
cout << "Error Client ID: ", tClientNumber, " not in Master File.";
}
TransactionFile >> tClientNumber;
TransactionFile >> titemClientCost;
}
while (!MasterFile.eof())
{
New_MasterFile << mClientNumber;
New_MasterFile << mClientfName;
New_MasterFile << mClientlName;
New_MasterFile << mtotalClientCost;
MasterFile >> mClientNumber;
MasterFile >> mClientfName;
MasterFile >> mClientlName;
MasterFile >> mtotalClientCost;
}
cout << "Master File Updating Complete " << endl;
MasterFile.close();
TransactionFile.close();
New_MasterFile.close();
system("PAUSE");
return EXIT_SUCCESS;
}
| |