只能写成这样了 想知道怎么改

  1. 某公司销售某一商品,允许销售人员在销售时灵活掌握售价(price),现已知当天3个销售人员的销售情况如下:
    销货员号(num) 销货件数(quantity) 销货单价(price)
    101 5 23.5
    102 12 22.5
    103 100 21.5
    (1)定义销货员类CSaler,包含成员函数sale(int x),每次调用该函数,则把销货件数加x;
    (2)编写程序,计算当日此商品的总销售款(sum),以及每件商品的平均售价,要求用静态数据成员和静态成员函数;
    (3)提示:静态成员是为了解决数据共享问题,将总销售款(sum)和售出商品总件数(n)声明为静态数据成员,再定义静态成员函数average(求平均售价);
    (4)编写函数main(),测试并截图运行结果。
    class CSaler{
    int num; //销货员号
    int quantity; //销货件数
    double price; //销货单价
    static double sum; //总销售款
    static int n; //售出商品总件数
    public:
    void sale(int x); //售出商品x件
    static void average(); //求平均售价
    …… //其他成员函数、构造函数……
    };

#include<bits/stdc++.h>
using namespace std;
 
class CSaler{
    int num;        //销货员号
    int quantity;    //销货件数
    double price;  //销货单价
    static double sum;     //总销售款
    static double ave;//平均售价 
    static int n;           //售出商品总件数
public:
    void sale(int x);   //售出商品x件 每次调用该函数,则把销货件数加x
    static void average(); //求平均售价
    void total();
};
void CSaler::sale(int x){
     CSaler(){
         quantity+=x;
     }
     ~CSaler(){
         quantity-=x;
     }
}
double CSaler::sum=0;
double CSaler::ave=0;
void CSaler::total(){
    double val=quantity*price;
    sum+=val;
}
void CSaler::average(){
    ave=sum/n;
}

int main(){
    CSaler saler1,saler2,saler3;
    saler1.num=101;
    saler1.quantity=5;
    saler1.price=23.5;
    saler1.num=102;
    saler1.quantity=12;
    saler1.price=22.5;
    saler1.num=103;
    saler1.quantity=100;
    saler1.price=21.5;
    int CSaler::n+=quantity;
    total();
    average();
    
}

17到24行你要整构造和析构函数吗?头文件加申明啊
大概修改如下:

class CSaler{
    int num;        //销货员号
    int quantity;    //销货件数
    double price;  //销货单价
    static double sum;     //总销售款
    static int n;           //售出商品总件数
public:
    CSaler() {}
    CSaler(int n,int q,double p) {num = n;quantity = q;price = p;sale(q);total(n,p);}
    void sale(int x);   //售出商品x件 每次调用该函数,则把销货件数加x
    static double average(); //求平均售价
    static void total(int q,double p);
};
void CSaler::sale(int x){
    n+=x;
}
double CSaler::sum=0;
int CSaler::n=0;

void CSaler::total(int q,double p)
{
    sum += q*p;
}

double CSaler::average()
{
    return sum/n;
}
 
int main(){
    CSaler saler1(101,5,23.5),saler2(102,12,22.5),saler3(103,100,21.5);
    cout<<"平均售价为:"<< CSaler::average()<<endl;
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632