c++ This is my program and works well. However, I need to improve it, can you he
ID: 3581005 • Letter: C
Question
c++
This is my program and works well. However, I need to improve it, can you help me with this:
Move the implementations from the header file to the .cpp file
Make allregtot as static
All accessor member functions are constant.
Thanks U.
these are my codes:
//code.h:
#ifndef CODE_H
#define CODE_H
#include <iostream>
using namespace std;
class DivSales{
public:
string region;
int quarters [4];
double yearlySale;
double allregtot;
DivSales();
~DivSales();
void getValues();
string getRegion();
double getquatsale(int);
double getyearlysale();
double gettotsale();
};
DivSales::DivSales(){
region = "";
yearlySale = 0;
allregtot = 0;
for(int i=0; i<4; i++){ quarters[i]=0; }
}
DivSales::~DivSales(){
}
void DivSales::getValues(){
cout<<" Enter Region: ";
cin>>region;
for(int i = 0; i<4;i++)
{
cout<<setw(15)<<" Quarter "<<i+1<< ": ";
cin>> quarters[i];
yearlySale = yearlySale + quarters[i];
}
allregtot = allregtot + yearlySale;
}
string DivSales::getRegion(){
return region;
}
double DivSales::getquatsale(int index){
return quarters[index];
}
double DivSales::getyearlysale(){
return yearlySale;
}
double DivSales::gettotsale(){
return allregtot;
}
#endif
----------------------------------------------------------
//code cpp.
#include<iostream>
#include<string>
#include<cstdlib>
#include<iomanip>
#include "code.h"
using namespace std;
int main(){
DivSales obj[4];
int allregquat [4];
int tot=0;
cout<<setiosflags(ios::fixed|ios::showpoint); // using stream manipulator
cout<<setprecision(2); // to control output displays
for (int i =0; i<4; i++)
{
obj[i].getValues();
}
cout<<" ----------------------- ";
for(int i=0; i<4; i++)
{
cout<<" "<<obj[i].getRegion();
for(int j=0; j<4; j++)
{
cout<<" Quarter "<<j+1<< ": "<<
obj[i].quarters[j];
}
cout<<" ";
cout<<" Region's total: "<<obj[i].yearlySale;
cout<<" ";
}
for(int i =0; i<4; i++)
{
tot= tot+ obj[i].gettotsale();
}
cout<<" ";
cout<<" All Regions Total: "<< tot;
for(int i=0; i<4; i++)
{
allregquat[i]=0;
}
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
allregquat[i]=allregquat[i]+ obj[j].quarters[i];
}
}
cout<<" ";
cout<<" Extra work: ";
for(int i=0; i<4; i++)
{
cout<<" ALL regiongs Quarter"<<i+1<<" : "<<
allregquat[i];
}
cout<<" ";
system("pause");
return 0 ;
}
Explanation / Answer
Solution:
DivSales onj[4]; //misspelled variable obj[4]
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
clrscr();
DivSales obj[4];
int allregquat [4];
int tot=0;
for (int i =0; i<4; i++)
{
obj[i].getValues();
}
cout<<" ----------------------- ";
for(int i=0; i<4; i++)
{
cout<<" "<<obj[i].getRegion();
for(int j=0; j<4; j++)
{
cout<<" Quarter "<<j+1<< ": "<<
obj[i].quarters[j];
}
cout<<" Region's total: "<<obj[i].yearlySale;
}
for(int i =0; i<4; i++)
{
tot= tot+ obj[i].gettotsale();
}
cout<<" All Regions Total: "<< tot;
for(int i=0; i<4; i++)
{
allregquat[i]=0;
}
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
allregquat[i]=allregquat[i]+ obj[j].quarters[i];
}
}
cout<<" Extra work: ";
for(int i=0; i<4; i++)
{
cout<<" ALL regiongs Quarter" <<"1: "<<
allregquat[i];
}
class DivSales
{
public:
string region;
int quarters [4];
double yearlySale;
double allregtot;
DivSales()
{
region = "";
yearlySale = 0;
allregtot = 0;
for(int i=0; i<4; i++)
{
quarters[i]=0;
}
}
~DivSales()
{
}
void getValues()
{
cout<<" Enter Region: ";
cin>>region;
for(int i = 0; i<4;i++)
{
cout<<" Quarter "<<i+1<< ": ";
cin>> quarters[i];
yearlySale = yearlySale + quarters[i];
}
allregtot = allregtot + yearlySale;
}
string getRegion()
{
return region;
}
double getquatsale(int index)
{
return quarters[index];
}
double getyearlysale()
{
return yearlySale;
}
double gettotsale()
{
return allregtot;
}
};
system("pause");
return 0;
getch();
}
Output:
Enter Region: East
Quarter 1: 32000
Quarter 2: 34000
Quarter 3: 45000
Quarter 4: 55000
Enter Region: West
Quarter 1: 1000
Quarter 2: 2000
Quarter 3: 3000
Quarter 4: 4000
Enter Region: North
Quarter 1: 2000
Quarter 2: 4000
Quarter 3: 6000
Quarter 4: 8000
Enter Region: South
Quarter 1: 3000
Quarter 2: 6000
Quarter 3: 9000
Quarter 4: 12000
-----------------------
East
Quarter 1: 32000
Quarter 2: 34000
Quarter 3: 45000
Quarter 4: 55000
Region's total: 166000
West
Quarter 1: 1000
Quarter 2: 2000
Quarter 3: 3000
Quarter 4: 4000
Region's total: 10000
North
Quarter 1: 2000
Quarter 2: 4000
Quarter 3: 6000
Quarter 4: 8000
Region's total: 20000
South
Quarter 1: 3000
Quarter 2: 6000
Quarter 3: 9000
Quarter 4: 12000
Region's total: 30000
All Regions Total: 226000
Extra work:
ALL regiongs Quarter1: 38000
ALL regiongs Quarter1: 46000
ALL regiongs Quarter1: 63000
ALL regiongs Quarter1: 79000
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.