访问函数和工具函数的使用------SalesPerson实例分析
SalesPerson.h
#ifndef SALESP_H
#define SALESP_H
class SalesPerson{
public:
static const int monthPerYear = 12;//months in one year
SalesPerson();//cnostructor
void getSalesFromUser();//input sales from keyboard
void setSales(int, double);//set sales for a specific month设置数组中某个月的销售额
void printAnnualSales();//summerise and print sales
private:
double totalAnnualSales();//prototype设计原型 for utility function功能函数的设计原型
double sales[monthPerYear];//12 monthly sales figures
};
#endif
SalesPerson.cpp
//SalesPerson class member-function definitions
#include<iostream>
#include<iomanip>
#include"SalesPerson.h"
using namespace std;
SalesPerson::SalesPerson(){
for (int i = 0; i < monthPerYear; i++)
sales[i] = 0.0;
}
void SalesPerson::getSalesFromUser(){
double salesFigure;
for (int i = 1; i <=monthPerYear; i++)
{
cout << "Enter salary amount for month " << i << ":";
cin >> salesFigure;
setSales(i, salesFigure);
}
}
void SalesPerson::setSales(int month, double amount){
if (month >= 1 && month <= monthPerYear&&amount>0)
sales[month - 1] = amount;
else
cout << "Invalid month or sales figure" << endl;
}
void SalesPerson::printAnnualSales(){
cout << setprecision(2) << fixed << "\nThe total annual salaries are: $" << totalAnnualSales() << endl;
}
double SalesPerson::totalAnnualSales(){
double total = 0.0;
for (int i = 0; i < monthPerYear; i++)
total += sales[i];
return total;
}
测试.cpp
#include"SalesPerson.h"
int main(){
SalesPerson s;
s.getSalesFromUser();
s.printAnnualSales();
}