Question: Code the attached Flowers Express program in C#, incorporating the modifications below. Modifications: In the code give, the Flowers Express program allows the user to

Code the attached Flowers Express program in C#, incorporating the modifications below.

Modifications: In the code give, the Flowers Express program allows the user to add records to the sales.txt file and also displays the total of the sales amounts stored in the file. Modify the program so that it also allows the user to display the contents of the sales.txt file on the computer screen (hint - add a displayFile() method to the program and to the menu choices).

#include

#include

#include

#include

#include

using namespace std;

//function prototypes

int displayMenu();

void addRecords();

void displayTotal();

void displayFile();

void deleteRecord();

int main()

{

int menuChoice = 0;

//display menu and get choice

menuChoice = displayMenu();

//call appropriate function

//or display error message

while (menuChoice != 5)

{

switch(menuChoice)

{

case 1:

addRecords();

break;

case 2:

displayTotal();

break;

case 3:

displayFile();

break;

case 4:

deleteRecord();

break;

default:

cout << "Invalid menu choice" << endl;

break;

}//end switch

//display menu and get choice

menuChoice = displayMenu();

} //end while

return 0;

} //end of main function

//*****function definitions*****

int displayMenu()

{

//displays a menu and then gets

//and returns the user's choice

int choice = 0;

cout << "Options" << endl;

cout << "1 Add Records" << endl;

cout << "2 Calculate and Display Total Balance" << endl;

cout << "3 Display File" << endl;

cout << "4 Delete Record" << endl;

cout << "5 Exit Program" << endl;

cout << "Enter menu option: ";

cin >> choice;

cin.ignore(100, ' ');

return choice;

} //end of displayMenu function

void addRecords()

{

//writes records to a sequential access file

string custID = "";

double balance = 0.0;

string status = "";

//create file object and open the file

ofstream outFile;

outFile.open("customer.txt", ios::app);

//determine whether the file was opened

if (outFile.is_open())

{

//get the name

cout << "Enter customer ID (X to stop): ";

getline(cin, custID);

transform(custID.begin(), custID.end(), custID.begin(), toupper);

while (custID != "X")

{

//get the sales amount

cout << "Enter customer balance: ";

cin >> balance;

cin.ignore(100, ' ');

cout << "Enter account status - A = active; I = inactive: ";

getline(cin, status);

transform(status.begin(), status.end(), status.begin(), toupper);

//write the record

outFile << custID << '#' << balance << '#' << status << endl;

//get another name

cout << "Enter customer ID (X to stop): ";

getline(cin, custID);

transform(custID.begin(), custID.end(), custID.begin(), toupper);

} //end while

//close the file

outFile.close();

}

else

cout << "File could not be opened." << endl;

//end if

} //end of addRecords function

void displayTotal()

{

//reads records from a file and calculates the

//total sales amount, then displays the total

//sales amount

string custID = "";

double balance = 0.0;

string status = "";

double total = 0.0;

//create file object and open the file

ifstream inFile;

inFile.open("customer.txt", ios::in);

//determine whether the file was opened

if (inFile.is_open())

{

//read a record

getline(inFile, custID, '#');

inFile >> balance;

inFile.ignore();

getline(inFile, status);

while (!inFile.eof())

{

//accumulate the balance amount for active accounts

if (status == "A" || status == "a")

{

total = total + balance;

}

//read another record

getline(inFile, custID, '#');

inFile >> balance;

inFile.ignore();

getline(inFile, status);

} //end while

//close the file

inFile.close();

//display the total sales amount

cout << setiosflags(ios::fixed) << setprecision(2);

cout << endl << "Total balance of active accounts $" << total << endl << endl;

}

else

cout << "File could not be opened." << endl;

//end if

} //end of displayTotal function

void displayFile()

{

//displays the contents of the sales.txt file

string record = "";

//create file object and open the file

ifstream inFile;

inFile.open("customer.txt", ios::in);

//determine whether the file was opened

if (inFile.is_open())

{

cout << endl;

//read a line from the file

getline(inFile, record);

while (!inFile.eof())

{

//dislay the line

cout << setiosflags(ios::fixed) << setprecision(2);

cout << record << endl;

//read another line from the file

getline(inFile, record);

} //end while

cout << endl;

//close the file

inFile.close();

}

else

cout << "File could not be opened." << endl;

//end if

} //end of displayFile function

void deleteRecord()

{

//reads records from a file, loads into an array,

//locates the record to be deleted in array,

//then rewrites all records to the file

//except the record be be deleted

string custID = "";

double balance = 0.0;

string status = "";

string recordArray[100];

string record;

int recordCount = 0;

//create file object and open the file

ifstream inFile;

inFile.open("customer.txt", ios::in);

//determine whether the file was opened

if (inFile.is_open())

{

while (!inFile.eof())

{

getline(inFile, record);

recordArray[recordCount] = record;

recordCount++;

}//end while

for (int x = 0; x < recordCount; x++)

{

cout << recordArray[x] << endl;

}

//close the input file

inFile.close();

}

//create file object for output and open the file - this overwrites the original file

ofstream outFile;

outFile.open("customer.txt");

string delCustID = "";

cout << "Enter the customer ID of the record to be deleted: " << endl;

getline(cin, delCustID);

transform(delCustID.begin(), delCustID.end(), delCustID.begin(), toupper);

cout << endl;

for (int x = 0; x < recordCount; x++)

{

//split record into fields using delimiter

string record = recordArray[x];

int delimiterPos = record.find("#", 0);

custID = record.substr(0, delimiterPos);

if (delCustID == custID)

{

cout << "Record being deleted: " << recordArray[x] << endl;

recordCount--;

}

else

{

//create file object for output file and open the file

//re-write the record

cout << "Record being written: " << recordArray[x] << endl;

outFile << recordArray[x] << endl;

}//end if

}//end for

cout << endl;

//close the output file

outFile.close();

}//end deleteRecord function

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!