PROGRAM 27
// FILE NAME: PROG27.CPP PROGRAMMER NAME: ANTHONY F. ORTIZ // THIS PROGRAM USES A CLASS CALLED ARRYLIST. THE MEMBER FUNCTIONS OF // ARRAYLIST WILL INITIALIZES THE SIZE OF A FLOATING POINT ARRAY, ADD // A FLOATING POINT NUMBER TO THE ARRAY, SHOW A SUB-TOTALS OF THE // ARRAY, DISPLAY ALL FLOATING POINT ITEMS, AND CHANGE A FLOATING POINT // ITEM. #include "a2.h" print_menu (); char get_selection (arraylist & expenses); pause_program (); int main () { char choice; arraylist expenses; do { print_menu (); choice = get_selection (expenses); } while (choice != 'Q'); return 0; } print_menu () { clrscr (); gotoxy (25, 1); cout << "MENU OPTIONS"; gotoxy (30, 3); cout << "E -- ENTER EXPENSES"; gotoxy (30, 4); cout << "T -- PRINT TOTAL EXPENSES"; gotoxy (30, 5); cout << "C -- CHANGE EXPENSES"; gotoxy (30, 6); cout << "D -- DISPLAY EXPENSES"; gotoxy (30, 7); cout << "Q -- QUIT PROGRAM"; gotoxy (25, 9); cout << "ENTER SELECTION "; return 0; } char get_selection (arraylist & expenses) { char choice; cin >> choice; choice = toupper (choice); switch (choice) { case ('E'): { expenses.enteritem (); break; } case ('T'): { expenses.printtotal (); pause_program (); break; } case ('C'): { expenses.changelist (); pause_program (); break; } case ('D'): { expenses.viewlist (); pause_program (); break; } case ('Q'): { clrscr (); break; } } return (choice); } pause_program () { cout << endl << "PRESS ENTER KEY TO CONTINUE ..... "; getch (); return 0; } // FILE NAME: A2.H // THIS FILE CONTAINS THE DECLARTION OF THE ARRAYLIST CLASS. #ifndef arraylist_h #define arraylist_h #include #include #include class arraylist { public: arraylist :: arraylist (); // POST: CONSTRUCTOR. arraylist :: ~arraylist (); // POST: DESTRUCTOR. void arraylist :: initcount (void); // POST: INITIALIZE COUNT TO 0. void arraylist :: enteritem (void); // POST: ENTER FLOATING POINT NUMBER. void arraylist :: printtotal (void); // POST: CALCULATE AND PRINT THE TOTAL. void arraylist :: viewlist (void); // POST: VIEW THE LIST OF FLOATING POINT NUMBERS. void arraylist :: changelist (void); // POST: CHANGE OR DELETE A FLOATING POINT NUMBER FROM THE LIST. private: int count; float * list; }; #include "a2.cpp" #endif // FILE NAME: A2.CPP // THIS FILE CONTAINS THE IMPLEMENTATION OF THE ARRAYLIST CLASS. #include "a2.h" arraylist :: arraylist () { list = new float [100]; count = 0; cout.setf (ios :: showpoint); cout.setf (ios :: fixed); cout << setprecision (2); } arraylist :: ~arraylist () { delete [] list; } void arraylist :: initcount (void) { count = 0; } void arraylist :: enteritem (void) { clrscr (); cout << "ENTER A FLOATING POINT NUMBER. "; cin >> list [count]; count++; } void arraylist :: printtotal (void) { float total = 0; clrscr (); for (int a = 0; a < count; a++) { total = total + list [a]; } cout << "THE TOTAL IS " << total << " AND THE SIZE OF THE ARRAY IS "; cout << count << endl; } void arraylist :: viewlist (void) { clrscr (); cout << "HERE IS THE FLOAT OBJECT ARRAY: " << endl << endl; for (int a = 0; a < count; a++) { cout << "FLOAT OBJECT " << (a + 1) << ": " << setw (8) << list [a]; cout << endl; } } void arraylist :: changelist (void) { char choice, ans; int position, flag; float change; clrscr (); gotoxy (25, 1); cout << "MENU CHOICES"; gotoxy (30, 3); cout << "D -- DELETE AN ITEM"; gotoxy (30, 4); cout << "C -- CHANGE AN ITEM"; gotoxy (25, 6); cout << "ENTER A CHOICE: "; cin >> choice; choice = toupper (choice); if (choice == 'D' || choice == 'C') { clrscr (); do { cout << "ENTER A # FROM 1 .. " << count; cout << " TO CHANGE AN ITEM. "; cin >> position; cout << endl; } while (position < 1 || position > count); } switch (choice) { case ('D'): { clrscr (); cout << "DELETE FLOATING OBJECT " << position; cout << " " << list [position - 1] << " (Y/N)? "; cin >> ans; ans = toupper (ans); if (ans == 'Y') { flag = 0; for (int a = 0; a < count; a++) { if (a == (position - 1) || flag == 1) { list [a] = list [a + 1]; flag = 1; } } count--; cout << endl << "FLOATING POINT OBJECT DELETED "; cout << endl; } else { cout << endl << "FLOATING POINT OBJECT NOT DELETED"; cout << endl; } break; } case ('C'): { clrscr (); cout << "ENTER NEW FLOATING OBJECT " << position; cout << ": "; cin >> change; cout << endl << "CHANGE FLOATING OBJECT "; cout << position << " " << list [position - 1] << " (Y/N)? "; cin >> ans; ans = toupper (ans); if (ans == 'Y') { for (int a = 0; a < count; a++) { if (a == (position - 1)) { list [a] = change; } } cout << endl << "FLOATING POINT OBJECT CHANGED"; cout << endl; } else { cout << endl << "FLOATING POINT OBJECT NOT CHANGED"; cout << endl; } break; } } } // OUTFILE: PROG27.OUT MENU OPTIONS E -- ENTER EXPENSES T -- PRINT TOTAL EXPENSES C -- CHANGE EXPENSES D -- DISPLAY EXPENSES Q -- QUIT PROGRAM ENTER SELECTION q
BACK TO COMP251 PAGE.