Does my program follow Object-Oriented principles and structure?

A corporation has six divisions, each responsible for sales to different geographic
locations. Design a DivSales class that keeps sales data for a division

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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
  #include <iostream>

using namespace std;

// Class declaration
class DivSales

{

private:
	// Holds the total corporate sales for all divisions
	static int Year_Sales;
	int Qtrsale[4]; // Elements for sale figures, 4 quarterly sales

public:
	void AddSales(int, int, int, int); // calculates annual ammount
	int Sales(int); // output
	int getvalue() { return Year_Sales; }

};

// This member function takes arguments and is copied into array holding sales data

// Year_Sales contains total of the 4 sales

void DivSales::AddSales(int sale1, int sale2, int sale3, int sale4)

{

	// arrays 0 through 3 store the quarterly sales
	Qtrsale[0] = sale1;
	Qtrsale[1] = sale2;
	Qtrsale[2] = sale3;
	Qtrsale[3] = sale4;

	// private variable access
	// combines the 4 arguments
	Year_Sales = Year_Sales + sale1 + sale2 + sale3 + sale4;

}

// returns values of quarterly sales for each division

// Used for table formatting in main

int DivSales::Sales(int n)

{

	// Qtrsale[n] holds value from input to return for output
	// returns sale(n) 
	int value = Qtrsale[n];
	return value;

}

// this function is triggered if user enters a negative quarterly sale value

void error()

{

	system("cls");
	cout << "You have entered a negative value. Restart program and try again";
	cout << "Press any key to restart programn";
	system("pause");
	exit(0);

}

// Overload constructer

// Definition of the static member of DivSales class

// for access to the private static variable

int DivSales::Year_Sales;


// Start main function

int main()

{

	// insurance for protecting the array storage(s)
	const int DS = 6;
	DivSales DivisionSale[DS]; // 6 division with each of their own array
	int quarter, division; // quarter = 4; division = 6

						   // This will pass quarter sales to AddSales
	for (division = 0; division < 6; division++)

	{

		// 4 quarters for array storage
		int Qrt1, Qrt2, Qrt3, Qrt4;

		int Q; // used to check for negative input

			   // Prompts the user for quarter sales of each division
			   // divisions 1 - 6
		cout << "Enter Sales of Division: " << division + 1 << endl;

		// Each quarter is assigned to Q which is used for error checking.
		// Error checking occurs when negative value is detected
		cout << "Enter Q1 Sales: ";
		cin >> Qrt1;
		Q = Qrt1;
		if (Q < 0)
			error();

		cout << "Enter Q2 Sales: ";
		cin >> Qrt2;
		Q = Qrt2;
		if (Q < 0)
			error();

		cout << "Enter Q3 Sales: ";
		cin >> Qrt3;
		Q = Qrt3;
		if (Q < 0)
			error();

		cout << "Enter Q4 Sales: ";
		cin >> Qrt4;
		Q = Qrt4;
		if (Q < 0)
			error();

		// passes Qrt1 through Qrt4 to AddSales
		DivisionSale[division].AddSales(Qrt1, Qrt2, Qrt3, Qrt4);

	}

	cout << "\n----------------------------------------\n";
	cout << "\t" << "Q1" << "\t" << "Q2" << "\t" << "Q3" << "\t" << "Q4" << endl;

	// table for quarterly sales of each division
	for (division = 0; division < 6; division++)

	{

		cout << "Div " << division + 1;
		for (quarter = 0; quarter < 4; quarter++)

		{

			// calling function Sales 6 times
			cout << "\t$" << DivisionSale[division].Sales(quarter);

		}

		cout << endl;

	}

	cout << "----------------------------------------\n";
	cout << "\nTotal corporate sales for the year: ";
	cout << "$" << DivisionSale[0].getvalue() << endl;

	system("pause");
	return 0;

}
Not sure if it does since I only have 1 class
Topic archived. No new replies allowed.