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.