PROGRAM 24
// FILE NAME: PROG24.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, AND SHOW A SUB-TOTALS OF THE // ARRAY. #include #include "arrylist.h" print_menu (); char get_selection (arraylist & expenses); pause_program (); int main () { char choice; arraylist expenses; expenses.initcount (); 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 << "Q -- QUIT PROGRAM"; gotoxy (25, 7); 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 ('Q'): { clrscr (); break; } } return (choice); } pause_program () { cout << endl << "PRESS ENTER KEY TO CONTINUE ..... "; getch (); return 0; } // FILE NAME: ARRYLIST.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. void initcount (void); // POST: INITIALIZE COUNT TO 0. void enteritem (void); // POST: ENTER A FLOATING POINT NUMBER. void printtotal (void); // POST: CALCULATE AND DISPLAY THE TOTAL. void viewlist (void); // POST: VIEW THE LIST OF FLOATING POINT NUMBERS. void changelist (void); // POST: CHANGE OR DELETE A FLOATING POINT NUMBER FROM THE LIST. private: int count; float list [100]; }; #include "arrylist.cpp" #endif // FILE NAME: ARRYLIST.CPP // THIS FILE CONTAINS THE IMPLEMENTATION OF THE ARRAYLIST CLASS. #include "arrylist.h" arraylist :: arraylist () { count = 0; cout.setf (ios :: showpoint); cout.setf (ios :: fixed); cout << setprecision (2); } 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 " << 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] << 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 << " TO CHANGE AN ITEM. "; cin >> position; cout << endl; } while (position < 1 || position > count); } switch (choice) { case ('D'): { clrscr (); cout << "DELETE FLOATING OBJECT " << position << " " << 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 " << endl; } else { cout << endl << "FLOATING POINT OBJECT NOT DELETED" << endl; } break; } case ('C'): { clrscr (); cout << "ENTER NEW FLOATING OBJECT " << position << ": "; cin >> change; cout << endl << "CHANGE FLOATING OBJECT " << 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" << endl; } else { cout << endl << "FLOATING POINT OBJECT NOT CHANGED" << endl; } break; } } } // OUTFILE: PROG24.OUT MENU OPTIONS E -- ENTER EXPENSES T -- PRINT TOTAL EXPENSES Q -- QUIT PROGRAM ENTER SELECTION e ENTER A FLOATING POINT NUMBER. 100.00 MENU OPTIONS E -- ENTER EXPENSES T -- PRINT TOTAL EXPENSES Q -- QUIT PROGRAM ENTER SELECTION t THE TOTAL IS 100.00 AND THE SIZE OF THE ARRAY IS 1 PRESS ENTER KEY TO CONTINUE ..... MENU OPTIONS E -- ENTER EXPENSES T -- PRINT TOTAL EXPENSES Q -- QUIT PROGRAM ENTER SELECTION q
BACK TO COMP251 PAGE.